OSDN Git Service

PR target/48688
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
2
3         PR target/48688
4         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
5
6 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
7
8         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
9         of X87MODEI12 and SWI48x instead of SSEMODEI24.
10         (SWI248x): New mode iterator, rename from X87MODEI.
11         (X87MODEI): Remove mode iterator.
12         (X87MODEI12): Ditto.
13         (SSEMODEI24): Ditto.
14
15 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
16
17         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
18         * doc/invoke.texi: Document max-vartrack-expr-depth.
19         * var-tracking.c (EXPR_DEPTH): New.
20         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
21
22 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
23
24         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
25         * config/i386/sse.md: Add n to negated FMA pattern names.
26
27 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
28
29         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
30
31 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
32
33         * gengtype-state.c (read_state_params_structs): Initialize previous.
34
35 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
36
37         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
38         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
39
40 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
41
42         * config/i386/i386.md (*movtf_internal): Avoid allocating general
43         registers.  Penalize F*r->o alternative to prevent partial memory
44         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
45         CONST_DOUBLE immediates when optimizing function for size.  Do not move
46         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
47         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
48         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
49         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
50         alternatives.
51         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
52
53         (fp_register_operand splitters): Use fp_register_operand
54         constraint.  Do not use FP_REG_P in insn condition.
55         (any_fp_register_operand splitters): Use any_fp_register_operand
56         constraint.  Do not use ANY_FP_REG_P in insn condition.
57
58 2011-05-31  Jan Hubicka  <jh@suse.cz>
59
60         * cgraph.h (cgraph_inline_failed_t): Give enum a name
61         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
62         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
63         (lto_output_edge): Use output_enum and var_len_unsigned.
64         (lto_output_varpool_node): Likewise.
65         (input_overwrite_node): Do not take resolution parameter;
66         extract it from a bitpack.
67         (input_node): Do not read resolution; use input_enum and
68         var_len_unsigned.
69         (input_varpool_node): Likewise.
70         (input_edge): Likewise.
71         (input_cgraph_1): Likewise.
72
73 2011-05-31  Richard Guenther  <rguenther@suse.de>
74
75         * gimple.c (gimple_register_canonical_type): Do not register
76         any types via gimple_register_type.
77
78 2011-05-31  Jan Hubicka  <jh@suse.cz>
79
80         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
81         of thunks.
82
83 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
84
85         PR rtl-optimization/49235
86         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
87         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
88
89 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
90
91         PR tree-optimization/49093
92         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
93         data references.
94
95 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
96
97         PR debug/49047
98         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
99         for concrete functions containing the code of cloned functions.
100
101 2011-05-31  Richard Guenther  <rguenther@suse.de>
102
103         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
104         to ...
105         (forward_propagate_into_comparison_1): ... this.
106         (forward_propagate_comparison): Rename to ...
107         (forward_propagate_into_comparison): ... this.  Split out
108         real forward propagation code to ...
109         (forward_propagate_comparison): ... this.
110         (forward_propagate_into_gimple_cond): Remove looping.
111         (forward_propagate_into_cond): Likewise.
112         (simplify_not_neg_expr): Return whether we have done something.
113         (simplify_gimple_switch): Likewise.
114         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
115         (ssa_forward_propagate_and_combine): ... this.  Re-structure
116         to do a forward forward-propagation walk on BBs and a backward
117         stmt combining walk on BBs.  Consistently re-scan changed statements.
118         (pass_forwprop): Adjust.
119
120 2011-05-30  Ian Lance Taylor  <iant@google.com>
121
122         * godump.c (go_format_type): Correct length of name added to
123         obstack for anonymous field.
124
125 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
126
127         PR target/49186
128         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
129         part of the second operand is 0.
130
131 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
132
133         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
134         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
135         to memory for !TARGET_MEMORY_MISMATCH_STALL.
136         (*movdf_internal_rex64): Do not penalize F->r alternative.
137         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
138         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
139         when optimizing function for size.  Do not move CONST_DOUBLEs
140         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
141         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
142         SUBREGs.  Do not check for MEM_P operands in the insn condition,
143         check for ANY_FP_REGNO_P instead.
144         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
145         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
146         function for speed.
147         * config/i386/i386.c (ix86_option_override_internal): Do not
148         set TARGET_INTEGER_DFMODE_MOVES here.
149
150 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
151
152         PR target/49168
153         * config/i386/i386.md (*movtf_internal): Handle misaligned
154         load/store.
155
156 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
157
158         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
159         DW_TAG_rvalue_reference_type even for
160         -gdwarf-4 -fno-debug-types-section.
161
162 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
163
164         PR tree-optimization/46728
165         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
166         (build_and_insert_binop): New.
167         (gimple_expand_builtin_pow): Reorder args for
168         build_and_insert_call; use build_and_insert_binop; add more
169         optimizations for fractional exponents.
170
171 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
172
173         PR bootstrap/49190
174
175         Revert:
176         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
177
178         * tree.h (struct tree_identifier): Inherit from tree_typed, not
179         tree_common.
180         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
181         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
182         TS_BASE instead of TS_COMMON.
183         * varasm.c (assemble_name): Remove assert.
184
185 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
186
187         * config.gcc: Keep obselete list sorted.
188
189 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
190             Eric Botcazou  <ebotcazou@adacore.com>
191
192         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
193         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
194         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
195         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
196         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
197
198 2011-05-30  Richard Guenther  <rguenther@suse.de>
199
200         * gimple.c (gimple_types_compatible_p_1): Compare record
201         and union type members properly.
202
203 2011-05-30  Richard Guenther  <rguenther@suse.de>
204
205         PR tree-optimization/49210
206         * ipa-split.c (split_function): Care for the case where the call
207         result is not trivially convertible to the result holding variable.
208
209 2011-05-30  Richard Guenther  <rguenther@suse.de>
210
211         PR tree-optimization/49218
212         * tree-vrp.c (adjust_range_with_scev): Properly check whether
213         overflow occured.
214
215 2011-05-30  Richard Guenther  <rguenther@suse.de>
216
217         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
218         New function split out from ...
219         (forward_propagate_into_gimple_cond): ... here.  Adjust.
220         (forward_propagate_into_cond): Likewise.
221         (forward_propagate_comparison): Also propagate into
222         comparisons on assignment RHS.  Change return value to
223         behave similar to forward_propagate_into_cond.
224         (tree_ssa_forward_propagate_single_use_vars): Handle
225         strict-overflow warnings properly for forward_propagate_comparison.
226
227 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
228
229         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
230         from plugin linker.
231         * configure: Regenerate.
232
233 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
234
235         PR tree-optimization/49199
236         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
237         non-reduction operands are either defined in the loop or by induction.
238
239 2011-05-29  Xinliang David Li  <davidxl@google.com>
240
241         * opts-global.c (handle_common_deferred_options): Handle new options.
242         * passes.c (register_one_dump_file): Call register_pass_name.
243         (execute_one_pass): Check explicit enable/disable flag.
244         (passr_hash): New function.
245         (passr_eq): Ditto.
246         (register_pass_name): Ditto.
247         (get_pass_by_name): Ditto.
248         (pass_hash): Ditto.
249         (pass_eq): Ditto.
250         (enable_pass): Ditto.
251         (disable_pass): Ditto.
252         (is_pass_explicitly_enabled_or_disabled): Ditto.
253
254 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
255
256         * config/i386/i386.md (*movoi_internal_avx): Use
257         standard_sse_constant_opcode for alternative 0.
258         (*movti_internal_sse): Ditto.
259         (*movti_internal_rex64): Use standard_sse_constant_opcode for
260         alternative 2.
261         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
262         sselog1 type moves.
263         (*movsi_internal): Ditto.
264         (*movdi_internal): Ditto.  Add ssecvt type moves.
265
266 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
267
268         PR target/48830
269         * rtlanal.c (simplify_subreg_regno): Adjust comment.
270
271 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
272
273         PR rtl-optimization/49095
274         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
275         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
276
277 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
278
279         PR target/43995
280         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
281         recurse_p argument.  Only follow register copies if it is set,
282         and prevent mips_find_pic_call_symbol from recursing.
283         (mips_find_pic_call_symbol): Add a recurse_p argument.
284         Pass it to mips_pic_call_symbol_from_set.
285         (mips_annotate_pic_calls): Update accordingly.
286
287 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
288
289         * emit-rtl.c (try_split): Use a loop to search for
290         NOTE_INSN_CALL_ARG_LOCATIONs.
291
292 2011-05-29  Richard Guenther  <rguenther@suse.de>
293
294         PR tree-optimization/49217
295         * ipa-pure-const.c (propagate_pure_const): Fix typos.
296
297 2011-05-28  Jan Hubicka  <jh@suse.cz>
298
299         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
300         length.
301         (string_slot_free): Remove
302         (create_output_block): Initialize obstack.
303         (destroy_output_block): Free obstack.
304         (lto_string_index): Add PERSISTENT parameter; do not duplicate
305         the string unless it needs to be added into the hash.
306         (lto_output_string_with_length): Add persistent attribute;
307         handle NULL strings.
308         (lto_output_string): Add PERSISTENT parameter.
309         (output_string_cst, output_identifier): Simplify.
310         (lto_output_location_bitpack): Update.
311         (lto_output_builtin_tree): Update.
312         * lto-streamer.h (struct output_block): Add obstack.
313         (lto_output_string, lto_output_string_with_length): Remove
314         declarations; functions are static now.
315
316 2011-05-28  Jan Hubicka  <jh@suse.cz>
317
318         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
319         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
320         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
321         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
322         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
323         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
324         unpack_ts_decl_with_vis_value_fields,
325         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
326         lto_get_builtin_tree): Use enum and variable length i/o.
327         * basic-block.h (profile_status_d): Add PROFILE_LAST.
328         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
329         New functions.
330         (bp_pack_enum, bp_unpack_enum): New macros.
331
332 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
333
334         * genrecog.c: Remove redundant forward declarations.
335
336 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
337
338         * config.gcc: Deprecate mips*-*-openbsd*.
339
340 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
341
342         PR bootstrap/49195
343         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
344         for match_op_dup.
345
346 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
347
348         PR middle-end/48981
349         * gengtype.c (vec_prefix_type): New function.
350         (note_def_vec): Use vec_prefix_type and change the length
351         attribute to be based on the prefix.
352         * vec.c: Include coretypes.h before vec.h.
353         (struct vec_prefix): Remove.
354         (vec_gc_p_reserve): Change the offsetof to sizeof.
355         (vec_gc_p_reserve_exact): Likewise.
356         (vec_heap_p_reserve): Likewise.
357         (vec_heap_p_reserve_exact): Likewise.
358         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
359         (vec_stack_p_reserve): Change the offsetof to sizeof.
360         (vec_stack_p_reserve_exact): Likewise.
361         * vec.h (struct vec_prefix): New struct definition.
362         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
363         (VEC_T_GTY(T,B)): Likewise.
364         (DEF_VEC_FUNC_P(T)): Use prefix field.
365         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
366         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
367
368 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
369
370         PR tree-optimization/46728
371         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
372         (powi_as_mults): Add gimple_set_location.
373         (build_and_insert_call): New.
374         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
375         0.5, 0.25, 0.75, 1./3., or 1./6.
376
377 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
378
379         * doc/contrib.texi: Update copyright years.
380         (Contributors): Add Zdenek Sojka.
381
382 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
383
384         * c-decl.c (c_push_function_context): Copy the current statement
385         list stack.
386         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
387         (finish_struct): Call building_stmt_list_p instead of checking
388         cur_stmt_list.
389         * c-parser.c (c_parser_postfix_expression): Likewise.
390         * c-typeck.c (c_end_compound_stmt): Likewise.
391         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
392         * tree-iterator.c (stmt_list_cache): Change to a VEC.
393         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
394         (free_stmt_list): Likewise.
395         * tree.h (struct tree_statement_list): Include typed_tree instead
396         of tree_common.
397         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
398         as TS_TYPED instead of TS_COMMON.
399
400 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
401             Uros Bizjak <ubizjak@gmail.com>
402
403         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
404         (HAVE_AS_IX86_TLSGDPTL): Define.
405         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
406         (HAVE_AS_IX86_TLSLDMPLT): Define.
407         * configure: Regenerate.
408         * config.in: Regenerate.
409         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
410         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
411         TARGET_SUN_TLS, use @tlsgdplt or @plt.
412         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
413         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
414         @tlsldmplt or @plt.
415         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
416
417 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
418
419         * sched-int.h (struct _haifa_deps_insn_data): New members cond
420         and reverse_cond.
421         (INSN_COND, INSN_REVERSE_COND): New macros.
422         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
423         once.
424         (sched_get_condition_with_rev): Cache the results, and look them up
425         if possible.
426         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
427         are clobbered by the current insn.
428         * target.def (exposed_pipline): New sched data hook.
429         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
430         * doc/tm.texi: Regenerate.
431
432 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
433
434         PR tree-optimization/49170
435         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
436         sincos or cexp.
437
438 2011-05-27  Richard Guenther  <rguenther@suse.de>
439
440         PR middle-end/49189
441         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
442         of comparisons.
443
444 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
445
446         * haifa-sched.c (sched_scan_info): Remove.
447         (schedule_block): Call sched_extend_luids rather than sched_init_luids
448         with NULL args.
449         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
450         Remove functions.
451         (sched_scan): Remove.
452         (sched_extend_luids): Renamed from luids_extend_insn and no longer
453         static.  All callers changed.
454         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
455         static.  All callers changed.
456         (sched_init_luids): Remove all arguments except the first.  All
457         callers changed.  Don't use sched_scan.
458         (haifa_init_h_i_d): Likewise.
459         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
460         manually rather than using sched_init_luids.  Likewise with
461         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
462         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
463         rather than sched_init_luids with NULL args.
464         * sel-sched-ir.c (new_insns): Remove variable.
465         (sched_scan): New static function, previously in haifa-sched.c.  Remove
466         all arguments but the first two; all callers changed.
467         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
468         rather than sched_init_luids.
469         (sel_init_bbs): Remove second argument.  All callers changed.
470         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
471         with NULL arguments.
472         (create_insn_rtx_from_pattern): Likewise.
473         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
474         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
475         (sched_init_insn_luid, sched_extend_luids): Declare.
476         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
477         declarations.
478
479 2011-05-27  Richard Guenther  <rguenther@suse.de>
480
481         PR middle-end/49177
482         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
483         A CMP B ? (T) true : (T) false for non-integral types T again.
484
485 2011-05-27  Jan Hubicka  <jh@suse.cz>
486
487         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
488         so 0 means NULL string.
489         (lto_output_string_with_length): ... here.
490         (lto_output_string, output_string_cst, output_identifier): Update
491         handling of NULL strings.
492         (lto_output_location_bitpack): New function.
493         (lto_output_location): Use it.
494         (lto_output_tree_ref): Use output_record_start.
495         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
496         len values.
497         * lto-streamer-in.c (string_for_index): Break out from ...; offset
498         values by 1.
499         (input_string_internal): ... here;
500         (input_string_cst, input_identifier, lto_input_string): Update handling
501         of NULL strings.
502         (lto_input_location_bitpack): New function
503         (lto_input_location): Use it.
504         (unpack_ts_type_common_value_fields): Pack align & alias in var len
505         values.
506         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
507         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
508         (bp_pack_value): Sanity check the value range.
509         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
510         New functions.
511         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
512         New functions.
513
514 2011-05-27  Hariharan Sandanagobalane <hariharan@picochip.com>
515
516         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
517         call_arg_location instructions down the floor.
518
519 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
520
521         PR rtl-optimization/49154
522         * ira.c (setup_pressure_classes): Process class without sublcasses
523         as a candidate for pressure classes.
524
525 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
526
527         PR rtl-optimization/48575
528         * genrecog.c (position_type): New enum.
529         (position): New structure.
530         (decision): Use position structure instead of a string.
531         (root_pos, peep2_insn_pos_list): New variables.
532         (next_position, compare_positions): New functions.
533         (new_decision): Use position structures instead of strings.
534         (maybe_both_true): Likewise.
535         (change_state): Likewise.
536         (write_tree): Likewise.
537         (make_insn_sequence): Likewise.
538
539 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
540
541         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
542         TS_BASE instead of TS_COMMON.
543         (find_decls_types_r): Check for TS_TYPED structure before looking at
544         TREE_TYPE.
545         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
546         Add chain field.
547         (BLOCK_CHAIN): Use new chain field.
548
549 2011-05-26  Pat Haugen <pthaugen@us.ibm.com>
550
551         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
552         moves expensive on Power7 also.
553
554 2011-05-26  Richard Guenther  <rguenther@suse.de>
555
556         * fold-const.c (fold_unary_loc): Remove bogus code.
557
558 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
559
560         * tree.h (struct tree_identifier): Inherit from tree_typed, not
561         tree_common.
562         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
563         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
564         TS_BASE instead of TS_COMMON.
565         * varasm.c (assemble_name): Remove assert.
566
567 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
568
569         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
570         substituted first.
571         * libgcc-std.ver: Delete file.
572
573 2011-05-26  Richard Guenther  <rguenther@suse.de>
574
575         PR tree-optimization/48702
576         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
577         only when we know the base address is within bounds.
578         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
579         assume the base address of TARGET_MEM_REFs is in bounds.
580
581 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
582
583         PR target/49099
584         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
585         declaration in TARGET_SOLARIS.
586
587 2011-05-26  Hariharan Sandanagobalane <hariharan@picochip.com>
588
589         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
590         The instruction is then expanded explicitly.
591         (supported_compare): Callable instruction.
592         (compare): Likewise.
593
594 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
595
596         PR c++/49165
597         * gimplify.c (shortcut_cond_r): Don't special case
598         COND_EXPRs if they have void type on one of their arms.
599
600 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
601
602         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
603         to reduce duplication, and to achieve a slightly more logical order
604         of operations.
605
606 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
607
608         PR tree-optimization/49161
609         * tree-vrp.c (struct case_info): New type.
610         (compare_case_labels): Sort case_info structs instead of
611         trees, and not primarily by CASE_LABEL uids but by
612         label_for_block indexes.
613         (find_switch_asserts): Put case labels into struct case_info
614         array instead of TREE_VEC, adjust sorting, compare label_for_block
615         values instead of CASE_LABELs.
616
617 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
618
619         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
620         ("orndi3_neon"): Likewise.
621         ("bic<mode>3_neon"): Likewise.
622
623 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
624
625         PR tree-optimization/49038
626         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
627         Ensure at least one epilogue iteration if required by data
628         accesses with gaps.
629         * tree-vectorizer.h (struct _loop_vec_info): Add new field
630         to mark loops that require peeling for gaps.
631         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
632         (vect_get_known_peeling_cost): Take peeling for gaps into
633         account.
634         (vect_transform_loop): Generate epilogue if required by data
635         access with gaps.
636         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
637         loop as requiring an epilogue if there are gaps in the end of
638         the strided group.
639
640 2011-05-25  Ian Lance Taylor  <iant@google.com>
641
642         * godump.c (go_format_type): Output the first field with a usable
643         Go type, if any.
644
645 2011-05-25  Ian Lance Taylor  <iant@google.com>
646
647         * godump.c (go_format_type): Check for invalid type names, pointer
648         target types, and struct field types.
649
650 2011-05-25  Jason Merrill  <jason@redhat.com>
651
652         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
653
654 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
655
656         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
657
658 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
659
660         * config/i386/i386.md (*movqi_extv_1)): Put back
661         "register_operand" check in "type" calculation.
662         (*movqi_extzv_2): Likewise.
663
664 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
665
666         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
667
668 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
669
670         PR bootstrap/49160
671         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
672         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
673         __divxc3, __divtc3): Wrap definitions in #ifndef.
674
675 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
676
677         PR target/49142
678         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
679         "register_operand" check and replace q_regs_operand with
680         QIreg_operand in "type" calculation.
681         (*movqi_extv_1): Likewise.
682         (*movqi_extzv_2_rex64): Likewise.
683         (*movqi_extzv_2): Likewise.
684
685         * config/i386/predicates.md (QIreg_operand): New.
686
687 2011-05-25  Richard Guenther  <rguenther@suse.de>
688
689         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
690         type-based offset disambiguation, streamline MEM_REF and
691         TARGET_MEM_REF handling.
692
693 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
694
695         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
696         (bdesc_special_args): Add pause intrinsic.
697
698         * config/i386/i386.md (UNSPEC_PAUSE): New.
699         (pause): Likewise.
700         (*pause): Likewise.
701         * config/i386/ia32intrin.h (__pause): Likewise.
702
703         * doc/extend.texi (X86 Built-in Functions): Add documentation for
704         pause intrinsic.
705
706 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
707
708         PR tree-optimization/46728
709         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
710         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
711
712 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
713
714         * tree.h (struct tree_exp): Inherit from struct tree_typed.
715         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
716         instead of TS_COMMON.
717
718 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
719
720         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
721         LIBGCC2_GNU_PREFIX is defined.
722         (__N): New macro.
723         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
724         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
725         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
726         __clz_tab): Define using __N.
727         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
728         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
729         * target.def (libfunc_gnu_prefix): New hook.
730         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
731         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
732         * doc/tm.texi: Regenerate.
733         * system.h (LIBGCC2_GNU_PREFIX): Poison.
734         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
735         account.
736         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
737         (init_optabs): Likewise for the bswap libfuncs.
738         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
739         and divide.
740         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
741         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
742         * libgcc-std.ver: Remove.
743         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
744         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
745         libgcc-std.ver.
746         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
747         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
748         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
749         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
750         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
751         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
752         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
753         * config/fixed-bit.h (FIXED_OP): Define differently depending on
754         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
755         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
756
757 2011-05-25  Jan Hubicka  <jh@suse.cz>
758
759         * lto-streamer-out.c (output_record_start): Use lto_output_enum
760         (lto_output_tree): Use output_record_start.
761         * lto-streamer-in.c (input_record_start): Use lto_input_enum
762         (lto_get_pickled_tree): Use input_record_start.
763         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
764         (lto_value_range_error): New function.
765         * lto-streamer.h (lto_value_range_error): Declare.
766         (lto_output_int_in_range, lto_input_int_in_range): New functions.
767         (lto_output_enum, lto_input_enum): New macros.
768
769 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
770
771         * common.opt (flag_stack_usage_info): New variable.
772         (-Wstack-usage): New option.
773         * doc/invoke.texi (Warning options): Document -Wstack-usage.
774         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
775         <OPT_fstack_usage>: Likewise.
776         * toplev.c (output_stack_usage): Handle -Wstack-usage.
777         * calls.c (expand_call): Test flag_stack_usage_info variable instead
778         of flag_stack_usage.
779         (emit_library_call_value_1): Likewise.
780         * explow.c (allocate_dynamic_stack_space): Likewise.
781         * function.c (instantiate_virtual_regs ): Likewise.
782         (prepare_function_start): Likewise.
783         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
784         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
785         * config/arm/arm.c (arm_expand_prologue): Likewise.
786         (thumb1_expand_prologue): Likewise.
787         * config/avr/avr.c (expand_prologue): Likewise.
788         * config/i386/i386.c (ix86_expand_prologue): Likewise.
789         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
790         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
791         * config/mips/mips.c (mips_expand_prologue): Likewise.
792         * config/pa/pa.c (hppa_expand_prologue): Likewise.
793         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
794         * config/s390/s390.c (s390_emit_prologue): Likewise.
795         * config/sh/sh.c (sh_expand_prologue): Likewise.
796         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
797         * config/spu/spu.c (spu_expand_prologue): Likewise.
798
799 2011-05-25  Richard Guenther  <rguenther@suse.de>
800
801         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
802         (gimple_canonical_types_compatible_p): Likewise.
803
804 2011-05-25  Jan Hubicka  <jh@suse.cz>
805
806         PR middle-end/49062
807         * ipa.c (function_and_variable_visibility): Only add to same
808         comdat group list if DECL_ONE_ONLY.
809
810 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
811
812         PR rtl-optimization/49014
813         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
814
815 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
816
817         PR target/49128
818         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
819
820 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
821
822         PR rtl-optimization/48757
823         * ira-build.c (loop_with_eh_edge_p): Rename to
824         loop_with_complex_edge_p, check edges on complexity, make function
825         conditional.
826         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
827         conditional.
828
829 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
830
831         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
832         force flag_ira_share_save_slots to 0.
833
834 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
835
836         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
837         (vt_initialize): Set PROLOGUE_BB unconditionally.
838         Add block comment about CFA_BASE_RTX machinery.
839         Reset FP_CFA_OFFSET to -1 on all invalid paths.
840         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
841
842 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
843
844         PR objc/48187
845         * c-parser.c (c_parser_objc_class_instance_variables): More robust
846         parsing of syntax error in ObjC instance variable lists.  In
847         particular, avoid an infinite loop if there is a stray ']'.
848         Updated error message.
849
850 2011-05-24  Ian Lance Taylor  <iant@google.com>
851
852         * godump.c (go_define): Don't accept a string immediately after
853         another operand.
854
855 2011-05-24  Ian Lance Taylor  <iant@google.com>
856
857         * godump.c (struct godump_container): Add invalid_hash field.
858         (go_format_type): Return false if type is found in invalid_hash.
859         (go_output_typedef): Add invalid type to invalid_hash.
860         (go_finish): Create and delete invalid_hash.
861
862 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
863
864         PR tree-optimization/46728
865         * tree-ssa-math-opts.c (powi_table): New.
866         (powi_lookup_cost): New.
867         (powi_cost): New.
868         (powi_as_mults_1): New.
869         (powi_as_mults): New.
870         (gimple_expand_builtin_powi): New.
871         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
872         (gate_cse_sincos): Remove sincos/cexp restriction.
873
874 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
875
876         PR target/3746
877         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
878         mips-tdump native.
879         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
880         * mips-tdump.c: Likewise.
881
882 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
883
884         PR target/49128
885         * config/i386/driver-i386.c (host_detect_local_cpu): Always
886         add -mno-XXX.  Handle FMA.
887
888 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
889
890         PR rtl-optimization/48633
891         * ira-build.c (loop_with_eh_edge_p): New function.
892         (mark_loops_for_removal): Use it.
893
894 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
895
896         PR rtl-optimization/48971
897         * ira.c (setup_pressure_classes): Don't check register move cost
898         for classes with one registers.  Don't add pressure class if there
899         is a pressure class with the same available hard registers.
900         Check contains_reg_of_mode.  Fix a typo in collecting
901         temp_hard_regset.  Ignore hard registers not belonging to a class.
902
903 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
904
905         PR target/49133
906         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
907
908 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
909             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
910
911         PR gcov-profile/48845
912         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
913
914 2011-05-24  Richard Guenther  <rguenther@suse.de>
915
916         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
917         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
918         (gimple_types_compatible_p_1): Adjust.
919         (iterative_hash_canonical_type): Do not bother about complete vs.
920         incomplete types.
921         (gimple_canonical_types_compatible_p): Likewise.
922
923 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
924
925         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
926
927 2011-05-24  Richard Guenther  <rguenther@suse.de>
928
929         PR bootstrap/49078
930         * gimple.c (gimple_register_canonical_type): Revert
931         previous change.
932         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
933         does not for a tree for the case where it matters.  Cache
934         pointer-type alias-sets.
935
936 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
937
938         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
939         (OBJS): Remove options.o, opts-common.o and prefix.o.
940         (OBJS-libcommon-target): New.
941         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
942         (BACKEND): Include libcommon-target.a.
943         (MOSTLYCLEANFILES): Include libcommon-target.a.
944         (libcommon-target.a): New.
945         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
946         prefix.o.
947
948 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
949
950         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
951         parts of output shared with the driver.
952         * optc-gen.awk: Don't generate parts of output not shared with the
953         driver.
954         * opth-gen.awk: Remove GCC_DRIVER conditionals.
955         * doc/options.texi (SourcerInclude): Mention options-save.c.
956         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
957         (OBJS): Add options-save.o.
958         (options-save.c, options-save.o): New.
959         (options.o): Update dependencies.
960         (gcc-options.o): Remove.
961         (mostlyclean): Remove options-save.c.
962
963 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
964
965         PR debug/49032
966         * dbxout.c: Include cgraph.h.
967         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
968         and without value expr, return NULL if no varpool node exists for
969         it or if it is not needed.
970         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
971
972         PR c/49120
973         * c-decl.c (start_decl): Convert expr to void_type_node.
974
975 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
976
977         PR rtl-optimization/48826
978         * emit-rtl.c (try_split): When splitting a call that is followed
979         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
980
981 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
982
983         * cfgexpand.c (expand_debug_expr): For unused non-addressable
984         parameters passed in memory prefer using DECL_INCOMING_RTL over
985         the pseudos it will be copied into.
986
987 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
988
989         PR target/47315
990         * config/i386/i386.c (ix86_option_override_internal): Save the
991         initial options after checking vzeroupper.
992
993 2011-05-23  David Li  <davidxl@google.com>
994
995         PR tree-optimization/48988
996         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
997         Initialize has_valid_pred for each pred chain.
998
999 2011-05-23  Richard Guenther  <rguenther@suse.de>
1000
1001         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
1002         (iterative_hash_gimple_type): Always hash type names.
1003
1004 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
1005
1006         * c-typeck.c (build_function_call_vec): Tweak call to
1007         check_function_arguments.
1008
1009 2011-05-23  Richard Guenther  <rguenther@suse.de>
1010
1011         PR tree-optimization/49115
1012         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
1013         is not necessarily carried out, do not claim it kills the ref.
1014         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1015
1016 2011-05-23  Richard Guenther  <rguenther@suse.de>
1017
1018         PR middle-end/15419
1019         * builtins.c (fold_builtin_memory_op): Be less restrictive about
1020         what pointer types we accept for folding.
1021
1022 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1023
1024         * gthr-gnat.c: Remove.
1025         * gthr-gnat.h: Remove.
1026         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1027         * config/t-freebsd (LIB2ADDEH): Likewise.
1028         * config/t-linux (LIB2ADDEH): Likewise.
1029         * config/t-sol2 (LIB2ADDEH): Likewise.
1030         * config/ia64/t-vms (LIB2ADDEH): Likewise.
1031         * configure.ac (target_thread_file): Remove gnat handling.
1032         * configure: Regenerate.
1033         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1034
1035 2011-05-23  Tristan Gingold  <gingold@adacore.com>
1036             Eric Botcazou  <ebotcazou@adacore.com>
1037
1038         * gcov.c (create_file_names): If no object directory is specified,
1039         keep the directory of the file.
1040
1041 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1042
1043         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1044         * configure: Regenerate.
1045
1046 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
1047
1048         PR middle-end/48973
1049         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1050         failed and the comparison has a single bit signed type, use
1051         constm1_rtx instead of const1_rtx for true value.
1052         (do_store_flag): If ops->type is single bit signed type, disable
1053         signel bit test optimization and pass -1 instead of 1 as last
1054         parameter to emit_store_flag_force.
1055
1056 2011-05-23  Tom de Vries  <tom@codesourcery.com>
1057
1058         PR target/45098
1059         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1060         function.
1061         (infer_loop_bounds_from_undefined): Use new function.
1062
1063 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1064
1065         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1066         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
1067         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1068         and -O0 otherwise.
1069         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1070
1071 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1072
1073         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1074         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1075         returns true.
1076
1077 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
1078
1079         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1080
1081 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1082
1083         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1084         UNSPEC_MOVE_PIC pattern.
1085
1086 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1087
1088         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1089         (sparc-*-rtems*): Likewise.
1090         (sparc64-*-elf*): Likewise.
1091         (sparc64-*-rtems*): Likewise.
1092         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
1093         * config/sparc/t-crtin: New file.
1094         * config/sparc/t-sol2 (crti.o): Delete rule.
1095         (crtn.o): Likewise.
1096         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1097         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1098         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1099         (ENDFILE_SPEC): Add crtn.o.
1100
1101 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1102
1103         PR middle-end/48689
1104         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1105         CODE_CONTAINS_STRUCT (TS_COMMON).
1106
1107 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
1108
1109         PR middle-end/49029
1110         * expmed.c (extract_fixed_bit_field): Test whether target can be used
1111         only after deciding which mode to use.
1112
1113 2011-05-22  Tom de Vries  <tom@codesourcery.com>
1114
1115         PR target/45098
1116         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1117         for call to get_shiftadd_cost.
1118
1119 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
1120
1121         PR target/49104
1122         * config/i386/cpuid.h (bit_MMXEXT): New define.
1123
1124 2011-05-22  Nick Clifton  <nickc@redhat.com>
1125
1126         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1127         initialisation of non-existant args[2] element.  Use args[] array
1128         not arg[] array to pass arguments to build_function_type_list.
1129
1130 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
1131
1132         PR tree-optimization/49087
1133         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1134
1135 2011-05-21  Jason Merrill  <jason@redhat.com>
1136
1137         PR c++/49092
1138         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1139         static storage duration.
1140
1141 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1142
1143         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1144         frame pointer.
1145
1146 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1147
1148         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1149         false if there are call-saved registers here...
1150         (sparc_can_use_return_insn_p): ...but here instead.
1151         (save_or_restore_regs): Fix thinko.
1152         (sparc_expand_prologue): Use current_function_is_leaf.
1153         (sparc_frame_pointer_required): Likewise.
1154
1155 2011-05-21  Nick Clifton  <nickc@redhat.com>
1156
1157         PR target/49098
1158         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1159
1160 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1161
1162         * gengtype.c (walk_type): Implemented "atomic" GTY option.
1163         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1164
1165 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
1166
1167         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
1168         * optc-gen.awk: Move common code to opt-read.awk.
1169         * opth-gen.awk: Likewise.
1170         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1171
1172 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
1173
1174         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1175
1176 2011-05-20  Tom de Vries  <tom@codesourcery.com>
1177
1178         PR target/45098
1179         * tree-ssa-loop-ivopts.c: Include expmed.h.
1180         (get_shiftadd_cost): New function.
1181         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
1182
1183 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1184
1185         PR bootstrap/49086
1186         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1187         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1188
1189 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1190
1191         * Makefile.in: Update comment referring to $(OBJS-common).
1192
1193 2011-05-20  Ian Lance Taylor  <iant@google.com>
1194
1195         * godump.c (go_output_typedef): Put enum constants in the macro
1196         hash table to avoid duplicate Go const definitions.
1197
1198 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1199
1200         * Makefile.in (LIBDEPS): Add libcommon.a.
1201         (LIBS): Likewise.
1202         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1203         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1204         pretty-print.o and version.o.
1205         (OBJS-libcommon): New.
1206         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1207         (BACKEND): Add libcommon.a.
1208         (MOSTLYCLEANFILES): Likewise.
1209         (libcommon.a): New.
1210         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1211         (cpp$(exeext)): Likewise.
1212         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1213         pretty-print.o and input.o.
1214         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1215         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1216         (errors.o): Remove.
1217         (mips-tfile): Don't explicitly use version.o.
1218         (mips-tdump): Likewise.
1219         (gcov.o): Depend on $(DIAGNOSTIC_H).
1220         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1221         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1222         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1223         * gcov-dump.c: Include intl.h and diagnostic.h.
1224         (main): Initialize diagnostics.
1225         * gcov.c: Include diagnostic.h.
1226         (fnotice): Remove.
1227         (main): Initialize diagnostics.
1228         * lto-wrapper.c: Include diagnostic.h.
1229         (main): Initialize diagnostics.
1230
1231 2011-05-20  Michael Matz  <matz@suse.de>
1232
1233         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1234
1235 2011-05-20  Michael Matz  <matz@suse.de>
1236             Richard Guenther  <rguenther@suse.de>
1237
1238         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1239         use lto_streamer_cache_append directly instead of returning a VEC.
1240         (preload_common_node): Remove.
1241         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1242         track seen nodes.
1243         (lto_streamer_cache_create): Call lto_preload_common_nodes.
1244
1245 2011-05-20  Richard Guenther  <rguenther@suse.de>
1246
1247         PR tree-optimization/49079
1248         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1249         MEM_REFs correctly for the trailing array access detection.
1250         Special case constants the same way as decls for overall size
1251         constraining.
1252
1253 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
1254
1255         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1256         argument expansion.
1257
1258 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
1259
1260         PR tree-optimization/49073
1261         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1262         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1263         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1264
1265 2011-05-20  Richard Guenther  <rguenther@suse.de>
1266
1267         PR middle-end/48849
1268         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1269         of pointer types the same way the middle-end does.
1270
1271 2011-05-20  Richard Guenther  <rguenther@suse.de>
1272
1273         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1274         or pointer-to chains.  Delay all fixup to uniquify_nodes.
1275
1276 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
1277
1278         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1279         (fma4_fmaddsub): Likewise
1280
1281 2011-05-19  Jan Hubicka  <jh@suse.cz>
1282
1283         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1284         (GIMPLE_TYPE_PAIR_SIZE): New macro.
1285         (type_pair_cache): New static var.
1286         (lookup_type_pair): Use fixed sized custom hash; make inline.
1287         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1288         calls of lookup_type_pair.
1289         (print_gimple_types_stats): Remove cache stats.
1290         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1291         and gtc_ob.
1292
1293 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
1294
1295         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1296         when TARGET_RDRND is active.
1297         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1298         Generate dummy SImode target register when target is NULL.
1299
1300 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1301
1302         * config/arm/arm-fpus.def: New.
1303         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1304         arm-fpus.def.
1305         * config/arm/arm-tables.opt: Regenerate.
1306         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1307         (arm_option_override): Don't decode FPU name to string here.
1308         * config/arm/arm.opt (mfpu=): Use Enum.
1309         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1310         Update dependencies.
1311
1312 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
1313
1314         * collect2.c: Include diagnostic.h.
1315         (fatal_perror, fatal, error, fancy_abort): Remove.
1316         (main): Set progname.  Call xmalloc_set_program_name and
1317         diagnostic_initialize.
1318         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1319         scan_libraries, resolve_lib_name): Call fatal_error instead of
1320         fatal and fatal_perror.
1321         * collect2.h (error, fatal, fatal_perror): Don't declare.
1322         * tlink.c: Include diagnostic-core.h.
1323         (recompile_files): Call fatal_error instead of fatal_perror.
1324         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1325         pretty-print.o and input.o.
1326         (collect2.o, tlink.o): Update dependencies.
1327
1328 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1329
1330         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1331
1332 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1333
1334         PR target/40483
1335         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1336         COMDAT group syntax, both SPARC and x86 variants.
1337         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1338         * configure: Regenerate.
1339         * config/sol2.h (TARGET_SOLARIS): Define.
1340         (PUSHSECTION_FORMAT): Remove.
1341         (SECTION_NAME_FORMAT): Define.
1342         * config/sol2.c: Include hashtab.h.
1343         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1344         expansion, using SECTION_NAME_FORMAT.
1345         (solaris_comdat_htab): New variable.
1346         (struct comdat_entry): Define.
1347         (comdat_hash): New function.
1348         (comdat_eq): New function.
1349         (solaris_elf_asm_comdat_section): New function.
1350         (solaris_define_comdat_signature): New function.
1351         (solaris_code_end): New function.
1352         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1353         (solaris_code_end): Declare.
1354         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1355         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1356         solaris_code_end.
1357         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1358         Remove ATTRIBUTE_UNUSED.
1359         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1360         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
1361         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
1362         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1363         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1364         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1365         (PUSHSECTION_FORMAT): Remove.
1366         (SECTION_NAME_FORMAT): Redefine.
1367
1368 2011-05-19  Kai Tietz  <ktietz@redhat.com>
1369
1370         * tree-cfg.c (verify_gimple_assign_binary): Barf on
1371         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1372         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1373
1374 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
1375             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1376
1377         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1378
1379 2011-05-19  Richard Guenther  <rguenther@suse.de>
1380
1381         PR middle-end/48985
1382         * tree-object-size.c (addr_object_size): If the pointed-to
1383         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1384
1385 2011-05-19  Richard Guenther  <rguenther@suse.de>
1386
1387         * gimple.c (gimple_types_compatible_p_1): Compare names of
1388         the types themselves.
1389         (iterative_hash_gimple_type): And hash them that way.
1390         (gimple_register_type_1): If we register a main variant properly
1391         initialize the leader to ourselves.
1392
1393 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1394
1395         PR target/45098
1396         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1397         get_loop_invariant_expr_id.
1398         (get_loop_invariant_expr_id): Use get_expr_id.
1399         (parm_decl_cost): New function.
1400         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1401         Improve bound cost estimation.  Use different inv_expr_id for elim and
1402         express cases.
1403
1404 2011-05-19  Tom de Vries  <tom@codesourcery.com>
1405
1406         PR target/45098
1407         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1408         cost_base.cost == 0.
1409
1410 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
1411
1412         PR target/49002
1413         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
1414         Properly handle load cast.
1415
1416 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1417
1418         PR tree-optimization/49039
1419         * tree-vrp.c (extract_range_from_binary_expr): For
1420         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1421         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1422
1423 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1424
1425         PR target/45098
1426         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1427
1428 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
1429
1430         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1431         (*tls_global_dynamic_64): Ditto.
1432         (*tls_local_dynamic_base_32_gnu): Ditto.
1433         (*tls_local_dynamic_base_64): Ditto.
1434         (tls_initial_exec_64_sun): Ditto.
1435
1436 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
1437
1438         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1439         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1440         bf592-none.
1441         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1442         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1443         * config/bfin/bfin.c (bfin_cpus): Add bf592.
1444         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1445         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1446         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1447         * config/bfin/elf.h (LIB_SPEC): Add bf592.
1448
1449 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
1450
1451         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1452         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1453         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1454         target_thread_pointer, arm_structure_size_boundary, struct
1455         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1456         struct abi_name, arm_all_abis): Remove.
1457         (arm_option_override) Don't process most enumerated option values here.
1458         Don't process target_fpe_name here.  Work with integer not string for
1459         structure size boundary; use separate diagnostics for each case.
1460         * config/arm/arm.h (enum float_abi_type, enum
1461         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1462         to arm-opts.h.
1463         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1464         arm_structure_size_boundary): Remove.
1465         * config/arm/arm.opt (mabi=): Use Enum and Init.
1466         (arm_abi_type): New Enum and EnumValue entries.
1467         (mfloat-abi=): Use Enum and Init.
1468         (float_abi_type): New Enum and EnumValue entries.
1469         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1470         (mfp16-format=): Use Enum and Init.
1471         (arm_fp16_format_type): New Enum and EnumValue entries.
1472         (mstructure-size-boundary=): Use UInteger and Init.
1473         (mtp=): Use Enum and Init.
1474         (arm_tp_type): New Enum and EnumValue entries.
1475
1476 2011-05-18  Richard Guenther  <rguenther@suse.de>
1477
1478         PR tree-optimization/49018
1479         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1480         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1481         gimple_has_side_effects.
1482
1483 2011-05-18  Richard Guenther  <rguenther@suse.de>
1484
1485         * gimple.c (gimple_register_type_1): New function, split out from ...
1486         (gimple_register_type): ... here.  Avoid infinite recursion.
1487
1488 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1489
1490         PR tree-optimization/41881
1491         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1492         reduction_chains along with a macro for its access.
1493         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1494         (destroy_loop_vec_info): Free reduction chains.
1495         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1496         (vect_is_slp_reduction): New function.
1497         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1498         (vect_create_epilog_for_reduction): Support SLP reduction chains.
1499         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1500         definition types for reduction chains.
1501         (vect_supported_load_permutation_p): Don't allow permutations for
1502         reduction chains.
1503         (vect_analyze_slp_instance): Support reduction chains.
1504         (vect_analyze_slp): Try to build SLP instance from reduction chains.
1505         (vect_get_constant_vectors):  Handle reduction chains.
1506         (vect_schedule_slp_instance): Mark the first statement of the
1507         reduction chain as reduction.
1508
1509 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1510
1511         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1512         names for group elements access.
1513         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1514         reduction chains as well.  Remove data reference and interleaving
1515         related words from the fields names.
1516         * tree-vect-loop.c (vect_transform_loop): Use new names for group
1517         elements access.
1518         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1519         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1520         vect_update_interleaving_chain, vect_same_range_drs,
1521         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1522         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1523         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1524         vect_analyze_group_access, vect_analyze_data_ref_access,
1525         vect_create_data_ref_ptr, vect_transform_strided_load,
1526         vect_record_strided_load_vectors): Likewise.
1527         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1528         vect_model_load_cost, vectorizable_store, vectorizable_load,
1529         vect_remove_stores, new_stmt_vec_info): Likewise.
1530         * tree-vect-slp.c (vect_build_slp_tree,
1531         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1532
1533 2011-05-18  Richard Guenther  <rguenther@suse.de>
1534
1535         PR middle-end/48989
1536         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1537         operand verification.
1538         (verify_gimple_assign_binary): Likewise.
1539         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1540         to non-1-precision BOOLEAN_TYPEs.
1541
1542 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1543
1544         PR target/45098
1545         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1546
1547 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1548
1549         PR tree-optimization/49000
1550         * tree-ssa.c (execute_update_addresses_taken): Call
1551         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
1552         be rewritten and decl has been marked for renaming, reset
1553         the debug stmt.
1554
1555 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
1556
1557         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1558         enum_opts_set when testing if attributes have set -mfpmath=.
1559
1560 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
1561
1562         * config/mips/mips.c (mips_handle_option): Remove unused variable.
1563
1564 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1565
1566         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1567         info->entry with 0
1568         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
1569         id.transform_lang_insert_block with NULL.
1570
1571 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1572
1573         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1574         (output_fp_compare): Change args 3 and 4 to bool.
1575         (ix86_expand_call): Change arg 6 to bool.
1576         (ix86_attr_length_immediate_default): Change arg 2 to bool.
1577         (ix86_attr_length_vex_default): Change arg 3 to bool.
1578         * config/i386/i386.md: Update all uses.
1579         * config/i386/i386.c: Ditto.
1580         (ix86_flags_dependent): Change return type to bool.
1581
1582 2011-05-17  Richard Guenther  <rguenther@suse.de>
1583
1584         * gimple.c (type_hash_pair_compare): Fix comparison.
1585
1586 2011-05-17  Richard Guenther  <rguenther@suse.de>
1587
1588         * gimple.c (iterative_hash_gimple_type): Simplify singleton
1589         case some more, fix final hash value of the non-singleton case.
1590
1591 2011-05-17  Richard Guenther  <rguenther@suse.de>
1592
1593         PR bootstrap/49013
1594         Revert
1595         2011-05-16  Richard Guenther  <rguenther@suse.de>
1596
1597         * gimple.c (gimple_types_compatible_p_1): Use names of the
1598         type itself, not its main variant.
1599         (iterative_hash_gimple_type): Likewise.
1600
1601 2011-05-17  Richard Guenther  <rguenther@suse.de>
1602
1603         * gimple.c (gimple_register_canonical_type): Use the main-variant
1604         leader for computing the canonical type.
1605
1606 2011-05-17  Nick Clifton  <nickc@redhat.com>
1607
1608         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1609         moves.
1610
1611         * config/rx/rx.md: Add peephole to remove redundant extensions
1612         after loads.
1613         (bitset_in_memory): Use rx_restricted_mem_operand.
1614         (bitinvert_in_memory): Likewise.
1615         (bitclr_in_memory): Likewise.
1616
1617 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
1618             Nick Clifton  <nickc@redhat.com>
1619
1620         * config/rx/rx.md: Add peepholes to match a register move followed
1621         by a comparison of the moved register.  Replace these with an
1622         addition of zero that does both actions in one instruction.
1623
1624 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
1625
1626         PR target/48986
1627         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1628         predicate to allow CONST_INT.
1629         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1630
1631 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1632
1633         * opts-common.c (opt_enum_arg_to_value): New.
1634         * opts.h (opt_enum_arg_to_value): Declare.
1635         * config/i386/i386.opt (fpmath): Remove.
1636         (mfpmath=): Use Enum, Init and Save.
1637         (fpmath_unit): New Enum and EnumValue entries.
1638         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1639         name for function fpmath state.
1640         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1641         * config/i386/i386.c: Include diagnostic.h.
1642         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
1643         (ix86_target_string): Take enum fpmath_unit value instead of string.
1644         (ix86_debug_options): Update call to ix86_target_string.
1645         (ix86_option_override_internal): Don't process fpmath strings here.
1646         (x86_function_specific_save, ix86_function_specific_restore):
1647         Don't handle fpmath state specially.
1648         (ix86_function_specific_print): Pass fpmath state to
1649         ix86_target_string instead of printing in this function.
1650         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1651         Handle enum attributes.
1652         (IX86_ATTR_ENUM, ix86_opt_enum): New.
1653         (ix86_valid_target_attribute_tree): Update option_strings
1654         handling.  Handle fpmath as enum option.
1655         (ix86_can_inline_p): Update field names for function fpmath state.
1656         (ix86_expand_builtin): Update call to ix86_target_string.
1657         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1658         (ix86_fpmath): Remove.
1659         * config/i386/t-i386 (i386.o): Update dependencies.
1660
1661 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1662
1663         PR preprocessor/48677
1664         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1665         from decoded_options[0], not from itself.
1666
1667 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
1668
1669         * config/i386/constraints.md (z): New constraint.
1670         * config/i386/i386.c (c): New mode attribute.
1671         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1672         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1673         constraint for operand 0.
1674         (*call_vzeroupper): Ditto.
1675         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
1676         (*call_rex64_ms_sysv_vzeroupper): Ditto.
1677         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1678         Use "lzm" constraint for operand 0.
1679         (*call_pop_vzeroupper): Ditto.
1680         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1681         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
1682         constraint for operand 0.
1683         (*sibcall_vzeroupper): Ditto.
1684         (*sibcall_rex64_ms_sysv): Ditto.
1685         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1686         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1687         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
1688         (*sibcall_pop_vzeroupper): Ditto.
1689         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1690         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1691         mode iterator.  Use "<c>zm" constraint for operand 1.
1692         (*call_value_vzeroupper): Ditto.
1693         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
1694         for operand 1.
1695         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1696         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1697         *call_value_pop_1.  Use "lzm" constraint for operand 1.
1698         (*call_value_pop_vzeroupper): Ditto.
1699         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1700         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1701         mode iterator.  Use "Uz" constraint for operand 1.
1702         (*sibcall_value_vzeroupper): Ditto.
1703         (*sibcall_value_rex64_ms_sysv): Ditto.
1704         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1705         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
1706         constraint for operand 1.
1707         (*sibcall_value_pop_vzeroupper): Ditto.
1708         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1709         and "z" constraint for operand 2.
1710         (*tls_global_dynamic_32_gnu): Ditto.
1711         (*tls_local_dynamic_base_32_gnu): Ditto.
1712         (*tls_local_dynamic_base_64): Ditto.
1713         (*tls_local_dynamic_32_once): Ditto.
1714         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1715         Update all callers.
1716         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1717
1718 2011-05-16  Richard Guenther  <rguenther@suse.de>
1719
1720         * gimple.c (gimple_types_compatible_p_1): Use names of the
1721         type itself, not its main variant.
1722         (iterative_hash_gimple_type): Likewise.
1723
1724 2011-05-16  Richard Guenther  <rguenther@suse.de>
1725
1726         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1727         always visit pointer target and function result and argument types.
1728
1729 2011-05-16  Jason Merrill  <jason@redhat.com>
1730
1731         PR c++/48999
1732         * tree-inline.c (copy_statement_list): Put back recursion.
1733
1734 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1735
1736         PR target/27663
1737         PR target/41076
1738         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1739         * config/avr/avr.md ("*ior<mode>qi.byte0",
1740         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1741
1742 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1743
1744         PR target/45099
1745         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1746         register is needed for a function argument.
1747
1748 2011-05-16  Richard Guenther  <rguenther@suse.de>
1749
1750         * gimple.c (struct type_hash_pair): New type.
1751         (type_hash_pair_compare): New function.
1752         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1753
1754 2011-05-16  Revital Eres  <revital.eres@linaro.org>
1755
1756         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1757
1758 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1759
1760         * config/i386/i386.md (floating point move splitters): Fix
1761         usage of standard_80387_constant_p.
1762         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1763
1764 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1765
1766         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1767
1768 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1769
1770         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1771         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1772         (tree_ssa_lim_finalize): Likewise.
1773
1774 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
1775
1776         * config/i386/constraint.md (Yd, Yx): New register constraints.
1777         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
1778         Yd conditional register constraint.
1779         (*movtf_internal): Use standard_sse_constant_opcode.
1780         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
1781         Yx conditional register constraint.
1782         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
1783         Yd conditional register constraint.  Use standard_sse_constant_p to
1784         check for valid SSE constants and call standard_sse_constant_opcode to
1785         output SSE insn.
1786         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1787         constants and call standard_sse_constant_opcode to output SSE insn.
1788         * config/i386/i386.c (ix86_option_ovverride_internal): Set
1789         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
1790         optimize_size is set.
1791         (standard_sse_constant_opcode): Output conditional AVX insn templates.
1792
1793 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1794
1795         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1796
1797 2011-05-13  Martin Jambor  <mjambor@suse.cz>
1798
1799         * ipa-prop.c (ipa_cst_from_jfunc): New function.
1800         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1801         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1802         (evaluate_conditions_for_ipcp_clone): Removed.
1803         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1804         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1805         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1806
1807 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1808
1809         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1810         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1811         lieu of MAY_HAVE_DEBUG_STMTS.
1812         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1813         debug statements if !MAY_HAVE_DEBUG_STMTS.
1814
1815 2011-05-13  Martin Thuresson  <martint@google.com>
1816
1817         PR gcov-profile/47793
1818         * libgcov.c (gcov_exit): Support relative profile paths.
1819         * doc/invoke.texi (-fprofile-dir): Update for above change.
1820
1821 2011-05-13  Richard Guenther  <rguenther@suse.de>
1822
1823         * gimple.c (gimple_canonical_types_compatible_p): Do not use
1824         type-pair caching, do not compare hashes.
1825
1826 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
1827
1828         PR middle-end/48965
1829         * tree-cfg.c (edge_to_cases_cleanup): Return true.
1830         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1831
1832 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1833
1834         * gimplify.c (gimplify_expr): Make sure operand is boolified.
1835         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1836         compatible type for TRUTH_NOT_EXPR.
1837
1838 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1839
1840         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
1841         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
1842         can_create_pseudo_p ().
1843
1844 2011-05-13  Richard Guenther  <rguenther@suse.de>
1845
1846         PR lto/48978
1847         * gimple.c (iterative_hash_gimple_type): Revert change in
1848         pointer target and function result and argument hashing.
1849
1850 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
1851
1852         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1853         (*movxf_internal_nointeger): Ditto.
1854         (*movdf_internal_rex64): Ditto.
1855         (*movdf_internal): Ditto.
1856         (*movdf_internal_nointeger): Ditto.
1857         (*movsf_internal): Ditto.
1858         (sincos splitters): Use can_create_pseudo ().
1859
1860 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
1861
1862         * config/i386/i386-opts.h: New.
1863         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1864         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1865         ix86_section_threshold): Remove.
1866         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
1867         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1868         OPT_mbranch_cost_.
1869         (ix86_option_override_internal): Don't decode strings for options
1870         other than -march=, -mtune= and -mfpmath=.  Don't allow for
1871         __attribute__ uses in remaining diagnostics for options with
1872         string arguments.  Don't check for integer arguments being negative.
1873         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
1874         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
1875         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1876         ix86_branch_cost, ix86_section_threshold): Remove.
1877         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1878         HeaderInclude.
1879         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1880         but not Var.
1881         (masm=): Use Enum and Init.
1882         (asm_dialect): New Enum and EnumValue entries.
1883         (mbranch-cost=): Use UInteger.
1884         (mlarge-data-threshold=): Use UInteger and Init.
1885         (mcmodel=): Use Enum and Init.
1886         (cmodel): New Enum and EnumValue entries.
1887         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1888         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1889         mregparm=): Use UInteger.
1890         (mstringop-strategy=): Use Enum and Init.
1891         (stringop_alg): New Enum and EnumValue entries.
1892         (mtls-dialect=): Use Enum and Init.
1893         (tls_dialect): New Enum and EnumValue entries.
1894         (mabi=): Use Enum and Init.
1895         (calling_abi): New Enum and EnumValue entries.
1896         (mveclibabi=): Use Enum and Init.
1897         (ix86_veclibabi): New Enum and EnumValue entries.
1898
1899 2011-05-13  Nick Clifton  <nickc@redhat.com>
1900
1901         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1902         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1903
1904 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1905
1906         PR middle-end/48984
1907         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1908         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1909         (gimple_boolify): Check for cast for boolean_type_node instead for
1910         BOOLEAN_TYPE.
1911
1912 2011-05-13  Richard Guenther  <rguenther@suse.de>
1913
1914         PR tree-optimization/48172
1915         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1916         multiplying by number of iterations for equal step.
1917         (vect_create_cond_for_alias_checks): Likewise.
1918
1919 2011-05-13  Andreas Schwab  <schwab@redhat.com>
1920
1921         * configure.ac: Use AS_HELP_STRING throughout.
1922         * configure: Regenerate.
1923
1924 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1925
1926         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1927         (ix86_emit_restore_regs_using_mov): Likewise.
1928         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1929
1930 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
1931
1932         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1933         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1934         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1935         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1936         RTX_OK_FOR_OLO10_P): ...here.
1937         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1938         SYMBOLIC_CONST.
1939
1940 2011-05-12  Kai Tietz  <ktietz@redhat.com>
1941
1942         * gimplify.c (gimple_boolify): Re-boolify expression
1943         arguments even if expression type is of kind BOOLEAN_TYPE.
1944         (gimplify_boolean_expr): Removed.
1945         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1946         and XOR. Additional take care that we keep expression's type.
1947         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1948         of TRUTH_AND|OR|XOR_EXPR.
1949
1950 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1951
1952         PR tree-optimization/48975
1953         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1954         on all bbs here and free and clear ifc_bbs at the end.
1955
1956 2011-05-12  Richard Guenther  <rguenther@suse.de>
1957
1958         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1959         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
1960         until after simple checks.
1961         (gimple_types_compatible_p): Likewise.
1962         (iterative_hash_gimple_type): Always hash pointer targets
1963         and function return and argument types.
1964         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1965         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
1966         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1967         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
1968         completely in the simple compare section.
1969         (gimple_register_canonical_type): Query the cache again after
1970         registering.
1971
1972 2011-05-12  Richard Guenther  <rguenther@suse.de>
1973
1974         PR tree-optimization/48172
1975         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1976         the number of iterations from the segment size calculation.
1977         (vect_create_cond_for_alias_checks): Adjust.
1978
1979 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1980
1981         PR debug/48967
1982         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1983         if validate_subreg fails.
1984
1985 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
1986
1987         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1988         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1989         early.
1990
1991 2011-05-12  DJ Delorie  <dj@redhat.com>
1992
1993         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1994         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1995         created builtin into rx_builtins array.
1996         (rx_builtin_decl): New function.
1997         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
1998
1999 2011-05-12  DJ Delorie  <dj@redhat.com>
2000             Nick Clifton  <nickc@redhat.com>
2001
2002         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
2003         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
2004         (rx_is_legitimate_address): Add pre-decrement and post-increment
2005         addressing in HImode and QImode.  Fix test for out of range
2006         REG+INT addressing.
2007         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
2008         (rx_align_for_label): Test label before extracting its usage count.
2009         (rx_adjust_insn_lengths): Fix selection of insn codes.
2010         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
2011
2012 2011-05-11  Jason Merrill  <jason@redhat.com>
2013
2014         * tree.c (type_hash_canon): Use struct tree_type_non_common.
2015
2016 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2017
2018         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
2019         reindent the subsequent block.
2020
2021 2011-05-11  Satoru Takabayashi  <satorux@google.com>
2022             Paul Pluzhnikov  <ppluzhnikov@google.com>
2023
2024         * doc/install.texi (Configuration): Document --with-linker-hash-style.
2025         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2026         * config.in: Add LINKER_HASH_STYLE.
2027         * configure.ac: Add --with-linker-hash-style.
2028         * configure: Regenerate.
2029
2030 2011-05-11  Richard Guenther  <rguenther@suse.de>
2031
2032         PR middle-end/48964
2033         * gimple.c (iterative_hash_canonical_type): Fix typo.
2034
2035 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
2036
2037         * config/i386/i386.c (legitimize_tls_address)
2038         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2039         expanders directly for TARGET_GNU2_TLS.  Determine pic and
2040         __tls_get_addr symbol reference here.  Update call to
2041         gen_tls_global_dynamic_{32,64} for added arguments.
2042         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
2043         expanders directly for TARGET_GNU2_TLS.  Determine
2044         __tls_get_addr symbol reference here.  Update call to
2045         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
2046         unique UNSPEC REG_EQUIV to libcall block.
2047         (ix86_tls_get_addr): Declare static.
2048         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2049         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2050         Do not determine pic and __tls_get_addr symbol reference here. Do not
2051         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2052         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2053         (tls_global_dynamic_64): Add operand 2.  Do not determine
2054         __tls_get_addr symbol reference here.  Do not call
2055         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2056         (tls_local_dynamic_base64): Ditto for operand 1.
2057
2058 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2059
2060         * function.c (expand_function_start): Initialize stack_check_probe_note
2061         only if the generic stack checking mechanism is used.
2062
2063 2011-05-11  Richard Guenther  <rguenther@suse.de>
2064
2065         PR tree-optimization/15256
2066         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2067         (A & B) | C, combine (A op CST1) op CST2.
2068         (tree_ssa_forward_propagate_single_use_vars): Only bother to
2069         visit assigns that have uses.
2070
2071 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
2072
2073         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
2074         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2075         (unpack_ts_type_common_value_fields): ...this.  Update comment.
2076         (unpack_value_fields): Adjust for renaming.
2077         (lto_input_ts_type_tree_pointers): Split into...
2078         (lto_input_ts_type_common_tree_pointer): ...this and...
2079         (lto_input_ts_type_non_common_tree_pointers): ...this.
2080         (lto_input_tree_pointers): Adjust for above split.
2081         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2082         (pack_ts_type_common_value_fields): ...this.  Update comment.
2083         (lto_output_ts_type_tree_pointers): Split into...
2084         (lto_output_ts_type_common_tree_pointers): ...this and...
2085         (lto_output_ts_type_non_common_tree_pointers): ...this.
2086         (lto_output_tree_pointers): Adjust for above split.
2087         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2088         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2089         * stor-layout.c (vector_type_mode): Adjust location of mode field.
2090         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2091         Define.
2092         (struct tree_type): Split into...
2093         (struct tree_type_common: ...this and...
2094         (struct tree_type_with_lang_specific): ...this and...
2095         (struct tree_type_non_common): ...this.  Adjust accessor macros
2096         accordingly.
2097         (TYPE_VALUES_RAW): Define.
2098         (union tree_node): Update for above changes.
2099         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2100         TS_TYPE_NON_COMMON.
2101         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2102         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2103         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2104         * treestructu.def (TS_TYPE): Remove.
2105         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2106         Define.
2107
2108 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
2109
2110         PR debug/48159
2111         * tree-ssa.c (reset_debug_uses): New function.
2112         * tree-flow.h (reset_debug_uses): New prototype.
2113         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2114         * tree-loop-distribution.c (generate_loops_for_partition): Call
2115         reset_debug_uses on the stmts that will be removed.  Keep around
2116         all debug stmts, don't count them as bits in partition bitmap.
2117         (generate_builtin): Don't count debug stmts or labels as bits in
2118         partition bitmap.
2119
2120 2011-05-11  Richard Guenther  <rguenther@suse.de>
2121
2122         * gimple.c (gimple_type_hash_1): Merge with ...
2123         (gimple_type_hash): ... this.
2124         (gtc_visit): Remove mode parameter and simplify accordingly.
2125         (gimple_types_compatible_p_1): Likewise.
2126         (gimple_types_compatible_p): Likewise.
2127         (iterative_hash_gimple_type): Likewise.
2128         (visit): Likewise.
2129         (gimple_type_eq): Adjust.
2130
2131 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2132
2133         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2134         enters the branch create an anti edge in the opposite direction
2135         to prevent the creation of reg-moves.
2136         * modulo-sched.c: Adjust comment to reflect the fact we are
2137         scheduling closing branch.
2138         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2139         (stage_count): New field in struct partial_schedule.
2140         (calculate_stage_count): New function.
2141         (normalize_sched_times): Rename to reset_sched_times and handle
2142         incrementing the sched time of the nodes by a constant value
2143         passed as parameter.
2144         (duplicate_insns_of_cycles): Skip closing branch.
2145         (sms_schedule_by_order): Schedule closing branch.
2146         (ps_insn_find_column): Handle closing branch.
2147         (sms_schedule): Call reset_sched_times and adjust the code to
2148         support scheduling of the closing branch.
2149         (ps_insert_empty_row): Update calls to normalize_sched_times
2150         and rotate_partial_schedule functions.
2151
2152 2011-05-11  Richard Guenther  <rguenther@suse.de>
2153
2154         PR middle-end/48953
2155         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2156
2157 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
2158
2159         * opts.c (finish_options): Move warning settings from process_options.
2160         * toplev.c (process_options): Move warning settings to finish_options.
2161
2162 2011-05-11  Richard Guenther  <rguenther@suse.de>
2163
2164         PR tree-optimization/18041
2165         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2166         (simplify_bitwise_binary): ... this.  Handle operand conversions
2167         by applying them to the result instead.
2168         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
2169
2170 2011-05-11  Richard Guenther  <rguenther@suse.de>
2171
2172         * gimple.c (gimple_canonical_types_compatible_p): Split out
2173         from gimple_types_compatible_p and friends.  Do not recurse
2174         to pointed-to types.
2175         (gimple_canonical_type_eq): Use it.
2176         (iterative_hash_canonical_type): Split out from
2177         iterative_hash_gimple_type and friends.  Do not recurse
2178         to pointed-to types.
2179         (gimple_canonical_type_hash): Use it, allocate the hash here.
2180
2181 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2182
2183         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2184         recognizing doloop.
2185
2186 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2187
2188         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2189         instead of PREV_INSN.
2190
2191 2011-05-11  Revital Eres  <revital.eres@linaro.org>
2192
2193         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2194         * loop-doloop.c (doloop_condition_get): Likewise.
2195         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2196         (doloop_end): New.
2197         * config/arm/arm.md (*addsi3_compare0): Remove "*".
2198
2199 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
2200
2201         * tree.def (CASE_LABEL_EXPR): Add an operand.
2202         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2203
2204 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2205
2206         * c-decl.c (c_override_global_bindings_to_false): Remove.
2207         (global_bindings_p): Don't check
2208         c_override_global_bindings_to_false.
2209         * c-tree.h (c_override_global_bindings_to_false): Remove.
2210         * c-typeck.c (composite_type): Don't set
2211         c_override_global_bindings_to_false.
2212
2213 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2214
2215         PR target/48857, 48495
2216         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2217         (VSX_MODE): Ditto.
2218         (VSX_MOVE_MODE): Ditto.
2219         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2220         VSX vector types.  Add V2DImode.
2221         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2222         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2223         (MODES_TIEABLE_P): Ditto.
2224
2225         * config/rs6000/rs6000.c (rs6000_emit_move): Use
2226         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2227         VSX_VECTOR_MODE.
2228         (init_cumulative_args): Ditto.
2229         (rs6000_function_arg_boundary): Ditto.
2230         (rs6000_function_arg_advance_1): Ditto.
2231         (rs6000_function_arg): Ditto.
2232         (rs6000_function_ok_for_sibcall): Ditto.
2233         (emit_frame_save): Ditto.
2234         (rs6000_function_value): Ditto.
2235         (rs6000_libcall_value): Ditto.
2236
2237 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2238
2239         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2240         i386/darwin-lib.h to $libgcc_tm_file.
2241         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2242
2243 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2244
2245         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2246
2247 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2248
2249         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2250         * config/rs6000/rs6000-tables.opt: New file (generated).
2251         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2252         rs6000/rs6000-tables.opt to extra_options.
2253         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2254         * config/rs6000/rs6000.c (rs6000_select): Remove.
2255         (processor_target_table): Move contents to rs6000-cpus.def.
2256         (darwin_rs6000_override_options): Check
2257         global_options_set.x_rs6000_cpu_index instead of
2258         rs6000_select[1].string.
2259         (rs6000_option_override_internal): Likewise.
2260         (rs6000_handle_option): Don't assert that global structures are in
2261         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
2262         (rs6000_default_cpu): New variable.
2263         (rs6000_file_start): Set it instead of local default_cpu.  Check
2264         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2265         global_options_set.x_rs6000_tune_index instead of rs6000_select.
2266         (rs6000_darwin_file_start): Check rs6000_default_cpu and
2267         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2268         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2269         rs6000_select): Remove.
2270         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2271         Remove.
2272         (mcpu=, mtune=): Use Var, Init, Enum and Save.
2273         * config/rs6000/t-rs6000
2274         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2275         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2276         global_options_set.x_rs6000_cpu_index instead of
2277         rs6000_select[1].string.
2278         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2279         global_options_set.x_rs6000_cpu_index instead of
2280         rs6000_select[1].string.
2281
2282 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
2283
2284         * config.gcc (libgcc_tm_file): Define instead of including files
2285         from ../../libgcc/config/ in tm_file.
2286         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2287         * configure: Regenerate.
2288         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2289         libgcc_tm.h, cs-libgcc_tm.h): New.
2290         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2291         (clean): Remove libgcc_tm.h.
2292         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2293         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2294         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2295
2296 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
2297
2298         PR target/48896
2299         * config/avr/avr.c (avr_ret_register): Return unsigned int
2300         instead of int.
2301         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2302         it to avr_libcall_value.
2303         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2304         expand_expr.
2305         (avr_expand_binop_builtin): Ditto.
2306         (avr_expand_unop_builtin): Ditto.
2307
2308 2011-05-10  DJ Delorie  <dj@redhat.com>
2309
2310         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2311         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2312         * config/rx/rx.c (rx_align_for_label): Add label and
2313         uses_threshold parameters.  Do not align when the label is not
2314         used enough.
2315         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2316
2317 2011-05-10  Richard Guenther  <rguenther@suse.de>
2318
2319         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2320         a series of conversions and apply foldings similar to what
2321         fold-const does.
2322         (tree_ssa_forward_propagate_single_use_vars): Call it.
2323
2324 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
2325
2326         PR tree-optimization/48611
2327         PR tree-optimization/48794
2328         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2329         referenced from RESX or EH_DISPATCH arguments.
2330
2331         PR debug/48928
2332         * dfp.c (decimal_to_decnumber): Handle conversion from
2333         dconst{1,2,m1,half}.
2334
2335 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2336
2337         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2338         for !flag_prefer_avx128.
2339         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2340
2341 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2342
2343         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2344         (fold_ternary_loc): Use expr_location_or.
2345
2346 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2347
2348         PR debug/48853
2349         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2350         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2351         Pmode and mem_mode is not VOIDmode.
2352
2353 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2354
2355         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2356         TYPE_QUAL_RESTRICT): Convert to enum.
2357
2358 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2359
2360         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2361         (const_pow2_1_to_8_operand): Ditto.
2362         (const_pow2_1_to_128_operand): Ditto.
2363         (const_pow2_1_to_32768_operand): Ditto.
2364         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2365         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
2366         in insn constraint to check integer value of operand 3.
2367         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2368
2369         (PINSR_MODE): New mode iterator.
2370         (sse2p4_1): New mode attribute.
2371         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2372         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2373         iterator.  Use const_int_operand instead of
2374         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
2375         exact_log2 in insn constraint to check integer value of operand 3.
2376
2377 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2378
2379         * config/i386/sse.md (blendbits): Remove mode attribute.
2380         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2381         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2382         Check integer value of operand 3 in insn constraint.
2383
2384 2011-05-09  Richard Guenther  <rguenther@suse.de>
2385
2386         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2387         for diagnostics.
2388         (lto_symtab_merge): Likewise.  Do not register types here.
2389         (lto_symtab_merge_decls_2): Likewise.
2390         (lto_symtab_merge_decls_1): Likewise.
2391         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2392         * gimple.c (enum gtc_mode): Declare.
2393         (gimple_types_compatible_p): Make static.
2394
2395 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2396
2397         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2398         temporary register to match Pmode.
2399
2400 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2401
2402         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2403         and *vec_concatv4si_1_avx.
2404
2405 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2406
2407         PR rtl-optimization/48927
2408         * ira-conflicts.c (commutative_constraint_p): Use
2409         recog_data.alternative_enabled_p to disable alternatives where
2410         "enabled" attribute is false.
2411         (get_dup_num): Ditto.
2412         * ira-lives.c (single_reg_class): Ditto.
2413         (ira_implicitly_set_insn_hard_regs): Ditto.
2414
2415 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
2416
2417         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2418         (dataflow_set_preserve_mem_locs): Likewise.
2419
2420 2011-05-09  Philipp Thomas  <pth@suse.de>
2421
2422         * config/mep/mep.c (mep_validate_vliw): Syntax description
2423         should not be translated.
2424
2425 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
2426
2427         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2428         * config/mips/mips-tables.opt: New file (generated).
2429         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
2430         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2431         MIPS_ARCH_OPTION_NATIVE): Define.
2432         * config/mips/mips.c (mips_cpu_info_table): Move contents to
2433         mips-cpus.def.
2434         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2435         mips_parse_cpu): Remove.
2436         (mips_cpu_info_from_opt, mips_default_arch): New.
2437         (mips_handle_option): Don't assert that global structures are in
2438         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2439         (mips_option_override): Use new variables and functions to set
2440         state of these options.  Use strcmp to check for individual CPU names.
2441         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2442         definition.
2443         * config/mips/mips.opt (march=): Use ToLower and Enum.
2444         (mips): Use ToLower, Enum and Var.
2445         (mtune=): Use ToLower and Enum.
2446         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2447
2448 2011-05-08  Jan Hubicka  <jh@suse.cz>
2449
2450         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2451         Arrange type pairs to be UID ordered.
2452         (gimple_lookup_type_leader): Make inline.
2453
2454 2011-05-09  Nick Clifton  <nickc@redhat.com>
2455
2456         PR target/48899
2457         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2458         PROCESSOR_DEFAULT.
2459
2460         PR target/48897
2461         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2462         variable 's'.
2463
2464 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
2465
2466         * combine.c (simplify_comparison): Abstract out parts into...
2467         (simplify_compare_const): ... new function.
2468         (try_combine): Generalize parallel arithmetic/compare combining
2469         to call simplify_compare_const() and CANONICALIZE_COMPARE().
2470
2471 2011-05-08  Jan Hubicka  <jh@suse.cz>
2472
2473         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2474         (cgraph_create_virtual_clone): Call hooks once virtual clone
2475         is finished.
2476         * cgraph.h (cgraph_clone_node): Update prototype.
2477         * ipa-cp.c (ipcp_estimate_growth): Use
2478         estimate_ipcp_clone_size_and_time.
2479         * ipa-inline-transform.c (clone_inlined_nodes): Update.
2480         * lto-cgraph.c (input_node): Update.
2481         * ipa-inline.c (recursive_inlining): Update.
2482         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2483         (evaluate_conditions_for_known_args): Break out from ...
2484         (evaluate_conditions_for_edge): ... here.
2485         (evaluate_conditions_for_ipcp_clone): New function.
2486         (inline_node_duplication_hook): Update clone summary based
2487         on parameter map.
2488         (estimate_callee_size_and_time): Rename to ...
2489         (estimate_node_size_and_time): take NODE instead of EDGE;
2490         take POSSIBLE_TRUTHS as argument.
2491         (estimate_callee_size_and_time): Update.
2492         (estimate_ipcp_clone_size_and_time): New function.
2493         (do_estimate_edge_time): Update.
2494
2495 2011-05-08  Richard Guenther  <rguenther@suse.de>
2496
2497         PR middle-end/48908
2498         PR middle-end/48905
2499         * expmed.c (expand_shift_1): Compute adjusted constant shift
2500         amount manually.
2501
2502 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2503
2504         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2505
2506 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2507
2508         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2509
2510 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
2511
2512         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2513
2514 2011-05-07  Jan Hubicka  <jh@suse.cz>
2515
2516         * ipa-inline-transform.c (inline_call): Account when program size
2517         decreases.
2518         * ipa-inline.c (relative_time_benefit): New function.
2519         (edge_badness): Reorganize to be power 2 based; fix thinko when
2520         computing badness for negative growth; update comments to match
2521         reality; better dumps.
2522
2523 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
2524
2525         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2526         type to bool and adjust comment.
2527         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2528         (fold_mathfn_compare): Remove calls to global_bindings_p.
2529         (fold_inf_compare): Likewise.
2530         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2531         * c-tree.h (global_bindings_p): Adjust prototype.
2532         * c-decl.c (global_bindings_p): Return bool and simplify.
2533
2534 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
2535
2536         PR tree-optimization/48837
2537         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2538         when accumulator transformation is performed.
2539
2540 2011-05-06  Jan Hubicka  <jh@suse.cz>
2541
2542         * i386.h (ix86_tune_indices): Add
2543         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2544         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2545         * i386.c (initial_ix86_tune_features): Add
2546         X86_SOFTARE_PREFETCHING_BENEFICIAL.
2547         (software_prefetching_beneficial_p): Remove predicate.
2548         (ix86_option_override_internal): Use new macro.
2549
2550 2011-05-06  Jan Hubicka  <jh@suse.cz>
2551
2552         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2553
2554 2011-05-06  Jan Hubicka  <jh@suse.cz>
2555
2556         * cgraph.c (cgraph_add_thunk): Create real function node instead
2557         of alias node; finalize it and mark needed/reachale; arrange visibility
2558         to be right and add it into the corresponding same comdat group list.
2559         (dump_cgraph_node): Dump thunks.
2560         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2561         cgraph_function_with_gimple_body_p,
2562         cgraph_first_function_with_gimple_body,
2563         cgraph_next_function_with_gimple_body): New functions.
2564         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2565         New macros.
2566         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2567         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2568         * cgraphunit.c (cgraph_finalize_function): Only look into possible
2569         devirtualization when optimizing.
2570         (verify_cgraph_node): Verify thunks.
2571         (cgraph_analyze_function): Analyze thunks.
2572         (cgraph_mark_functions_to_output): Output thunks only in combination
2573         with function they are assigned to.
2574         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2575         alias into normal node.
2576         (assemble_thunks): New functoin.
2577         (cgraph_expand_function): Use it.
2578         * lto-cgraph.c (lto_output_node): Stream thunks.
2579         (input_overwrite_node): Stream in thunks.
2580         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2581         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2582         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2583         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2584         (inline_analyze_function): Do not care about thunk jump functions.
2585         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
2586         * ipa-prop.c (ipa_prop_write_jump_functions): Use
2587         cgraph_function_with_gimple_body_p.
2588         * passes.c (do_per_function_toporder): Use
2589         cgraph_function_with_gimple_body_p.
2590         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2591         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2592         (function_called_by_processed_nodes_p): Likewise.
2593
2594 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2595
2596         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2597         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2598         entries.
2599         (mabi=): Replace with separate entries for mabi=altivec,
2600         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2601         mabi=ieeelongdouble and mabi=ibmlongdouble.
2602         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2603         check for -mabi=spe without SPE ABI support here.
2604         (rs6000_handle_option): Replace OPT_mabi_ handling with
2605         OPT_mabi_altivec and OPT_mabi_spe handling.
2606
2607 2011-05-06  Cary Coutant  <ccoutant@google.com>
2608
2609         * dwarf2out.c (contains_subprogram_definition): New function.
2610         (should_move_die_to_comdat): Call it.
2611
2612 2011-05-06  Jeff Law  <law@redhat.com>
2613
2614         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2615         remove_ctrl_stmt_and_useless_edges.
2616         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2617         (fixup_template_block, thread_single_edge): Likewise.
2618         (mark_threaded_blocks): Use THREAD_TARGET.
2619
2620 2011-05-06  Alan Modra  <amodra@gmail.com>
2621
2622         PR target/48900
2623         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2624         const0_rtx as the arg to the dummy __tls_get_addr libcall.
2625
2626 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2627
2628         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2629         constraint modifier to "r".
2630
2631 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2632
2633         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2634         fall through for OPT_mcmodel_.
2635
2636 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2637
2638         * config/s390/s390.c (s390_asm_trampoline_template): Comment
2639         instruction sizes.
2640         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
2641
2642 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2643
2644         PR target/47930
2645         * config/arm/arm.opt (marm): Document it.
2646         (mthumb): Reject negative variant.
2647
2648 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2649
2650         PR target/48898
2651         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2652         Fix typo in "ccvt" variable name.
2653
2654 2011-05-06  Tristan Gingold  <gingold@adacore.com>
2655
2656         PR target/48895
2657         * config/vms/vms-ar.c (main): Remove cwd variable.
2658
2659 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
2660
2661         PR debug/48902
2662         * var-tracking.c (prepare_call_arguments): Move else before #endif.
2663
2664 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
2665
2666         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2667         * gimplify.c (gimplify_switch_expr): Likewise.
2668         * omp-low.c (expand_omp_sections): Likewise.
2669         * tree-eh.c (lower_try_finally_switch): Likewise.
2670         (lower_eh_dispatch): Likewise.
2671         * tree.h (build_case_label): Declare.
2672         * tree.c (build_case_label): Define.
2673
2674 2011-05-05  Jason Merrill  <jason@redhat.com>
2675
2676         PR c++/40975
2677         * tree-inline.c (copy_tree_r): Use copy_statement_list.
2678         (copy_statement_list): Don't recurse.
2679         * stor-layout.c (copy_self_referential_tree_r): Don't allow
2680         STATEMENT_LIST.
2681
2682 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2683
2684         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2685         through from -mfpu= handling.
2686         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2687
2688 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
2689
2690         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2691         POST_MODIFY.
2692
2693 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
2694
2695         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2696         for 11.31.
2697         (hppa[12]*-*-hpux11*): Ditto.
2698         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2699         * config/ia64/hpux-unix2003.h: New.
2700         * config/pa/pa-hpux1131.opt: New.
2701         * config/pa/pa-hpux1131.h: New.
2702         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2703         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2704         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2705
2706 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2707
2708         PR debug/48853
2709         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2710         instead of mode as 3rd argument to recursive call.
2711         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2712         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2713         VOIDmode.
2714         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2715         don't give up if mode is Pmode and mem_mode is not VOIDmode.
2716         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2717         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2718
2719 2011-05-05  Julian Brown  <julian@codesourcery.com>
2720
2721         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2722         parenthesis in D-register case.
2723
2724 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2725
2726         * opt-functions.awk (var_type_struct): Handle Enum options.
2727         * optc-gen.awk: Don't check range of variables of character type.
2728         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2729         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2730         rs6000_sdata_name, rs6000_explicit_options): Remove.
2731         (rs6000_option_override_internal): Check for -malign-power here.
2732         Use global_options_set instead of rs6000_explicit_options.
2733         (rs6000_parse_fpu_option): Remove.
2734         (rs6000_handle_option): Access variables via opts and opts_set
2735         pointers.  Use error_at and warning_at.  Add fall-through
2736         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2737         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2738         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2739         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2740         here.  Don't use rs6000_parse_fpu_option.
2741         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2742         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2743         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2744         (mrecip=): Use Var.
2745         (mspe): Use Var and Save.
2746         (mtraceback=): Use Enum and Var.
2747         (rs6000_traceback_type): New Enum and EnumValue entries.
2748         (mfloat-gprs=): Use Enum, Var and Save.
2749         (rs6000_float_gprs): New Enum and EnumValue entries.
2750         (mlong-double-): use Var and Save.
2751         (msched-costly-dep=, minsert-sched-nops=): Use Var.
2752         (malign-): Use Enum and Var.
2753         (rs6000_alignment_flags): New Enum and EnumValue entries.
2754         (mfpu=): Use Enum.
2755         (fpu_type_t): New Enum and EnumValue entries.
2756         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2757         global_options_set instead of rs6000_explicit_options.
2758         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2759         global_options_set instead of rs6000_explicit_options.
2760         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2761         global_options_set instead of rs6000_explicit_options.
2762         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2763         global_options_set instead of rs6000_explicit_options.
2764         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2765         global_options_set instead of rs6000_explicit_options.
2766         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2767         global_options_set instead of rs6000_explicit_options.
2768         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2769         definition.
2770         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2771         global_options_set instead of rs6000_explicit_options.
2772         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2773         (rs6000_cmodel): New Enum and EnumValue entries.
2774         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2775         global_options_set instead of rs6000_explicit_options.
2776         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2777         (mtls-size=): Use Enum and Var.
2778         (rs6000_tls_size): New Enum and EnumValue entries.
2779
2780 2011-05-05  Michael Matz  <matz@suse.de>
2781
2782         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2783         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2784         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2785         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2786         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2787         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2788         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2789         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2790         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2791         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2792         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2793         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2794         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2795         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2796         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2797         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2798
2799 2011-05-05  Richard Guenther  <rguenther@suse.de>
2800
2801         * expmed.c (expand_variable_shift): Rename to ...
2802         (expand_shift_1): ... this.  Take an expanded shift amount.
2803         For rotates recurse directly not building trees for the shift amount.
2804         (expand_variable_shift): Wrap around expand_shift_1.
2805         (expand_shift): Adjust.
2806
2807 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2808
2809         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2810
2811 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2812
2813         * tree.h (get_pending_sizes): Remove prototype.
2814         (put_pending_size): Likewise.
2815         (put_pending_sizes): Likewise.
2816         * stor-layout.c (pending_sizes): Delete.
2817         (get_pending_sizes): Likewise.
2818         (put_pending_size): Likewise.
2819         (put_pending_sizes): Likewise.
2820         (variable_size): Do not call put_pending_size and tidy up.
2821         * function.h (struct function): Remove dont_save_pending_sizes_p.
2822         * lto-streamer-in.c (input_function): Do not stream it.
2823         * lto-streamer-out.c (output_function): Likewise.
2824         * tree-inline.c (initialize_cfun): Do not copy it.
2825         * c-decl.c (store_parm_decls): Do not set it.
2826         * omp-low.c (create_task_copyfn): Likewise.
2827         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2828
2829 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
2830
2831         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2832         conditions.
2833         (*movdf_internal): Ditto.
2834         (*movdf_internal_nointeger): Ditto.
2835         (*movsf_internal): Ditto.
2836
2837 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2838
2839         * c-decl.c (finish_decl): Don't call get_pending_sizes.
2840         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
2841         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
2842         (c_variable_size): Remove.
2843         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
2844         call put_pending_sizes.
2845         (get_parm_info): Add parameter expr.  Use it to set
2846         arg_info->pending_sizes.
2847         (store_parm_decls): Use arg_info->pending_sizes instead or calling
2848         get_pending_sizes.
2849         * c-parser.c (c_parser_parms_declarator): Update call to
2850         c_parser_parms_list_declarator.
2851         (c_parser_parms_list_declarator): Take parameter expr.  Update
2852         call to push_parm_decl.  Update recursive call.  Don't call
2853         get_pending_sizes.  Update calls to get_parm_info.
2854         (c_parser_objc_method_definition): Update calls to
2855         c_parser_objc_method_decl and objc_start_method_definition.
2856         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
2857         (c_parser_objc_method_decl): Add parameter expr.  Update call to
2858         grokparm.
2859         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
2860         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2861         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2862
2863 2011-05-05  Michael Hope  <michael.hope@linaro.org>
2864
2865         PR pch/45979
2866         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2867         __ARM_EABI__ hosts.
2868
2869 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2870
2871         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2872         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2873         (spu_output_mi_thunk): New function.
2874
2875 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2876
2877         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2878         targetm.asm_out.print_operand.
2879         * config/sol2.c: Include target.h.
2880
2881 2011-05-04  Jan Hubicka  <jh@suse.cz>
2882
2883         * ipa-inline.c (reset_edge_caches): New function.
2884         (update_caller_keys): Add check_inlinablity_for; do not
2885         reset edge caches; remove now unnecesary loop.
2886         (update_callee_keys): Add comments; reset node_growth_cache of callee.
2887         (update_all_callee_keys): Likewise.
2888         (inline_small_functions): Sanity check cache; update code
2889         recomputing it.
2890
2891 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
2892
2893         PR rtl-optimization/47612
2894         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2895         as the last insn of the sequence to be moved.
2896
2897 2011-05-04  Tobias Burnus  <burnus@net-b.de>
2898
2899         PR fortran/48864
2900         * doc/invoke.texi (Ofast): Document that it
2901         enables Fortran's -fno-protect-parens.
2902
2903 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2904
2905         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2906
2907 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2908
2909         * stor-layout.c (variable_size): Do not issue errors.
2910
2911 2011-05-04  Richard Guenther  <rguenther@suse.de>
2912
2913         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2914         for array-ref indices.
2915         (tree_coverage_counter_addr): Likewise.
2916         (build_fn_info_type): Use size_int for index types.
2917         (build_gcov_info): Likewise.
2918
2919 2011-05-04  Richard Guenther  <rguenther@suse.de>
2920
2921         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2922         to build_int_cst.
2923         * c-typeck.c (really_start_incremental_init): Use bitsize_int
2924         for constructor indices.
2925         (push_init_level): Likewise.
2926
2927 2011-05-04  Richard Guenther  <rguenther@suse.de>
2928
2929         * explow.c (promote_mode): Move variable declarations before code.
2930
2931 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2932
2933         * tree.h (build_function_type_array): Declare.
2934         (build_varargs_function_type_array): Declare.
2935         (build_function_type_vec, build_varargs_function_type_vec): Define.
2936         * tree.c (build_function_type_array_1): New function.
2937         (build_function_type_array): New function.
2938         (build_varargs_function_type_array): New function.
2939
2940 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
2941
2942         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2943         before setting STMT_VINFO_TYPE.
2944
2945 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2946
2947         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2948         instead of spu_pass_by_reference.
2949
2950 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2951
2952         * calls.c (emit_library_call_value_1): Invoke
2953         promote_function_mode hook on libcall arguments.
2954         * explow.c (promote_function_mode, promote_mode): Handle TYPE
2955         argument being NULL.
2956         * targhooks.c (default_promote_function_mode): Lisewise.
2957         * config/s390/s390.c (s390_promote_function_mode): Likewise.
2958         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2959
2960         * doc/tm.texi: Document that TYPE argument might be NULL.
2961
2962 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2963
2964         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2965
2966 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2967
2968         From Bernd Schmidt
2969         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2970
2971 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2972
2973         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2974         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2975         Move ...
2976         * mips-tfile.c: ... here.
2977         Don't include coretypes.h, tm.h, filenames.h.
2978         (saber_stop): Remove definition and all calls.
2979         [__SABER__]: Remove.
2980         (__LINE__): Remove default.
2981         (Size_t, Ptrdiff_t): Remove definitions.
2982         Replace by size_t, ptrdiff_t.
2983         [!MIPS_DEBUGGING_INFO]: Remove.
2984         (SHASH_SIZE, THASH_SIZE): Remove defaults.
2985         (progname): Add const.
2986         (STATIC): Remove.
2987         Replace all uses by static.
2988         (ALIGN_SYMTABLE_OFFSET): Remove default.
2989         * mips-tdump.c: Don't include coretypes.h, tm.h.
2990         Remove !MIPS_IS_STAB guard.
2991         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2992         $(TM_H), filenames.h dependencies.
2993         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2994
2995 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2996
2997         From Jie Zhang
2998         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2999         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3000
3001 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3002
3003         From Bernd Schmidt
3004         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
3005         account and save/restore RETS.
3006         (PROFILE_BEFORE_PROLOGUE): Define.
3007         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
3008         the push insn to use predecrement.
3009
3010 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
3011
3012         From Jie Zhang
3013         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
3014
3015 2011-05-04  Nick Clifton  <nickc@redhat.com>
3016
3017         * config/mn10300/mn10300.c: Include cfgloop.h.
3018         (DUMP): New macro.
3019         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
3020         Lcc or a FLcc insn into the instruction stream.
3021         (mn10300_block_contains_call): New function.  Returns true if the
3022         given basic block contains a CALL insn.
3023         (mn10300_loop_contains_call_insn): New function.  Returns true if
3024         the given loop contains a CALL insn.
3025         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
3026         to use the SETLB and Lcc or FLcc insns.
3027         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3028         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3029         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
3030         disable the SETLB optimization.
3031         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3032         __SETLB__ or __NO_SETLB__.
3033         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3034         (movsf_internal): Handle MDR register.
3035         (cmpsi): Make visible.
3036         (setlb): New pattern.
3037         (Lcc): New pattern.
3038         (FLcc): New pattern.
3039
3040 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
3041
3042         PR target/48860
3043         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3044         for reg<->xmm moves.
3045         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3046         (vec_concatv2di_rex64_sse): Ditto.
3047         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3048         (*vec_extractv2di_1_rex64): Ditto.
3049
3050         Revert:
3051         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3052
3053         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3054         reg<->xmm moves.
3055         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3056
3057 2011-05-04  Richard Guenther  <rguenther@suse.de>
3058
3059         * tree.h (int_const_binop): Remove notrunc argument.
3060         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
3061         create integer constants that are properly truncated.
3062         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3063         (const_binop): Remove zero notrunc argument to int_const_binop.
3064         (size_binop_loc): Likewise.
3065         (fold_div_compare): Likewise.
3066         (maybe_canonicalize_comparison_1): Likewise.
3067         (fold_comparison): Likewise.
3068         (fold_binary_loc): Likewise.
3069         (multiple_of_p): Likewise.
3070         * expr.c (store_constructor): Likewise.
3071         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3072         (maybe_fold_stmt_addition): Likewise.
3073         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3074         * stor-layout.c (layout_type): Likewise.
3075         * tree-data-ref.c (tree_fold_divides_p): Likewise.
3076         * tree-sra.c (build_ref_for_offset): Likewise.
3077         (build_user_friendly_ref_for_offset): Likewise.
3078         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3079         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3080         * tree-ssa-loop-niter.c (inverse): Likewise.
3081         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3082         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3083         * tree-switch-conversion.c (check_range): Likewise.
3084         (build_constructors): Likewise.
3085         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3086         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3087         (extract_range_from_assert): Likewise.
3088         (vrp_int_const_binop): Likewise.
3089         (extract_range_from_binary_expr): Likewise.
3090         (extract_range_from_unary_expr): Likewise.
3091         (check_array_ref): Likewise.
3092         (find_case_label_range): Likewise.
3093         (simplify_div_or_mod_using_ranges): Likewise.
3094         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3095         comparing case labels for merging.
3096
3097 2011-05-03  Mark Wielaard  <mjw@redhat.com>
3098
3099         * dwarf2out.c (debug_str_hash_forced): Removed.
3100         (gen_label_for_indirect_string): Removed.
3101         (get_debug_string_label): Removed.
3102         (AT_string_form): Generate label directly.
3103         (output_indirect_string): Test indirect_string_node for
3104         DW_FORM_strp instead of checking label and refcount.
3105         (prune_indirect_string): Removed.
3106         (prune_unused_types): Don't check debug_str_hash_forced or
3107         call prune_indirect_string.
3108
3109 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3110
3111         PR other/48093
3112         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3113
3114 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
3115
3116         PR debug/47994
3117         PR debug/47919
3118         * combine.c (try_combine): Skip debug insns at m_split tests.
3119
3120 2011-04-26  Mark Wielaard  <mjw@redhat.com>
3121
3122         PR42288
3123         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3124         when info_section_emitted.
3125
3126 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
3127
3128         * config/mips/mips-opts.h: New.
3129         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3130         to mips-opts.h.
3131         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3132         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3133         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
3134         via opts pointer.
3135         * config/mips/mips.h (enum mips_code_readable_setting): Move to
3136         mips-opts.h.
3137         (mips_abi, mips_code_readable): Don't declare.
3138         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3139         (mabi=): Use Enum and Var.
3140         (mips_abi): New Enum and EnumValue entries.
3141         (mcode-readable=): Use Enum and Var.
3142         (mips_code_readable_setting): New Enum and EnumValue entries.
3143         (mr10k-cache-barrier=): Use Enum and Var.
3144         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3145
3146 2011-05-03  Jan Hubicka  <jh@suse.cz>
3147
3148         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3149         replace hash by pointer map.
3150         (cgraph_node_set_element_def, cgraph_node_set_element,
3151         const_cgraph_node_set_element, varpool_node_set_element_def,
3152         varpool_node_set_element, const_varpool_node_set_element): Remove.
3153         (free_cgraph_node_set, free_varpool_node_set): New function.
3154         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3155         * tree-emutls.c: Free varpool node set.
3156         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3157         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3158         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3159         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3160         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3161         Move here from ipa.c; implement using pointer_map
3162         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3163         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3164         debug_cgraph_node_set, varpool_node_set_new,
3165         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3166         dump_varpool_node_set, debug_varpool_node_set):
3167         Move to ipa-uitls.c.
3168         * passes.c (ipa_write_summaries): Update.
3169
3170 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3171
3172         From Mike Frysinger:
3173         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3174         bf542/bf544/bf547/bf548/bf549.
3175
3176 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3177
3178         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3179
3180 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3181
3182         From Bernd Schmidt:
3183         * config/bfin/bfin.md (MOVCC): New mode_macro.
3184         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3185         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
3186         comments from generated assembly.
3187
3188 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3189
3190         From Bernd Schmidt
3191         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3192         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3193         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3194         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3195         * config/bfin/lib1funcs.asm (___muldi3): New function.
3196
3197 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3198
3199         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3200         build_function_type_list instead of build_function_type.
3201         Rearrange initialization of `args' to do so.
3202
3203 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3204
3205         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3206         instead of build_function_type.
3207
3208 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3209
3210         * config/rs6000/rs6000.c (spe_init_builtins): Call
3211         build_function_type_list instead of build_function_type.
3212         (paired_init_builtins, altivec_init_builtins): Likewise.
3213         (builtin_function_type): Likewise.
3214
3215 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3216
3217         * config/sh/sh.c (sh_media_init_builtins): Call
3218         build_function_type_list instead of build_function_type.
3219
3220 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3221
3222         * config/sparc/sparc.c (sparc_file_end): Call
3223         build_function_type_list instead of build_function_type.
3224
3225 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3226
3227         * config/alpha/alpha.c (alpha_init_builtins): Call
3228         build_function_type_list instead of build_function_type.
3229
3230 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3231
3232         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3233         build_function_type_list instead of build_function_type.
3234
3235 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3236
3237         * config/iq2000/i2000.c (iq2000_init_builtins): Call
3238         build_function_type_list instead of build_function_type.
3239         Delete `endlink' variable.
3240
3241 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3242
3243         * config/avr/avr.c (avr_init_builtins): Call
3244         build_function_type_list instead of build_function_type.
3245
3246 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3247
3248         * config/picochip/picochip.c (picochip_init_builtins): Call
3249         build_function_type_list instead of build_function_type.
3250         Delete `endlink' variable.
3251
3252 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
3253
3254         * config/bfin/bfin.c (bfin_init_builtins): Call
3255         build_function_type_list instead of build_function_type.
3256
3257 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3258
3259         From Bernd Schmidt
3260         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3261         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
3262
3263 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3264
3265         From Jie Zhang:
3266         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3267         libbffastfp overrides libgcc when -mfast-fp.
3268
3269 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3270
3271         Originally from Bernd Schmidt
3272         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3273         * config/bfin/bfin.c (override_options): Test it and error if
3274         TARGET_FDPIC.
3275
3276 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
3277
3278         Originally From Bernd Schmidt
3279         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3280         FD-PIC.
3281
3282 2011-05-03  Jeff Law  <law@redhat.com>
3283
3284         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3285         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3286         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
3287         than accessing AUX field directly.  Free the AUX field before
3288         clearing it.
3289         (thread_block, thread_through_loop_header): Likewise.
3290         (thread_single_edge, mark_threaded_blocks): Likewise.
3291         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
3292         (register_jump_thread): Do not attempt to thread to a NULL edge.
3293
3294 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3295
3296         * function.c (init_function_start): Call decide_function_section.
3297         * varasm.c (decide_function_section): New function.
3298         (assemble_start_function): When not using
3299         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3300         or first_function_block_is_cold.
3301         * rtl.h (decide_function_section): Declare.
3302
3303 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
3304             Jakub Jelinek  <jakub@redhat.com>
3305
3306         PR target/48774
3307         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3308         only succeed if req_mode is the same as set_mode.
3309
3310 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
3311
3312         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3313         * genemit.c (gen_exp): Handle RETURN.
3314         * emit-rtl.c (verify_rtx_sharing): Likewise.
3315         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3316         * rtl.c (copy_rtx): RETURN is shared.
3317         * rtl.h (enum global_rtl_index): Add GR_RETURN.
3318         (ret_rtx): New.
3319         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3320         * config/s390/s390.c (s390_emit_epilogue): Likewise.
3321         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3322         * config/cris/cris.c (cris_expand_return): Likewise.
3323         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3324         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3325         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3326         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3327         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3328         Likewise.
3329         * config/v850/v850.c (expand_epilogue): Likewise.
3330         * config/bfin/bfin.c (bfin_expand_call): Likewise.
3331         * config/arm/arm.md (epilogue): Likewise.
3332         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3333         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3334         variable to ret_reg.
3335
3336 2011-05-03  Richard Guenther  <rguenther@suse.de>
3337
3338         PR lto/48846
3339         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3340         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3341         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3342
3343 2011-05-03  Richard Guenther  <rguenther@suse.de>
3344
3345         * c-decl.c (grokdeclarator): Instead of looking at
3346         TREE_OVERFLOW check if the constant fits in the index type.
3347
3348 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3349
3350         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3351         (vec_store_lanes<mode><mode>): Likewise.
3352
3353 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3354
3355         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3356         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3357         convert_optab_index values.
3358         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3359         * genopinit.c (optabs): Initialize the new optabs.
3360         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3361         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3362         (expand_STORE_LANES): New functions.
3363         * tree.h (build_array_type_nelts): Declare.
3364         * tree.c (build_array_type_nelts): New function.
3365         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3366         (vect_model_load_cost): Likewise.
3367         (vect_store_lanes_supported, vect_load_lanes_supported)
3368         (vect_record_strided_load_vectors): Declare.
3369         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3370         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3371         (vect_transform_strided_load): Split out statement recording into...
3372         (vect_record_strided_load_vectors): ...this new function.
3373         * tree-vect-stmts.c (create_vector_array, read_vector_array)
3374         (write_vector_array, create_array_ref): New functions.
3375         (vect_model_store_cost): Add store_lanes_p argument.
3376         (vect_model_load_cost): Add load_lanes_p argument.
3377         (vectorizable_store): Try to use store-lanes functions for
3378         interleaved stores.
3379         (vectorizable_load): Likewise load-lanes and loads.
3380         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3381         to vect_model_store_cost.
3382         (vect_build_slp_tree): Likewise vect_model_load_cost.
3383
3384 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
3385
3386         * hooks.h (hook_bool_mode_uhwi_false): Declare.
3387         * hooks.c (hook_bool_mode_uhwi_false): New function.
3388         * target.def (array_mode_supported_p): New hook.
3389         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3390         * doc/tm.texi: Regenerate.
3391         * stor-layout.c (mode_for_array): New function.
3392         (layout_type): Use it.
3393         * config/arm/arm.c (arm_array_mode_supported_p): New function.
3394         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3395
3396 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
3397
3398         PR target/48723
3399         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3400         for -fstack-check if the size to allocate is negative.
3401
3402 2011-05-02  Lawrence Crowl  <crowl@google.com>
3403
3404         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3405         (timevar_cond_start): New for starting a timer only when it is not
3406         already running.
3407         (timevar_cond_stop): New for stopping a timer when it was not already
3408         running.
3409
3410         * timevar.c (timevar_stop): Enable start/stop timers to start again.
3411         (timevar_cond_start): New as above.
3412         (timevar_cond_stop): New as above.
3413
3414         * timevar.def: Add start/stop timers for compiler phases,
3415         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3416         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3417         and TV_PHASE_FINALIZE.
3418         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3419         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3420         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3421         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3422         Make unused TV_OVERLOAD into a start/stop timer.
3423
3424         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3425         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3426         to indicate that they are start/stop timers.
3427
3428         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3429         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3430         Move initialization to do_compile.
3431         (do_compile): Add initialization from above.
3432         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3433
3434         * c-decl.c (c_write_global_declarations): Add start/stop of
3435         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3436
3437         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3438         or TV_PARSE_INLINE, as appropriate.
3439         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3440         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3441
3442 2011-05-02  Jason Merrill  <jason@redhat.com>
3443
3444         PR c++/40975
3445         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3446
3447 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
3448
3449         PR c/35445
3450         * c-decl.c (finish_decl): Only create a composite if the types are
3451         compatible.
3452
3453 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3454
3455         * config/fr30/fr30-protos.h (Mmode): Don't define.
3456         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
3457         definition where used.
3458         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3459         define.  Expand definitions where used.
3460         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3461         Expand definitions where used.
3462         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3463         rx_function_arg, rx_function_arg_advance,
3464         rx_function_arg_boundary): Expand definitions of those macros.
3465         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
3466         definition where used.
3467
3468 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3469
3470         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3471         reg<->xmm moves.
3472         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3473         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
3474         with *movv2sf_internal_rex64_avx.
3475         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3476         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3477         Use %v prefix in insn mnemonic to handle TARGET_AVX.
3478         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
3479         "vex" in "prefix" attribute calculation.
3480         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
3481
3482 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
3483
3484         PR target/47951
3485         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3486         inputs match the output.
3487
3488 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
3489
3490         PR target/47955
3491         * config/m68k/m68k.c (m68k_expand_prologue): Set
3492         current_function_static_stack_size.
3493
3494 2011-05-02   Jan Hubicka  <jh@suse.cz>
3495
3496         * lto-streamer.c (lto_streamer_cache_insert_1,
3497         lto_streamer_cache_lookup, lto_streamer_cache_create,
3498         lto_streamer_cache_delete): Use pointer map instead of hashtable.
3499         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3500
3501 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3502
3503         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3504         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3505         config/m68k/t-opts: New files.
3506         * config/m68k/m68k-tables.opt: New file (generated).
3507         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3508         extra_options and m68k/t-opts to tmake_file.
3509         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3510         (all_isas): Initialize using m68k-isas.def.
3511         (all_microarchs): Initialize using m68k-microarchs.def.
3512         (m68k_find_selection): Remove.
3513         (m68k_handle_option): Don't assert that global structures are in
3514         use.  Use error_at.  Access variables via opts pointer.  Don't
3515         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
3516         directly for -m68020-40 and -m68020-60.
3517         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3518         m68k_tune_entry here.
3519         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3520         to m68k-opts.h.
3521         (m68k_library_id_string): Remove declaration.
3522         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
3523         (m68k_library_id_string): New Variable.
3524         (march=, mcpu=, mtune=): Use Enum and Var.
3525
3526 2011-05-02  Richard Guenther  <rguenther@suse.de>
3527
3528         * varasm.c (output_constructor_regular_field): Compute zero-based
3529         index with double-ints.  Make sure to ICE instead of producing
3530         wrong code.
3531         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3532         in asserts.  Properly use a signed type.
3533
3534 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3535
3536         * config/i386/sse.md (V): New mode iterator.
3537         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
3538         TARGET_SSE2.
3539         (V_256): Rename from AVX256MODE.
3540         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
3541         condition to all users.
3542         (VF1): Ditto.
3543         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
3544         condition to all users.
3545         (VF_128): Make V4SF mode unconditional.
3546         (VF_256): Rename from AVX256MODEF2P.
3547         (VI4F_128): Rename from SSEMODE4S.
3548         (VI8F_128): Rename from SSEMODE2D.
3549         (VI4F_256): Rename from AVX256MODE8P.
3550         (VI8F_256): Rename from AVX256MODE4P.
3551         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
3552         (ssescalarmodesuffix): Remove SF and DF modes.
3553         (SSEMODE124): Remove.
3554         (SSEMODE1248): Ditto.
3555         (SSEMODEF2P): Ditto.
3556         (AVXMODEF2P): Ditto.
3557         (AVXMODEFDP): Ditto.
3558         (AVXMODEFSP): Ditto.
3559         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
3560         unconditional.
3561         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
3562         unconditional.
3563         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
3564         xop_pcmov_<mode>256.  Use V mode iterator.
3565
3566         Adjust RTX patterns globally for renamed mode attributes.
3567
3568 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3569
3570         * haifa-sched.c (sched_emit_insn): Emit insn before first
3571         non-scheduled insn.  Inform back-end about new insn.  Add
3572         new insn to scheduled_insns list.
3573
3574 2011-05-02  Richard Guenther  <rguenther@suse.de>
3575
3576         PR tree-optimization/48822
3577         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
3578         (process_scc): Indicate which iteration we start.
3579
3580 2011-05-02  Jan Hubicka  <jh@suse.cz>
3581
3582         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
3583         (lto_section_overrun): New.
3584         * lto-section-out.c (append_block): Rename to ...
3585         (lto_append_block): ... this one; export.
3586         (lto_output_1_stream): Move lto lto-streamer.h
3587         (lto_output_data_stream): Update.
3588         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
3589         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
3590         functions.
3591
3592 2011-05-02  Richard Guenther  <rguenther@suse.de>
3593
3594         * tree.c (tree_code_counts): New global array.
3595         (record_node_allocation_statistics): Count individual tree codes.
3596         (dump_tree_statistics): Dump individual code stats.
3597
3598 2011-05-01  Jan Hubicka  <jh@suse.cz>
3599
3600         * ipa-inline.c (caller_growth_limits): Fix thinko when
3601         looking for largest stack frame.
3602         * ipa-inline.h (dump_inline_summary): Declare.
3603         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
3604         on stack usage.
3605         (dump_inline_summary): Export.
3606         (debug_inline_summary): Declare as DEBUG_FUNCTION.
3607
3608 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
3609
3610         * reginfo.c (memory_move_cost): Change rclass argument type form
3611         'enum reg_class' to reg_class_t.
3612         * reload.h (memory_move_cost): Update prototype.
3613         * postreload.c reload_cse_simplify_set): Change type dclass var to
3614         reg_class_t.
3615         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
3616         Update prototype.
3617         (ira_allocate_and_set_costs): Change aclass argument type form
3618         'enum reg_class' to reg_class_t.
3619         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
3620         Change aclass argument type to reg_class_t.
3621         (update_conflict_hard_reg_costs): Change type aclass and pref vars
3622         to reg_class_t.
3623         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
3624         memory_move_cost call.
3625
3626         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
3627         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
3628         Change type tmp var to reg_class_t.
3629
3630 2011-04-30  Jan Hubicka  <jh@suse.cz>
3631
3632         * ipa-inline.c (can_inline_edge_p): Disregard limits when
3633         inlining into function with flatten attribute.
3634         (want_inline_small_function_p): Be more realistic about inlining
3635         cold calls where callee size grows.
3636
3637 2011-04-30  Jan Hubicka  <jh@suse.cz>
3638
3639         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3640         flags.
3641
3642 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
3643
3644         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3645         PRINT_OPERAND_PUNCT_VALID_P): Remove.
3646         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3647         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3648         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3649         (print_operand): Rename to...
3650         (sparc_print_operand): ...this. Make static. Adjust
3651         sparc_print_operand function call.
3652         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3653         functions.
3654
3655 2011-04-30  Jan Hubicka  <jh@suse.cz>
3656
3657         PR middle-end/48752
3658         * ipa-inline.c (early_inliner): Disable when doing late
3659         addition of function.
3660
3661 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
3662
3663         * dwarf2out.c (get_address_mode): New inline.
3664         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3665         if not dwarf_strict emit
3666         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3667         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3668         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
3669         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3670         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3671         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3672         mem_loc_descriptor callers.
3673         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3674         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3675         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3676         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3677         (base_types): New variable.
3678         (get_base_type_offset, calc_base_type_die_sizes,
3679         base_type_for_mode, mark_base_types, base_type_cmp,
3680         move_marked_base_types): New functions.
3681         (calc_die_sizes): Assert that die_offset is 0 or equal to
3682         next_die_offset.
3683         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3684         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
3685         callers.  If not dwarf_strict, call mem_loc_descriptor even for
3686         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3687         (gen_subprogram_die): Don't give up on call site parameters
3688         with non-integral or large integral modes.  Adjust
3689         mem_loc_descriptor callers.
3690         (prune_unused_types): Call prune_unused_types_mark on base_types
3691         vector entries.
3692         (resolve_addr): Call mark_base_types.
3693         (dwarf2out_finish): Call move_marked_base_types.
3694
3695         PR tree-optimization/48809
3696         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3697         type.
3698         (gen_inbound_check): Don't compute index_expr - range_min in utype
3699         again, instead reuse SSA_NAME initialized in build_arrays.
3700         Remove two useless gsi_for_stmt calls.
3701
3702 2011-04-29  Jeff Law  <law@redhat.com>
3703
3704         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3705
3706 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3707
3708         * cgraph.h (cgraph_postorder): Remove declaration.
3709         * ipa-utils.h (ipa_free_postorder_info): Declare.
3710         (ipa_reverse_postorder): Likewise.
3711         * cgraphunit.c: Include ipa-utils.h.
3712         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3713         * ipa-inline.c: Include ipa-utils.h.
3714         (ipa_inline): Update call to ipa_reverse_postorder.
3715         * ipa-pure-const.c (propagate_pure_const): Update call to
3716         ipa_reduced_postorder and ipa_print_order.  Call
3717         ipa_free_postorder_info to clean up.
3718         (propagate_nothrow): Likewise.
3719         * ipa-reference.c (propagate): Removed a useless call to
3720         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3721         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
3722         * ipa.c: Include ipa-utils.h.
3723         (ipa_profile): Update call to ipa_reverse_postorder.
3724         (cgraph_postorder): Moved to...
3725         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3726         (ipa_utils_print_order): Renamed to ipa_print_order.
3727         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3728         comments.
3729         (ipa_free_postorder_info): New function.
3730         * passes.c: Include ipa-utils.h.
3731         (do_per_function_toporder): Update call to ipa_reverse_postorder.
3732         (ipa_write_summaries): Likewise.
3733         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3734         (cgraphunit.o): Likewise.
3735         (ipa.o): Likewise.
3736         (ipa-inline.o): Likewise.
3737
3738 2011-04-29  Jan Hubicka  <jh@suse.cz>
3739
3740         * gcc.dg/tree-ssa/inline-10.c: New testcase.
3741         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3742         * ipa-inline.h (clause_t): Turn into unsigned int.
3743         * ipa-inline-analysis.c (add_clause): Do more simplification.
3744         (and_predicates): Shortcut more cases.
3745         (predicates_equal_p): Move forward; check that clauses are properly
3746         ordered.
3747         (or_predicates): Shortcut more cases.
3748         (edge_execution_predicate): Rewrite as...
3749         (set_cond_stmt_execution_predicate): ... this function; handle
3750         __builtin_constant_p.
3751         (set_switch_stmt_execution_predicate): New .
3752         (compute_bb_predicates): New.
3753         (will_be_nonconstant_predicate): Update TODO.
3754         (estimate_function_body_sizes): Use compute_bb_predicates
3755         and free them later, always try to estimate if stmt is constant.
3756         (estimate_time_after_inlining, estimate_size_after_inlining):
3757         Gracefully handle optimized out edges.
3758         (read_predicate): Fix off by one error.
3759
3760 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
3761
3762         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3763
3764 2011-04-27  Xinliang David Li  <davidxl@google.com>
3765
3766         * tree-profile.c (init_ic_make_global_vars): Set
3767         tls attribute on ic vars.
3768         * coverage.c (coverage_end_function): Initialize
3769         function_list with zero.
3770
3771 2011-04-29  Richard Guenther  <rguenther@suse.de>
3772
3773         * builtins.c (fold_builtin_classify_type): Use integer_type_node
3774         for the type of the result.
3775         (fold_builtin_isascii): Likewise.
3776         (fold_builtin_toascii): Use integer_type_node where appropriate.
3777         (fold_builtin_logb): Likewise.
3778         (fold_builtin_frexp): Likewise.
3779         (fold_builtin_strstr): Likewise.
3780         (fold_builtin_strpbrk): Likewise.
3781         (fold_builtin_fputs): Likewise.
3782         (fold_builtin_sprintf): Likewise.
3783         (fold_builtin_snprintf): Likewise.
3784         (fold_builtin_printf): Likewise.
3785         (do_mpfr_remquo): Use a proper type for the assigned constant.
3786         (do_mpfr_lgamma_r): Likewise.
3787         * dwarf2out.c (resolve_one_addr): Use size_int.
3788         * except.c (init_eh): Likewise.
3789         (assign_filter_values): Use integer_type_node for filter values.
3790         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3791         indices.
3792         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3793         for EH region numbers.
3794         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3795         for the shift amount.
3796
3797 2011-04-29  Richard Guenther  <rguenther@suse.de>
3798
3799         * expr.h (expand_shift): Rename to ...
3800         (expand_variable_shift): ... this.
3801         (expand_shift): Take a constant shift amount.
3802         * expmed.c (expand_shift): Rename to ...
3803         (expand_variable_shift): ... this.
3804         (expand_shift): New wrapper around expand_variable_shift.
3805         * expr.c (convert_move, emit_group_load_1, emit_group_store,
3806         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3807         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3808         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3809         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3810         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3811         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3812         emit_store_flag_1, emit_store_flag): Likewise.
3813         * builtins.c (expand_builtin_signbit): Likewise.
3814         * calls.c (load_register_parameters): Likewise.
3815         * function.c (assign_parm_setup_block): Likewise.
3816         * lower-subreg.c (resolve_shift_zext): Likewise.
3817         * optabs.c (widen_bswap, expand_abs_nojump,
3818         expand_one_cmpl_abs_nojump, expand_float): Likewise.
3819         * spu/spu.c (spu_expand_extv): Likewise.
3820         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3821
3822 2011-04-29  Richard Guenther  <rguenther@suse.de>
3823
3824         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3825         for the remapped region number.
3826         * predict.c (build_predict_expr): Use integer_type_node for the
3827         predict kind.
3828         * fold-const.c (fold_binary_loc): Use integer_type_node for
3829         the shift amount.  Use a proper type for the PLUS_EXPR operand.
3830
3831 2011-04-29  Michael Matz  <matz@suse.de>
3832
3833         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3834         other trees that just builtins.
3835         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3836
3837 2011-04-29  Richard Guenther  <rguenther@suse.de>
3838
3839         * tree-nested.c (get_trampoline_type): Use size_int.
3840         (get_nl_goto_field): Likewise.
3841         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3842         for all indexes.
3843         (lower_eh_constructs_2): Likewise.
3844         (lower_resx): Likewise.
3845         (lower_eh_dispatch): Likewise.
3846         * tree-mudflap.c (mf_build_string): Use size_int.
3847         (mudflap_register_call): Use integer_type_node for the flag.
3848         (mudflap_enqueue_constant): Use size_int.
3849         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3850         instead of rebuilding it.
3851
3852 2011-04-29  Richard Guenther  <rguenther@suse.de>
3853
3854         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3855         Handle OBJ_TYPE_REF.
3856         (find_func_aliases_for_call): Use it more consistently.
3857
3858 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
3859
3860         * haifa-sched.c (last_nondebug_scheduled_insn): New.
3861         (rank_for_schedule): Use it.
3862         (schedule_block): Set it.
3863
3864 2011-04-28  David Li  <davidxl@google.com>
3865
3866         * tree.c (crc32_string): Use crc32_byte.
3867         (crc32_byte): New function.
3868         * tree.h (crc32_byte): New function.
3869         * gcov.c (read_graph_file): Handle new cfg_cksum.
3870         (read_count_file): Ditto.
3871         * profile.c (instrument_values): Ditto.
3872         (get_exec_counts): Ditto.
3873         (read_profile_edge_counts): Ditto.
3874         (compute_branch_probabilities): Ditto.
3875         (compute_value_histograms): Ditto.
3876         (branch_prob): Ditto.
3877         (end_branch_prob): Ditto.
3878         * coverage.c (read_counts_file): Ditto.
3879         (get_coverage_counts): Ditto.
3880         (tree_coverage_counter_addr): Ditto.
3881         (coverage_checksum_string): Ditto.
3882         (coverage_begin_output): Ditto.
3883         (coverage_end_function): Ditto.
3884         (build_fn_info_type): Ditto.
3885         (build_fn_info_value): Ditto.
3886         * libgcov.c (gcov_exit): Ditto.
3887         * gcov-dump.c (tag_function): Ditto.
3888         (compute_checksum): Remove.
3889
3890 2011-04-29  Alan Modra  <amodra@gmail.com>
3891
3892         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3893         unspec plus offset.  Tidy macho code.
3894
3895 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3896
3897         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3898         node instead of a decl.  Update all callers.
3899         * cgraph.h: Update declaration.
3900
3901 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
3902
3903         PR tree-optimization/48765
3904         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3905         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3906         to indicate if loop aware SLP is being used.  Scan the statements
3907         and update the vectorization factor according to the type of
3908         vectorization before statement analysis.
3909         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3910         pass it to vect_analyze_loop_operations.
3911         (vectorizable_reduction): Set number of copies to 1 in case of pure
3912         SLP statement.
3913         * tree-vect-stmts.c (vectorizable_conversion,
3914         vectorizable_assignment, vectorizable_shift,
3915         vectorizable_operation, vectorizable_type_demotion,
3916         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3917         Likewise.
3918         (vectorizable_condition): Move the check that it is not SLP
3919         vectorization before the number of copies check.
3920         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3921         to vectorize the loop using SLP.
3922
3923 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
3924
3925         PR middle-end/48597
3926         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3927         inline asm.
3928
3929 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
3930
3931         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3932         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3933         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3934         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3935         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3936         linux*.h headers.
3937         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
3938         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3939         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3940         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3941         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3942         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3943         REG_NAME.
3944         * config/i386/linux.h (REG_NAME): Don't define.
3945         * config/i386/linux64.h (REG_NAME): Don't define.
3946         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3947         Undefine before defining.
3948
3949 2011-04-28  Jan Hubicka  <jh@suse.cz>
3950
3951         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3952         nonconstant_names array.
3953         (estimate_function_body_sizes): Build nonconstant_names array; handle
3954         BUILT_IN_CONSTANT_P.
3955
3956 2011-04-28  Richard Guenther  <rguenther@suse.de>
3957
3958         PR bootstrap/48804
3959         Revert
3960         2011-04-28  Richard Guenther  <rguenther@suse.de>
3961
3962         * tree-ssa-structalias.c (solve_constraints): Build succ graph
3963         as late as possible.
3964
3965 2011-04-28  Richard Guenther  <rguenther@suse.de>
3966
3967         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3968         (debug_constraint): Do it here.
3969         (dump_constraints): And here.
3970         (rewrite_constraints): And here.
3971         (dump_constraint_edge): Remove.
3972         (dump_constraint_graph): Rewrite to produce DOT output.
3973         (solve_constraints): Build succ graph as late as possible.
3974         Dump constraint graphs before and after solving.
3975
3976 2011-04-28  Richard Guenther  <rguenther@suse.de>
3977
3978         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3979         New function split out from ...
3980         (find_func_aliases): ... here.  Call it.
3981         (find_func_aliases_for_call): Likewise.
3982
3983 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3984
3985         * internal-fn.h (internal_fn_name_array): Declare.
3986         (internal_fn_flags_array): Likewise.
3987
3988 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3989
3990         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
3991         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3992         Move from sse.md.
3993         (ssemodefsuffix): Remove.
3994         (ssevecmodesuffix): New mode attribute.
3995         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3996         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3997         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3998         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3999         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
4000         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
4001         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
4002         ssemodesuffix mode attribute.
4003         (float splitters): Use ssevecmodesuffix mode attribute.
4004         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
4005         (sseinsmode): Rename from avxvecmode.
4006         (avxsizesuffix): Rename from avxmodesuffix.
4007         (sseintvecmode): Rename from avxpermvecmode.
4008         (ssedoublevecmode): Rename from ssedoublesizemode.
4009         (ssehalfvecmode): Rename from avxhalfvecmode.
4010         (ssescalarmode): Rename from avxscalarmode.
4011         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
4012         templates for ssemodesuffix mode attribute.
4013         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
4014         mode attribute.
4015
4016         Adjust RTX patterns globally for renamed mode attributes.
4017
4018 2011-04-27  Jan Hubcika  <jh@suse.cz>
4019
4020         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
4021         * ipa-inline-analysis.c: Include alloc-pool.h.
4022         (edge_predicate_pool): New.
4023         (trye_predicate_p): New function
4024         (false_predicate_p): New function.
4025         (add_clause): Sanity check that false clauses are "optimized";
4026         never add clauses to predicate that is already known to be false.
4027         (and_predicate): Use flase_predicate_p.
4028         (evaulate_predicate): Rename to ...
4029         (evaluate_predicate): ... this one; update all callers; assert
4030         that false is not listed among possible truths.
4031         (dump_predicate): Use true_predicate_p.
4032         (account_size_time): Use false_predicate_p.
4033         (evaulate_conditions_for_edge): Rename to ...
4034         (evaluate_conditions_for_edge) ... this one.
4035         (edge_set_predicate): New function.
4036         (inline_edge_duplication_hook): Duplicate edge predicates.
4037         (inline_edge_removal_hook): Free edge predicates.
4038         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
4039         (dump_inline_summary): Update.
4040         (estimate_function_body_sizes): Set edge predicates.
4041         (estimate_calls_size_and_time): Handle predicates.
4042         (estimate_callee_size_and_time): Update.
4043         (remap_predicate): Add toplev_predicate; update comment.
4044         (remap_edge_predicates): New function.
4045         (inline_merge_summary): Compute toplev predicate; update.
4046         (read_predicate): New function.
4047         (read_inline_edge_summary): Use it.
4048         (inline_read_section): Likewise.
4049         (write_predicate): New function.
4050         (write_inline_edge_summary): Use it.
4051         (inline_write_summary): Likewise.
4052         (inline_free_summary): Free alloc pool and edge summary vec.
4053
4054 2011-04-27  Richard Guenther  <rguenther@suse.de>
4055
4056         * tree-ssa-structalias.c (changed_count): Remove.
4057         (changed): Use a bitmap.
4058         (unify_nodes): Adjust.
4059         (do_sd_constraint): Likewise.
4060         (do_ds_constraint): Likewise.
4061         (do_complex_constraint): Likewise.
4062         (solve_graph): Likewise.
4063
4064 2011-04-27  Jan Hubicka  <jh@suse.cz>
4065
4066         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4067
4068 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
4069
4070         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4071         (avx_vperm2f128_*_operand): Ditto.
4072         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4073         Use avx_vpermilp_parallel in insn condition.
4074         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4075         Use avx_vperm2f128_parallel in insn condition.
4076
4077 2011-04-27  Richard Guenther  <rguenther@suse.de>
4078
4079         * Makefile.in (tree-ssa-structalias.o): Remove
4080         gt-tree-ssa-structalias.h dependency.
4081         (GTFILES): Remove tree-ssa-structalias.c.
4082         * tree.c (allocate_decl_uid): New function.
4083         (make_node_stat): Use it.
4084         (copy_node_stat): Likewise.
4085         * tree.h (allocate_decl_uid): Declare.
4086         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4087         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4088         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4089         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
4090         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4091         (struct heapvar_map): Likewise.
4092         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4093         heapvar_insert): Likewise.
4094         (make_heapvar_for): Rename to ...
4095         (make_heapvar): ... this.  Simplify.
4096         (fake_var_decl_obstack): New global var.
4097         (build_fake_var_decl): New function.
4098         (make_constraint_from_heapvar): Adjust.
4099         (handle_lhs_call): Likewise.
4100         (create_function_info_for): Likewise.
4101         (intra_create_variable_infos): Likewise.
4102         (init_alias_vars): Allocate fake_var_decl_obstack.
4103         (init_alias_heapvars, delete_alias_heapvars): Remove.
4104         (compute_points_to_sets): Do not call init_alias_heapvars.
4105         (ipa_pta_execute): Likewise.
4106         (delete_points_to_sets): Free fake_var_decl_obstack.
4107
4108 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4109
4110         * config/spu/divmovti4.c (union qword_UTItype): New data type.
4111         (si_from_UTItype, si_to_UTItype): New functions.
4112         (__udivmodti4): Use them to implement type-punning.
4113         * config/spu/multi3.c (union qword_TItype): New data type.
4114         (si_from_TItype, si_to_TItype): New functions.
4115         (__multi3): Use them to implement type-punning.
4116
4117 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4118
4119         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4120
4121 2011-04-27  Jan Hubicka  <jh@suse.cz>
4122
4123         * ipa-prop.c (function_insertion_hook_holder): New holder.
4124         (ipa_add_new_function): New function.
4125         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4126         Register/deregister holder.
4127
4128 2011-04-27  Richard Guenther  <rguenther@suse.de>
4129
4130         PR tree-optimization/48772
4131         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
4132
4133 2011-04-27  Richard Guenther  <rguenther@suse.de>
4134
4135         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4136         TARGET_MEM_REF handling.
4137
4138 2011-04-27  Nick Clifton  <nickc@redhat.com>
4139
4140         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4141         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4142         (REG_CLASS_NAMES): Likewise.
4143         (REG_CLASS_CONTENTS): Likewise.
4144         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4145         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
4146         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
4147         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
4148         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
4149         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4150         duplicate register classes.
4151         (frv_class_likely_spilled_p): Likewise.
4152         (frv_register_move_cost): Likewise.
4153
4154         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4155         end of the regno_reg_class array.
4156
4157 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
4158
4159         PR c/48742
4160         * c-typeck.c (build_binary_op): Don't wrap arguments if
4161         int_operands is true.
4162
4163 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
4164
4165         PR target/48767
4166         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4167         targetm.calls.must_pass_in_stack for void type.
4168
4169 2011-04-26  Jan Hubicka  <jh@suse.cz>
4170
4171         * cgraphbuild.c (build_cgraph_edges): Update call
4172         of cgraph_create_edge and cgraph_create_indirect_edge.
4173         * cgraph.c (cgraph_create_edge_including_clones,
4174         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4175         cgraph_update_edges_for_call_stmt_node): Do not take nest
4176         argument; do not initialize call_stmt_size/time.
4177         (dump_cgraph_node): Do not dump nest.
4178         (cgraph_clone_edge): Do not take loop_nest argument;
4179         do not propagate it; do not clone call_stmt_size/time.
4180         (cgraph_clone_node): Likewise.
4181         (cgraph_create_virtual_clone): Update.
4182         * cgraph.h (struct cgraph_edge): Remove
4183         call_stmt_size/call_stmt_time/loop_nest.
4184         (cgraph_create_edge, cgraph_create_indirect_edge,
4185         cgraph_create_edge_including_clones, cgraph_clone_node): Update
4186         prototype.
4187         * tree-emutls.c (gen_emutls_addr): Update.
4188         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4189         loop_nest; handle indirect calls, too.
4190         (clone_inlined_nodes): Do not care about updating inline summaries.
4191         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4192         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4193         stream call_stmt_size/call_stmt_time/loop_nest.
4194         * ipa-inline.c (edge_badness): Update.
4195         (ipa_inline): dump summaries after inlining.
4196         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4197         New.
4198         (inline_edge_summary): New function.
4199         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4200         (inline_edge_removal_hook): Handle edge summaries.
4201         (inline_edge_duplication_hook): New hook.
4202         (inline_summary_alloc): Alloc hooks.
4203         (initialize_growth_caches): Do not register removal hooks.
4204         (free_growth_caches); Do not free removal hook.
4205         (dump_inline_edge_summary): New function.
4206         (dump_inline_summary): Use it.
4207         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4208         (inline_update_callee_summaries): New function.
4209         (inline_merge_summary): Use it.
4210         (do_estimate_edge_time, do_estimate_edge_growth): Update.
4211         (read_inline_edge_summary): New function.
4212         (inline_read_section): Use it.
4213         (write_inline_edge_summary): New function.
4214         (inline_write_summary): Use it.
4215         (inline_free_summary): Free edge new holders.
4216         * tree-inline.c (copy_bb): Update.
4217
4218 2011-04-26  Jason Merrill  <jason@redhat.com>
4219
4220         * tree-eh.c (lower_try_finally_switch): Create the label along with
4221         the CASE_LABEL_EXPR.
4222
4223 2011-04-26  David S. Miller  <davem@davemloft.net>
4224             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4225
4226         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4227         * configure: Regenerate.
4228
4229 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4230
4231         PR target/48258
4232         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4233         reduction.
4234         (VEC_reduc): New code iterator and splitters for vector reduction.
4235         (VEC_reduc_name): Ditto.
4236         (VEC_reduc_rtx): Ditto.
4237         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4238         (reduc_<VEC_reduc_name>_v4sf): Ditto.
4239
4240         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4241         support for extracting SF on VSX.
4242
4243         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4244         generating xscvspdp.
4245         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4246         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4247         double add, minimum, maximum vector reduction.
4248         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4249         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4250         optimize double vector reduction.
4251         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4252
4253 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
4254
4255         * config/fr30/fr30.h (inhibit_libc): Don't define.
4256         * config/m32r/m32r-protos.h: Correct comment.
4257         * config/v850/v850.h (GHS_default_section_names,
4258         GHS_current_section_names): Use tree, not union tree_node *.
4259
4260 2011-04-26  Xinliang David Li  <davidxl@google.com>
4261
4262         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
4263         * c-family/c-opts.c (c_common_handle_option): Set
4264         warn_maybe_uninitialized.
4265         * opts.c (common_handle_option): Ditto.
4266         * common.opt:  New option.
4267         * tree-ssa.c (warn_uninit): Add one more parameter.
4268         (warn_uninitialized_var): Pass warning code.
4269         * tree-flow.h: Interface change.
4270
4271
4272 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4273
4274         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
4275         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
4276         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
4277
4278 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4279
4280         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
4281         * config/mips/mips.opt (mmips-tfile): Remove.
4282
4283         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
4284         mips-tdump reference to ...
4285         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
4286         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
4287         reference by Tru64 UNIX.
4288
4289 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
4290
4291         PR debug/48768
4292         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
4293         is error_mark_node, set value to NULL.
4294
4295         PR tree-optimization/48734
4296         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
4297         if return value from maybe_fold_*_comparsions isn't something
4298         the code is prepared to handle.
4299
4300 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
4301
4302         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
4303         mode check.
4304         (ext_QIreg_nomode_operands): Remove.
4305         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
4306         (*andsi_1): Ditto.
4307         (*andhi_1): Ditto.
4308
4309 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
4310
4311         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
4312
4313 2011-04-26  Richard Guenther  <rguenther@suse.de>
4314
4315         * c-typeck.c (build_unary_op): Do not expand array-refs via
4316         pointer arithmetic.  Only adjust qualifiers for function types.
4317
4318 2011-04-26  Richard Guenther  <rguenther@suse.de>
4319
4320         PR middle-end/48694
4321         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
4322         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
4323         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
4324         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
4325
4326 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
4327
4328         * doc/extend.texi: Document __underlying_type.
4329
4330 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
4331
4332         * config/rs6000/titan.md (automata_option "progress"): Remove.
4333
4334 2011-04-25  Jeff Law  <law@redhat.com>
4335
4336         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
4337
4338 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
4339
4340         * system.h (ENUM_BITFIELD): Remove.
4341
4342 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
4343             Eric Botcazou  <ebotcazou@adacore.com>
4344
4345         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
4346         for STORE_FLAG_VALUE==-1 case.
4347
4348 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
4349
4350         PR target/43804
4351         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
4352         LEGITIMATE_PIC_OPERAND_P.
4353
4354 2011-04-24  Jan Hubicka  <jh@suse.cz>
4355
4356         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
4357         WPA hack.
4358         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
4359         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
4360         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
4361         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
4362         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
4363         Sanity check predicate length.
4364         (remap_predicate): Likewise; sanity check jump functions.
4365         (inline_read_section, inline_write_summary): Sanity check
4366         predicate length.
4367
4368 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
4369
4370         PR other/48748
4371         * doc/extend.texi (Type Traits): Document __is_standard_layout,
4372         __is_literal_type, and __is_trivial; update throughout about
4373         possibly cv-qualified void types.
4374
4375 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4376
4377         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
4378         testsuite and make it version agnostic.
4379
4380 2011-04-22  Jan Hubicka  <jh@suse.cz>
4381
4382         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
4383
4384 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
4385
4386         PR c/48685
4387         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
4388         to VOID_TYPE even around MODIFY_EXPR.
4389
4390 2011-04-22  Mike Stump  <mikestump@comcast.net>
4391
4392         * gensupport.c (read_md_rtx): Fix typo in comment.
4393         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
4394         comment.
4395
4396 2011-04-22  Jan Hubicka  <jh@suse.cz>
4397
4398         * gengtype.c (open_base_files): Add ipa-inline.h include.
4399         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
4400         ipa-prop.c; update all uses.
4401         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
4402         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
4403         merge summary of inlined function into former caller.
4404         * ipa-inline.c (max_benefit): Remove.
4405         (edge_badness): Compensate for removal of benefits.
4406         (update_caller_keys): Use
4407         reset_node_growth_cache/reset_edge_growth_cache.
4408         (update_callee_keys): Likewise.
4409         (update_all_callee_keys): Likewise.
4410         (inline_small_functions): Do not collect max_benefit; do not reset
4411         estimated_growth; call free_growth_caches and initialize_growth_caches.
4412         * ipa-inline.h (struct condition, type clause_t, struct predicate,
4413         struct size_time_entry): New structures.
4414         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
4415         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
4416         and estimated_growth.
4417         (edge_growth_cache_entry): New structure.
4418         (node_growth_cache, edge_growth_cache): New global vars.
4419         (estimate_growth): Turn into inline.
4420         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
4421         initialize_growth_caches, free_growth_caches): Declare.
4422         (estimate_edge_growth): Rewrite.
4423         (estimate_edge_time): Implement as inline cache lookup.
4424         (reset_node_growth_cache, reset_edge_growth_cache): New inline
4425         functions.
4426         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
4427         (NUM_CONDITIONS): New constant.
4428         (predicate_conditions): New enum.
4429         (IS_NOT_CONSTANT): New constant.
4430         (edge_removal_hook_holder): New var.
4431         (node_growth_cache, edge_growth_cache): New global vars.
4432         (true_predicate, single_cond_predicate, false_predicate,
4433         not_inlined_predicate, add_condition, add_clause, and_predicates,
4434         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
4435         dump_clause, dump_predicate, account_size_time,
4436         evaulate_conditions_for_edge): New functions.
4437         (inline_summary_alloc): Move to heap.
4438         (inline_node_removal_hook): Clear condition and entry vectors.
4439         (inline_edge_removal_hook): New function.
4440         (initialize_growth_caches, free_growth_caches): New function.
4441         (dump_inline_summary): Update.
4442         (edge_execution_predicate): New function.
4443         (will_be_nonconstant_predicate): New function.
4444         (estimate_function_body_sizes): Compute BB and constantness predicates.
4445         (compute_inline_parameters): Do not clear estimated_growth.
4446         (estimate_edge_size_and_time): New function.
4447         (estimate_calls_size_and_time): New function.
4448         (estimate_callee_size_and_time): New function.
4449         (remap_predicate): New function.
4450         (inline_merge_summary): New function.
4451         (do_estimate_edge_time): New function based on...
4452         (estimate_edge_time): ... this one.
4453         (do_estimate_edge_growth): New function.
4454         (do_estimate_growth): New function based on....
4455         (estimate_growth): ... this one.
4456         (inline_analyze_function): Analyze after deciding on jump functions.
4457         (inline_read_section): New function.
4458         (inline_read_summary): Use it.
4459         (inline_write_summary): Write all the new data.
4460         * ipa-prop.c (ipa_get_param_decl_index): Export.
4461         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
4462         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
4463         Declare.
4464         (ipa_get_lattice): Move here from ipa-cp.c
4465         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
4466         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
4467         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
4468         cgraph_edge_inlinable_p): Remove.
4469         * cgraphunit.c: Include ipainline.h
4470         (cgraph_process_new_functions): Update call of
4471         compute_inline_parameters.
4472
4473 2011-04-22  Richard Guenther  <rguenther@suse.de>
4474
4475         * tree.c (build_int_cst): Properly create canonicalized integer
4476         constants.
4477         (build_int_cst_type): Remove scary comments.
4478
4479 2011-04-22  Xinliang David Li  <davidxl@google.com>
4480
4481         * toplev.c (process_options): Enable -Werror=coverage-mismatch
4482         by default when -Wno-error is not specified.
4483         * opts-global.c (decode_options): Remove call to
4484         control_warning_options.
4485
4486 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4487
4488         PR tree-optimization/48717
4489         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
4490         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
4491
4492 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
4493
4494         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
4495         definition where used.
4496
4497 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
4498
4499         PR c/48716
4500         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
4501         TREE_STATIC variables declared inside of some OpenMP construct.
4502
4503 2011-04-22  Martin Jambor  <mjambor@suse.cz>
4504
4505         PR middle-end/48585
4506         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
4507
4508 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
4509
4510         PR c/36750
4511         * c-typeck.c (pop_init_level): Do not warn about initializing
4512         with ` = {0}'.
4513
4514 2011-04-22  Alan Modra  <amodra@gmail.com>
4515
4516         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
4517         when returning call_cookie.
4518         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
4519         pointers, to functions with no more vector args than the current
4520         function, and some non-local calls for ABI_V4.
4521         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
4522         sibcall_nonlocal_aix64): Combine to ..
4523         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
4524         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
4525         (sibcall_value_nonlocal_aix<mode>): ..likewise.
4526         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
4527         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
4528         operand.
4529         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
4530         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
4531         sibcall_value_symbolic_64): Delete.
4532
4533 2011-04-21  Xinliang David Li  <davidxl@google.com>
4534
4535         * cgraph.h: Remove pid.
4536         * cgraph.c: Remove pid.
4537         * value-prof.c (init_node_map): New function.
4538         (del_node_map): New function.
4539         (find_func_by_funcdef_no): New function.
4540         (gimple_ic_transform): Call new function.
4541         * cgraphunit.c (cgraph_finalize_function): Remove pid.
4542         * function.c (get_last_funcdef_no): New function.
4543         * function.h (get_last_funcdef_no): New function.
4544         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
4545         to libgcov function.
4546         (tree-profiling): Call node map init and delete function.
4547
4548 2011-04-21  Ian Lance Taylor  <iant@google.com>
4549
4550         * godump.c (go_format_type): Use exported Go name for anonymous
4551         field name.
4552
4553 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4554
4555         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
4556         Call builtin_function_type_list instead of builtin_function_type.
4557         (UNARY, BINARY, TRINARY, QUAD): Likewise.
4558
4559 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4560
4561         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
4562         build_function_type_list instead of build_function_type.
4563         Delete variable `endlink'.
4564
4565 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4566
4567         * config/s390/s390.c (s390_init_builtins): Call
4568         build_function_type_list instead of build_function_type.
4569
4570 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
4571
4572         * config/ia64/ia64.c (ia64_init_builtins): Call
4573         build_function_type_list instead of builtin_function_type.
4574
4575 2011-04-21  Easwaran Raman  <eraman@google.com>
4576
4577         * cfgexpand.c (stack_var): Remove OFFSET...
4578         (add_stack_var): ...and its reference here...
4579         (expand_stack_vars): ...and here.
4580         (stack_var_cmp): Sort by descending order of size.
4581         (partition_stack_vars): Change heuristic.
4582         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
4583         (dump_stack_var_partition): Add newline after each partition.
4584
4585 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
4586             Jeff Law  <law@redhat.com>
4587
4588         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
4589         * gengtype.c (matching_file_name_substitute): Likewise.
4590
4591 2011-04-21  Richard Guenther  <rguenther@suse.de>
4592
4593         PR lto/48703
4594         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
4595
4596 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
4597
4598         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
4599
4600 2011-04-21  Richard Guenther  <rguenther@suse.de>
4601
4602         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
4603         file name.
4604
4605 2011-04-21  Richard Guenther  <rguenther@suse.de>
4606
4607         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4608         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
4609         Use DECL_P, not SSA_VAR_P.
4610         (ptr_derefs_may_alias_p): Likewise.
4611         (ptr_deref_may_alias_ref_p_1): Likewise.
4612         (decl_refs_may_alias_p): Likewise.
4613         (refs_may_alias_p_1): Likewise.
4614         (ref_maybe_used_by_call_p_1): Likewise.
4615         (call_may_clobber_ref_p_1): Likewise.
4616         (indirect_ref_may_alias_decl_p): Assume indirect refrences
4617         are either MEM_REF or TARGET_MEM_REF.
4618         (indirect_refs_may_alias_p): Likewise.
4619         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
4620         for MEM_EXPR of indirect calls.
4621
4622 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4623
4624         * vmsdbgout.c (write_srccorr): Compute file length from the string.
4625         (dst_file_info_struct): Remove flen field.
4626         (lookup_filename): Remove code that set flen field.
4627
4628 2011-04-21  Tristan Gingold  <gingold@adacore.com>
4629
4630         * config/ia64/ia64.c (ia64_start_function): Add a guard.
4631
4632 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
4633
4634         PR target/48708
4635         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
4636         vec_extract and vec_concat for non-SSE4_1 targets.
4637
4638 2011-04-21  Richard Guenther  <rguenther@suse.de>
4639
4640         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
4641         return statements.
4642
4643 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4644
4645         * config/i386/cygming.h (union tree_node, TREE): Don't define or
4646         undefine.
4647         (FILE): Don't undefine.
4648
4649 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
4650
4651         * config/alpha/alpha.c (struct machine_function): Use rtx, not
4652         struct rtx_def *.
4653         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4654         struct rtx_def *.
4655         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
4656         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
4657         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4658         rtx_def *.
4659         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
4660         definitions where used.
4661         * config/microblaze/microblaze.h (struct microblaze_args): Use
4662         rtx, not struct rtx_def *.
4663         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4664         rtx_def *.
4665         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4666         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
4667         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4668         not struct rtx_def *.
4669         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4670         struct rtx_def *.
4671         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4672         rtx_def *.
4673         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
4674
4675 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4676
4677         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4678         operand_equal_p to compare DR_BASE_ADDRESSes.
4679         (vect_check_interleaving): Likewise.
4680
4681 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4682
4683         PR target/46329
4684         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4685         for all Neon struct constants.
4686
4687 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4688
4689         * target.def (legitimate_constant_p): New hook.
4690         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4691         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4692         * doc/tm.texi: Regenerate.
4693         * hooks.h (hook_bool_mode_rtx_true): Declare.
4694         * hooks.c (hook_bool_mode_rtx_true): Define.
4695         * system.h (LEGITIMATE_CONSTANT_P): Poison.
4696         * calls.c (precompute_register_parameters): Replace uses of
4697         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4698         (emit_library_call_value_1): Likewise.
4699         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4700         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4701         * ira-costs.c (scan_one_insn): Likewise.
4702         * recog.c (general_operand, immediate_operand): Likewise.
4703         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4704         * reload1.c (init_eliminable_invariants): Likewise.
4705
4706         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4707         mode argument.
4708         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4709         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4710         argument.
4711         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4712         * config/alpha/predicates.md (input_operand): Update call to
4713         alpha_legitimate_constant_p.
4714
4715         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4716         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4717         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4718         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4719         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4720         (arm_legitimate_constant_p): New functions.
4721         (arm_cannot_force_const_mem): Make static.
4722
4723         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4724
4725         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4726         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4727         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4728         instead of bfin_legitimate_constant_p.
4729         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
4730         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4731
4732         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4733
4734         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4735
4736         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4737         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4738         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4739         (frv_legitimate_constant_p): Make static.  Add a mode argument.
4740
4741         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4742         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4743         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4744
4745         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4746         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4747         * config/i386/i386.c (legitimate_constant_p): Rename to...
4748         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
4749         argument.
4750         (ix86_cannot_force_const_mem): Update accordingly.
4751         (ix86_legitimate_address_p): Likewise.
4752         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4753         * config/i386/i386.md: Update commentary.
4754
4755         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4756         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4757         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4758         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
4759
4760         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4761
4762         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4763         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4764         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4765         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
4766
4767         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4768         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4769         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4770
4771         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
4772         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4773         (m32r_legitimate_constant_p): New function.
4774
4775         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
4776         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
4777         LEGITIMATE_CONSTANT_P.
4778         (LEGITIMATE_CONSTANT_P): Delete.
4779         * config/m68k/m68k.c (m68k_expand_prologue): Call
4780         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
4781         (m68k_legitimate_constant_p): New function.
4782         * config/m68k/m68k.md: Update comments.
4783
4784         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
4785         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4786         (mcore_legitimate_constant_p): New function.
4787
4788         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
4789         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
4790         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
4791         Add a mode argument.
4792         (mep_legitimate_address): Update accordingly.
4793         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4794
4795         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
4796         Delete.
4797         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
4798         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
4799         static.  Check OP's mode for VOIDmode.
4800         (microblaze_legitimate_constant_p): New function.
4801         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4802
4803         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
4804         * config/mips/mips.c (mips_legitimate_constant_p): New function.
4805         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
4806         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4807         * config/mips/predicates.md: Update comments.
4808
4809         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
4810         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
4811         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4812         (mmix_legitimate_constant_p): Make static, return a bool, and take
4813         a mode argument.
4814         (mmix_print_operand_address): Update accordingly.
4815
4816         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
4817         Delete.
4818         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
4819         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
4820         static.  Add a mode argument.
4821         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4822
4823         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
4824
4825         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
4826         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4827         (pa_legitimate_constant_p): New function.
4828
4829         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
4830
4831         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
4832         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4833         (pdp11_legitimate_constant_p): New function.
4834
4835         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
4836         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4837         (rs6000_legitimate_constant_p): New function.
4838
4839         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
4840         (rx_legitimate_constant_p): ...this.
4841         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
4842         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
4843         (rx_legitimate_constant_p): ...this.
4844         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4845         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
4846
4847         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
4848         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
4849         * config/s390/s390.c (legitimate_constant_p): Rename to...
4850         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
4851         and add a mode argument.
4852         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4853
4854         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
4855
4856         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
4857         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4858         (sh_legitimate_constant_p): New function.
4859
4860         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
4861         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
4862         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4863         (legitimate_constant_p): Rename to...
4864         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
4865         argument.
4866         (constant_address_p): Update accordingly.
4867
4868         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
4869         argument and return a bool.
4870         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
4871         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4872         (spu_legitimate_constant_p): Add a mode argument and return a bool.
4873         (spu_rtx_costs): Update accordingly.
4874         * config/spu/predicates.md (vec_imm_operand): Likewise.
4875
4876         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
4877
4878         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
4879         * config/v850/v850.c (v850_legitimate_constant_p): New function.
4880         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4881
4882         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4883         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4884         * config/vax/vax.c (legitimate_constant_p): Likewise.
4885
4886         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4887         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4888         (xtensa_legitimate_constant_p): New function.
4889
4890 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4891
4892         * target.def (cannot_force_const_mem): Add a mode argument.
4893         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4894         * doc/tm.texi: Regenerate.
4895         * hooks.h (hook_bool_mode_rtx_false): Declare.
4896         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4897         (hook_bool_mode_const_rtx_true): Likewise.
4898         (hook_bool_mode_rtx_false): New function.
4899         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4900         to be non-VOID.  Update call to cannot_force_const_mem.
4901         (find_reloads): Update accordingly.
4902         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4903         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4904         argument.
4905         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4906         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4907         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4908         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4909         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4910         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4911         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4912         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4913         (m68k_cannot_force_const_mem): ...this new function.
4914         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4915         argument.
4916         (mips_const_insns, mips_legitimize_const_move): Update calls.
4917         (mips_secondary_reload_class): Likewise.
4918         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4919         (pa_cannot_force_const_mem): ...this new function.
4920         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
4921         (rs6000_cannot_force_const_mem): ...this new function.
4922         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4923         argument.
4924         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4925         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4926         to...
4927         (xtensa_cannot_force_const_mem): ...this new function.
4928
4929 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4930
4931         * config/mips/mips.c (mips16_build_function_stub): Call
4932         build_function_type_list instead of build_function_type.
4933         (mips16_build_call_stub): Likewise.
4934
4935 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4936
4937         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4938         instead of build_function_type.
4939
4940 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4941
4942         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4943         instead of build_function_type.
4944
4945 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
4946
4947         PR target/48678
4948         * config/i386/i386.md (insv): Change operand 0 constraint to
4949         "register_operand".  Change operand 1 and 2 constraint to
4950         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
4951         * config/i386/sse.md (sse4_1_pinsrb): Export.
4952         (sse2_pinsrw): Ditto.
4953         (sse4_1_pinsrd): Ditto.
4954         (sse4_1_pinsrq): Ditto.
4955         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4956         * config/i386/i386.c (ix86_expand_pinsr): New.
4957
4958 2011-04-20  Easwaran Raman  <eraman@google.com>
4959
4960         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4961         containing union type only with -fstrict-aliasing.
4962
4963 2011-04-20  Jim Meyering  <meyering@redhat.com>
4964
4965         Remove useless if-before-free tests.
4966         * calls.c (expand_call, save_area): Likewise.
4967         * cfgcleanup.c (try_forward_edges): Likewise.
4968         * collect2.c (collect_execute): Likewise.
4969         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4970         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4971         * coverage.c (coverage_checksum_string): Likewise.
4972         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4973         * cselib.c (cselib_init): Likewise.
4974         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4975         (df_set_clean_cfg): Likewise.
4976         * function.c (free_after_compilation): Likewise.
4977         * gcc.c (do_spec_1, main): Likewise.
4978         * gcov.c (create_file_names): Likewise.
4979         * gensupport.c (identify_predicable_attribute): Likewise.
4980         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4981         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4982         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4983         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4984         * ipa-pure-const.c (local_pure_const): Likewise.
4985         * ipa-reference.c (propagate): Likewise.
4986         * ira-costs.c (free_ira_costs): Likewise.
4987         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4988         * matrix-reorg.c (mat_free): Likewise.
4989         * prefix.c (get_key_value): Likewise.
4990         * profile.c (compute_value_histograms): Likewise.
4991         * reload1.c (free_reg_equiv): Likewise.
4992         * sched-deps.c (free_deps): Likewise.
4993         * sel-sched-ir.c (fence_clear): Likewise.
4994         * sese.c (set_rename, if_region_set_false_region): Likewise.
4995         * tree-data-ref.c (free_rdg): Likewise.
4996         * tree-eh.c (lower_try_finally): Likewise.
4997         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4998         * tree-ssa-live.c (delete_var_map): Likewise.
4999         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
5000         * tree-ssa-pre.c (phi_trans_add): Likewise.
5001
5002 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
5003
5004         PR tree-optimization/48611
5005         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
5006         beyond ERT_MUST_NOT_THROW region.
5007
5008 2011-04-20  Catherine Moore  <clm@codesourcery.com>
5009
5010         * config/mips/mips.opt (mfix-24k): New.
5011         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
5012         * config/mips/mips.md (length): Increase by 4 for stores if
5013         fixing 24K errata.
5014         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
5015         all noreorder if fixing 24K errata.
5016         * doc/invoke.texi: Document mfix-24k.
5017
5018 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
5019
5020         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
5021         quad-word modes, reduce to 9-bit index range when above 1016 limit.
5022
5023 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5024
5025         * config/arm/arm.c (arm_gen_constant): Move movw support ....
5026         (const_ok_for_op): ... to here.
5027
5028 2011-04-20  Kai Tietz  <ktietz@redhat.com>
5029
5030         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5031         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
5032
5033 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
5034
5035         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5036
5037 2011-04-20  Richard Guenther  <rguenther@suse.de>
5038
5039         PR tree-optimization/47892
5040         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5041         are if-convertible.
5042
5043 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5044
5045         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5046
5047 2011-04-20  Tristan Gingold  <gingold@adacore.com>
5048
5049         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5050
5051 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
5052
5053         PR target/18145
5054
5055         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5056         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5057         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5058         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5059         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5060
5061         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5062         New prototype.
5063
5064         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5065         (avr_asm_named_section, avr_asm_output_aligned_common,
5066         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5067         New functions to update...
5068         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5069         (avr_asm_init_sections): Overwrite section callbacks for
5070         data_section, bss_section.
5071         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5072         from here to...
5073         (avr_file_end): ...here.
5074
5075 2011-04-20  Richard Guenther  <rguenther@suse.de>
5076
5077         PR middle-end/48695
5078         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
5079         objects and types here.  Adjust for their offset before comparing.
5080
5081 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5082
5083         * tree-vect-stmts.c (vectorizable_store): Only chain one related
5084         statement per copy.
5085
5086 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
5087
5088         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5089         (GIMPLE_H): Include $(INTERNAL_FN_H).
5090         (OBJS-common): Add internal-fn.o.
5091         (internal-fn.o): New rule.
5092         * internal-fn.def: New file.
5093         * internal-fn.h: Likewise.
5094         * internal-fn.c: Likewise.
5095         * gimple.h: Include internal-fn.h.
5096         (GF_CALL_INTERNAL): New gf_mask.
5097         (gimple_statement_call): Put fntype into a union with a new
5098         internal_fn field.
5099         (gimple_build_call_internal): Declare.
5100         (gimple_build_call_internal_vec): Likewise.
5101         (gimple_call_same_target_p): Likewise.
5102         (gimple_call_internal_p): New function.
5103         (gimple_call_internal_fn): Likewise.
5104         (gimple_call_fntype): Return null for internal calls.
5105         (gimple_call_set_fntype): Assert that the function is not internal.
5106         (gimple_call_set_fn): Likewise.
5107         (gimple_call_set_fndecl): Likewise.
5108         (gimple_call_set_internal_fn): New function.
5109         (gimple_call_addr_fndecl): Handle null functions.
5110         (gimple_call_return_type): Likewise null types.
5111         * gimple.c (gimple_build_call_internal_1): New function.
5112         (gimple_build_call_internal): Likewise.
5113         (gimple_build_call_internal_vec): Likewise.
5114         (gimple_call_same_target_p): Likewise.
5115         (gimple_call_flags): Handle calls to internal functions.
5116         (gimple_call_fnspec): New function.
5117         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5118         (gimple_has_side_effects): Handle null functions.
5119         (gimple_rhs_has_side_effects): Likewise.
5120         (gimple_call_copy_skip_args): Handle calls to internal functions.
5121         * cfgexpand.c (expand_call_stmt): Likewise.
5122         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5123         * gimple-fold.c (gimple_fold_call): Handle null functions.
5124         (gimple_fold_stmt_to_constant_1): Don't fold
5125         calls to internal functions.
5126         * gimple-low.c (gimple_check_call_args): Handle calls to internal
5127         functions.
5128         * gimple-pretty-print.c (dump_gimple_call): Likewise.
5129         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5130         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5131         (do_warn_unused_result): Likewise.
5132         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5133         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5134         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5135         the target of a call.
5136         (initialize_hash_element): Update accordingly.
5137         (hashable_expr_equal_p): Use gimple_call_same_target_p.
5138         (iterative_hash_hashable_expr): Handle calls to internal functions.
5139         (print_expr_hash_elt): Likewise.
5140         * tree-ssa-pre.c (can_value_number_call): Likewise.
5141         (eliminate): Handle null functions.
5142         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5143         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5144         (find_func_aliases): Likewise.
5145         * value-prof.c (gimple_ic_transform): Likewise.
5146         (gimple_indirect_call_to_profile): Likewise.
5147         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5148         * lto-streamer-out.c (output_gimple_stmt): Likewise.
5149
5150 2011-04-19  Jan Hubicka  <jh@suse.cz>
5151
5152         * ipa-inline-transform.c (save_inline_function_body): Add comments.
5153         * ipa-inline.c (inline_small_functions): Compute summaries first,
5154         populate heap later.
5155
5156 2011-04-19  Jan Hubicka  <jh@suse.cz>
5157
5158         * cgraph.h (save_inline_function_body): Remove.
5159         * ipa-inline-transform.c: New file, broke out of...
5160         * ipa-inline.c: ... this one; Update toplevel comment.
5161         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5162         make global.
5163         (update_noncloned_frequencies): Move to ipa-inline-transform.c
5164         (cgraph_mark_inline_edge): Rename to inline_call; move to
5165         ipa-inline-transform.c.
5166         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5167         move to ipa-inline-transform.c
5168         (recursive_inlining, inline_small_functions, flatten_function,
5169         ipa_inline, inline_always_inline_functions,
5170         early_inline_small_functions): Update.
5171         (inline_transform): Move to ipa-inline-transform.c.
5172         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5173         Declare.
5174         * Makefile.in (ipa-inline-transform.o): New file.
5175         * cgraphunit.c (save_inline_function_body): Move to
5176         ipa-inline-transform.c
5177
5178 2011-04-19  DJ Delorie  <dj@redhat.com>
5179
5180         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5181         registers if we already know there aren't any.
5182         (m32c_emit_epilogue): Don't emit a barrier here.
5183         (m32c_emit_eh_epilogue): Likewise.
5184         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5185         operands at expand time.
5186         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5187         int" wchar type.
5188         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5189         duplicates.  Provide aliases instead.
5190         * config/m32c/prologue.md (eh_return): Emit a barrier here.
5191         (eh_epilogue): Add a "(return)" here as a hint to other parts of
5192         the compiler.
5193
5194 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
5195
5196         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5197         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5198         (general_or_i64_p, sparc_register_move_cost): New function.
5199
5200 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5201
5202         * doc/install.texi (Configuration, --enable-threads): Remove mach.
5203         Add lynx, mipssde.  Sort table.
5204
5205 2011-04-19  Xinliang David Li  <davidxl@google.com>
5206
5207         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5208         not negative.
5209
5210 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
5211
5212         PR target/48678
5213         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5214         is a SUBREG with non-MODE_INT mode inside of it.
5215
5216 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5217
5218         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5219         also according to actual contants.
5220         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5221         (gimple_fold_call): Use it.
5222         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5223
5224 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5225
5226         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5227         non-pointer assignments.
5228
5229 2011-04-19  Martin Jambor  <mjambor@suse.cz>
5230
5231         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5232         account anc_offset and otr_type from the indirect edge info.
5233         * ipa-prop.c (get_ancestor_addr_info): New function.
5234         (compute_complex_ancestor_jump_func): Assignment analysis moved to
5235         get_ancestor_addr_info, call it.
5236         (ipa_note_param_call): Do not initialize information about polymorphic
5237         calls, return the indirect call graph edge.  Remove the last
5238         parameter, adjust all callers.
5239         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5240         parameters.  Initialize polymorphic information in the indirect edge.
5241
5242 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5243
5244         PR lto/48148
5245         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5246         the types if they have different enumeration identifiers.
5247
5248 2011-04-19  Jan Hubicka  <jh@suse.cz>
5249
5250         * cgraph.h (cgraph_optimize_for_size_p): Declare.
5251         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5252         * predict.c (cgraph_optimize_for_size_p): Break out from ...
5253         (optimize_function_for_size_p) ... here.
5254
5255 2011-04-19  Richard Guenther  <rguenther@suse.de>
5256
5257         PR lto/48207
5258         * tree.c (free_lang_data): Do not reset the decl-assembler-name
5259         langhook.
5260
5261 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5262
5263         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
5264         if DECL_NO_INLINE_WARNING_P is set on the function.
5265
5266 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
5267
5268         PR fortran/47976
5269         * reload1.c (inc_for_reload): Return void. All callers changed.
5270         (emit_input_reload_insns): Don't try to delete previous output
5271         reloads to a register, or record spill_reg_store for autoincs.
5272
5273 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
5274
5275         * gengtype.h: Updated copyright year.
5276         (struct input_file_st): Add inpisplugin field.
5277         (type_fileloc): New function.
5278         * gengtype.c
5279         (write_typed_struct_alloc_def): Add gcc_assert.
5280         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
5281         (write_typed_alloc_defns): Don't output for plugin files.
5282         (input_file_by_name): Clear inpisplugin field.
5283         (main): Set inpisplugin field for plugin files.
5284
5285 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
5286
5287         * gengtype-state.c (string_eq): New.
5288         (read_state): Use string_eq instead of strcmp when creating the
5289         state_ident_tab.
5290
5291 2011-04-19  Wei Guozhi  <carrot@google.com>
5292
5293         PR target/47855
5294         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
5295         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
5296         linkage.
5297         * config/arm/constraints.md (Uu): New constraint.
5298         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
5299
5300 2011-04-19  Tristan Gingold  <gingold@adacore.com>
5301
5302         * config.gcc (-*-*-*vms): Added.
5303         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
5304         definitions moved.
5305         * config/vms/vms-ld.c: New file.
5306         * config/vms/vms-ar.c: New file.
5307         * config/vms/t-vmsnative: New file.
5308
5309 2011-04-18  Xinliang David Li  <davidxl@google.com>
5310
5311         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
5312
5313 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5314
5315         PR middle-end/48661
5316         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
5317         if TREE_TYPE (v) is non-NULL.
5318
5319         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
5320         gimple_get_virt_mehtod_for_binfo.
5321         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
5322         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
5323         callers.
5324         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5325
5326 2011-04-18  Michael Matz  <matz@suse.de>
5327             Steve Ellcey  <sje@cup.hp.com>
5328
5329         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
5330         use its mode as source mode if it isn't VOIDmode.
5331
5332 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
5333
5334         * doc/passes.texi: Fill crossref nodes.
5335
5336 2011-04-18  Jim Meyering  <meyering@redhat.com>
5337
5338         Fix doubled-word typos in comments and strings
5339         * config/alpha/vms-unwind.h: s/for for/for/
5340         * config/arm/unwind-arm.h: Likewise.
5341         * config/microblaze/microblaze.c: Likewise.
5342         * config/sh/constraints.md: s/in in/in/
5343         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
5344
5345 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
5346
5347         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
5348         (AVX_FLOAT_MODE_P): Ditto.
5349         (AVX128_VEC_FLOAT_MODE_P): Ditto.
5350         (AVX256_VEC_FLOAT_MODE_P): Ditto.
5351         (AVX_VEC_FLOAT_MODE_P): Ditto.
5352         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
5353         (UNSPEC_MASKSTORE): Ditto.
5354         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
5355         Merge from <sse>_movmsk<ssemodesuffix> and
5356         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
5357         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
5358         iterator.
5359         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
5360         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
5361         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
5362
5363 2011-04-18  Jan Hubicka  <jh@suse.cz>
5364
5365         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
5366
5367         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
5368         (want_inline_function_called_once_p): Break out the logic from
5369         ipa_inline.
5370         (edge_badness): Ensure that profile is not misupdated.
5371         (lookup_recursive_calls): Prioritize by call frequencies.
5372         (inline_small_functions): Move program size estimates here;
5373         actually process whole queue even when unit growth has been
5374         met. (to properly compute inline_failed reasons and for the
5375         case unit size decrease.) Revisit comments on recursive inlining.
5376         (ipa_inline): Remove unit summary code; first inline hot calls
5377         of functions called once, cold calls next.
5378         (order, nnodes): Remove unused variables.
5379         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
5380         (GTFILES): Remove ipa-inline.c
5381         * sel-sched.c (fill_insns): Silence uninitialized var warning.
5382
5383 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5384
5385         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
5386
5387 2011-04-18  Jie Zhang  <jie@codesourcery.com>
5388             Richard Earnshaw  <rearnsha@arm.com>
5389
5390         * arm.c (neon_builtin_type_bits): Remove.
5391         (typedef enum neon_builtin_mode): New.
5392         (T_MAX): Don't define.
5393         (typedef enum neon_builtin_datum): Remove bits, codes[],
5394         num_vars and base_fcode.  Add mode, code and fcode.
5395         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
5396         VAR10): Change accordingly.
5397         (neon_builtin_data[]): Change accordingly
5398         (arm_init_neon_builtins): Change accordingly.
5399         (neon_builtin_compare): Remove.
5400         (locate_neon_builtin_icode): Remove.
5401         (arm_expand_neon_builtin): Change accordingly.
5402
5403         * arm.h (enum arm_builtins): Move to ...
5404         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
5405
5406         * arm.c (arm_builtin_decl): Declare.
5407         (TARGET_BUILTIN_DECL): Define.
5408         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
5409         (arm_builtin_decls[]): New.
5410         (arm_init_neon_builtins): Store builtin declarations in
5411         arm_builtin_decls[].
5412         (arm_init_tls_builtins): Likewise.
5413         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
5414         (arm_builtin_decl): New.
5415
5416 2011-04-18  Richard Guenther  <rguenther@suse.de>
5417
5418         * tree.c (upper_bound_in_type): Build properly canonicalized
5419         INTEGER_CSTs.
5420         (lower_bound_in_type): Likewise.
5421
5422 2011-04-18  Richard Guenther  <rguenther@suse.de>
5423
5424         * gimple.h (gimple_call_addr_fndecl): New function.
5425         (gimple_call_fndecl): Use it.
5426         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
5427         for direct calls.
5428         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
5429         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
5430
5431 2011-04-18  Richard Guenther  <rguenther@suse.de>
5432
5433         PR middle-end/48650
5434         * tree.c (build_string): STRING_CST is now derived from tree_typed.
5435
5436 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5437
5438         PR lto/48492
5439         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
5440         DECL_IN_CONSTANT_POOL without RTL.
5441
5442 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
5443             Ira Rosen  <ira.rosen@linaro.org>
5444
5445         PR target/48252
5446         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
5447         to match neon_vzip/vuzp/vtrn_internal.
5448         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
5449         outputs explicitly dependent on both inputs.
5450         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
5451
5452 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
5453
5454         PR tree-optimization/48616
5455         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
5456         whether the shift is by scalar or vector based on whether all SLP
5457         scalar stmts have the same rhs.
5458
5459 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
5460
5461         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
5462         memory operands.
5463
5464 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
5465
5466         PR target/43700
5467         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
5468         registers.
5469
5470 2011-04-17  Jan Hubicka  <jh@suse.cz>
5471
5472         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
5473         * cgrpahunit.c (cgraph_finalize_function): Do not set
5474         finalized_by_frontend.
5475         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5476         finalized_by_frontend.
5477
5478 2011-04-17  Jan Hubicka  <jh@suse.cz>
5479
5480         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
5481         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
5482         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
5483         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
5484         method.
5485         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
5486         gimple-fold.c
5487         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
5488
5489 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
5490
5491         PR lto/48538
5492         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
5493         is non-null before accessing it.
5494         (input_cgraph): Remove trailing spaces.
5495
5496 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5497
5498         * params.def (sms-min-sc): New param flag.
5499         * modulo-sched.c (sms_schedule): Use it.
5500         * doc/invoke.texi (sms-min-sc): Document it.
5501
5502 2011-04-17  Jan Hubicka  <jh@suse.cz>
5503
5504         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
5505         present, also set gimple_call_set_cannot_inline.
5506         * ipa-inline.c: Update toplevel comment.
5507         (MAX_TIME): Remove.
5508         (cgraph_clone_inlined_nodes): Fix linebreaks.
5509         (cgraph_check_inline_limits): Restructure to ...
5510         (caller_growth_limits): ... this one; be more tolerant
5511         on growth in nested inline chains; add explanatory comment;
5512         fix stack accounting thinko introduced by previous patch.
5513         (cgraph_default_inline_p): Remove.
5514         (report_inline_failed_reason): New function.
5515         (can_inline_edge_p): New function.
5516         (can_early_inline_edge_p): New function.
5517         (leaf_node_p): Move upwards in file.
5518         (want_early_inline_function_p): New function.
5519         (want_inline_small_function_p): New function.
5520         (want_inline_self_recursive_call_p): New function.
5521         (cgraph_edge_badness): Rename to ...
5522         (edge_badness) ... this one; fix linebreaks.
5523         (update_edge_key): Update call of edge_baddness; add
5524         detailed dump about queue updates.
5525         (update_caller_keys): Use can_inline_edge_p and
5526         want_inline_small_function_p.
5527         (cgraph_decide_recursive_inlining): Rename to...
5528         (recursive_inlining): Use can_inline_edge_p and
5529         want_inline_self_recursive_call_p; simplify and remove no longer
5530         valid FIXME.
5531         (cgraph_set_inline_failed): Remove.
5532         (add_new_edges_to_heap): Use can_inline_edge_p and
5533         want_inline_small_function_p.
5534         (cgraph_decide_inlining_of_small_functions): Rename to ...
5535         (inline_small_functions): ... this one; cleanup; use
5536         can/want predicates; cleanup debug ouput; work edges till fibheap
5537         is exhausted and do not stop once unit growth is reached; remove
5538         later loop processing remaining edges.
5539         (cgraph_flatten): Rename to ...
5540         (flatten_function): ... this one; use can_inline_edge_p
5541         and can_early_inline_edge_p predicates.
5542         (cgraph_decide_inlining): Rename to ...
5543         (ipa_inline): ... this one; remove unreachable nodes before
5544         inlining functions called once; simplify the pass.
5545         (cgraph_perform_always_inlining): Rename to ...
5546         (inline_always_inline_functions): ... this one; use
5547         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
5548         (cgraph_decide_inlining_incrementally): Rename to ...
5549         (early_inline_small_functions): ... this one; simplify
5550         using new predicates; cleanup; make dumps prettier.
5551         (cgraph_early_inlining): Rename to ...
5552         (early_inliner): newer inline regular functions into always-inlines;
5553         fix updating of call stmt summaries.
5554         (pass_early_inline): Update for new names.
5555         (inline_transform): Fix formating.
5556         (gate_cgraph_decide_inlining): Rename to ...
5557         (pass_ipa_inline): ... this one.
5558         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
5559         * ipa-inline-analysis.c (dump_inline_summary): Update.
5560         (compute_inline_parameters): Do not compute disregard_inline_limits;
5561         look for mismatching arguments.
5562         (estimate_growth): Fix handlig of non-trivial self recursion.
5563         (inline_read_summary): Do not read info->disregard_inline_limits.
5564         (inline_write_summary): Do not write info->disregard_inline_limits.
5565         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
5566         and move all checks into can_inline_edge_p predicate; re-enable code
5567         comparing optimization levels.
5568         (expand_call_inline): Do not test inline_forbidden_into_p.
5569         * Makefile.in (ipa-inline.o): Update arguments.
5570
5571 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5572
5573         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
5574
5575 2011-04-17  Revital Eres  <revital.eres@linaro.org>
5576
5577         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
5578
5579 2011-04-17  Michael Matz  <matz@suse.de>
5580
5581         PR tree-optimization/48622
5582         PR lto/48645
5583         * ipa-inline-analysis.c (inline_read_summary): Read size/time
5584         in same order as they're written.
5585
5586 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5587
5588         * config/pa/predicates.md: Reorganize and simplify predicates.
5589         Eliminate duplicate code checks.
5590         (arith_operand): Rename to arith14_operand
5591         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
5592         * config/pa/pa.md: Use renamed operands.
5593         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
5594         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
5595         arith11_operand, adddi3_operand, indexed_memory_operand,
5596         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
5597         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
5598         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
5599         move_dest_operand, move_src_operand, prefetch_cc_operand,
5600         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
5601         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
5602         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
5603         div_operand, int5_operand, movb_comparison_operator,
5604         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
5605         arith_double_operand, ireg_operand, lhs_lshift_operand,
5606         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
5607         integer_store_memory_operand): Likewise.
5608         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
5609         (integer_store_memory_operand, read_only_operand,
5610         function_label_operand, borx_reg_operand,
5611         non_hard_reg_operand): Likewise.
5612         (eq_neq_comparison_operator): Delete unused operator.
5613         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
5614         function_label_operand.
5615         (emit_move_sequence): Likewise.
5616
5617 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5618
5619         * config/i386/sse.md (sseunpackmode): New mode attribute.
5620         (ssepackmode): Ditto.
5621         (vec_pack_trunc_<mode>): Macroize expander from
5622         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
5623         (vec_unpacks_lo_<mode>): Macroize expander from
5624         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5625         (vec_unpacks_hi_<mode>): Macroize expander from
5626         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5627         (vec_unpacku_lo_<mode>): Macroize expander from
5628         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5629         (vec_unpacku_hi_<mode>): Macroize expander from
5630         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5631         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
5632         ix86_expand_sse4_unpack.
5633         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
5634
5635 2011-04-16  Jan Hubicka  <jh@suse.cz>
5636
5637         * cgraphbuild.c: Include ipa-inline.h.
5638         (reset_inline_failed): Use initialize_inline_failed.
5639         * cgraph.c: Include ipa-inline.h.
5640         (cgraph_create_node_1): Do not initialize estimated_growth.
5641         (initialize_inline_failed): More to ipa-inline-analysis.c
5642         (dump_cgraph_node): Do not dump inline flags.
5643         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
5644         and disregard_inline_limits flags.
5645         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
5646         time, size, estimated_growth.
5647         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
5648         Update.
5649         * cgraphunit.c (cgraph_decide_is_function_needed): Use
5650         DECL_DISREGARD_INLINE_LIMITS.
5651         (cgraph_analyze_function): Do not initialize
5652         node->local.disregard_inline_limits.
5653         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5654         inlinable, versionable and disregard_inline_limits.
5655         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
5656         cgraph_check_inline_limits, cgraph_default_inline_p,
5657         cgraph_edge_badness, update_caller_keys, update_callee_keys,
5658         add_new_edges_to_heap): Update.
5659         (cgraph_decide_inlining_of_small_function): Update; set
5660         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
5661         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5662         cgraph_decide_inlining_incrementally): Update.
5663         * ipa-inline.h (inline_summary): Add inlinable, versionable,
5664         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5665         time, size and estimated_growth parameters.
5666         (estimate_edge_growth): Update.
5667         (initialize_inline_failed): Declare.
5668         * ipa-split.c: Include ipa-inline.h
5669         (execute_split_functions): Update.
5670         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5671         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5672         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5673         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5674         estimated_growth to INT_MIN.
5675         (inline_node_duplication_hook): Likewise.
5676         (dump_inline_summary): Dump new fields.
5677         (compute_inline_parameters): Update.
5678         (estimate_edge_time, estimate_time_after_inlining,
5679         estimate_size_after_inlining, estimate_growth, inline_read_summary,
5680         inline_write_summary):
5681         (initialize_inline_failed): Move here from cgraph.c.
5682         * tree-sra.c: Include ipa-inline.h.
5683         (ipa_sra_preliminary_function_checks): Update.
5684         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5685         ipa-inline.h.
5686
5687 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5688
5689         * config/i386/sse.md (V16): New mode iterator.
5690         (VI1, VI8): Ditto.
5691         (AVXMODEQI, AVXMODEDI): Remove.
5692         (sse2, sse3): New mode attribute.
5693         (mov<mode>): Use V16 mode iterator.
5694         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5695         (push<mode>1): Use V16 mode iterator.
5696         (movmisalign<mode>): Ditto.
5697         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5698         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5699         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5700         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5701         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5702         avx_movdqu<avxmodesuffix>.
5703         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5704         *avx_movdqu<avxmodesuffix>.
5705         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5706         avx_lddqu<avxmodesuffix>.
5707         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5708         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5709         avx_movnt<AVXMODEDI:mode>.
5710         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5711         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5712
5713 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5714
5715         PR target/48629
5716         * haifa-sched.c (prune_ready_list, schedule_block): Use
5717         sched_pressure_p rather than flag_sched_pressure.
5718
5719 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5720
5721         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5722         cgraph_get_node instead of cgraph_get_create_node.
5723
5724 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
5725
5726         * cfgexpand.c (expand_debug_expr): Use
5727         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5728
5729 2011-04-15  Michael Matz  <matz@suse.de>
5730
5731         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5732         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5733         * function.c (gimplify_parameters): Ditto.
5734         * gimplify.c (gimplify_vla_decl): Ditto.
5735
5736         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5737         (gimple_call_set_alloca_for_var): New inline function.
5738         (gimple_call_alloca_for_var_p): Ditto.
5739         * gimple.c (gimple_build_call_from_tree): Remember
5740         CALL_ALLOCA_FOR_VAR_P state.
5741         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5742
5743         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5744         calls if they were for VLA objects.
5745
5746 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5747
5748         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5749         of ADR_EXPRs.
5750
5751 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5752
5753         PR middle-end/48601
5754         * tree-emutls.c (lower_emutls_function_body): Call
5755         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
5756         result is non-NULL.
5757
5758 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
5759
5760         * c-decl.c (detect_field_duplicates): Call
5761         objc_detect_field_duplicates instead of objc_get_interface_ivars.
5762
5763 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
5764
5765         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5766         * gimple.c (gimple_asm_clobbers_memory_p): Define.
5767         * ipa-pure-const.c (check_stmt): Call it.
5768         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5769
5770 2011-04-15  Richard Guenther  <rguenther@suse.de>
5771
5772         PR tree-optimization/48290
5773         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
5774         Properly decide inhibiting propagation based on the valueized
5775         operand.  Do loop-closed SSA form preserving here ...
5776         (init_copy_prop): ... not here.
5777
5778 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5779
5780         PR target/48612
5781         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5782         (*ieee_smax<mode>3): Likewise.
5783
5784 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5785
5786         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
5787         Replace match_operand with match_dup for the third operand in
5788         these expanders.
5789
5790 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5791
5792         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
5793         to track processing of conditionals.  Update all callers.
5794         (try_combine, simplify_if_then_else): Update.
5795
5796 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5797
5798         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
5799         -fsched-pressure.
5800
5801 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
5802
5803         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
5804         instead of match_operand for operand 3.
5805
5806 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
5807
5808         * recog.h (insn_operand_data): Add an "allows_mem" field.
5809         * genoutput.c (output_operand_data): Initialize it.
5810         * optabs.c (maybe_legitimize_operand_same_code): New function.
5811         (maybe_legitimize_operand): Use it when matching the original
5812         op->value.
5813
5814 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5815
5816         * gimplify.c: Fix issues in comments throughout.
5817         (voidify_wrapper_expr): Fix long line.
5818         (build_stack_save_restore): Likewise.
5819         (gimplify_loop_expr): Likewise.
5820         (gimplify_compound_lval): Likewise.
5821         (gimplify_init_ctor_eval): Likewise.
5822         (gimplify_modify_expr_rhs): Likewise.
5823         (omp_notice_threadprivate_variable): Likewise.
5824
5825 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5826
5827         * cfgexpand.c (expand_call_stmt): Convert the function type to the
5828         original one if this is not a builtin function.
5829
5830 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
5831
5832         PR target/48605
5833         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
5834         offset it as needed based on top 2 bits in operands[3], change
5835         MEM mode to SFmode and mask those 2 bits away from operands[3].
5836
5837 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5838
5839         * c-parser.c (c_parser_objc_protocol_definition): Updated for
5840         change from objc_declare_protocols() to objc_declare_protocol().
5841
5842 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
5843
5844         * config/i386/sse.md (sse4_1): New mode attribute.
5845         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
5846         avx_blend<ssemodesuffix><avxmodesuffix> and
5847         sse4_1_blend<ssemodesuffix> using VF mode iterator.
5848         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
5849         avx_blendv<ssemodesuffix><avxmodesuffix> and
5850         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
5851         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
5852         avx_dp<ssemodesuffix><avxmodesuffix> and
5853         sse4_1_dp<ssemodesuffix> using VF mode iterator.
5854         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
5855         (sse4_1_packusdw): Merge with *avx_packusdw.
5856         (sse4_1_pblendvb): Merge with *avx_pblendvb.
5857         (sse4_1_pblendw): Merge with *avx_pblendw.
5858         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
5859         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
5860         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
5861         VF mode iterator.
5862         (sse4_1_round<ssescalarmodesuffix>): Merge with
5863         *avx_round<ssescalarmodesuffix>.
5864         (aesenc): Merge with *avx_aesenc.
5865         (aesenclast): Merge with *avx_aesenclast.
5866         (aesdec): Merge with *avx_aesdec.
5867         (aesdeclast): Merge with *avx_aesdeclast.
5868         (pclmulqdq): Merge with *pclmulqdq.
5869         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
5870         New predicate.
5871         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
5872
5873 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
5874
5875         PR middle-end/48608
5876         * cfgexpand.c (get_decl_align_unit): Renamed to ...
5877         (align_local_variable): This.  Update DECL_ALIGN.
5878         (add_stack_var): Updated.
5879         (expand_one_stack_var): Likewise.
5880
5881 2011-04-14  Richard Guenther  <rguenther@suse.de>
5882
5883         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5884         Remove.
5885         (dse_initialize_block_local_data, dse_leave_block,
5886         record_voperand_set, get_stmt_uid): Likewise.
5887         (dse_possible_dead_store_p): Allow any kind of killing stmt.
5888         (dse_optimize_stmt): Remove voperand set handling code.
5889         Simplify and improve to handle any kind of killing stmt.
5890         (dse_record_phi): Remove.
5891         (dse_enter_block): Simplify.
5892         (tree_ssa_dse): Likewise.
5893         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5894
5895 2011-04-14  Jan Hubicka  <jh@suse.cz>
5896
5897         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5898         * cgraph.h (struct inline_summary): Move to ipa-inline.h
5899         (cgraph_local_info): Remove inline_summary.
5900         * ipa-cp.c: Include ipa-inline.h.
5901         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5902         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5903         accesor.
5904         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5905         (input_overwrite_node): Do not set inline summary.
5906         (input_node): Do not stream inline summary.
5907         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5908         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5909         growth; we do not have inline parameters computed for that anyway.
5910         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5911         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5912         (inline_summary_t): New type and VECtor.
5913         (debug_inline_summary, dump_inline_summaries): Declare.
5914         (inline_summary): Use VOCtor.
5915         (estimate_edge_growth): Kill hack computing call stmt size directly.
5916         * lto-section-in.c (lto_section_name): Add inline section.
5917         * ipa-inline-analysis.c: Include lto-streamer.h
5918         (node_removal_hook_holder, node_duplication_hook_holder): New holders
5919         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5920         (inline_summary_vec): Define.
5921         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5922         dump_inline_summaries): New functions.
5923         (estimate_function_body_sizes): Properly compute size/time of outgoing
5924         calls.
5925         (compute_inline_parameters): Alloc inline_summary; do not compute
5926         size/time of incomming calls.
5927         (estimate_edge_time): Avoid missing time summary hack.
5928         (inline_read_summary): Read inline summary info.
5929         (inline_write_summary): Write inline summary info.
5930         (inline_free_summary): Free all hooks and inline summary vector.
5931         * lto-streamer.h: Add LTO_section_inline_summary section.
5932         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5933         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5934
5935 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5936
5937         * tree-vectorizer.h (vect_strided_store_supported): Add a
5938         HOST_WIDE_INT argument.
5939         (vect_strided_load_supported): Likewise.
5940         (vect_permute_store_chain): Return void.
5941         (vect_transform_strided_load): Likewise.
5942         (vect_permute_load_chain): Delete.
5943         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5944         count argument.  Check that the count is a power of two.
5945         (vect_strided_load_supported): Likewise.
5946         (vect_permute_store_chain): Return void.  Update after above changes.
5947         Assert that the access is supported.
5948         (vect_permute_load_chain): Likewise.
5949         (vect_transform_strided_load): Return void.
5950         * tree-vect-stmts.c (vectorizable_store): Update calls after
5951         above interface changes.
5952         (vectorizable_load): Likewise.
5953         (vect_analyze_stmt): Don't check for strided powers of two here.
5954
5955 2011-04-14  Richard Guenther  <rguenther@suse.de>
5956
5957         PR tree-optimization/48590
5958         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5959         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5960         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5961         BUILT_IN_STACK_SAVE.
5962         * tree-ssa-dce.c (propagate_necessity): Handle
5963         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5964
5965 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5966
5967         * c-parser.c (c_parser_objc_class_declaration): Updated call to
5968         objc_declare_class.
5969
5970 2011-04-14  Richard Guenther  <rguenther@suse.de>
5971
5972         * tree.h (get_object_alignment_1): Declare.
5973         * builtins.c (get_object_alignment_1): Split out worker from ...
5974         (get_object_alignment): ... here.
5975         * fold-const.c (get_pointer_modulus_and_residue): Use
5976         get_object_alignment_1.
5977
5978 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5979
5980         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5981         type parameter.
5982         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5983         parameter.  Generalise code to handle arrays as well as vectors.
5984         (vect_setup_realignment): Update accordingly.
5985         * tree-vect-stmts.c (vectorizable_store): Likewise.
5986         (vectorizable_load): Likewise.
5987
5988 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5989
5990         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5991         within the per-copy loop.
5992
5993 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5994
5995         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5996         in the dump file.
5997
5998 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5999
6000         * doc/options.texi (Negative): Explicitly mention that the
6001         Negative chain must be circular.
6002
6003 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
6004
6005         * function.h (block_chainon): Declare.
6006         * function.c (block_chainon): Define.
6007
6008 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
6009             Eric Weddington  <eric.weddington@atmel.com>
6010             Georg-Johann Lay  <avr@gjlay.de>
6011
6012         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
6013         New Includes
6014         (avr_init_builtins, avr_expand_builtin,
6015         avr_expand_delay_cycles, avr_expand_unop_builtin,
6016         avr_expand_binop_builtin ): New functions.
6017         (avr_builtin_id): New enum
6018         (struct avr_builtin_description): New struct
6019         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
6020         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
6021
6022         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
6023         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
6024         UNSPECV_DELAY_CYCLES): new enumeration values
6025         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6026         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6027         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6028         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6029         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6030         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6031         "fmulsu"): New insns
6032
6033         * config/avr/avr-c.c: fix line endings
6034         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6035         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6036         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6037         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6038         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
6039
6040         * doc/extend.texi (AVR Built-in Functions): New node
6041         (Target Builtins): Add documentation of AVR
6042         built-in functions.
6043
6044 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
6045
6046         PR target/44643
6047         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6048         alone. Error if non-const data has attribute progmem.
6049
6050 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6051
6052         * tree.h (struct tree_constructor): Include tree_typed instead of
6053         tree_common.
6054         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6055         TS_TYPED instead of TS_COMMON.
6056
6057 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6058
6059         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6060         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6061         (sse2_psadbw): Merge with *avx_psadbw.
6062         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6063         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6064         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6065         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6066         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6067         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6068         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6069         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6070         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6071         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6072         (ssse3_palignrti): Merge with *avx_palignrti.
6073
6074 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6075
6076         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6077         * tree-ssanames.c (fini_ssanames): VEC_free it.
6078         (make_ssa_name_fn): Update for VECness of free_ssanames.
6079         (release_ssa_name, release_dead_ssa_names): Likewise.
6080         * tree.h (struct tree_ssa_name): Include tree_typed instead of
6081         tree_common.
6082         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6083         TS_TYPED instead of TS_COMMON.
6084
6085 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6086
6087         * postreload-gcse.c (gcse_after_reload_main): Add calls to
6088         statistics_counter_event.
6089         * tree-ssa-copyrename.c (stats): Define.
6090         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
6091         statistics_counter_event.
6092         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6093         (bswap_stats, widen_mul_stats): Define.
6094         (insert_reciprocals): Increment rdivs_inserted.
6095         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
6096         rfuncs_inserted.  Add calls to statistics_counter_event.
6097         (execute_cse_sincos_1): Increment inserted.
6098         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
6099         statistics_counter_event.
6100         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
6101         of bswap_stats.  Add calls to statistics_counter_event.
6102         (convert_mult_to_widen): Increment widen_mults_inserted.
6103         (convert_plusminus_to_widen): Increment maccs_inserted.
6104         (convert_mult_to_fma): Increment fmas_inserted.
6105         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
6106         calls to statistics_counter_event.
6107
6108 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
6109
6110         PR rtl-optimization/48455
6111         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6112         `temp_costs->mem_cost'.
6113
6114 2011-04-13  Jan Hubicka  <jh@suse.cz>
6115
6116         * ipa-inline.h: New file.
6117         * ipa-inline-analysis.c: New file. Broken out of ...
6118         * ipa-inline.c: ... this file; update toplevel comment;
6119         include ipa-inline.h
6120         (inline_summary): Move to ipa-inline.h
6121         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6122         ipa-inline-analysis.c.
6123         (cgraph_estimate_time_after_inlining): Rename to
6124         estiamte_time_after_inlining; move to ipa-inline-analysis.c
6125         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6126         to estimate_edge_growth.
6127         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6128         rename to estimate_size_after_inlining.
6129         (cgraph_mark_inline_edge): Update for new naming convention.
6130         (cgraph_check_inline_limits): Likewise.
6131         (cgraph_edge_badness): Likewise.
6132         (cgraph_decide_recursive_inlining): Likewise.
6133         (cgraph_decide_inlining_of_small_functions): Likewise.
6134         (cgraph_decide_inlining_incrementally): Likewise.
6135         (cgraph_estimate_growth): Rename to estimate_growth; move to
6136         ipa-inline-analysis.c.
6137         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6138         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6139         (compute_inline_parameters): Likewise.
6140         (compute_inline_parameters_for_current): Likewise.
6141         (pass_inline_parameters): Likewise.
6142         (inline_indirect_intraprocedural_analysis): Likewise.
6143         (analyze_function): Rename to inline_analyze_function; likewise.
6144         (add_new_function): Move to ipa-inline-analysis.c.
6145         (inline_generate_summary): Likewise.
6146         (inline_read_summary): Likewise.
6147         (inline_write_summary): Likewise.
6148         * Makefile.in (ipa-inline-analysis.c): New file.
6149
6150 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6151
6152         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6153         * configure: Regenerate.
6154
6155 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
6156
6157         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6158         instead of tree_common.
6159         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6160         Likewise.
6161         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6162         TS_TYPED rather than TS_COMMON.
6163         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6164
6165 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
6166
6167         PR target/45263
6168         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6169         r20 around calls of __tablejump_elpm__
6170
6171 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
6172
6173         PR middle-end/48591
6174         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6175         NULL.
6176         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6177
6178 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
6179
6180         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6181         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6182         (cfi_vec): New typedef.
6183         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6184         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6185         (cie_cfi_vec): New static variable.
6186         (cie_cfi_head): Delete.
6187         (add_cfi): Accept a cfi_vec * as first argument. All callers and
6188         declaration changed. Use vector rather than list operations.
6189         (new_cfi): Don't initialize the dw_cfi_next field.
6190         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6191         rather than list operations.
6192         (lookup_cfa): Use vector rather than list operations.
6193         (output_cfis): New argument upto. Accept a cfi_vec rather than
6194         a dw_cfi_ref list head as argument. All callers changed.
6195         Iterate over the vector using upto as a maximum index.
6196         (output_all_cfis): New static function.
6197         (output_fde): Use vector rather than list operations. Use the
6198         new upto argument for output_cfis rather than manipulating a
6199         list.
6200         (dwarf2out_begin_prologue): Change initializations to match
6201         new struct members.
6202         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6203         from the vector length rather than searching for the end of a list.
6204         Use output_all_cfis.
6205         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6206
6207 2011-04-13  Nick Clifton  <nickc@redhat.com>
6208
6209         * config/rx/rx.md (movmemsi): Do not use this pattern when
6210         volatile pointers are involved.
6211
6212 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
6213
6214         * config/i386/sse.md (pinsrbits): Remove.
6215         (sse2_packsswb): Merge with *avx_packsswb.
6216         (sse2_packssdw): Merge with *avx_packssdw.
6217         (sse2_packuswb): Merge with *avx_packuswb.
6218         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6219         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6220         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6221         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6222         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6223         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6224         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6225         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6226         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6227         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6228         (sse2_loadld): Merge with *avx_loadld.
6229         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6230         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6231         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6232         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6233         (vec_concatv2di): Merge with *vec_concatv2di_avx.
6234
6235 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
6236
6237         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6238         calling TREE_CHAIN.
6239         * print-tree.c (print_node): Likewise.
6240         * tree-inline.c (copy_tree_r): Likewise.
6241         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6242         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6243         instead of TS_COMMON.
6244         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6245         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6246         (copy_node_stat): Zero TREE_CHAIN only if necessary.
6247         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6248         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6249         ...and these...
6250         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6251         * tree.h: ...here.
6252         (TREE_CHAIN): Check for a TS_COMMON structure.
6253         (TREE_TYPE): Check for a TS_TYPED structure.
6254
6255 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
6256
6257         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6258         cgraph_get_create_node instead of cgraph_node.
6259
6260 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6261
6262         * c-parser.c (c_parser_initelt): Updated call to
6263         objc_build_message_expr.
6264         (c_parser_postfix_expression): Likewise.
6265
6266 2011-04-12  Kai Tietz  <ktietz@redhat.com>
6267
6268         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
6269         MASK_MS_BITFIELD_LAYOUT bit.
6270
6271 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6272
6273         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
6274         assert it is always true.
6275         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6276         moves.
6277
6278 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
6279
6280         * c-parser.c (c_lex_one_token): Rewritten conditional used when
6281         compiling Objective-C to be more efficient.
6282
6283 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
6284
6285         * opts-common.c (decode_cmdline_options_to_array): Remove variable
6286         argv_copied.
6287
6288 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6289
6290         * recog.h, genoutput.c, optabs.c: Revert last patch.
6291
6292 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6293
6294         PR target/48090
6295         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
6296
6297 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6298
6299         * recog.h (insn_operand_data): Add an "allows_mem" field.
6300         * genoutput.c (output_operand_data): Initialize it.
6301         * optabs.c (maybe_legitimize_operand_same_code): New function.
6302         (maybe_legitimize_operand): Use it when matching the original
6303         op->value.
6304
6305 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6306
6307         * genpreds.c (process_define_predicate): Move most processing
6308         to gensupport.c.  Continue to validate the expression.
6309         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
6310         (process_define_predicate): Move processing to gensupport.c.
6311         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
6312         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
6313         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
6314         argument.
6315         (valid_predicate_name_p): New function, split out from old
6316         genpreds.c:process_define_predicate.
6317         (process_define_predicate): New function, combining code from
6318         old genpreds.c and genrecog.c functions.
6319         (process_rtx): Call it for DEFINE_PREDICATE and
6320         DEFINE_SPECIAL_PREDICATE.
6321
6322 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
6323
6324         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
6325         size of a '%A' memory reference.
6326         (T_DREG, T_QREG): New neon_builtin_type_bits.
6327         (arm_init_neon_builtins): Assert that the load and store operands
6328         are neon_struct_operands.
6329         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
6330         (NEON_ARG_MEMORY): New builtin_arg.
6331         (neon_dereference_pointer): New function.
6332         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
6333         Handle NEON_ARG_MEMORY.
6334         (arm_expand_neon_builtin): Update after above interface changes.
6335         Use NEON_ARG_MEMORY for loads and stores.
6336         * config/arm/predicates.md (neon_struct_operand): New predicate.
6337         * config/arm/iterators.md (V_two_elem): Tweak formatting.
6338         (V_three_elem): Use BLKmode for accesses that have no associated mode.
6339         (V_four_elem): Tweak formatting.
6340         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
6341         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
6342         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
6343         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
6344         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
6345         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
6346         (neon_vst4<mode>): Replace pointer operand with a memory operand.
6347         Use %A in the output template.
6348         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
6349         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
6350         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
6351         the width of the memory access.  Remove post-increment.
6352         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
6353
6354 2011-04-12  Nick Clifton  <nickc@redhat.com>
6355
6356         * config/v850/v850.c (expand_prologue): Do not use the CALLT
6357         instruction for interrupt handlers if the target is the basic V850
6358         architecture.
6359         (expand_epilogue): Likewise.
6360
6361 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6362
6363         PR rtl-optimization/48549
6364         * combine.c (propagate_for_debug): Also stop after BB_END of
6365         this_basic_block.  Process LAST and just stop processing after it.
6366         (combine_instructions): If last_combined_insn has been deleted,
6367         set last_combined_insn to its PREV_INSN.
6368
6369 2011-04-12  Richard Guenther  <rguenther@suse.de>
6370
6371         PR tree-optimization/46076
6372         * gimple.h (struct gimple_statement_call): Add fntype field.
6373         (gimple_call_fntype): Adjust.
6374         (gimple_call_set_fntype): New function.
6375         * gimple.c (gimple_build_call_1): Set the call function type.
6376         * gimplify.c (gimplify_call_expr): Preserve the function
6377         type the frontend used for the call.
6378         (gimplify_modify_expr): Likewise.
6379         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
6380         function type.
6381         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
6382         function type.
6383         * tree-ssa.c (useless_type_conversion_p): Function pointer
6384         conversions are useless.
6385
6386 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6387
6388         * cgraph.h (cgraph_node): Remove function declaration.
6389         (cgraph_create_node): Declare.
6390         (cgraph_get_create_node): Likewise.
6391         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
6392         Updated all callers.
6393         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
6394         the decl does not already exist.  Call cgraph_get_create_node instead
6395         of cgraph_node.
6396         (cgraph_get_create_node): New function.
6397         (cgraph_same_body_alias): Update comment.
6398         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
6399         assert it does not return NULL.
6400         (cgraph_update_edges_for_call_stmt): Likewise.
6401         (cgraph_clone_edge): Likewise.
6402         (cgraph_create_virtual_clone): Likewise.
6403         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
6404         instead of cgraph_node.
6405         (cgraph_add_new_function): Call cgraph_create_node or
6406         cgraph_get_create_node instead of cgraph_node.
6407         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
6408         instead of cgraph_node.
6409         (record_eh_tables): Likewise.
6410         (mark_address): Likewise.
6411         (mark_load): Likewise.
6412         (build_cgraph_edges): Call cgraph_get_create_node instead
6413         of cgraph_node.
6414         (rebuild_cgraph_edges): Likewise.
6415         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
6416         instead of cgraph_node.
6417         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
6418         cgraph_node.
6419         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
6420         cgraph_create_node instead of cgraph_node.
6421         * c-decl.c (finish_function): Call cgraph_get_create_node instead
6422         of cgraph_node.
6423         * lto-cgraph.c (input_node): Likewise.
6424         * lto-streamer-in.c (input_function): Likewise.
6425         * varasm.c (mark_decl_referenced): Likewise.
6426         (assemble_alias): Likewise.
6427
6428 2011-04-12  Martin Jambor  <mjambor@suse.cz>
6429
6430         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
6431         instead of cgraph_node and assert it does not return NULL.
6432         * lto-streamer-in.c (lto_read_body): Likewise.
6433         * omp-low.c (new_omp_context): Likewise.
6434         (create_task_copyfn): Likewise.
6435         * tree-emutls.c (lower_emutls_function_body): Likewise.
6436         * matrix-reorg.c (transform_allocation_sites): Likewise.
6437
6438 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
6439
6440         PR c/48552
6441         * c-typeck.c (build_asm_expr): Error out on attempts to use
6442         void type outputs or inputs for constraints that allow reg or
6443         don't allow memory.
6444
6445 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
6446             Richard Earnshaw  <rearnsha@arm.com>
6447
6448         PR target/48250
6449         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
6450         to use sign-magnitude offsets. Reject unsupported unaligned
6451         cases. Add detailed description in comments.
6452         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
6453         condition from TARGET_32BIT to TARGET_ARM.
6454
6455 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
6456
6457         * tree.h (struct typed_tree): New.
6458         (struct tree_common): Include it instead of tree_base.
6459         (TREE_TYPE): Update for new location of type field.
6460         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
6461         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
6462         (union tree_node): Add typed field.
6463         * treestruct.def (TS_TYPED): New.
6464         * lto-streamer.c (check_handled_ts_structures): Handle it.
6465         * tree.c (MARK_TS_TYPED): New macro.
6466         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
6467
6468 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
6469
6470         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
6471         (force_nonfallthru): Do not alter the loop nest if no basic block
6472         was created.
6473
6474 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6475
6476         * config/i386/sse.md (VI): New mode iterator.
6477         (SSEMODEI): Remove.
6478         (AVX256MODEI): Ditto.
6479         (AVXMODEF4P): Ditto.
6480         (avxvecpsmode): Ditto.
6481         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
6482         (sse2_andnot<mode>3): New expander.
6483         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
6484         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
6485         (<any_logic:code><mode>3): Use VI mode iterator.
6486         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
6487         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
6488         (*andnottf3): Handle AVX three-operand constraints.
6489         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
6490
6491 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6492             Robert Millan  <rmh@gnu.org>
6493
6494         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
6495         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
6496         GNU_USER_DYNAMIC_LINKER64): Define.
6497         (REG_NAME): Don't undefine.
6498         (MD_UNWIND_SUPPORT): Undefine.
6499         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
6500         (REG_NAME): Don't undefine.
6501         (MD_UNWIND_SUPPORT): Undefine.
6502         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
6503
6504 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6505
6506         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
6507         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
6508
6509 2011-04-11  Xinliang David Li  <davidxl@google.com>
6510
6511         * value-profile.c (check_ic_target): New function.
6512         (gimple_ic_transform): Sanity check indirect call target.
6513         * gimple-low.c (gimple_check_call_args): Interface change.
6514         (gimple_check_call_matching_types): New function.
6515         * tree-inline.c (tree_can_inline_p): Call new function.
6516
6517 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
6518
6519         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
6520         tree-pretty-print.h & realmpfr.h.
6521
6522 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
6523
6524         PR middle-end/48464
6525         * ira.c (setup_pressure_classes): Fix typo in loop condition.
6526         (setup_allocno_and_important_classes): Ditto.
6527
6528 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6529
6530         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
6531         GNU_USER_DYNAMIC_LINKER.
6532         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
6533         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6534         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
6535         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6536         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6537         GNU_USER_TARGET_OS_CPP_BUILTINS.
6538         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
6539         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6540         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6541         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6542         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
6543         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6544         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6545         GNU_USER_TARGET_OS_CPP_BUILTINS.
6546         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6547         GNU_USER_DYNAMIC_LINKER.
6548         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6549         GNU_USER_TARGET_OS_CPP_BUILTINS.
6550         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
6551         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6552         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
6553         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6554         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
6555         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
6556         GNU_USER_DYNAMIC_LINKER64): Remove.
6557         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
6558         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6559         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6560         GNU_USER_DYNAMIC_LINKER.
6561         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6562         GNU_USER_TARGET_OS_CPP_BUILTINS.
6563         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6564         GNU_USER_TARGET_OS_CPP_BUILTINS.
6565         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
6566         to GNU_USER_TARGET_OS_CPP_BUILTINS.
6567         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6568         GNU_USER_TARGET_OS_CPP_BUILTINS.
6569         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
6570         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
6571         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6572         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
6573         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6574         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6575         GNU_USER_DYNAMIC_LINKER.
6576         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6577         GNU_USER_TARGET_OS_CPP_BUILTINS.
6578         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
6579         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6580         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6581         GNU_USER_DYNAMIC_LINKER.
6582         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6583         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6584         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
6585         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6586         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6587         GNU_USER_DYNAMIC_LINKER.
6588         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
6589         GNU_USER_DYNAMIC_LINKERN32.
6590         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
6591         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
6592         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
6593         GNU_USER_DYNAMIC_LINKER32.
6594         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
6595         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6596         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6597         GNU_USER_DYNAMIC_LINKER.
6598         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6599         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6600         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
6601         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6602         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6603         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
6604         GNU_USER_DYNAMIC_LINKER32.
6605         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6606         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
6607         GNU_USER_DYNAMIC_LINKER.
6608         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
6609         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6610         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6611         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
6612         GNU_USER_DYNAMIC_LINKER64.
6613         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
6614         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6615         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6616         GNU_USER_DYNAMIC_LINKER.
6617         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
6618         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6619         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6620         GNU_USER_DYNAMIC_LINKER.
6621         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
6622         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6623         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6624         GNU_USER_DYNAMIC_LINKER32.
6625         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6626         GNU_USER_DYNAMIC_LINKER64.
6627         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6628         GNU_USER_DYNAMIC_LINKER64.
6629         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
6630         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6631         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
6632         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6633         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6634
6635 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6636
6637         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
6638         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
6639         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
6640         GNU_USER_DYNAMIC_LINKER.
6641         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6642         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
6643         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
6644         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
6645         GNU_USER_DYNAMIC_LINKER64.
6646         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6647         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
6648         GNU_USER_LINK_EMULATION.
6649         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6650         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6651         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6652         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6653         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6654         CPP_SPEC, CC1_SPEC): Remove.
6655         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6656         (GNU_USER_DYNAMIC_LINKER): Define.
6657         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6658         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6659         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6660         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6661         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6662         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6663         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6664         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6665         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6666         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6667         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6668         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6669         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6670         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6671         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6672         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6673         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6674         GNU_USER_DYNAMIC_LINKER.
6675         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6676         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6677         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6678         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6679         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6680         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6681         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6682         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6683         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
6684         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
6685
6686 2011-04-11  Kai Tietz  <ktietz@redhat.com>
6687
6688         PR target/9601
6689         PR target/11772
6690         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6691         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6692         comment.
6693         (ix86_is_msabi_thiscall): Removed.
6694         (ix86_is_type_thiscall): Likewise.
6695         (ix86_get_callcvt): New function.
6696         (ix86_comp_type_attributes): Simplify check.
6697         (ix86_function_regparm): Use ix86_get_callcvt for calling
6698         convention attribute checks.
6699         (ix86_return_pops_args): Likewise.
6700         (ix86_static_chain): Likewise.
6701         (x86_this_parameter): Likewise.
6702         (x86_output_mi_thunk): Likewise.
6703         (ix86_function_type_abi): Optimize check for types without attributes.
6704         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6705         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6706         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6707         by flag-values.
6708         (IX86_BASE_CALLCVT): Helper macro.
6709         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6710         Use ix86_get_callcvt for calling convention attribute checks and avoid
6711         symbol-decoration for stdcall in TARGET_RTD case.
6712         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6713         Likewise.
6714         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6715         for declaration.
6716
6717 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6718
6719         * config/i386/sse.md (VI_128): New mode iterator.
6720         (VI12_128): Rename from SSEMODE12.
6721         (VI14_128): Rename from SSEMODE14.
6722         (VI124_128): New mode iterator.
6723         (VI24_128): Rename from SSEMODE248.
6724         (VI248_128): Rename from SSEMODE248.
6725         (SSEMODE124C8): Remove.
6726         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6727         (*sse2_<plusminus_insn><mode>3): Merge with
6728         *avx_<plusminus_insn><mode>3.
6729         (*mulv8hi3): Merge with *avx_mulv8hi3.
6730         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6731         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6732         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6733         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6734         (ashr<mode>3): Merge with *avx_ashr<mode>3.
6735         (lshr<mode>3): Merge with *avx_lshr<mode>3.
6736         (ashl<mode>3): Merge with *avx_ashl<mode>3.
6737         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6738         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6739         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6740         (*<smaxmin:code>v8hi3): Ditto.
6741         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6742         (*<smaxmin:code>v16qi3): Ditto.
6743         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6744         (*sse2_eq<mode>3): Ditto.
6745         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6746         (*sse2_gt<mode>3): Ditto.
6747         (vcondv2di): Split out of vcond<mode>.
6748         (vconduv2di): Split out of vcondu<mode>.
6749
6750 2011-04-11  Richard Guenther  <rguenther@suse.de>
6751
6752         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6753         before calling tree_low_cst.
6754
6755 2011-04-11  Richard Guenther  <rguenther@suse.de>
6756
6757         * stor-layout.c (layout_type): Compute all array index size operations
6758         in the original type.
6759         (initialize_sizetypes): Add comment.
6760         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6761
6762 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6763
6764         * common.opt (Tbss=, Tdata=, Ttext=): New options.
6765
6766 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6767
6768         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6769         of cgraph_node, handle NULL return value.
6770         (cgraph_global_info): Likewise.
6771         (cgraph_rtl_info): Likewise.
6772         * tree-inline.c (estimate_num_insns): Likewise.
6773         * gimplify.c (unshare_body): Likewise.
6774         (unvisit_body): Likewise.
6775         (gimplify_body): Likewise.
6776         * predict.c (optimize_function_for_size_p): Likewise.
6777         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6778         (call_may_clobber_ref_p_1): Likewise.
6779         * varasm.c (function_section_1): Likewise.
6780         (assemble_start_function): Likewise.
6781
6782 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6783
6784         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
6785         of cgraph_node.
6786         * final.c (rest_of_clean_state): Likewise.
6787         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
6788         * passes.c (pass_init_dump_file): Likewise.
6789         (execute_all_ipa_transforms): Likewise.
6790         (function_called_by_processed_nodes_p): Likewise.
6791         * predict.c (maybe_hot_frequency_p): Likewise.
6792         (probably_never_executed_bb_p): Likewise.
6793         (compute_function_frequency): Likewise.
6794         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
6795         (unnest_nesting_tree_1): Likewise.
6796         (lower_nested_functions): Likewise.
6797         * tree-optimize.c (execute_fixup_cfg): Likewise.
6798         (tree_rest_of_compilation): Likewise.
6799         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
6800         * tree-sra.c (ipa_early_sra): Likewise.
6801         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
6802         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
6803         * ipa.c (record_cdtor_fn): Likewise.
6804         * ipa-inline.c (cgraph_early_inlining): Likewise.
6805         (compute_inline_parameters_for_current): Likewise.
6806         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6807         * ipa-pure-const.c (local_pure_const): Likewise.
6808         * ipa-split.c (split_function): Likewise.
6809         (execute_split_functions): Likewise.
6810         * cgraphbuild.c (build_cgraph_edges): Likewise.
6811         (rebuild_cgraph_edges): Likewise.
6812         (cgraph_rebuild_references): Likewise.
6813         (remove_cgraph_callee_edges): Likewise.
6814         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
6815         (verify_cgraph_node): Likewise.
6816         (cgraph_analyze_functions): Likewise.
6817         (cgraph_preserve_function_body_p): Likewise.
6818         (save_inline_function_body): Likewise.
6819         (save_inline_function_body): Likewise.
6820         * tree-inline.c (copy_bb): Likewise.
6821         (optimize_inline_calls): Likewise.
6822
6823 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6824
6825         PR tree-optimization/48195
6826         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
6827         ipa_check_create_edge_args.
6828         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
6829         ipa_check_create_edge_args.
6830         * ipa-inline.c (inline_generate_summary): Do not call
6831         ipa_check_create_node_params and ipa_check_create_edge_args.
6832         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
6833         ipa_check_create_edge_args.
6834
6835 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
6836
6837         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
6838         instead of loop.
6839         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
6840         * function.c (record_hard_reg_sets): Likewise.
6841         * ira.c (compute_regs_asm_clobbered): Likewise.
6842         * sched-deps.c (sched_analyze_1): Likewise.
6843         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
6844
6845 2011-04-09  Xinliang David Li  <davidxl@google.com>
6846
6847         PR tree-optimization/PR48484
6848         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
6849         has_valid_pred lazily
6850
6851 2011-04-09  Duncan Sands  <baldrick@free.fr>
6852
6853         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
6854
6855 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6856
6857         * combine.c (combine_validate_cost): Adjust comments.  Set registered
6858         cost of I0 to zero at the end, if any.
6859
6860 2011-04-08  Xinliang David Li  <davidxl@google.com>
6861
6862         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
6863         to insane profile data.
6864
6865 2011-04-08  Xinliang David Li  <davidxl@google.com>
6866
6867         * ipa-cp.c (ipcp_update_profiling): Correct
6868          negative scale factor due to insane profile data.
6869
6870 2011-04-08  Xinliang David Li  <davidxl@google.com>
6871
6872         * final.c (dump_basic_block_info): New function.
6873         (final): Dump basic block.
6874         (final_scan_insn): Remove old dump.
6875
6876 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
6877
6878         PR target/47829
6879         * config.gcc (i386-*-freebsd): Disable unwind table generation for
6880         crtbegin/crtend.
6881
6882 2011-04-08  Michael Matz  <matz@suse.de>
6883
6884         PR middle-end/48389
6885         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6886         functions.
6887         (rebuild_jump_labels): Call rebuild_jump_labels_1.
6888         * rtl.h (rebuild_jump_labels_chain): Declare.
6889         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6890         insns inserted on edges.
6891
6892 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
6893
6894         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6895         * config/arm/arm-arches.def: New.
6896         * config/arm/arm-opts.h: New.
6897         * config/arm/genopt.sh: New.
6898         * config/arm/arm-tables.opt: New (generated).
6899         * config/arm/arm.c (arm_handle_option, arm_target_help,
6900         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6901         (all_architectures): Get most table contents from arm-arches.def.
6902         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6903         arm_selected_tune here.
6904         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6905         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6906         (march=, mcpu=, mtune=): Use Enum and Var.
6907         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6908         (arm.o): Update dependencies.
6909
6910 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
6911
6912         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6913         of header_file.
6914         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6915         (write_typed_alloc_defns): Likewise.
6916         (main): Calls write_typed_alloc_defns with output_header.
6917
6918 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
6919
6920         PR inline-asm/48435
6921         * ira-color.c (setup_profitable_hard_regs): Add comments.
6922         Don't take prohibited hard regs into account.
6923         (setup_conflict_profitable_regs): Rename to
6924         get_conflict_profitable_regs.
6925         (check_hard_reg_p): Check prohibited hard regs.
6926
6927 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
6928
6929         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6930         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6931         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6932
6933 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6934
6935         PR target/48366
6936         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
6937         move from floating point to shift amount register.
6938         (emit_move_sequence): Remove secondary reload support for floating
6939         point to shift amount amount register copies.
6940         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6941         amount register copies.
6942         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6943         register, return false if mode isn't a scalar integer mode.
6944         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6945
6946 2011-04-08  Richard Guenther  <rguenther@suse.de>
6947
6948         * gimple.c (gimple_call_flags): Remove kludge.
6949
6950 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6951
6952         * sel-sched.c (sel_region_init): Move call to
6953         sel_setup_region_sched_flags after setup_current_loop_nest.
6954
6955 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
6956
6957         PR rtl-optimization/48272
6958         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6959         init_insn_reg_pressure_info.  Adjust a caller.
6960         * sched-int.h (init_insn_reg_pressure_info): Declare.
6961         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6962         when sched-pressure is enabled.
6963
6964 2011-04-08  Richard Guenther  <rguenther@suse.de>
6965
6966         * gimple.c (gimple_set_modified): Do not queue calls to
6967         MODIFIED_NORETURN_CALLS here ...
6968         * tree-ssa-operands.c (update_stmt_operands): ... but here.
6969
6970 2011-04-08  Richard Guenther  <rguenther@suse.de>
6971
6972         PR lto/48467
6973         * toplev.c (lang_dependent_init): Do not open asm_out_file
6974         in WPA mode, nor perform debug machinery initialization.
6975         (finalize): Do not unlink asm_out_file in WPA mode.
6976
6977 2011-04-08  Richard Guenther  <rguenther@suse.de>
6978
6979         * gimple.h (gimple_call_fntype): New function.
6980         (gimple_call_return_type): Use it.
6981         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6982         * gimple-low.c (gimple_check_call_args): Likewise.
6983         * gimple.c (gimple_call_flags): Likewise.
6984         (gimple_call_arg_flags): Likewise.
6985         (gimple_call_return_flags): Likewise.
6986         * tree-cfg.c (verify_gimple_call): Likewise.
6987         (do_warn_unused_result): Likewise.
6988         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6989         * value-prof.c (gimple_ic_transform): Fix fndecl check.
6990
6991 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
6992
6993         PR rtl-optimization/48235
6994         * sel-sched.c (code_motion_process_successors): Recompute the last
6995         insn in basic block if control flow changed.
6996         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
6997         Update condition for ilist_remove.
6998
6999 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7000
7001         PR rtl-optimization/48302
7002         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
7003         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
7004         it to record added preheader blocks.
7005         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
7006         on to sel_add_loop_preheaders.
7007         (sel_region_init): Move call to setup_current_loop_nest after
7008         sel_init_bbs.
7009
7010 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7011
7012         PR target/48273
7013         * cfgloop.h (loop_has_exit_edges): New helper.
7014         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
7015         non-clonable.
7016         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
7017         that have no exit edges.
7018
7019 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
7020
7021         PR rtl-optimization/48442
7022         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
7023         all callers.  Adjust assert.
7024
7025 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
7026
7027         PR tree-optimization/48377
7028         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7029         is_packed to true even for types with smaller TYPE_ALIGN than
7030         TYPE_SIZE.
7031
7032 2011-04-08  Richard Guenther  <rguenther@suse.de>
7033
7034         PR bootstrap/48513
7035         * doc/tm.texi: Re-generate.
7036
7037 2011-04-08  Wei Guozhi  <carrot@google.com>
7038
7039         PR target/47855
7040         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7041         * config/arm/arm.c (arm_attr_length_push_multi): New function.
7042         * config/arm/arm.md (*push_multi): Change the length computation to
7043         call a C function.
7044
7045 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
7046
7047         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7048         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7049         * doc/tm.texi: Regenerate.
7050         * system.h (ASM_OUTPUT_BSS): Poison.
7051         * varasm.c (asm_output_bss): Remove function.
7052         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
7053
7054         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7055         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7056         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7057         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7058         Likewise.
7059         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7060         Likewise.
7061         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7062         Likewise.
7063         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7064
7065 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7066
7067         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7068         EnumValue lines.
7069
7070 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
7071
7072         * config/m68k/m68k.c (m68k_handle_option): Don't handle
7073         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7074         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7075         OPT_mcpu32.
7076         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7077         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7078         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7079         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7080         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7081         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7082         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7083         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7084         options.  Don't map other m68k options manually.  Don't handle
7085         old-style options as canonical.
7086         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7087         * doc/install.texi (m68k-*-*): Document binutils version requirement.
7088
7089 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7090
7091         * basic-block.h (force_nonfallthru): Move to...
7092         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7093         (force_nonfallthru): ...here.
7094         * cfghooks.c (force_nonfallthru): New function.
7095         * cfgrtl.c (force_nonfallthru): Rename into...
7096         (rtl_force_nonfallthru): ...this.
7097         (commit_one_edge_insertion): Do not set AUX field.
7098         (commit_edge_insertions): Do not discover new basic blocks.
7099         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7100         (cfg_layout_rtl_cfg_hooks): Likewise.
7101         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7102         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
7103         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7104
7105 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
7106
7107         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7108         Remove macros.
7109
7110 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
7111
7112         * config/i386/sse.md: Update copyright year.
7113         (avxcvtvecmode): Remove.
7114         (sse_movhlps): Merge with *avx_movhlps.
7115         (sse_movlhps): Merge with *avx_movlhps.
7116         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7117         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7118         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7119         (sse_loadhps): Merge with *avx_loadhps.
7120         (sse_storelps): Merge with *avx_storelps.
7121         (sse_loadlps): Merge with *avx_loadlps.
7122         (sse_movss): Merge with *avx_movss.
7123         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7124         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7125         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7126         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7127         (vec_set<mode>_0): Ditto.
7128         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7129         (sse4_1_insertps): Merge with *avx_insertps.
7130         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7131         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7132         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7133         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7134         (sse2_storehpd): Merge with *avx_storehpd.
7135         (sse2_loadhpd): Merge with *avx_loadhpd.
7136         (sse2_loadlpd): Merge with *avx_loadlpd.
7137         (sse2_movsd): Merge with *avx_movsd.
7138         (*vec_concatv2df): Merge with *vec_concatv2df.
7139
7140 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
7141
7142         PR debug/48343
7143         * combine.c (combine_instructions): Add last_combined_insn,
7144         update it if insn is after it, pass it to all try_combine calls.
7145         (try_combine): Add last_combined_insn parameter, pass it instead of
7146         i3 to propagate_for_debug.
7147
7148 2011-04-07  Nick Clifton  <nickc@redhat.com>
7149
7150         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7151         to handle MDR <-> data register transfers.
7152         (movhi_internal): Likewise.
7153
7154 2011-04-07  Alan Modra  <amodra@gmail.com>
7155
7156         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7157         previous stack info.
7158
7159 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7160
7161         PR target/43920
7162         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
7163         flow_find_cross_jump.  Swap variables to implement backward replacement.
7164         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7165
7166 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7167
7168         PR target/43920
7169         * cfgcleanup.c (walk_to_nondebug_insn): New function.
7170         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
7171         and bb2.
7172         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7173         src1 or src2.  Redirect edges to the last basic block.  Update
7174         frequency and count on multiple basic blocks in case of fallthru.
7175
7176 2011-04-07  Tom de Vries  <tom@codesourcery.com>
7177
7178         PR target/43920
7179         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7180         function.
7181         (old_insns_match_p): Change return type.  Replace return false/true
7182         with return dir_none/dir_both.  Use can_replace_by.
7183         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
7184         direction from dir_p.  Register replacement direction in dir, last_dir
7185         and afterlast_dir.  Handle new return type of old_insns_match_p using
7186         merge_dir.  Return replacement direction in dir_p.
7187         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7188         return type of old_insns_match_p.
7189         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7190         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7191         flow_find_cross_jump.
7192         * basic-block.h (enum replace_direction): New type.
7193         (flow_find_cross_jump): Add parameter to declaration.
7194
7195 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7196
7197         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7198         (AVXMODEDCVTPS2DQ): Ditto.
7199         (VEC_FLOAT_MODE): Ditto.
7200         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
7201         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7202         (<any_logic:code><mode>3): Use VF mode iterator.
7203         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7204         Use VF mode iterator.
7205         (copysign<mode>3): Use VF mode iterator.
7206         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
7207         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7208         (*<any_logic:code><MODEF:mode>3): Merge with
7209         *avx_<any_logic:code><MODEF:mode>3.
7210         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7211         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7212         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7213         (avx_cvtdq2ps<avxmodesuffix>): Remove.
7214         (sse2_cvtdq2ps): Use %v modifier.
7215         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7216         (avx_cvtps2dq<avxmodesuffix>): Remove.
7217         (sse2_cvtps2dq): Use %v modifier.
7218         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7219         (avx_cvttps2dq<avxmodesuffix>): Remove.
7220         (sse2_cvttps2dq): Use %v modifier.
7221         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7222         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7223         (sse2_cvtsd2siq): Fix insn template.
7224         (sse2_cvtsd2siq_2): Ditto.
7225         (sse2_cvttsd2siq): Ditto.
7226         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7227         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7228
7229 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7230
7231         * gcov-io.c: Use GCC Runtime Library Exception.
7232
7233 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
7234
7235         PR debug/48466
7236         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7237         as base_reg whatever register reg has been eliminated to, instead
7238         of hardcoding STACK_POINTER_REGNUM.
7239
7240 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
7241
7242         * doc/tm.texi.in: Document C target hooks as separate from general
7243         target hooks.
7244         * doc/tm.texi: Regenerate.
7245         * genhooks.c (struct hook_desc): Add docname field.
7246         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
7247         docname field.
7248         (hook_array): Include c-target.def.
7249         (emit_documentation): Use docname field in output.
7250         (emit_init_macros): Take docname argument.  Only emit definitions
7251         for hooks matching docname.
7252         (main): Expect additional arguments in all cases.  Pass argument
7253         to emit_init_macros.
7254         * target.def: Move initial macro definitions and comments to
7255         target-hooks-macros.h.
7256         (gcc_targetcm): Move to c-family/c-target.def.
7257         * target.h (targetcm): Move declaration to c-family/c-target.h.
7258         * targhooks.c (default_handle_c_option): Move to
7259         c-family/c-opts.c.
7260         * targhooks.h (default_handle_c_option): Move declaration to
7261         c-family/c-common.h.
7262         * target-hooks-macros.h: New file.
7263         * config.gcc (target_has_targetcm): Define and use to add to
7264         c_target_objs and cxx_target_objs.
7265         * config/default-c.c: New file.
7266         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
7267         of target.h and target-def.h.
7268         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
7269         (darwin_objc_construct_string, darwin_cfstring_ref_p,
7270         darwin_check_cfstring_format_arg): Make static.
7271         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7272         TARGET_STRING_OBJECT_REF_TYPE_P,
7273         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
7274         * config/darwin-protos.h (darwin_objc_construct_string,
7275         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
7276         declare.
7277         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7278         TARGET_STRING_OBJECT_REF_TYPE_P,
7279         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
7280         * config/t-darwin (darwin-c.o): Update dependencies.
7281         * system.h (TARGET_HAS_TARGETCM): Poison.
7282         * Makefile.in (TARGET_H): Update.
7283         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
7284         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
7285         (default-c.o): New target.
7286         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
7287         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
7288         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
7289         c-target.def.
7290         (build/genhooks.o): Update dependencies.
7291
7292 2011-04-06  Richard Guenther  <rguenther@suse.de>
7293
7294         * ipa-inline.c (enum inlining_mode): Remove.
7295         (cgraph_flatten): Use some other token.
7296         (cgraph_edge_early_inlinable_p): New function, split out from ...
7297         (cgraph_perform_always_inlining): New function, split out from ...
7298         (cgraph_decide_inlining_incrementally): ... here.
7299         (cgraph_mark_inline_edge): Adjust.
7300         (cgraph_early_inlining): Re-structure.
7301         (pass_early_inline): Require SSA form.
7302
7303 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
7304             Julian Brown  <julian@codesourcery.com>
7305             Mark Shinwell  <shinwell@codesourcery.com>
7306
7307         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
7308         LO_REGS only for Thumb-1.
7309         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
7310         be used in short instructions when optimising for size on Thumb-2.
7311
7312 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7313
7314         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
7315         associated with user returns to be preserved.
7316
7317 2011-04-06  Tristan Gingold  <gingold@adacore.com>
7318
7319         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
7320         symbol_queue_size, DBXOUT_DECR_NESTING,
7321         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
7322         if XCOFF_DEBUGGING_INFO.
7323
7324 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
7325
7326         * config/i386/i386.md (attribute isa): New.
7327         (attribute enabled): New.
7328         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
7329         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
7330         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
7331         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
7332         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
7333         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7334         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
7335         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
7336
7337         * config/i386/sse.md (VF): New mode iterator.
7338         (VF1): Ditto.
7339         (VF2): Ditto.
7340         (VF_128): Ditto.
7341         (SSEMODEF4): Remove.
7342         (attribute sse): Handle V8SF and V4DF modes.
7343         (<absneg:code><mode>2): Use VF mode iterator.
7344         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
7345         mode iterator.
7346         (<plusminus_insn><mode>3): Use VF mode iterator.
7347         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7348         Use VF mode iterator.
7349         (<sse>_vm<plusminus_insn><mode>3): Merge with
7350         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
7351         (mul<mode>3): Use VF mode iterator.
7352         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
7353         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
7354         mode iterator.
7355         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
7356         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
7357         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
7358         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
7359         mode iterator.
7360         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
7361         Use VF1 mode iterator.
7362         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
7363         (sqrt<VF2:mode>2): New expander.
7364         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
7365         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
7366         and sqrtv2df2.  Use VF mode iterator.
7367         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
7368         mode iterator.
7369         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
7370         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
7371         Use VF1 mode iterator.
7372         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
7373         (<smaxmin:code><mode>3): Use VF mode iterator.
7374         (*<smaxmin:code><mode>3_finite): Merge with
7375         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
7376         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7377         (<sse>_vm<smaxmin:code><mode>2): Merge with
7378         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
7379         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
7380         mode iterator.
7381         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
7382         mode iterator.
7383         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
7384         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
7385         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
7386         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
7387         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
7388         VF mode iterator.
7389         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
7390         Use VF_128 mode iterator.
7391         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
7392         mode iterator.
7393         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
7394         VF_128 mode iterator.
7395         (vcond<mode>): Use VF mode iterator.
7396         * config/i386/predicates.md (sse_comparison_operator): Merge with
7397         avx_comparison_float_operator.  Do not declare as special_predicate.
7398         * config/i386/i386.c (struct builtin_description): Update for renamed
7399         compare patterns.
7400         (ix86_expand_args_builtin): Ditto.
7401         (ix86_expand_sse_compare_mask): Ditto.
7402
7403 2011-04-06  Richard Guenther  <rguenther@suse.de>
7404
7405         * tree-inline.c (estimate_num_insns): For calls simply account
7406         for all passed arguments and a used return value.
7407
7408 2011-04-06  Richard Guenther  <rguenther@suse.de>
7409
7410         PR tree-optimization/47663
7411         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
7412         call_stmt_time fields.
7413         (cgraph_edge_inlinable_p): Declare.
7414         (cgraph_edge_recursive_p): New inline function.
7415         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
7416         (cgraph_clone_edge): Copy it.
7417         * ipa-inline.c (cgraph_estimate_edge_time): New function.
7418         Account for call stmt time.
7419         (cgraph_estimate_time_after_inlining): Take edge argument.
7420         (cgraph_estimate_edge_growth): Account call stmt size.
7421         (cgraph_estimate_size_after_inlining): Take edge argument.
7422         (cgraph_mark_inline_edge): Adjust.
7423         (cgraph_check_inline_limits): Likewise.
7424         (cgraph_recursive_inlining_p): Remove.
7425         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
7426         (cgraph_decide_recursive_inlining): Take edge argument and
7427         adjust.
7428         (cgraph_decide_inlining_of_small_functions): Do not avoid
7429         diags for recursive inlining here.
7430         (cgraph_flatten): Adjust.
7431         (cgraph_decide_inlining_incrementally): Likewise.
7432         (estimate_function_body_sizes): Remove call cost handling.
7433         (compute_inline_parameters): Initialize caller edge call costs.
7434         (cgraph_estimate_edge_growth): New function.
7435         (cgraph_estimate_growth): Use it.
7436         (cgraph_edge_badness): Likewise.
7437         (cgraph_check_inline_limits): Take an edge argument.
7438         (cgraph_decide_inlining_of_small_functions): Adjust.
7439         (cgraph_decide_inlining): Likewise.
7440         * tree-inline.c (estimate_num_insns): Only account for call
7441         return value if it is used.
7442         (expand_call_inline): Avoid diagnostics on recursive inline
7443         functions here.
7444         * lto-cgraph.c (lto_output_edge): Output edge call costs.
7445         (input_edge): Input edge call costs.
7446
7447 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7448
7449         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
7450
7451 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
7452
7453         * doc/invoke.texi (Spec Files): Fix typo.
7454
7455 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7456
7457         * profile.c (branch_prob): Move declaration of local variable.  Remove
7458         obsolete ??? comment.  Expand the location explicitly instead of using
7459         the LOCATION_FILE and LOCATION_LINE macros.
7460
7461 2011-04-06  Wei Guozhi  <carrot@google.com>
7462
7463         PR target/47855
7464         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
7465         (arm_cond_branch): Likewise.
7466         (arm_cond_branch_reversed): Likewise.
7467         (arm_jump): Likewise.
7468         (push_multi): Likewise.
7469         * config/arm/constraints.md (Py): New constraint.
7470
7471 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7472
7473         PR bootstrap/48471
7474         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
7475         Move these...
7476         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
7477         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
7478         #ifdef DBX_DEBUGGING_INFO.
7479
7480 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
7481
7482         PR bootstrap/48403
7483         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
7484         if old and new states differ.
7485
7486 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7487
7488         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
7489         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
7490         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7491         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
7492         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
7493         mcfv4e): Use Alias.
7494         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
7495         ColdFire options to -mcpu= options.
7496
7497 2011-04-05  Jeff Law  <law@redhat.com>
7498
7499         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
7500         check if BB is a successor of LOOP->header and return
7501         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
7502
7503 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7504
7505         * cprop.c (struct reg_use): Remove.
7506         (reg_use_table): Make an array of RTX.
7507         (find_used_regs, constprop_register, local_cprop_pass,
7508         bypass_block): Simplify users of reg_use_table.
7509         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
7510         on one of the uses found by find_used_regs.
7511
7512 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7513
7514         PR bootstrap/48469
7515         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
7516         declaration.
7517
7518 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7519
7520         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
7521         as an rtx.
7522         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
7523
7524 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
7525
7526         PR middle-end/48441
7527         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
7528
7529 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7530
7531         * combine.c: Include obstack.h.
7532         (struct insn_link): Define.
7533         (uid_log_links): Adjust type.
7534         (FOR_EACH_LOG_LINK): New macro.
7535         (insn_link_obstack): Declare.
7536         (alloc_insn_link): Define.
7537         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
7538         type of link variables.
7539         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
7540         (try_combine, record_promoted_values, distribute_notes): Likewise.
7541         (distribute_links): Likewise.  Tweak prototype.
7542         (clear_log_links): Delete.
7543         (adjust_for_new_dest): Call alloc_insn_link.
7544         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
7545
7546 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7547
7548         * gcse.c (modify_mem_list): Convert to an array of VECs.
7549         (canon_modify_mem_list, compute_transp): Tweak formatting.
7550         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
7551         (load_killed_in_block_p): Likewise.
7552         (record_last_mem_set_info): Likewise.
7553         (clear_modify_mem_tables): Likewise.
7554
7555 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7556
7557         PR middle-end/48461
7558         * function.c (emit_use_return_register_into_block): Only define if
7559         HAVE_return.
7560
7561 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
7562
7563         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
7564
7565 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
7566
7567         * config/rx/rx-opts.h: New.
7568         * config/rx/rx.c (rx_cpu_type): Remove.
7569         (rx_handle_option): Don't assert that global structures are in
7570         use.  Access variables via opts pointer.  Defer most handling of
7571         OPT_mint_register_.  Use error_at.
7572         (rx_option_override): Handle deferred OPT_mint_register_ here.
7573         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
7574         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
7575         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
7576         (rx_cpu_types): New Enum and EnumValue entries.
7577         (mint-register=): Use Defer and use Var accordingly.
7578
7579 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7580
7581         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
7582         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
7583         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
7584         Move these...
7585         (debug_free_queue, debug_nesting, symbol_queue_index):
7586         ...and these...
7587         * dbxout.c: ...to here.  Make static.
7588
7589 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
7590
7591         * gcse.c (modify_pair): Define.  Define a VEC of it.
7592         (canon_modify_mem_list): Convert to an array of VECs.
7593         (free_insn_expr_list_list): Delete.
7594         (clear_modify_mem_tables): Call VEC_free instead.
7595         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
7596         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
7597         (canon_list_insert, compute_transp): Likewise.
7598
7599 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7600
7601         PR target/43920
7602         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
7603         for size.
7604
7605 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7606
7607         PR target/43920
7608         * function.c (emit_use_return_register_into_block): New function.
7609         (thread_prologue_and_epilogue_insns): Use
7610         emit_use_return_register_into_block.
7611
7612 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7613
7614         PR target/43920
7615         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
7616         insn.
7617
7618 2011-04-05  Tom de Vries  <tom@codesourcery.com>
7619
7620         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
7621
7622 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
7623
7624         * config/arm/arm.md (define_constants for unspec): Replace with
7625         define_c_enum.
7626         (define_constants for unspecv): Replace with define_c_enum.
7627         * config/arm/neon.md (define_constants for unspec): Replace with
7628         define_c_enum.
7629
7630 2011-04-04  Richard Henderson  <rth@redhat.com>
7631
7632         PR bootstrap/48400
7633         * dwarf2out.c (output_line_info): Always emit line info from
7634         at least one section.
7635         (dwarf2out_init): Create text_section_line_info here ...
7636         (set_cur_line_info_table): ... not here.
7637
7638 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
7639
7640         PR target/48380
7641         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
7642         not called.
7643
7644         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
7645
7646 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
7647
7648         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
7649         (expr_equiv_p): Remove.
7650         (insert_set_in_table): Look at <dest, src> pair instead of expr.
7651         (hash_scan_set): Update call to insert_set_in_table.
7652         (dump_hash_table): Dump <dest, src> pair.
7653         (lookup_set): Simplify.  Lookup <dest, src> pair.
7654         (compute_transp): Remove, fold heavily simplified code into...
7655         (compute_local_properties): ...here.  Expect COMP and TRANSP
7656         unconditionally.
7657         (find_avail_set): Take set directly from struct expr.
7658         (find_bypass-set): Likewise.
7659         (bypass_block): Likewise.
7660         (cprop_insn): Likewise.  Remove redundant INSN_P test.
7661
7662         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7663         checks on form of COND from find_implicit_sets to here.
7664         (find_implicit_sets): Cleanup control flow. Split critical edges
7665         if it exposes implicit sets.  Allocate/resize implicit_sets as
7666         necessary.
7667         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7668         changed something.  Run df_analyze after find_implicit_sets if any
7669         edges were split.  Do not allocate implicit_sets here.
7670
7671         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7672         (gcse_obstack): Renamed to cprop_obstack.
7673         (GNEW, GNEWVEC, GNEWVAR): Remove.
7674         (gmalloc): Remove.
7675         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7676         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7677         (gcse_alloc): Likewise, and rename to cprop_alloc.
7678         (alloc_gcse_men, free_gcse_mem): Remove.
7679         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7680         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7681         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7682
7683         * cprop.c (oprs_not_set_p): Remove.
7684         (mark_set, mark_clobber): Remove.
7685         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7686         (reg_not_set_p): New function.
7687         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7688         (cprop_insn): Likewise.
7689         (cprop_jump): Use FOR_EACH_EDGE.
7690
7691 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
7692
7693         PR bootstrap/48403
7694         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7695         (rank_for_schedule): Use scheduled_insns vector instead of
7696         last_scheduled_insn.
7697         (ok_for_early_queue_removal): Likewise.
7698         (queue_to_ready): Search forward in nonscheduled_insns_begin if
7699         we have a dbg_cnt.
7700         (choose_ready): Likewise.
7701         (commit_schedule): Use VEC_iterate.
7702         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
7703         a dbg_cnt, use it and ensure the first insn is in the ready list.
7704         (haifa_sched_init): Allocate scheduled_insns.
7705         (sched_extend_ready_list): Don't allocate it; reserve space.
7706         (haifa_sched_finish): Free it.
7707
7708 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7709
7710         * optc-gen.awk: Always remove type from Variable entry before
7711         recording in var_seen.
7712
7713 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
7714
7715         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7716         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7717         call to tidy_fallthru_edges.
7718
7719 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7720
7721         * doc/options.texi (ToLower): Document.
7722         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
7723         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7724         * opts.h (cl_option): Add cl_tolower field.
7725         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7726         arguments with lowercase strings.
7727         * config/rx/rx.opt (mcpu=): Add ToLower.
7728         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7729         argument.
7730
7731 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7732
7733         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7734
7735 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7736
7737         * config/vax/vax.c: Include reload.h.
7738
7739 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
7740
7741         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7742         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7743         (sparc_preferred_reload_class): New function.
7744
7745 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
7746
7747         PR debug/48401
7748         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7749         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7750
7751 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
7752
7753         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7754         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7755
7756 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
7757
7758         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7759         (ASM_OUTPUT_ALIGNED_BSS): Define.
7760
7761 2011-04-03  Michael Matz  <matz@suse.de>
7762
7763         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7764         and next_slot members.
7765         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7766         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7767         (lto_streamer_cache_append): Declare.
7768         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7769         unsigned index, remove offset parameter, ensure that we append
7770         or update existing entries.
7771         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
7772         parameter, update next_slot for append.
7773         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
7774         parameter.
7775         (lto_streamer_cache_insert_at): Likewise.
7776         (lto_streamer_cache_append): New function.
7777         (lto_streamer_cache_lookup): Use unsigned index.
7778         (lto_streamer_cache_get): Likewise.
7779         (lto_record_common_node): Don't test tree_node_can_be_shared.
7780         (preload_common_node): Adjust call to lto_streamer_cache_insert.
7781         (lto_streamer_cache_delete): Don't free offsets member.
7782         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
7783         (lto_output_string_with_length): Use lto_output_data_stream.
7784         (lto_output_tree_header): Remove ix parameter, don't write it.
7785         (lto_output_builtin_tree): Likewise.
7786         (lto_write_tree): Adjust callers to above, don't track and write
7787         offset, write unsigned index.
7788         (output_unreferenced_globals): Don't emit all global vars.
7789         (write_global_references): Use unsigned indices.
7790         (lto_output_decl_state_refs): Likewise.
7791         (write_symbol): Likewise.
7792         * lto-streamer-in.c (lto_input_chain): Move earlier.
7793         (input_function): Use unsigned index.
7794         (input_alias_pairs): Don't read and then ignore all global vars.
7795         (lto_materialize_tree): Remove ix_p parameter, don't read index,
7796         don't pass it back, use lto_streamer_cache_append.
7797         (lto_register_var_decl_in_symtab): Use unsigned index.
7798         (lto_register_function_decl_in_symtab): Likewise.
7799         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
7800         index.
7801         (lto_get_builtin_tree): Don't read index, use
7802         lto_streamer_cache_append.
7803         (lto_read_tree): Adjust call to lto_materialize_tree.
7804
7805         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
7806         don't use function calls in arguments to MIN.
7807
7808         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
7809         twice.
7810
7811         * gimple.c (gimple_type_leader_entry): Mark deletable.
7812
7813 2011-04-03  Alan Modra  <amodra@gmail.com>
7814
7815         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
7816
7817 2011-04-03  Michael Matz  <matz@suse.de>
7818
7819         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
7820         an integer.
7821         * tree.h (tree_decl_non_common.vindex): Adjust comment.
7822
7823 2011-04-03  Michael Matz  <matz@suse.de>
7824
7825         * cgraphbuild.c (record_reference): Canonicalize constructor values.
7826         * gimple-fold.c (canonicalize_constructor_val): Accept being called
7827         without function context.
7828         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
7829         current_function_decl and cfun.
7830
7831 2011-04-03  Michael Matz  <matz@suse.de>
7832
7833         * tree.c (decl_init_priority_insert): Don't create entry for
7834         default priority.
7835         (decl_fini_priority_insert): Ditto.
7836         (fields_compatible_p, find_compatible_field): Remove.
7837         * tree.h (fields_compatible_p, find_compatible_field): Remove.
7838         * gimple.c (gimple_compare_field_offset): Adjust block comment.
7839
7840 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
7841
7842         * combine.c (try_combine): Remove useless local variable.
7843
7844 2011-04-03  Richard Guenther  <rguenther@suse.de>
7845             Ira Rosen  <ira.rosen@linaro.org>
7846
7847         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
7848         non-variable offsets and compare the remaining bases of the two
7849         accesses instead of looking for exact same data-ref.
7850
7851 2011-04-02  Kai Tietz  <ktietz@redhat.com>
7852
7853         PR target/48416
7854         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
7855
7856         * i386.c (ix86_is_msabi_thiscall): New helper function.
7857         (ix86_is_type_thiscall): New helper function.
7858         (ix86_comp_type_attributes): Handle thiscall for method-functions
7859         special.
7860         (init_cumulative_args): Likewise.
7861         (find_drap_reg): Likewise.
7862         (ix86_static_chain): Likewise.
7863         (x86_this_parameter): Likewise.
7864         (x86_output_mi_thunk): Likewise.
7865
7866 2011-04-01  Olivier Hainque  <hainque@adacore.com>
7867             Nicolas Setton  <setton@adacore.com>
7868             Eric Botcazou  <ebotcazou@adacore.com>
7869
7870         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
7871         (add_gnat_descriptive_type_attribute): New function.
7872         (gen_array_type_die): Call it.
7873         (gen_enumeration_type_die): Likewise.
7874         (gen_struct_or_union_type_die): Likewise.
7875         (modified_type_die): Likewise.
7876         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
7877         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
7878         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
7879
7880 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7881
7882         PR bootstrap/48148
7883         * dwarf2out.c (resolve_addr): Don't call force_decl_die
7884         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7885
7886         Revert:
7887         2011-03-17  Richard Guenther  <rguenther@suse.de>
7888
7889         PR bootstrap/48148
7890         * lto-cgraph.c (input_overwrite_node): Clear the abstract
7891         origin for decls in other ltrans units.
7892         (input_varpool_node): Likewise.
7893
7894 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7895
7896         PR middle-end/48335
7897         * expr.c (expand_assignment): Handle all possibilities
7898         if TO_RTX is CONCAT.
7899         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
7900         (store_split_bit_field): If SUBREG_REG (op0) or
7901         op0 itself has smaller mode than word, return it
7902         for offset 0 and const0_rtx for out-of-bounds stores.
7903         If word is const0_rtx, skip it.
7904
7905 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
7906
7907         * config/h8300/h8300.c (print_operand_address): Rename to...
7908         (h8300_print_operand_address): ...this. Make static. Adjust comments.
7909         Call h8300_print_operand and h8300_print_operand_address instead of
7910         print_operand and print_operand_address. Declare.
7911         (print_operand): Renake to...
7912         (h8300_print_operand): ...this. Make static. Adjust comments.
7913         Call h8300_print_operand instead of print_operand. Declare.
7914         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7915         (h8300_register_move_cost): Likewise.
7916         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7917         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7918         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7919         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7920         * config/h8300/h8300-protos.h (print_operand): Delete.
7921         (print_operand_address): Delete.
7922
7923 2011-04-01  Richard Henderson  <rth@redhat.com>
7924
7925         PR 48400
7926         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7927         in strict mode before dwarf4.  Re-order tests to early out
7928         before switching sections.
7929
7930 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
7931
7932         * config/h8300/constraints.md: New file.
7933         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
7934         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7935         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7936         * config/h8300/predicates.md (bit_operand): Likewise.
7937         (incdec_operand): Use satisfies_constraint_M and
7938         satisfies_constraint_O.  Don't use C code block.
7939         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7940         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7941         (compute_mov_length): Use satisfies_constraint_G.
7942         (fix_bit_operand): Use satisfies_constraint_U.
7943         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7944         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7945         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7946         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7947         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7948         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7949         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7950         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7951         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7952         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7953         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7954         (EXTRA_MEMORY_CONSTRAINT): Delete.
7955
7956 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
7957             Michael Meissner  <meissner@linux.vnet.ibm.com>
7958
7959         PR target/48262
7960         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7961         operands, as per the specifications.
7962
7963         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7964         (vec_extract_evenv4sf): Ditto.
7965         (vec_extract_evenv8hi): Ditto.
7966         (vec_extract_evenv16qi): Ditto.
7967         (vec_extract_oddv4si): Ditto.
7968
7969 2011-03-31  Mark Wielaard  <mjw@redhat.com>
7970
7971         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7972         high_pc attribute if the CU has no associated code. Only output
7973         DW_AT_entry_pc for CU if not generating strict dwarf and
7974         dwarf_version < 4.
7975
7976 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
7977
7978         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7979         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7980         out of ...
7981         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7982         * final.c (final_start_function): Call the new function rather
7983         than using a NULL argument for dwarf2out_frame_debug.
7984
7985         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7986         that contains the prologue.
7987
7988         * haifa-sched.c (queue_insn): New arg REASON.  All callers
7989         changed.  Print it in debugging output.
7990
7991         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7992
7993         * sched-ebb.c (begin_schedule_ready): Remove second argument.
7994         Split most of the code into...
7995         (begin_move_insn): ... here.  New function.
7996         (ebb_sched_info): Add a pointer to it.
7997         * haifa-sched.c (scheduled_insns): New static variable.
7998         (sched_extend_ready_list): Allocate it.
7999         (schedule_block): Use it to record the order of scheduled insns.
8000         Perform RTL changes to move insns only after all scheduling
8001         decisions have been made.
8002         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
8003         begin_move_insn field.
8004         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
8005         * sched-int.h (struct haifa_sched_info): Remove second argument
8006         from begin_schedule_ready hook.  Add new member begin_move_insn.
8007         * sched-rgn.c (begin_schedule_ready): Remove second argument.
8008         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
8009
8010         * haifa-sched.c (prune_ready_list): New function, broken out of
8011         schedule_block.
8012         (schedule_block): Use it.
8013
8014 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8015
8016         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
8017
8018 2011-04-01  Kai Tietz  <ktietz@redhat.com>
8019
8020         * config.gcc (*-*-mingw*): Allow as option the
8021         posix threading model.
8022         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
8023         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
8024         definition.
8025         (CPP_SPEC): Add pthread/no-pthread handling.
8026         (LIB_SPEC): Likewise.
8027         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8028         (LIB_SPEC): Likewise.
8029         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8030         flag to pass -pthread option for shared libgcc build.
8031         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8032         for shared libgcc build.
8033         * config/i386/t-mingw-pthread: New file.
8034         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8035         New define to enable use of library pthread by default.
8036         * config/i386/mingw.opt (pthread): New driver option.
8037         (no-pthread): New driver option.
8038         * config/i386/cygming.opt: Make sure trailing empty line is retained.
8039         * config/i386/mingw-w64.opt: Likewise.
8040
8041 2011-04-01  Gary Funck  <gary@intrepid.com>
8042
8043         * c-decl.c (grokdeclarator): Fix formatting.
8044
8045 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8046
8047         * expr.c (emit_block_move_via_movmem): Use n_generator_args
8048         instead of n_operands.
8049         (set_storage_via_setmem): Likewise.
8050         * optabs.c (maybe_gen_insn): Likewise.
8051         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8052         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8053         (mips_expand_builtin_direct): Likewise.
8054         * config/spu/spu.c (expand_builtin_args): Likewise.
8055
8056 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8057
8058         * recog.h (insn_data_d): Add n_generator_args.
8059         * genoutput.c (data): Likewise.
8060         (output_insn_data): Print it.
8061         (max_opno, num_dups): Delete.
8062         (scan_operands): Just fill in "d->operand[...]".
8063         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8064
8065 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
8066
8067         * gensupport.h (pattern_stats): New structure.
8068         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8069         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8070         (max_operand_1, max_operand_vec): Delete.
8071         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8072
8073 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
8074
8075         * emit-rtl.c (emit_pattern_after_setloc): New function.
8076         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8077         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8078         (emit_pattern_after): New function.
8079         (emit_insn_after, emit_jump_insn_after): Call it.
8080         (emit_call_insn_after, emit_debug_insn_after): Likewise.
8081         (emit_pattern_before_setloc): New function.
8082         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8083         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8084         Likewise.
8085         (emit_pattern_before): New function.
8086         (emit_insn_before, emit_jump_insn_before): Call it.
8087         (emit_call_insn_before, emit_debug_insn_before): Likewise.
8088
8089 2011-03-31  Richard Henderson  <rth@redhat.com>
8090
8091         * dwarf2out.c (dw_separate_line_info_ref): Remove.
8092         (dw_separate_line_info_entry): Remove.
8093         (enum dw_line_info_opcode): New.
8094         (dw_line_info_entry): Use it.
8095         (dw_line_info_table, dw_line_info_table_p): New.
8096         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8097         (line_info_table, line_info_label_num): Remove.
8098         (line_info_table_in_use): Remove.
8099         (separate_line_info_table): Remove.
8100         (separate_line_info_table_allocated): Remove.
8101         (separate_line_info_table_in_use): Remove.
8102         (LINE_INFO_TABLE_INCREMENT): Remove.
8103         (line_info_label_num): New.
8104         (cur_line_info_table): New.
8105         (text_section_line_info, cold_text_section_line_info): New.
8106         (separate_line_info): New.
8107         (SEPARATE_LINE_CODE_LABEL): Remove.
8108         (print_dwarf_line_table): Remove.
8109         (debug_dwarf): Don't dump it.
8110         (output_one_line_info_table): New.
8111         (output_line_info): Use it.
8112         (new_line_info_table): New.
8113         (set_cur_line_info_table): New.
8114         (dwarf2out_switch_text_section): Use it.
8115         (dwarf2out_begin_function): Likewise.
8116         (push_dw_line_info_entry): New.
8117         (dwarf2out_source_line): Rewrite for new line info tables.
8118         (dwarf2out_init): Remove dead initailizations.
8119
8120 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8121
8122         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
8123         various flags.
8124         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8125         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8126         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8127         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8128         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8129         * opt-functions.awk (flag_init, switch_bit_fields): New.
8130         (switch_flags): Don't handle flags moved to bit-fields.  Don't
8131         generate CL_MISSING_OK or CL_SAVE.
8132         * optc-gen.awk: Update to generate bit-field output as well as
8133         flags field.
8134         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8135         bit-field instead of CL_REJECT_DRIVER flag.
8136         * opts-common.c (generate_canonical_option,
8137         decode_cmdline_option): Use bit-fields instead of CL_* flags.
8138         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8139         instead of CL_REJECT_NEGATIVE flag.
8140         * toplev.c (print_switch_values): Use cl_report bit-field instead
8141         of CL_REPORT flag.
8142
8143 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8144
8145         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8146         a zero minimum index only if it is redundant.
8147
8148 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
8149
8150         PR rtl-optimization/48381
8151         * ira-color.c (assign_hard_reg): Use hard reg set intersection
8152         instead of ira_class_hard_reg_index for calculating conflicting
8153         hard registers.
8154
8155 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
8156
8157         * cprop.c: Clean up hash table building.
8158         (reg_avail_info): Remove.
8159         (oprs_available_p): Remove.
8160         (record_last_reg_set_info): Remove.
8161         (record_last_set_info): Remove.
8162         (reg_available_p): New function.
8163         (gcse_constant_p): Do not treat unfolded conditions as constants.
8164         (make_set_regs_unavailable): New function.
8165         (hash_scan_set): Simplify with new reg_available_p.
8166         (compute_hash_table_work): Traverse insns stream only once.
8167         Do not compute reg_avail_info. Traverse insns in reverse order.
8168         Record implicit sets after recording explicit sets from the block.
8169
8170 2011-03-31  Michael Matz  <matz@suse.de>
8171
8172         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
8173
8174 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
8175
8176         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8177         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8178         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8179         (h8300_mode_dependent_address_p): New function.
8180         (h8300_get_index): Make static.
8181
8182 2011-03-31  Jeff Law  <law@redhat.com>
8183
8184         * reload1.c (elimination_effects): Fix typo in recent change.
8185
8186         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
8187         typo potentially leading to null pointer dereference.
8188
8189         * caller-save.c (new_saved_hard_reg): Eliminate return value.
8190         (setup_save_areas): Corresponding changes to avoid useless
8191         assignments.
8192
8193         * jump.c (reversed_comparison_code_parts): Avoid successive return
8194         statements when REVERSE_CONDITION is defined.
8195
8196         * expr.c (expand_assignment): Avoid useless assignments.
8197         (expand_expr_real_1): Likewise.
8198         (expand_expr_real_2): Avoid useless statements.
8199
8200         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8201
8202         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8203
8204         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8205         statements.
8206
8207         * stmt.c (expand_expr_stmt): Avoid useless assignment.
8208
8209 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
8210
8211         PR target/47109
8212         * doc/tm.texi.in (TARGET_VERSION): Remove.
8213         * doc/tm.texi: Regenerate.
8214         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8215         * collect2.c (main): Don't use TARGET_VERSION.
8216         * mips-tdump.c (main): Don't use TARGET_VERSION.
8217         * mips-tfile.c (main): Don't use TARGET_VERSION.
8218         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
8219         * config/rs6000/vxworksae.h: Remove.
8220         * config/alpha/alpha.h (TARGET_VERSION): Remove.
8221         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8222         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8223         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8224         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8225         * config/arm/arm.h (TARGET_VERSION): Remove.
8226         * config/arm/coff.h (TARGET_VERSION): Remove.
8227         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8228         * config/arm/elf.h (TARGET_VERSION): Remove.
8229         * config/arm/freebsd.h (TARGET_VERSION): Remove.
8230         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8231         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8232         * config/arm/pe.h (TARGET_VERSION): Remove.
8233         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8234         * config/arm/semi.h (TARGET_VERSION): Remove.
8235         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8236         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8237         * config/arm/vxworks.h (TARGET_VERSION): Remove.
8238         * config/avr/avr.h (TARGET_VERSION): Remove.
8239         * config/bfin/bfin.h (TARGET_VERSION): Remove.
8240         * config/fr30/fr30.h (TARGET_VERSION): Remove.
8241         * config/frv/frv.h (TARGET_VERSION): Remove.
8242         * config/h8300/h8300.h (TARGET_VERSION): Remove.
8243         * config/i386/cygwin.h (TARGET_VERSION): Remove.
8244         * config/i386/darwin.h (TARGET_VERSION): Remove.
8245         * config/i386/darwin64.h (TARGET_VERSION): Remove.
8246         * config/i386/djgpp.h (TARGET_VERSION): Remove.
8247         * config/i386/freebsd.h (TARGET_VERSION): Remove.
8248         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8249         * config/i386/gnu.h (TARGET_VERSION): Remove.
8250         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8251         * config/i386/i386elf.h (TARGET_VERSION): Remove.
8252         * config/i386/linux.h (TARGET_VERSION): Remove.
8253         * config/i386/linux64.h (TARGET_VERSION): Remove.
8254         * config/i386/lynx.h (TARGET_VERSION): Remove.
8255         * config/i386/mingw32.h (TARGET_VERSION): Remove.
8256         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8257         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8258         * config/i386/netware.h (TARGET_VERSION): Remove.
8259         * config/i386/nto.h (TARGET_VERSION): Remove.
8260         * config/i386/openbsd.h (TARGET_VERSION): Remove.
8261         * config/i386/vxworks.h (TARGET_VERSION): Remove.
8262         * config/ia64/elf.h (TARGET_VERSION): Remove.
8263         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
8264         * config/ia64/hpux.h (TARGET_VERSION): Remove.
8265         * config/ia64/linux.h (TARGET_VERSION): Remove.
8266         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8267         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
8268         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8269         * config/lm32/lm32.h (TARGET_VERSION): Remove.
8270         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
8271         * config/m32c/m32c.h (TARGET_VERSION): Remove.
8272         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
8273         * config/m32r/m32r.h (TARGET_VERSION): Remove.
8274         * config/m68k/linux.h (TARGET_VERSION): Remove.
8275         * config/m68k/m68k.h (TARGET_VERSION): Remove.
8276         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
8277         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
8278         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
8279         * config/mep/mep.h (TARGET_VERSION): Remove.
8280         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
8281         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8282         * config/mips/iris6.h (MACHINE_TYPE): Remove.
8283         * config/mips/linux.h (TARGET_VERSION): Remove.
8284         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
8285         * config/mips/vxworks.h (TARGET_VERSION): Remove.
8286         * config/mmix/mmix.h (TARGET_VERSION): Remove.
8287         * config/mn10300/linux.h (TARGET_VERSION): Remove.
8288         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
8289         * config/pa/pa.h (TARGET_VERSION): Remove.
8290         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
8291         * config/picochip/picochip.h (TARGET_VERSION): Remove.
8292         * config/rs6000/aix.h (TARGET_VERSION): Remove.
8293         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
8294         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
8295         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
8296         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
8297         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
8298         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
8299         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
8300         * config/rs6000/linux.h (TARGET_VERSION): Remove.
8301         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
8302         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
8303         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
8304         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
8305         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
8306         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
8307         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
8308         * config/s390/linux.h (TARGET_VERSION): Remove.
8309         * config/s390/s390.h (TARGET_VERSION): Remove.
8310         * config/s390/tpf.h (TARGET_VERSION): Remove.
8311         * config/score/score.h (TARGET_VERSION): Remove.
8312         * config/sh/linux.h (TARGET_VERSION): Remove.
8313         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
8314         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
8315         * config/sh/sh.h (TARGET_VERSION): Remove.
8316         * config/sh/sh64.h (TARGET_VERSION): Remove.
8317         * config/sh/superh.h (TARGET_VERSION): Remove.
8318         * config/sh/vxworks.h (TARGET_VERSION): Remove.
8319         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
8320         * config/sparc/linux.h (TARGET_VERSION): Remove.
8321         * config/sparc/linux64.h (TARGET_VERSION): Remove.
8322         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
8323         TARGET_NAME32, TARGET_NAME): Remove.
8324         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
8325         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
8326         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
8327         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
8328         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
8329         * config/spu/spu.h (TARGET_VERSION): Remove.
8330         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
8331         * config/v850/v850.h (TARGET_VERSION): Remove.
8332         * config/vax/linux.h (TARGET_VERSION): Remove.
8333         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
8334         * config/xtensa/elf.h (TARGET_VERSION): Remove.
8335         * config/xtensa/linux.h (TARGET_VERSION): Remove.
8336
8337 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
8338
8339         PR target/48142
8340         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
8341         frame-related from frame-unrelated adjustments to the stack pointer.
8342
8343 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
8344
8345         * common.opt (fdebug-types-section): Move earlier.
8346         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
8347
8348 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
8349
8350         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
8351         var.
8352
8353 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
8354
8355         * tree.h (CASE_CHAIN): Define.
8356         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
8357         (gimple_redirect_edge_and_branch): Likewise.
8358
8359 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8360
8361         PR middle-end/48367
8362         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
8363         calculation.
8364
8365 2011-03-30  Jeff Law  <law@redhat.com>
8366
8367         * PR bootstrap/48371
8368         * reload1.c (reload): Fix botch in last change.
8369
8370         * reload.h (struct reload): Fix typo introduced in last change.
8371
8372 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8373
8374         * config/arm/arm.opt (mhard-float, msoft-float): Mark
8375         Undocumented.  Remove help text.
8376         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
8377         -mhard-float.
8378
8379 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8380
8381         * doc/options.texi (NegativeAlias): Document.
8382         (Alias): Mention NegativeAlias.
8383         * opt-functions.awk: Handle NegativeAlias.
8384         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
8385         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
8386         * opts.h (CL_NEGATIVE_ALIAS): Define.
8387         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
8388         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
8389         OPT_mspe_.
8390         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
8391         Alias entries.
8392         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8393         mno-spe and mno-isel instead of mspe=no and -misel=no.
8394
8395 2011-03-29  Mark Wielaard  <mjw@redhat.com>
8396
8397         * common.opt (fdebug-types-section): New flag.
8398         * doc/invoke.texi: Document new -fno-debug-types-section flag.
8399         * dwarf2out.c (use_debug_types): New define.
8400         (struct die_struct): Mark die_id with GTY desc use_debug_types.
8401         (print_die): Guard output of type unit signatures using
8402         use_debug_types.
8403         (build_abbrev_table): Replace assert of dwarf_version >= 4
8404         with assert on use_debug_types.
8405         (size_of_die): Likewise.
8406         (unmark_dies): Likewise.
8407         (value_format): Decide AT_ref_external form on use_debug_types.
8408         (output_die): Replace dwarf_version version check guard with
8409         use_debug_types where appropriate.
8410         (modified_type_die): Likewise.
8411         (gen_reference_type_die): Likewise.
8412         (dwarf2out_start_source_file): Likewise.
8413         (dwarf2out_end_source_file): Likewise.
8414         (prune_unused_types_walk_attribs): Likewise.
8415         (dwarf2out_finish): Likewise.
8416
8417 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8418
8419         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
8420
8421 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8422
8423         PR rtl-optimization/48332
8424         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
8425         mode of input operand N and modeN to its actual mode.
8426
8427 2011-03-30  Jeff Law  <law@redhat.com>
8428
8429         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
8430         define accessor macro.
8431         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
8432         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
8433         (reg_equiv_init): Likewise.
8434         (reg_equivs_size): New variable.
8435         (reg_equiv_init_size): Remove.
8436         (allocate_initial_values): Move prototype to here from....
8437         * integrate.h (allocate_initial_values): Remove prototype.
8438         * integrate.c: Include reload.h.
8439         (allocate_initial_values): Corresponding changes.
8440         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
8441         (fix_reg_equiv_init, no_equiv): Corresponding changes.
8442         (update_equiv_regs): Corresponding changes.
8443         (ira): Corresponding changes.
8444         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
8445         (push_secondary_reload): Corresponding changes.
8446         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
8447         (make_memloc, find_reloads_address): Corresponding changes.
8448         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
8449         (find_reloads_address_1): Corresponding changes.
8450         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
8451         (refers_to_regno_for_reload_p): Corresponding changes.
8452         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
8453         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
8454         * reload1.c: Include ggc.h.
8455         (grow_reg_equivs): New function.
8456         (replace_pseudos_in, reload): Corresponding changes.
8457         (calculate_needs_all_insns, alter_regs): Corresponding changes.
8458         (eliminate_regs_1, elimination_effects): Corresponding changes.
8459         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
8460         (delete_output_reload): Likewise.
8461         * caller-save.c (mark_referenced_regs): Corresponding changes.
8462         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
8463         * frv/predicates.md (frv_load_operand): Corresponding changes.
8464         * microblaze/microblaze.c (double_memory_operand): Corresponding
8465         changes.
8466         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
8467         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
8468         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
8469         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
8470         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
8471         changes.
8472         * pa/pa.c (emit_move_sequence): Corresponding changes.
8473         * vax/vax.c (nonindexed_address_p): Corresponding changes.
8474
8475 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8476
8477         PR target/47551
8478         * config/arm/arm.c (coproc_secondary_reload_class): Handle
8479         structure modes.  Don't check neon_vector_mem_operand for
8480         vector or structure modes.
8481
8482 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
8483             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8484
8485         PR target/43590
8486         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
8487         operand 1 and reshuffle the operands to match.
8488         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
8489
8490 2011-03-30  Christian Schüler  <cschueler@gmx.de>
8491
8492         PR driver/48208
8493         * config/c.opt (F): Added 'Driver' to -F option.
8494
8495         PR driver/48260
8496         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
8497           handler function.
8498         * config/darwin.opt: Added '-arch' option.
8499
8500 2011-03-30  Nick Clifton  <nickc@redhat.com>
8501
8502         * config/rx/rx.md: Add peepholes and patterns to combine
8503         extending loads and simple arithmetic instructions.
8504         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
8505         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
8506         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
8507         modes to use pre-decrement and post-increment addressing.
8508         (rx_is_restricted_memory_address): Add range checking of REG+INT
8509         addresses.
8510         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
8511         (rx_memory_move_cost): Adjust cost of stores.
8512         (rx_adjust_insn_length): New function.
8513
8514 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
8515
8516         PR c/48305
8517         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8518         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
8519         matching arg00/arg01 types.
8520
8521 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
8522
8523         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
8524         last_location to UNKNOWN_LOCATION.
8525
8526 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8527
8528         PR target/48349
8529         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
8530         FLOAT_SSE_REGS.
8531
8532 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
8533             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8534
8535         PR bootstrap/48337
8536         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
8537         Init(PROCESSOR_V7).
8538         (sparc_cpu): Likewise.
8539         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
8540         PROCESSOR_V7.
8541
8542 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8543
8544         PR target/48336
8545         PR middle-end/48342
8546         PR rtl-optimization/48345
8547         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
8548         hard regs for given mode from profitable regs when doing secondary
8549         allocation.
8550
8551 2011-03-29  Jeff Law  <law@redhat.com>
8552
8553         PR bootstrap/48327
8554         * tree-ssa-threadupdate.c (struct redirection_data): Remove
8555         do_not_duplicate field.
8556         (lookup_redirection_data): Corresponding changes.
8557         (create_duplicates): Always create a template block.
8558         (redirect_edges): Remove code which reused the original block
8559         when it was going to become unreachable code.
8560         (thread_block): Don't set do_not_duplicate field.
8561
8562 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
8563
8564         * lto-opts.c (register_user_option_p, lto_register_user_option):
8565         Make type argument unsigned.
8566         * lto-streamer.h (lto_register_user_option): Make type argument
8567         unsigned.
8568         * opth-gen.awk: Make CL_* macros unsigned.
8569         * opts-common.c (find_opt): Make lang_mask argument unsigned.
8570         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
8571         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
8572         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
8573         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
8574         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
8575         (find_opt): Make lang_mask argument unsigned.
8576
8577 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8578
8579         PR rtl-optimization/48331
8580         PR rtl-optimization/48334
8581         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
8582         for any used algorithm.
8583
8584 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
8585
8586         * ira-conflicts.c (build_object_conflicts): Add unused attribute
8587         to parent_max.
8588
8589 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
8590
8591         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
8592         (alpha_option_override): Don't set alpha_sr_alias_set.
8593         (emit_frame_store_1): Use gen_frame_mem rather than calling
8594         set_mem_alias_set.
8595         (alpha_expand_epilogue): Ditto.
8596
8597 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
8598
8599         PR tree-optimization/48290
8600         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
8601         vectorization, check that relevant phis in the basic block after
8602         the inner loop are really inner loop's exit phis.
8603
8604 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
8605
8606         PR debug/48190
8607         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
8608         (cached_dw_loc_list_def): New structure.
8609         (cached_dw_loc_list): New typedef.
8610         (cached_dw_loc_list_table): New variable.
8611         (cached_dw_loc_list_table_hash): New function.
8612         (cached_dw_loc_list_table_eq): Likewise.
8613         (add_location_or_const_value_attribute): Take a bool cache_p.
8614         Cache the list when the parameter is true.
8615         (gen_formal_parameter_die): Update caller.
8616         (gen_variable_die): Likewise.
8617         (dwarf2out_finish): Likewise.
8618         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
8619         while generating debug info for the decl.
8620         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
8621         (dwarf2out_init): Initialize cached_dw_loc_list_table.
8622         (resolve_addr): Cache the result of resolving a chain of
8623         location lists.
8624
8625 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
8626
8627         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
8628         conflict object hard regset nodes have intersecting hard reg sets.
8629
8630         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
8631         after regstat_init_n_sets_and_refs.
8632
8633         * ira.c: Add more comments at the top.
8634         (setup_stack_reg_pressure_class, setup_pressure_classes):
8635         Add comments how we compute the register pressure classes.
8636         (setup_allocno_and_important_classes): Add more comments.
8637         (setup_class_translate_array, reorder_important_classes)
8638         (setup_reg_class_relations): Add comments.
8639
8640         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
8641         start of the file.
8642
8643         * ira-color.c: Add 2011 to the Copyright line.
8644         (assign_hard_reg):  Add more comments.
8645         (improve_allocation): Ditto.
8646
8647         * ira-costs.c: Add 2011 to the Copyright line.
8648         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
8649         comments.
8650         (setup_regno_cost_classes_by_mode): Ditto.
8651
8652         Initial patches from ira-improv branch:
8653
8654         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8655
8656         * ira-build.c (ira_create_object): Remove initialization of
8657         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
8658         (ira_create_allocno): Remove initialization of
8659         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8660         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8661         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8662         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8663         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8664         Initialize ALLOCNO_ADD_DATA.
8665         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8666         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8667         ALLOCNO_REG.
8668         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
8669         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8670
8671         * ira.c (ira_reallocate): Remove.
8672         (setup_pressure_classes): Call
8673         ira_init_register_move_cost_if_necessary.  Use
8674         ira_register_move_cost instead of ira_get_register_move_cost.
8675         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8676         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8677
8678         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8679         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8680         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8681         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8682         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8683         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8684         Fix formatting.
8685         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
8686         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8687         (struct allocno_color_data): New.
8688         (allocno_color_data_t): New typedef.
8689         (allocno_color_data): New definition.
8690         (ALLOCNO_COLOR_DATA): New macro.
8691         (struct object_color_data): New.
8692         (object_color_data_t): New typedef.
8693         (object_color_data): New definition.
8694         (OBJECT_COLOR_DATA): New macro.
8695         (update_copy_costs, calculate_allocno_spill_cost): Call
8696         ira_init_register_move_cost_if_necessary.  Use
8697         ira_register_move_cost instead of ira_get_register_move_cost.
8698         (move_spill_restore, update_curr_costs): Ditto.
8699         (allocno_spill_priority): Make it inline.
8700         (color_pass): Allocate and free allocno_color_dat and object_color_data.
8701         (struct coalesce_data, coalesce_data_t): New.
8702         (allocno_coalesce_data): New definition.
8703         (ALLOCNO_COALESCE_DATA): New macro.
8704         (merge_allocnos, coalesced_allocno_conflict_p): Use
8705         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8706         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8707         (coalesce_allocnos): Ditto.
8708         (setup_coalesced_allocno_costs_and_nums): Ditto.
8709         (collect_spilled_coalesced_allocnos): Ditto.
8710         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8711         (setup_slot_coalesced_allocno_live_ranges): Ditto.
8712         (coalesce_spill_slots): Ditto.
8713         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
8714         free allocno_coalesce_data.
8715
8716         * ira-conflicts.c: Fix formatting.
8717         (process_regs_for_copy): Call
8718         ira_init_register_move_cost_if_necessary.  Use
8719         ira_register_move_cost instead of ira_get_register_move_cost.
8720         (build_object_conflicts): Optimize.
8721
8722         * ira-costs.c (record_reg_classes): Optimize.  Call
8723         ira_init_register_move_cost_if_necessary.  Use
8724         ira_register_move_cost, ira_may_move_in_cost, and
8725         ira_may_move_out_cost instead of ira_get_register_move_cost and
8726         ira_get_may_move_cost.
8727         (record_address_regs): Ditto.
8728         (scan_one_insn): Optimize.
8729         (find_costs_and_classes): Optimize.
8730         (process_bb_node_for_hard_reg_moves): Call
8731         ira_init_register_move_cost_if_necessary.  Use
8732         ira_register_move_cost instead of ira_get_register_move_cost.
8733
8734         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8735         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8736         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8737         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8738         definitions.
8739         (ira_initiate_emit_data, ira_finish_emit_data)
8740         (create_new_allocno): New functions.
8741         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
8742         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8743         Use ira_register_move_cost instead of ira_get_register_move_cost.
8744
8745         * ira-int.h: Fix some comments.
8746         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8747         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8748         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8749         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
8750         add_data.
8751         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
8752         bitfield after mode.  Make hard_regno a short int.  Make
8753         hard_regno short.  Remove first_coalesced_allocno and
8754         next_coalesced_allocno.  Move mem_optimized_dest_p,
8755         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8756         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
8757         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8758         temp, colorable_p.  Add new member add_data.
8759         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8760         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8761         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8762         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8763         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8764         (ALLOCNO_ADD_DATA): New macro.
8765         (ira_emit_data_t): New typedef.
8766         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
8767         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8768         from struct ira_allocno.
8769         (ALLOCNO_EMIT_DATA): New macro.
8770         (ira_allocno_emit_data, allocno_emit_reg): New.
8771         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
8772         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
8773         (OBJECT_ADD_DATA): New macro.
8774         (ira_reallocate): Remove.
8775         (ira_initiate_emit_data, ira_finish_emit_data): New.
8776         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
8777         (ira_init_register_move_cost_if_necessary): New.
8778         (ira_object_conflict_iter_next): Merge into
8779         ira_object_conflict_iter_cond.
8780         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
8781
8782         * ira-live.c (process_single_reg_class_operands): Call
8783         ira_init_register_move_cost_if_necessary.  Use
8784         ira_register_move_cost instead of ira_get_register_move_cost.
8785
8786         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8787
8788         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
8789
8790         * ira-costs.c: Fix formatting.
8791         (cost_classes, cost_classes_num): Remove.
8792         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
8793         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
8794         (cost_classes_del, cost_classes_htab): New.
8795         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
8796         (initiate_regno_cost_classes, setup_cost_classes): New.
8797         (setup_regno_cost_classes_by_aclass): New.
8798         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
8799         (record_reg_classes): Use regno_cost_classes instead of
8800         cost_classes.  Move checking opposite operand up.
8801         (record_address_regs): Use regno_cost_classes
8802         instead of cost_classes.
8803         (scan_one_insn): Ditto.  Use always general register.
8804         (print_allocno_costs): Use regno_cost_classes instead of
8805         cost_classes.
8806         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
8807         (find_costs_and_classes): Set up cost classes for each registers.
8808         Use also their mode for this.  Use regno_cost_classes instead of
8809         cost_classes.
8810         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
8811         cost_classes.
8812         (free_ira_costs, ira_init_costs): Don't use cost_classes.
8813         (ira_costs, ira_set_pseudo_classes): Call
8814         initiate_regno_cost_classes and finish_regno_cost_classes.
8815
8816         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
8817
8818         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
8819
8820         * target.def (ira_cover_classes): Remove.
8821
8822         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
8823
8824         * doc/tm.texi.in: Ditto.
8825
8826         * ira-conflicts.c: Remove mentioning cover classes from the file.
8827         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
8828         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
8829
8830         * targhooks.c (default_ira_cover_classes): Remove.
8831
8832         * targhooks.h (default_ira_cover_classes): Ditto.
8833
8834         * haifa-sched.c: Remove mentioning cover classes from the file.
8835         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
8836         ira_pressure_classes and ira_pressure_classes_num instead of
8837         ira_reg_class_cover_size and ira_reg_class_cover.  Use
8838         sched_regno_pressure_class instead of sched_regno_cover_class.
8839         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
8840         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8841
8842         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
8843         classes from the file.
8844         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
8845         (struct object_hard_regs, struct object_hard_regs_node): New.
8846         (struct ira_object): New members profitable_hard_regs,
8847         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
8848         (struct ira_allocno): Rename cover_class to aclass.  Rename
8849         cover_class_cost and updated_cover_class_cost to class_cost and
8850         updated_class_cost.  Remove splay_removed_p and
8851         left_conflict_size.  Add new members colorable_p.
8852         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
8853         (ALLOCNO_COLORABLE_P): New macro.
8854         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
8855         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
8856         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
8857         (OBJECT_...): Rename parameter C to O.
8858         (OBJECT_PROFITABLE_HARD_REGS): New macro.
8859         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
8860         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
8861         (struct target_ira_int): New members x_ira_max_memory_move_cost,
8862         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
8863         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
8864         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
8865         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
8866         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
8867         x_ira_reg_class_subunion.
8868         (ira_max_memory_move_cost, ira_max_register_move_cost)
8869         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
8870         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
8871         (ira_important_class_nums, ira_reg_class_superunion): New macros.
8872         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
8873         (ira_reg_class_union): Rename to ira_reg_class_subunion.
8874         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8875         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8876         (ira_tune_allocno_costs_and_cover_classes): Rename to
8877         ira_tune_allocno_costs.
8878         (ira_debug_hard_regs_forest): New.
8879         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
8880         (ira_object_conflict_iter_next): Fix comments.
8881         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
8882         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8883         cover_class to aclass.
8884         (ira_allocate_and_accumulate_costs): Ditto.
8885         (ira_allocate_and_set_or_copy_costs): Ditto.
8886
8887         * opts.c (decode_options): Remove ira_cover_class check.
8888
8889         * ira-color.c: Remove mentioning cover classes from the file.  Use
8890         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8891         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8892         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8893         (splay-tree.h): Remove include.
8894         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8895         before copy_freq_compare_func.
8896         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8897         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8898         New definitions.
8899         (hard_regs_roots, hard_regs_node_vec): Ditto.
8900         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8901         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8902         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8903         (create_new_object_hard_regs_node): Ditto.
8904         (add_new_object_hard_regs_node_to_forest): Ditto.
8905         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
8906         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8907         Ditto.
8908         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8909         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8910         (remove_unused_object_hard_regs_nodes): Ditto.
8911         (enumerate_object_hard_regs_nodes): Ditto.
8912         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8913         (object_hard_regs_subnode_t): Ditto.
8914         (struct object_hard_regs_subnode): Ditto.
8915         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8916         (setup_object_hard_regs_subnode_index): Ditto.
8917         (get_object_hard_regs_subnodes_num): Ditto.
8918         (form_object_hard_regs_nodes_forest): Ditto.
8919         (finish_object_hard_regs_nodes_tree): Ditto.
8920         (finish_object_hard_regs_nodes_forest): Ditto.
8921         (allocnos_have_intersected_live_ranges_p): Rename to
8922         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8923         (pseudos_have_intersected_live_ranges_p): Rename to
8924         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8925         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8926         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8927         (update_copy_costs): Remove assert.  Skip cost update if the hard
8928         reg does not belong the class.
8929         (assign_hard_reg): Process only profitable hard regs.
8930         (uncolorable_allocnos_num): Make it scalar.
8931         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8932         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8933         and ira_reg_class_max_nregs.
8934         (bucket_allocno_compare_func): Check frequency first.
8935         (sort_bucket): Add compare function as a parameter.
8936         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8937         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8938         (push_allocno_to_stack): Rewrite for checking new allocno
8939         colorability.
8940         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
8941         (push_only_colorable): Pass new parameter to sort_bucket.
8942         (push_allocno_to_spill): Remove.
8943         (allocno_spill_priority_compare): Make it inline and rewrite.
8944         (splay_tree_allocate, splay_tree_free): Remove.
8945         (allocno_spill_sort_compare): New function.
8946         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
8947         build and use splay tree.  Choose first allocno in uncolorable
8948         allocno bucket to spill.  Remove setting spill cost.
8949         (all_conflicting_hard_regs): Remove.
8950         (setup_allocno_available_regs_num): Check only profitable hard
8951         regs.  Print info about hard regs nodes.
8952         (setup_allocno_left_conflicts_size): Remove.
8953         (put_allocno_into_bucket): Don't call
8954         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
8955         (improve_allocation): New.
8956         (color_allocnos): Call setup_profitable_hard_regs,
8957         form_object_hard_regs_nodes_forest, improve_allocation,
8958         finish_object_hard_regs_nodes_forest.  Setup spill cost.
8959         (print_loop_title): Use pressure classes.
8960         (color_allocnso): Ditto.
8961         (do_coloring): Remove allocation and freeing splay_tree_node_pool
8962         and allocnos_for_spilling.
8963         (ira_sort_regnos_for_alter_reg): Don't setup members
8964         {first,next}_coalesced_allocno.
8965         (color): Remove allocating and freeing removed_splay_allocno_vec.
8966         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8967         prohibited_class_mode_regs.
8968
8969         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
8970         formatting.
8971         (update_allocno_pressure_excess_length): Use pressure classes.
8972         (inc_register_pressure, dec_register_pressure): Check for pressure
8973         class.
8974         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8975         pressure class.  Use ira_reg_class_nregs instead of
8976         ira_reg_class_max_nregs.
8977         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8978         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8979         (single_reg_class): Use ira_reg_class_nregs instead of
8980         ira_reg_class_max_nregs.
8981         (process_bb_node_lives): Use pressure classes.
8982
8983         * ira-emit.c: Remove mentioning cover classes from the file.  Use
8984         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8985         (change_loop): Use pressure classes.
8986         (modify_move_list): Call ira_set_allocno_class instead of
8987         ira_set_allocno_cover_class.
8988
8989         * ira-build.c: Remove mentioning cover classes from the file.  Use
8990         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8991         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
8992         ALLOCNO_UPDATED_CLASS_COST instead of
8993         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8994         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8995         (ira_create_allocno): Remove initialization of
8996         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
8997         ALLOCNO_COLORABLE_P.
8998         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8999         Update conflict regs for the objects.
9000         (create_cap_allocno): Remove assert.  Don't propagate
9001         ALLOCNO_AVAILABLE_REGS_NUM.
9002         (ira_free_allocno_costs): New function.
9003         (finish_allocno): Change a part of code into call of
9004         ira_free_allocno_costs.
9005         (low_pressure_loop_node_p): Use pressure classes.
9006         (object_range_compare_func): Don't compare classes.
9007         (setup_min_max_conflict_allocno_ids): Ditto.
9008
9009         * loop-invariant.c: Remove mentioning cover classes from the file.
9010         Use ira_pressure_classes and ira_pressure_classes_num instead of
9011         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
9012         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
9013         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9014         Use reg_allocno_class instead of reg_cover_class.
9015         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
9016         STACK_REG_COVER_CLASS.
9017         (get_regno_cover_class): Rename to get_regno_pressure_class.
9018         (move_loop_invariants): Initialize and finalize regstat.
9019
9020         * ira.c: Remove mentioning cover classes from the file.  Add
9021         comments about coloring without cover classes.  Use ALLOCNO_CLASS
9022         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
9023         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
9024         setup_class_subset_and_memory_move_costs.
9025         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9026         (setup_cover_and_important_classes): Rename to
9027         setup_allocno_and_important_classes.
9028         (setup_class_translate_array): New.
9029         (setup_class_translate): Call it for allocno and pressure classes.
9030         (cover_class_order): Rename to allocno_class_order.
9031         (comp_reg_classes_func): Use ira_allocno_class_translate instead
9032         of ira_class_translate.
9033         (reorder_important_classes): Set up ira_important_class_nums.
9034         (setup_reg_class_relations): Set up ira_reg_class_superunion.
9035         (print_class_cover): Rename to print_classes.  Add parameter.
9036         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9037         Print pressure classes too.
9038         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
9039         setup_reg_subclasses.
9040         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9041         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9042         (setup_prohibited_class_mode_regs): Use
9043         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
9044         (clarify_prohibited_class_mode_regs): New function.
9045         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9046         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9047         (ira_init_once): Initialize them.
9048         (free_register_move_costs): Process them.
9049         (ira_init): Move calls of find_reg_classes and
9050         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9051         Call clarify_prohibited_class_mode_regs.
9052         (ira_no_alloc_reg): Remove.
9053         (too_high_register_pressure_p): Use pressure classes.
9054
9055         * sched-deps.c: Remove mentioning cover classes from the file.
9056         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
9057         ira_pressure_classes and ira_pressure_classes_num instead of
9058         ira_reg_class_cover_size and ira_reg_class_cover.
9059         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9060         sched_regno_pressure_class instead of sched_regno_cover_class.
9061         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
9062         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9063
9064         * ira.h: Add 2010 to Copyright.
9065         (ira_no_alloc_reg): Remove external.
9066         (struct target_ira): Rename x_ira_hard_regno_cover_class,
9067         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9068         x_ira_class_translate to x_ira_hard_regno_allocno_class,
9069         x_ira_allocno_classes_num, x_ira_allocno_classes, and
9070         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
9071         x_ira_pressure_classes, x_ira_pressure_class_translate, and
9072         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
9073         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
9074         x_ira_no_alloc_regs.
9075         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
9076         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9077         ira_allocno_classes_num and ira_allocno_classes.
9078         (ira_class_translate): Rename to ira_allocno_class_translate.
9079         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9080         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9081         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9082         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9083         (ira_no_alloc_regs): New.
9084
9085         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
9086         classes from the file.  Use ALLOCNO_CLASS instead of
9087         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
9088         ALLOCNO_COVER_CLASS_COST.
9089         (regno_cover_class): Rename to regno_aclass.
9090         (record_reg_classes): Use ira_reg_class_subunion instead of
9091         ira_reg_class_union.
9092         (record_address_regs): Check overflow.
9093         (scan_one_insn): Ditto.
9094         (print_allocno_costs): Print total mem cost fore regional allocation.
9095         (print_pseudo_costs): Use REG_N_REFS.
9096         (find_costs_and_classes): Use classes intersected with them on the
9097         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
9098         ira_reg_class_union.  Use ira_allocno_class_translate and
9099         regno_aclass instead of ira_class_translate and regno_cover_class.
9100         Modify code for finding regno_aclass.  Setup preferred classes for
9101         the next pass.
9102         (setup_allocno_cover_class_and_costs): Rename to
9103         setup_allocno_class_and_costs.  Use regno_aclass instead of
9104         regno_cover_class.  Use ira_set_allocno_class instead of
9105         ira_set_allocno_cover_class.
9106         (init_costs, finish_costs): Use regno_aclass instead of
9107         regno_cover_class.
9108         (ira_costs): Use setup_allocno_class_and_costs instead of
9109         setup_allocno_cover_class_and_costs.
9110         (ira_tune_allocno_costs_and_cover_classes): Rename to
9111         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
9112         by processing objects.  Use ira_reg_class_max_nregs instead of
9113         ira_reg_class_nregs.
9114
9115         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9116
9117         * sched-int.h: Remove mentioning cover classes from the file.
9118         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9119
9120         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
9121         classes from the file.
9122         (struct reg_pref): Rename coverclass into allocnoclass.
9123         (reg_cover_class): Rename to reg_allocno_class.
9124
9125         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
9126
9127         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9128
9129         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9130
9131         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9132
9133         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9134
9135         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9136
9137         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9138
9139         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9140
9141         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9142
9143         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9144
9145         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9146         (i386_ira_cover_classes): Ditto.
9147
9148         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9149
9150         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9151
9152         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9153
9154         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9155
9156         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9157
9158         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9159
9160         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9161         (mips_ira_cover_classes): Ditto.
9162
9163         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9164
9165         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9166
9167         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9168
9169         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9170
9171         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9172
9173         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9174         (IRA_COVER_CLASSES_VSX): Ditto.
9175
9176         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9177         (rs6000_ira_cover_classes): Ditto.
9178
9179         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9180
9181         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9182
9183         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9184
9185         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9186
9187         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9188
9189         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9190
9191         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9192
9193         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9194
9195         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9196
9197         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9198
9199 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
9200
9201         PR debug/48253
9202         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9203         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9204         dw_fde_unlikely_section_end_label, cold_in_std_section,
9205         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9206         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9207         fields.
9208         (output_fde): Use dw_fde_second_{begin,end} if second is
9209         true, otherwise dw_fde_{begin,end}.
9210         (output_call_frame_info): Test dw_fde_second_begin != NULL
9211         instead of dw_fde_switched_sections.
9212         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9213         fields, initialize new fields.  Initialize in_std_section
9214         unconditionally from the first partition.
9215         (dwarf2out_end_epilogue): Don't override dw_fde_end when
9216         dw_fde_second_begin is non-NULL.
9217         (dwarf2out_switch_text_section): Stop initializing removed
9218         dw_fde_struct fields, initialize new fields, initialize
9219         also dw_fde_end here.  Set dw_fde_switch_cfi even when
9220         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
9221         (struct var_loc_list_def): Add last_before_switch field.
9222         (arange_table, arange_table_allocated, arange_table_in_use,
9223         ARANGE_TABLE_INCREMENT, add_arange): Removed.
9224         (size_of_aranges): Count !in_std_section and !second_in_std_section
9225         hunks in fdes, instead of looking at arange_table_in_use.
9226         (output_aranges): Add aranges_length argument, don't call
9227         size_of_aranges here.  Instead of using aranges_table*
9228         emit ranges for fdes when !in_std_section resp.
9229         !second_in_std_section.
9230         (dw_loc_list): Break ranges crossing section switch.
9231         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
9232         use dw_fde_second_end instead of dw_fde_end as end of last range.
9233         (gen_subprogram_die): Don't call add_arange.  Use
9234         dw_fde_{begin,end} for first partition and if switched
9235         section dw_fde_second_{begin,end} for the second.
9236         (var_location_switch_text_section_1,
9237         var_location_switch_text_section): New functions.
9238         (dwarf2out_begin_function): Initialize cold_text_section even
9239         when function_section () isn't text_section.
9240         (prune_unused_types): Don't walk arange_table.
9241         (dwarf2out_finish): Don't needlessly test
9242         flag_reorder_blocks_and_partition when testing cold_text_section_used.
9243         If info_section_emitted, call size_of_aranges and if it indicates
9244         non-empty .debug_aranges, call output_aranges with the computed
9245         size.  Stop using removed dw_fde_struct fields, use
9246         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9247         for second.
9248
9249         PR debug/48203
9250         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9251         create ENTRY_VALUE if incoming or address of incoming's MEM
9252         is a hard REG.
9253         * dwarf2out.c (mem_loc_descriptor): Don't emit
9254         DW_OP_GNU_entry_value of DW_OP_fbreg.
9255         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9256         on ENTRY_VALUE is able to find the canonical parameter VALUE.
9257         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9258         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9259         ENTRY_VALUE_EXPs.
9260         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
9261         is a REG_P or MEM_P with REG_P address, compute hash directly
9262         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
9263         (preserve_only_constants): Don't clear VALUES forwaring
9264         ENTRY_VALUE to some other VALUE.
9265
9266 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
9267
9268         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
9269         instead of GEN_INT.
9270
9271 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9272
9273         * cfgexpand.c (expand_gimple_cond): Always set the source location and
9274         block before expanding the statement.
9275         (expand_gimple_stmt_1): Likewise.  Set them here...
9276         (expand_gimple_stmt): ...and not here.  Tidy.
9277         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
9278         unknown.
9279
9280 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9281
9282         * Makefile.in: New rule for cprop.o.
9283         * gcse.c: Move constant/copy propagation to cprop.c.
9284         (compute_local_properties): Only handle expression tables.
9285         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
9286         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
9287         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
9288         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
9289         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
9290         compute_cprop_data, find_used_regs, try_replace_reg,
9291         find_avail_set, cprop_jump, constprop_register, cprop_insn,
9292         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
9293         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
9294         find_bypass_set, reg_killed_on_edge, bypass_block,
9295         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
9296         execute_rtl_cprop, pass_rtl_cprop): Move to...
9297         * cprop.c: ...here.  New file, constant/copy propagation for RTL
9298         moved from gcse.c to here with minor cleanups in duplicated code.
9299
9300 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
9301
9302         * config/i386/i386.c (flag_opts): Fix a typo in
9303         -mavx256-split-unaligned-store.
9304
9305 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9306
9307         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
9308         LIBCALL_VALUE): Remove macros.
9309         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9310         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9311         (h8300_function_value, h8300_libcall_value,
9312         h8300_function_value_regno_p): New functions.
9313
9314 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
9315
9316         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
9317
9318 2011-03-28  Jeff Law  <law@redhat.com>
9319
9320         * tree-ssa-threadupdate.c (redirect_edges): Call
9321         create_edge_and_update_destination_phis as needed.
9322         (create_edge_and_update_destination_phis): Accept new BB argument.
9323         All callers updated.
9324         (thread_block): Do not update the profile when threading around
9325         intermediate blocks.
9326         (thread_single_edge): Likewise.
9327         (determine_bb_domination_status): If BB is not a successor of the
9328         loop header, return NONDOMINATING.
9329         (register_jump_thread): Note when we register a jump thread around
9330         an intermediate block.
9331         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
9332         (thread_across_edge): Use it.
9333
9334 2011-03-28  Tristan Gingold  <gingold@adacore.com>
9335
9336         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
9337         when for_return is 2.
9338
9339 2011-03-28  Jeff Law  <law@redhat.com>
9340
9341         * var-tracking.c (canonicalize_values_mark): Delete unused
9342         lhs assignment.
9343         (canonicalize_values_star, set_variable_part): Likewise.
9344         (clobber_variable_part, delete_variable_part): Likewise.
9345
9346 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
9347
9348         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
9349
9350 2011-03-28  Martin Jambor  <mjambor@suse.cz>
9351
9352         * tree-inline.c (expand_call_inline): Do not check that destination
9353         node is analyzed.
9354         (optimize_inline_calls): Assert that destination node is analyzed.
9355         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
9356         not call tree_lowering_passes.
9357         * cgraph.h (cgraph_analyze_function): Declare.
9358         * cgraphunit.c (cgraph_analyze_function): Make public.
9359
9360 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
9361
9362         * config/sparc/sparc-opts.h: New.
9363         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
9364         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
9365         (sparc_option_override): Store processor_type enumeration rather
9366         than string in cpu_default.  Remove name and enumeration from
9367         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
9368         without using sparc_select.  Use target_flags_explicit instead of
9369         fpu_option_set.
9370         * config/sparc/sparc.h (enum processor_type): Move to
9371         sparc-opts.h.
9372         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
9373         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
9374         HeaderInclude entry.
9375         (mcpu=, mtune=): Use Var and Enum.
9376         (sparc_processor_type): New Enum and EnumValue entries.
9377
9378 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9379             Iain Sandoe  <iains@gcc.gnu.org>
9380
9381         PR target/48245
9382         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
9383
9384 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
9385
9386         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
9387         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
9388         Insert new statements at it in lieu of STMT.
9389         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
9390         * tree-vect-stmts.c (vectorizable_store): Likewise.
9391         (vectorizable_load): Likewise.
9392
9393 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
9394
9395         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
9396         (divtf3): Ditto.
9397         (multf3): Ditto.
9398         (subtf3): Ditto.
9399
9400 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9401
9402         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
9403         unaligned 256bit load/store.
9404         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
9405         (*avx_movdqu<avxmodesuffix>): Likewise.
9406
9407 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9408
9409         PR target/48288
9410         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
9411         * config/pa/pa.md (iordi3): Use new predicate in expander.
9412         (iorsi3): Likewise.
9413
9414 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
9415
9416         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
9417         FUNCTION_VALUE_REGNO_P): Remove macros.
9418         * config/mips/mips-protos.h (mips_function_value): Remove.
9419         * config/mips/mips.c (mips_function_value): Rename to...
9420         (mips_function_value_1): ... this. Make static.  Handle receiving
9421         the function type in 'fn_decl_or_type' argument.
9422         (mips_function_value, mips_libcall_value,
9423         mips_function_value_regno_p): New function.
9424         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9425         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9426
9427 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9428
9429         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
9430         and -mavx256-split-unaligned-store.
9431         (ix86_option_override_internal): Split 32-byte AVX unaligned
9432         load/store by default.
9433         (ix86_avx256_split_vector_move_misalign): New.
9434         (ix86_expand_vector_move_misalign): Use it.
9435
9436         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
9437         -mavx256-split-unaligned-store.
9438
9439         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
9440         256bit load/store.  Generate unaligned store on misaligned memory
9441         operand.
9442         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
9443         256bit load/store.
9444         (*avx_movdqu<avxmodesuffix>): Likewise.
9445
9446         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
9447         -mavx256-split-unaligned-store.
9448
9449 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9450
9451         PR target/38598
9452         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
9453         Update commentary.
9454
9455 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
9456
9457         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
9458         opno arguments with an expand_operand.  Use create_input_operand.
9459         (mips_prepare_builtin_target): Delete.
9460         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
9461         functions.
9462         (mips_expand_builtin_direct): Use create_output_operand and
9463         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
9464         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
9465         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
9466
9467 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
9468
9469         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
9470         function.
9471         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9472
9473 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
9474
9475         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
9476         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
9477         basic blocks and call commit_edge_insertions directly.
9478         (fixup_abnormal_edges): Move from here to...
9479         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
9480         on the edges and return whether some have actually been inserted.
9481         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
9482         compensation code.
9483
9484 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
9485
9486         PR rtl-optimization/48144
9487         * sel-sched-ir.c (merge_history_vect): Factor out from ...
9488         (merge_expr_data): ... here.
9489         (av_set_intersect): Rename to av_set_code_motion_filter.
9490         Update all callers.  Call merge_history_vect when an expression
9491         is found in both sets.
9492         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
9493
9494 2011-03-26  Alan Modra  <amodra@gmail.com>
9495
9496         * config/rs6000/predicates.md (word_offset_memref_op): Handle
9497         cmodel medium addresses.
9498         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
9499         64-bit gpr loads and stores.
9500         (rs6000_secondary_reload_ppc64): New function.
9501         * config/rs6000/rs6000-protos.h: Declare it.
9502         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
9503
9504 2011-03-26  Alan Modra  <amodra@gmail.com>
9505
9506         PR target/47487
9507         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
9508         GNU Go in traceback table.
9509
9510 2011-03-25  Richard Henderson  <rth@redhat.com>
9511
9512         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
9513         if there are exactly 6 operands.
9514         (set_storage_via_setmem): Similarly.
9515
9516 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9517
9518         * collect2.c (write_c_file_stat): Handle backslash
9519         as right-hand directory separator.
9520         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
9521         checking just for slash.
9522         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
9523         instead of checking for trailing slash.
9524         * gcc.c (record_temp_file): Use filename_cmp instead
9525         of strcmp.
9526         (do_spec_1): Likewise.
9527         (replace_outfile_spec_function): Likewise.
9528         (is_directory): Use filename_ncmp instead of strncmp.
9529         (print_multilib_info): Likewise.
9530         * gcov.c (find_source): Use filename_cmp instead
9531         instead of strcmp.
9532         (make_gcov_file_name): Fix order of slash/backslash
9533         checks.
9534         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
9535         (add_standard_paths): Likewise.
9536         * mips-tfile.c (saber_stop): Handle backslash.
9537         * prefix.c (update_path): Use filename_ncmp instead of
9538         strncmp.
9539         * profile.c (output_location): Use filename_cmp instead
9540         of strcmp.
9541         * read-md.c (handle_toplevel_file): Handle backslash.
9542         * tlink.c (frob_extension):  Likewise.
9543         * tree-cfg.c (same_line_p): Use filename_cmp instead of
9544         strcmp.
9545         * tree-dump.c (dequeue_and_dump): Handle backslash.
9546         * tree.c (get_file_function_name): Likewise.
9547         * gengtype.c (read_input_list): Likewise.
9548         (get_file_realbasename): Likewise.
9549         (get_output_file_with_visibility): Use filename_cmp
9550         instead of strcmp.
9551
9552 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
9553
9554         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
9555         case to VFPv1.
9556
9557 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9558
9559         * fold-const.c (expr_location_or): New function.
9560         (fold_truth_not_expr): Call it.
9561
9562 2011-03-25  Jeff Law  <law@redhat.com>
9563
9564         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
9565         va_end.
9566         * c-family/c-common.c (def_fn_type): Likewise.
9567         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
9568         * emit-rtl.c (gen_rtvec): Likewise.
9569         * lto/lto-lang.c (def_fn_type): Likewise.
9570
9571 2011-03-25  Richard Guenther  <rguenther@suse.de>
9572
9573         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
9574         also generate copies.
9575         (fini_copy_prop): Handle constant values properly.
9576
9577 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
9578
9579         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
9580         mode size instead of bitsize with DWARF2_ADDR_SIZE.
9581         (hash_loc_operands, compare_loc_operands): Handle
9582         DW_OP_GNU_entry_value.
9583
9584 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9585
9586         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
9587         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
9588         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
9589         comment and use macro TARGET_64BIT_MS_ABI instead.
9590         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
9591         and change default behavior for 32-bit MS_ABI.
9592         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
9593         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
9594         32-bit, too.
9595         (ix86_cfun_abi): Likewise.
9596         (ix86_maybe_switch_abi): Adjust comment.
9597         (init_cumulative_args): Check for bit-ness in MS_ABI case.
9598         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
9599         instead of checking for SYSV_ABI.
9600         (ix86_nsaved_sseregs): Likewise.
9601         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
9602         to 16 bytes.
9603         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
9604         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
9605         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
9606         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
9607         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
9608
9609 2011-03-25  Richard Guenther  <rguenther@suse.de>
9610
9611         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
9612         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9613         (verify_gimple): Remove.
9614         * tree-cfg.c (verify_gimple_call): Merge verification
9615         from verify_stmts.
9616         (verify_gimple_phi): Merge verification from verify_stmts.
9617         (verify_gimple_label): New function.
9618         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
9619         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9620         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
9621         (verify_stmts): Rename to verify_gimple_in_cfg.
9622         (verify_gimple_in_cfg): New function.
9623         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
9624         * tree-ssa.c (verify_ssa): Likewise.
9625         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
9626
9627 2011-03-25  Richard Guenther  <rguenther@suse.de>
9628
9629         * passes.c (init_optimization_passes): Add FRE pass after
9630         early SRA.
9631
9632 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
9633             Andrew Stubbs  <ams@codesourcery.com>
9634
9635         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
9636         for Cortex-A8.
9637         (arm_movdi_vfp_cortexa8): New pattern.
9638         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
9639         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
9640         instructions when tuning for Cortex-A8.  Set attribute "arch".
9641         * config/arm/arm.md: Move include arm-tune.md up a bit.
9642         (define_attr "arch"): Add "onlya8" and "nota8" values.
9643         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
9644
9645 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
9646
9647         PR bootstrap/48282
9648         Revert:
9649         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9650
9651         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9652         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9653         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9654         * passes.c (init_optimization_passes): Move
9655         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9656
9657 2011-03-25  Kai Tietz  <ktietz@redhat.com>
9658
9659         * c-typeck.c (comptypes_internal): Replace target
9660         hook call of comp_type_attributes by version in tree.c file.
9661         * gimple.c (gimple_types_compatible_p_1): Likewise.
9662         * tree-ssa.c (useless_type_conversion_p): Likewise.
9663         * tree.c (build_type_attribute_qual_variant): Likewise.
9664         (attribute_value_equal): New static helper function.
9665         (comp_type_attributes): New function.
9666         (merge_attributes): Use attribute_value_equal for comparison.
9667         (attribute_list_contained): Likewise.
9668         * tree.h (comp_type_attributes): New prototype.
9669
9670 2011-03-25  Richard Guenther  <rguenther@suse.de>
9671
9672         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9673         of complex types at -O0.
9674         (verify_gimple_assign_binary): Likewise.
9675         (verify_gimple_assign_ternary): Likewise.
9676
9677 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9678
9679         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9680         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9681
9682 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9683
9684         PR debug/48041
9685         * dwarf2out.c (output_abbrev_section): Only write table when
9686         abbrev_die_table_in_use > 1.
9687
9688 2011-02-24  Richard Henderson  <rth@redhat.com>
9689
9690         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9691         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9692         (alpha_expand_unaligned_load_words): Use extql.
9693         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9694         (emit_insxl): Handle all modes for consistency.
9695
9696 2011-02-24  Richard Henderson  <rth@redhat.com>
9697
9698         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9699         (alpha_expand_unaligned_load): Likewise.
9700         (alpha_expand_unaligned_store): Likewise.
9701         (alpha_expand_unaligned_load_words): Likewise.
9702         (alpha_expand_unaligned_store_words): Likewise.
9703         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9704         (alpha_split_lock_test_and_set_12): Likewise.
9705         (print_operand, alpha_fold_builtin_extxx): Likewise.
9706         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9707         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9708         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9709         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9710         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9711         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9712         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9713         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9714         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9715         (extwl, extll, extql): Similarly.
9716         (inswh, inslh, insqh): Similarly.
9717         (mskbl, mskwl, mskll, mskql): Similarly.
9718         (mskwh, msklh, mskqh): Similarly.
9719
9720 2011-02-24  Richard Henderson  <rth@redhat.com>
9721
9722         * config/alpha/alpha.md (attribute isa): Add er, ner.
9723         (attribute enabled): Handle them.
9724         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9725
9726 2011-02-24  Richard Henderson  <rth@redhat.com>
9727
9728         * config/alpha/alpha.md (attribute isa): Add vms.
9729         (attribute enabled): Handle it.
9730         (*movsf): Merge *movsf_{nofix,fix,nofp}.
9731         (*movdf): Merge *movdf_{nofix,fix,nofp}.
9732         (*movtf): Rename from *movtf_internal for consistency.
9733         (*movsi): Merge with *movsi_nt_vms.
9734         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9735         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9736         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9737         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9738
9739 2011-02-24  Richard Henderson  <rth@redhat.com>
9740
9741         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9742         (extendqisi2, extendhisi2): Likewise.
9743         (extendqidi2): Simplify BWX/non-BWX expansions.
9744         (extendhidi2): Similarly.
9745
9746 2011-02-24  Richard Henderson  <rth@redhat.com>
9747
9748         * config/alpha/alpha.md (attribute isa): New.
9749         (attribute enabled): New.
9750         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9751         (zero_extendqisi2, zero_extendqidi2): Similarly.
9752         (zero_extendhisi2, zero_extendhidi2): Similarly.
9753         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9754
9755 2011-02-24  Richard Henderson  <rth@redhat.com>
9756
9757         * config/alpha/predicates.md (input_operand): Revert last change;
9758         update comment to mention 32-bit VMS rather than Windows.
9759
9760 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9761
9762         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9763         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9764         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9765         * passes.c (init_optimization_passes): Move
9766         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9767
9768 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9769
9770         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
9771
9772 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9773
9774         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
9775         correctly.
9776
9777 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
9778
9779         PR debug/48204
9780         * simplify-rtx.c (simplify_const_unary_operation): Call
9781         real_convert when changing mode class with FLOAT_EXTEND.
9782
9783 2011-03-24  Nick Clifton  <nickc@redhat.com>
9784
9785         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
9786         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9787         * config/rx/rx.c (rx_option_override): Set align_jumps,
9788         align_loops and align_labels if not set by the user.
9789         (rx_align_for_label): New function.
9790         (rx_max_skip_for_label): New function.
9791         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
9792         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
9793         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
9794         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
9795         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
9796
9797 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9798
9799         PR rtl-optimization/48263
9800         * optabs.c (expand_binop_directly): Reinstate convert_modes code
9801         and original commutative_p handling.  Use maybe_gen_insn.
9802
9803 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9804
9805         * reload.c (find_reloads_subreg_address): Add address_reloaded
9806         parameter and return true there if the full address has been
9807         reloaded.
9808         (find_reloads_toplev): Pass address_reloaded flag.
9809         (find_reloads_address_1): Don't use address_reloaded parameter.
9810
9811 2011-03-24  Jeff Law  <law@redhat.com>
9812
9813         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
9814         unused variable "ann".
9815         (remove_unused_locals): Likewise.
9816
9817         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
9818         statement.
9819
9820         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
9821         after it is freed.
9822
9823 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9824
9825         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
9826         for invalid symbolic addresses.
9827         (s390_secondary_reload): Don't use s390_check_symref_alignment for
9828         larl operands.
9829
9830 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9831
9832         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
9833         the argument in calls to fold_truth_not_expr.
9834
9835 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9836
9837         * tree.c (record_node_allocation_statistics): New function.
9838         (make_node_stat, copy_node_stat, build_string): Call it.
9839         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
9840         (build1_stat, build_omp_clause): Likewise.
9841
9842 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9843
9844         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
9845         last commit.
9846
9847 2011-03-24  Richard Guenther  <rguenther@suse.de>
9848
9849         PR tree-optimization/48271
9850         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
9851         blocks that still exist.
9852
9853 2011-03-24  Richard Guenther  <rguenther@suse.de>
9854
9855         PR tree-optimization/48270
9856         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
9857         not free datarefs before ddrs.
9858
9859 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9860
9861         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
9862         from the address built for a reference with variable offset.
9863
9864 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9865
9866         PR target/48237
9867         * config/i386/i386.md (*movdf_internal_rex64): Do not split
9868         alternatives that can be handled with movq or movabsq insn.
9869         (*movdf_internal): Disable for !TARGET_64BIT.
9870         (*movdf_internal_nointeger): Ditto.
9871         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
9872
9873 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9874
9875         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9876         (FUNCTION_ARG_ADVANCE): Likewise.
9877         * tm.texi.in: Change references to them to hook references.
9878         * tm.texi: Regenerate.
9879         * targhooks.c (default_function_arg): Eliminate check for target macro.
9880         (default_function_incoming_arg): Likewise.
9881         (default_function_arg_advance): Likewise.
9882         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9883         (function_arg_advance): Likewise.
9884         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9885
9886 2011-03-24  Richard Guenther  <rguenther@suse.de>
9887
9888         PR middle-end/48269
9889         * tree-object-size.c (addr_object_size): Do not double-account
9890         for MEM_REF offsets.
9891
9892 2011-03-24  Diego Novillo  <dnovillo@google.com>
9893
9894         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
9895         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
9896         (lto_input_data_block): Move from lto-opts.c.  Make extern.
9897         Update all users.
9898         (lto_input_string): Rename from input_string.  Make extern.
9899         Update all users.
9900         * lto-streamer-out.c (lto_output_string_with_length): Rename from
9901         output_string_with_length.
9902         Output 0 to indicate a non-NULL string.  Update all callers to
9903         not emit 0.
9904         (lto_output_string): Rename from output_string.  Make extern.
9905         Update all users.
9906         (lto_output_decl_state_streams): Make extern.
9907         (lto_output_decl_state_refs): Make extern.
9908         * lto-streamer.h (lto_input_string): Declare.
9909         (lto_input_data_block): Declare.
9910         (lto_output_string): Declare.
9911         (lto_output_string_with_length): Declare.
9912         (lto_output_decl_state_streams): Declare.
9913         (lto_output_decl_state_refs): Declare.
9914
9915 2011-03-24  Richard Guenther  <rguenther@suse.de>
9916
9917         PR tree-optimization/46562
9918         * tree.c (build_invariant_address): New function.
9919         * tree.h (build_invariant_address): Declare.
9920         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9921         a renamed function moved ...
9922         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9923         Take valueization callback parameter.
9924         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9925         * gimple-fold.h: New file.
9926         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9927         (ccp_fold, fold_const_aggregate_ref,
9928         fold_ctor_reference, fold_nonarray_ctor_reference,
9929         fold_array_ctor_reference, fold_string_cst_ctor_reference,
9930         get_base_constructor): Move ...
9931         * gimple-fold.c: ... here.
9932         (gimple_fold_stmt_to_constant_1): New function
9933         split out from ccp_fold.  Take a valueization callback parameter.
9934         Valueize all operands.
9935         (gimple_fold_stmt_to_constant): New wrapper function.
9936         (fold_const_aggregate_ref_1): New function split out from
9937         fold_const_aggregate_ref.  Take a valueization callback parameter.
9938         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9939         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9940         invariant POINTER_PLUS_EXPRs to invariant form.
9941         (vn_valueize): New function.
9942         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9943         * tree-vrp.c (vrp_valueize): New function.
9944         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9945         to fold statements to constants.
9946         * tree-ssa-pre.c (eliminate): Properly guard propagation of
9947         function declarations.
9948         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9949         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9950
9951 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9952
9953         * config/h8300/predicates.md (jump_address_operand): Fix register
9954         mode check.
9955
9956 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
9957
9958         * doc/invoke.texi (max-stores-to-sink): Document.
9959         * params.h (MAX_STORES_TO_SINK): Define.
9960         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9961         if either vectorization or if-conversion is disabled.
9962         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9963         tree-vect-data-refs.c vect_equal_offsets.
9964         (dr_equal_offsets_p): New function.
9965         (find_data_references_in_bb): Remove static.
9966         * tree-data-ref.h (find_data_references_in_bb): Declare.
9967         (dr_equal_offsets_p): Likewise.
9968         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9969         (vect_drs_dependent_in_basic_block): Update calls to
9970         vect_equal_offsets.
9971         (vect_check_interleaving): Likewise.
9972         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9973         (cond_if_else_store_replacement): Rename to...
9974         (cond_if_else_store_replacement_1): ... this.  Change arguments and
9975         documentation.
9976         (cond_if_else_store_replacement): New function.
9977         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9978         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9979
9980 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
9981
9982         PR target/46934
9983         * config/arm/arm.md (casesi): Use the gen_int_mode() function
9984         to subtract lower bound instead of GEN_INT().
9985
9986 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
9987
9988         PR other/48179
9989         PR other/48221
9990         PR other/48234
9991         * doc/extend.texi (Alignment): Move section to match order in TOC.
9992         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9993         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9994
9995 2011-03-23  Jeff Law  <law@redhat.com>
9996
9997         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9998         before removing the edge.
9999
10000         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
10001         it may have been freed by redirect_branch_edge or
10002         redirect_edge_succ_nodup.
10003
10004 2011-03-23  Richard Guenther  <rguenther@suse.de>
10005
10006         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
10007         (check_va_list_escapes): Likewise.
10008         (check_all_va_list_escapes): Likewise.
10009
10010 2011-03-23  Richard Guenther  <rguenther@suse.de>
10011
10012         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
10013         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
10014         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
10015         (alias.o): Likewise.
10016         (ipa-type-escape.o): Remove.
10017         (ipa-struct-reorg.o): Likewise.
10018         (GTFILES): Remove ipa-struct-reorg.c.
10019         * alias.c: Do not include ipa-type-escape.h.
10020         * tree-ssa-alias.c: Likewise.
10021         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
10022         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
10023         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
10024         and ipa-type-escape passes.
10025         * tree-pass.h (pass_ipa_type_escape): Remove.
10026         (pass_ipa_struct_reorg): Likewise.
10027         * ipa-struct-reorg.h: Remove.
10028         * ipa-struct-reorg.c: Likewise.
10029         * ipa-type-escape.h: Likewise.
10030         * ipa-type-escape.c: Likewise.
10031         * doc/invoke.texi (-fipa-struct-reorg): Remove.
10032         (--param struct-reorg-cold-struct-ratio): Likewise.
10033         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10034         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10035         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10036
10037 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10038
10039         * config/s390/2084.md: Enable all insn reservations also for z9_ec
10040         cpu attribute value.
10041         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10042         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10043         * config/s390/s390.c (processor_flags_table): New constant array.
10044         (s390_handle_arch_option): Remove.
10045         (s390_handle_option): Remove s390_handle_arch_option invocations
10046         and OPT_mwarn_framesize_ handling.
10047         (s390_option_override): Remove s390_handle_arch_option invocation.
10048         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10049         warnings.
10050         * config/s390/s390.md (cpu attribute): Add z9_ec value.
10051         * config/s390/s390.opt (s390_tune, s390_arch)
10052         (march=): Replace s390_arch_option enum and values with
10053         processor_type.  Set variable name to s390_arch.  Set
10054         initialization value.
10055         (mtune=): Replace s390_arch_option with processor_type.  Set
10056         variable name to s390_tune.  Set initialization value.
10057
10058 2011-03-23  Julian Brown  <julian@codesourcery.com>
10059
10060         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10061         accesses which are not naturally aligned.
10062
10063 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10064
10065         PR target/47553
10066         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10067
10068 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
10069
10070         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10071         parameter from "int" to "enum insn_code".
10072         (expand_operand_type): New enum.
10073         (expand_operand): New structure.
10074         (create_expand_operand): New function.
10075         (create_fixed_operand, create_output_operand): Likewise
10076         (create_input_operand, create_convert_operand_to): Likewise.
10077         (create_convert_operand_from, create_address_operand): Likewise.
10078         (create_integer_operand): Likewise.
10079         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10080         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10081         (expand_insn, expand_jump_insn): Likewise.
10082         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10083         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10084         (expand_movstr, expand_builtin___clear_cache): Likewise.
10085         (expand_builtin_lock_release): Likewise.
10086         * explow.c (allocate_dynamic_stack_space): Likewise.
10087         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
10088         and use the default handling in that case.
10089         * expmed.c (check_predicate_volatile_ok): Delete.
10090         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10091         (emit_cstore): Likewise.
10092         * expr.c (emit_block_move_via_movmem): Likewise.
10093         (set_storage_via_setmem, expand_assignment): Likewise.
10094         (emit_storent_insn, try_casesi): Likewise.
10095         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
10096         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10097         (expand_vec_shift_expr, expand_binop_directly): Likewise.
10098         (expand_twoval_unop, expand_twoval_binop): Likewise.
10099         (expand_unop_direct, emit_indirect_jump): Likewise.
10100         (emit_conditional_move, vector_compare_rtx): Likewise.
10101         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10102         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10103         (expand_sync_lock_test_and_set): Likewise.
10104         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
10105         (emit_unop_insn): Likewise.
10106         (expand_copysign_absneg): Change icode to an insn_code.
10107         (create_convert_operand_from_type): New function.
10108         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10109         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10110         (expand_insn, expand_jump_insn): Likewise.
10111         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10112         than const_int_operand for operand 2.
10113
10114 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10115
10116         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10117         if possible.
10118
10119 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10120
10121         * emit-rtl.c (emit_pattern_before_noloc): New function.
10122         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10123         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10124         (emit_pattern_after_noloc): New function.
10125         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10126         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10127
10128 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10129
10130         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10131         (__ffsDI2): Likewise.
10132
10133 2011-03-22  Richard Henderson  <rth@redhat.com>
10134
10135         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10136         of !TARGET_ABI_OPEN_VMS.
10137         (alpha_trampoline_init, alpha_start_function): Likewise.
10138         (alpha_expand_epilogue, alpha_file_start): Likewise.
10139         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10140         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10141         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10142         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10143         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10144
10145 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10146
10147         * config/s390/s390-opts.h: New.
10148         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10149         s390_arch_flags, s390_warn_framesize, s390_stack_size,
10150         s390_stack_guard): Remove.
10151         (s390_handle_arch_option): Return void.  Take enum
10152         s390_arch_option value instead of string and searching array.
10153         (s390_handle_option): Don't assert that global structures are in
10154         use.  Access variables via opts pointer.  Use error_at.  Don't use
10155         sscanf for -mstack-guard= or -mstack-size=.  Update call to
10156         s390_handle_arch_option.
10157         (s390_option_override): Update call to s390_handle_arch_option.
10158         (s390_emit_prologue): Use %d format for s390_stack_size in
10159         diagnostic.  Use %wd for HOST_WIDE_INT.
10160         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10161         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10162         * config/s390/s390.opt (config/s390/s390-opts.h): New
10163         HeaderInclude entry.
10164         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10165         s390_arch_flags, s390_warn_framesize): New Variable entries.
10166         (s390_arch_option): New Enum and EnumValue entries.
10167         (march=): Use Enum instead of Var.
10168         (mstack-guard=, mstack-size=): Use UInteger and Var.
10169         (mtune=): Use Enum.
10170
10171 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10172
10173         * config/score/score.c (score_handle_option): Don't assert that
10174         global structures are in use.  Access target_flags via opts
10175         pointer.  Use value of -march= option to determine target_flags
10176         settings.
10177         * config/score/score.opt (march=): Use Enum.
10178         (score_arch): New Enum and EnumValue entries.
10179
10180 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10181
10182         * config/mep/mep.c (option_mtiny_specified): Remove.
10183         (mep_option_override): Move register handling for -mivc2 from
10184         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
10185         instead of option_mtiny_specified.
10186         (mep_handle_option): Access target_flags via opts pointer.  Don't
10187         assert that global structures are in use.  Defer part of -mivc2
10188         handling and move it to mep_option_override.
10189         * config/mep/mep.opt (IVC2): New Mask entry.
10190         (mivc2): Use Var and Defer instead of Mask.
10191
10192 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10193
10194         * config/v850/v850-opts.h: New.
10195         * config/v850/v850.c (small_memory): Replace with
10196         small_memory_physical_max array.  Make that array static const.
10197         (v850_handle_memory_option): Take integer value of argument.  Take
10198         gcc_options pointer, option text and location.  Return void.
10199         Update for changes to small memory structures.
10200         (v850_handle_option): Access target_flags via opts pointer.  Don't
10201         assert that global structures are in use.  Update calls to
10202         v850_handle_memory_option.
10203         (v850_encode_data_area): Update references to small memory settings.
10204         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
10205         (enum small_memory_type): Move to v850-opts.h.
10206         * config/v850/v850.opt (config/v850/v850-opts.h): New
10207         HeaderInclude entry.
10208         (small_memory_max): New Variable entry.
10209         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
10210         (mtda, mzda): Likewise.
10211
10212 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10213
10214         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10215         pointer.  Don't assert that global structures are in use.
10216
10217 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10218
10219         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10220         via opts pointer.  Don't assert that global structures are in use.
10221
10222 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10223
10224         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10225         (munix=93): Use Var.
10226         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10227         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10228         * config/pa/pa-opts.h: New.
10229         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10230         (pa_handle_option): Don't assert that global structures are in
10231         use.  Access target_flags via opts pointer.  Don't handle
10232         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10233         OPT_munix_98 here.
10234         (pa_option_override): Handle deferred OPT_mfixed_range_.
10235
10236 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10237
10238         * config/mn10300/mn10300-opts.h: New.
10239         * config/mn10300/mn10300.c (mn10300_processor,
10240         mn10300_tune_string): Remove.
10241         (mn10300_handle_option): Don't assert that global structures are
10242         in use.  Access mn10300_processor via opts pointer.  Don't handle
10243         OPT_mtune_ here.
10244         * config/mn10300/mn10300.h (enum processor_type): Move to
10245         mn10300-opts.h.
10246         (mn10300_processor): Remove.
10247         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10248         HeaderInclude entry.
10249         (mn10300_processor): New Variable entry.
10250         (mtune=): Use Var.
10251
10252 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10253
10254         * config/microblaze/microblaze.c: Don't include opts.h.
10255         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10256         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10257         (mno-clearbss): Use Var and Warn.
10258
10259 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10260
10261         * config/m32r/m32r-opts.h: New.
10262         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
10263         (m32r_handle_option): Don't assert that global structures are in
10264         use.  Access target_flags and m32r_cache_flush_func via opts
10265         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
10266         OPT_mno_flush_trap here.
10267         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
10268         include of m32r-opts.h.
10269         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
10270         HeaderInclude entry.
10271         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
10272         (mmodel=): Use Enum and Var.
10273         (m32r_model): New Enum and EnumValue entries.
10274         (mno-flush-trap): Use Var.
10275         (msdata=): Use Enum and Var.
10276         (m32r_sdata): New Enum and EnumValue entries.
10277
10278 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10279
10280         * config/m32c/m32c.c: Don't include opts.h.
10281         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
10282         m32c_handle_option): Remove.
10283         (m32c_option_override): Check global_options_set.x_target_memregs
10284         instead of target_memregs_set.
10285         * config/m32c/m32c.h (target_memregs): Remove.
10286         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
10287         variable.
10288
10289 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10290
10291         * config/iq2000/iq2000-opts.h: New.
10292         * config/iq2000/iq2000.c: Don't include opts.h.
10293         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
10294         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
10295         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
10296         HeaderInclude entry.
10297         (iq2000_tune): New Variable entry.
10298         (march=): Add comment.  Use Enum.
10299         (iq2000_arch): New Enum and EnumValue entries.
10300         (mcpu=): Use Enum and Var.
10301         (iq2000_tune): New Enum and EnumValue entries.
10302
10303 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10304
10305         * config/ia64/ia64-opts.h: New.
10306         * config/ia64/ia64.c (ia64_tune): Remove.
10307         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
10308         here.  Use error_at.
10309         (ia64_option_override): Handle deferred OPT_mfixed_range_.
10310         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
10311         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
10312         HeaderInclude entry.
10313         (ia64_tune): New Variable entry.
10314         (mfixed-range=): Use Defer and Var.
10315         (mtune=): Use Enum and Var.
10316         (ia64_tune): New Enum and EnumValue entries.
10317
10318 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10319
10320         * config/frv/frv-opts.h: New.
10321         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
10322         frv-opts.h.
10323         (frv_cpu_type): Remove.
10324         * config/frv/frv.c: Don't include opts.h.
10325         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
10326         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
10327         (frv_cpu_type): New Variable entry.
10328         (frv_cpu): New Enum and EnumValue entries.
10329
10330 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10331
10332         * config/cris/cris.c (cris_handle_option): Access target_flags via
10333         opts pointer.  Don't assert that global structures are in use.
10334         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
10335         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
10336
10337 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10338
10339         * config/bfin/bfin-opts.h: New.
10340         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
10341         bfin_si_revision, bfin_workarounds): Remove.
10342         (bfin_cpus): Make static const.
10343         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
10344         not bfin_lib_id_given.
10345         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
10346         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
10347         pointer. Use error_at.  Don't assert that global structures are in use.
10348         * config/bfin/bfin.h: Include bfin-opts.h.
10349         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
10350         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
10351         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
10352         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
10353         entries.
10354
10355 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10356
10357         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
10358         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
10359         or -msoft-float here.
10360         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
10361         -msoft-float and -mhard-float.
10362         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
10363         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10364         msoft-float.
10365         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
10366         -msoft-float.
10367         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
10368         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
10369         not mhard-float.
10370         (LIBGCC_SPEC): Don't handle -msoft-float.
10371         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
10372         -mhard-float.
10373         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10374         msoft-float.
10375         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
10376         -mfloat-abi=*, not -msoft-float and -mhard-float.
10377         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
10378         -msoft-float.
10379         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
10380         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
10381         mhard-float and msoft-float.
10382         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
10383         mfloat-abi=soft in comments, not mhard-float and msoft-float.
10384         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10385         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
10386         mhard-float.
10387         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
10388         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
10389         msoft-float.
10390         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
10391         not mhard-float.
10392         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
10393         not msoft-float.
10394
10395 2011-03-22  Richard Henderson  <rth@redhat.com>
10396
10397         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
10398         TARGET_ABI_WINDOWS_NT.
10399         (alpha_output_function_end_prologue): Likewise.
10400         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
10401         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10402         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
10403         (trap, *movsi_nt_vms): Likewise.
10404         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
10405         (*tablejump_osf_nt_internal): Remove.
10406         * config/alpha/predicates.md (input_operand): Only test Pmode.
10407
10408 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10409
10410         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
10411         via opts pointer.  Use error_at.  Don't assert that global
10412         structures are in use.
10413
10414 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10415
10416         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
10417         (ix86_handle_option): Access ix86_isa_flags and
10418         ix86_isa_flags_explicit via opts pointer.  Don't assert that
10419         global structures are in use.
10420         (ix86_function_specific_save, ix86_function_specific_restore):
10421         Update ix86_isa_flags_explicit field name.
10422         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
10423         (ix86_isa_flags_explicit): Rename TargetSave entry to
10424         x_ix86_isa_flags_explicit.
10425
10426 2011-03-22  Richard Henderson  <rth@redhat.com>
10427
10428         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
10429         (alpha_option_override, direct_return): Likewise.
10430         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
10431         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
10432         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
10433         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
10434         (alpha_expand_epilogue, alpha_end_function): Likewise.
10435         (alpha_init_libfuncs): Likewise.
10436         (struct machine_function): Remove unicosmk members.
10437         (print_operand) ['t']: Remove.
10438         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
10439         unicosmk_output_module_name, unicosmk_output_common,
10440         current_section_align, unicosmk_output_text_section_asm_op,
10441         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
10442         unicosmk_section_type_flags, unicosmk_unique_section,
10443         unicosmk_asm_named_section, unicosmk_insert_attributes,
10444         unicosmk_output_align, unicosmk_defer_case_vector,
10445         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
10446         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
10447         unicosmk_output_ssib, unicosmk_add_call_info_word,
10448         unicosmk_extern_head, unicosmk_output_default_externs,
10449         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
10450         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
10451         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
10452         * config/alpha/alpha-protos.h: Update.
10453         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
10454         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
10455         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
10456         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
10457         (*mulsi_se, mulvsi3): Likewise.
10458         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
10459         (*divmodsi_internal, call, call_value, realign): Likewise.
10460         (moddi3, umoddi3): Likewise; remove duplicate expander.
10461         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
10462         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
10463         (*movdi_nofix): Remove r/U alternative.
10464         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
10465         * config/alpha/constraints.md ("U"): Remove.
10466         * config/alpha/predicates.md (call_operand"): Don't test
10467         TARGET_ABI_UNICOSMK.
10468
10469 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10470
10471         * target.def (handle_option): Take gcc_options and
10472         cl_decoded_option pointers and location_t.
10473         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
10474         * doc/tm.texi: Regenerate.
10475         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
10476         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
10477         * lto-opts.c (lto_reissue_options): Generate option structure for
10478         targetm.handle_option call.
10479         * opts.c (target_handle_option): Update call to
10480         targetm.handle_option.  Remove assertions about values now passed
10481         down to hook.
10482         * targhooks.c (default_target_handle_option): New.
10483         * targhooks.h (default_target_handle_option): Declare.
10484         * config/alpha/alpha.c: Include opts.h.
10485         (alpha_handle_option): Update to new hook interface.
10486         * config/arm/arm.c: Include opts.h.
10487         (arm_handle_option): Update to new hook interface.
10488         * config/arm/t-arm (arm.o): Update dependencies.
10489         * config/bfin/bfin.c: Include opts.h.
10490         (bfin_handle_option): Update to new hook interface.
10491         * config/cris/cris.c: Include opts.h.
10492         (cris_handle_option): Update to new hook interface.
10493         * config/frv/frv.c: Include opts.h.
10494         (frv_handle_option): Update to new hook interface.
10495         * config/i386/i386.c: Include opts.h.
10496         (ix86_handle_option): Update to new hook interface.
10497         (ix86_valid_target_attribute_inner_p): Generate option structure
10498         for call to ix86_handle_option.
10499         * config/i386/t-i386 (i386.o): Update dependencies.
10500         * config/ia64/ia64.c: Include opts.h.
10501         (ia64_handle_option): Update to new hook interface.
10502         * config/ia64/t-ia64 (ia64.o): Update dependencies.
10503         * config/iq2000/iq2000.c: Include opts.h.
10504         (iq2000_handle_option): Update to new hook interface.
10505         * config/m32c/m32c.c: Include opts.h.
10506         (m32c_handle_option): Update to new hook interface.
10507         * config/m32r/m32r.c: Include opts.h.
10508         (m32r_handle_option): Update to new hook interface.
10509         * config/m68k/m68k.c: Include opts.h.
10510         (m68k_handle_option): Update to new hook interface.
10511         * config/mep/mep.c: Include opts.h.
10512         (mep_handle_option): Update to new hook interface.
10513         * config/microblaze/microblaze.c: Include opts.h.
10514         (microblaze_handle_option): Update to new hook interface.
10515         * config/mips/mips.c: Include opts.h.
10516         (mips_handle_option): Update to new hook interface.
10517         * config/mn10300/mn10300.c: Include opts.h.
10518         (mn10300_handle_option): Update to new hook interface.
10519         * config/pa/pa.c: Include opts.h.
10520         (pa_handle_option): Update to new hook interface.
10521         * config/pdp11/pdp11.c: Include opts.h.
10522         (pdp11_handle_option): Update to new hook interface.
10523         * config/rs6000/rs6000.c: Include opts.h.
10524         (rs6000_handle_option): Update to new hook interface.
10525         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10526         * config/rx/rx.c: Include opts.h.
10527         (rx_handle_option): Update to new hook interface.
10528         * config/s390/s390.c: Include opts.h.
10529         (s390_handle_option): Update to new hook interface.
10530         * config/score/score.c: Include opts.h.
10531         (score_handle_option): Update to new hook interface.
10532         * config/sh/sh.c: Include opts.h.
10533         (sh_handle_option): Update to new hook interface.
10534         * config/sparc/sparc.c: Include opts.h.
10535         (sparc_handle_option): Update to new hook interface.
10536         * config/v850/v850.c: Include opts.h.
10537         (v850_handle_option): Update to new hook interface.
10538
10539 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10540
10541         * gcc.c (driver_unknown_option_callback): Only permit and save
10542         unknown -Wno- options.
10543         (driver_wrong_lang_callback): Save options directly instead of via
10544         driver_unknown_option_callback.
10545
10546 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10547
10548         * combine.c (simplify_set): Try harder to find the best CC mode when
10549         simplifying a nested COMPARE on the RHS.
10550
10551 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
10552
10553         * config/alpha/gnu.h: Remove.
10554         * config/arc: Remove directory.
10555         * config/arm/netbsd.h: Remove.
10556         * config/arm/t-pe: Remove.
10557         * config/crx: Remove directory.
10558         * config/i386/netbsd.h: Remove.
10559         * config/m68hc11: Remove directory.
10560         * config/m68k/uclinux-oldabi.h: Remove.
10561         * config/mcore/mcore-pe.h: Remove.
10562         * config/mcore/t-mcore-pe: Remove.
10563         * config/netbsd-aout.h: Remove.
10564         * config/rs6000/gnu.h: Remove.
10565         * config/sh/sh-symbian.h: Remove.
10566         * config/sh/symbian-base.c: Remove.
10567         * config/sh/symbian-c.c: Remove.
10568         * config/sh/symbian-cxx.c: Remove.
10569         * config/sh/symbian-post.h: Remove.
10570         * config/sh/symbian-pre.h: Remove.
10571         * config/sh/t-symbian: Remove.
10572         * config/svr3.h: Remove.
10573         * config/vax/netbsd.h: Remove.
10574         * config.build: Don't handle i[34567]86-*-pe.
10575         * config.gcc: Remove handling of deprecations for most deprecated
10576         targets.
10577         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
10578         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
10579         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
10580         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
10581         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
10582         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
10583         Remove cases.
10584         * config.host: Don't handle i[34567]86-*-pe.
10585         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
10586         (ASM_SPEC32): Don't handle -mcall-gnu.
10587         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
10588         -mcall-gnu.
10589         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
10590         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
10591         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10592         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
10593         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
10594         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
10595         conditional on SYMBIAN.
10596         * configure.ac: Don't handle powerpc*-*-gnu*.
10597         * configure: Regenerate.
10598         * doc/extend.texi (interrupt attribute): Don't mention CRX.
10599         * doc/install-old.texi (m6811, m6812): Don't mention.
10600         * doc/install.texi (arc-*-elf*): Don't document multilib option.
10601         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
10602         (m68k-uclinuxoldabi): Don't mention.
10603         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
10604         Remove.
10605         (-mcall-gnu): Remove.
10606         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
10607         families): Remove constraint documentation.
10608
10609 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
10610
10611         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
10612         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
10613         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
10614
10615 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10616
10617         PR target/48226
10618         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
10619         vector when peeking at the next token for vector, don't expand the
10620         keywords.
10621
10622 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
10623
10624         * config/avr/avr-protos.h (expand_epilogue): Change prototype
10625         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
10626         * config/avr/avr.c (init_cumulative_args)
10627         (avr_function_arg_advance): Use it.
10628         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
10629         sibcall epilogues.
10630         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
10631         (avr_function_ok_for_sibcall): ...this new function.
10632         (avr_lookup_function_attribute1): New static Function.
10633         (avr_naked_function_p, interrupt_function_p)
10634         (signal_function_p, avr_OS_task_function_p)
10635         (avr_OS_main_function_p): Use it.
10636         * config/avr/avr.md ("sibcall", "sibcall_value")
10637         ("sibcall_epilogue"): New expander.
10638         ("*call_insn", "*call_value_insn"): New insn.
10639         ("call_insn", "call_value_insn"): Remove
10640         ("call", "call_value", "epilogue"): Change expander to handle
10641         sibling calls.
10642
10643 2011-03-21  Nick Clifton  <nickc@redhat.com>
10644
10645         * doc/invoke.texi (Overall Options): Move closing brace to end of
10646         options list.
10647         (Optimization Options): Add missing @gol.
10648         (Directory Options): Likewise.
10649         (i386 and x86-64 Options): Likewise.
10650         (RS6000 and PowerPC Options): Likewise.
10651         (i386 and x86-64 Windows Options): Likewise.
10652         (V850 Options): Add text missing from descriptions.
10653
10654 2011-03-22  Richard Henderson  <rth@redhat.com>
10655
10656         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10657         (avr_incoming_return_addr_rtx): New.
10658         (emit_push_byte): New.
10659         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
10660         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
10661         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
10662         (emit_pop_byte): New.
10663         (expand_epilogue): Use it.  Pop frame pointer by bytes.
10664         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10665         (INCOMING_RETURN_ADDR_RTX): New.
10666         (INCOMING_FRAME_SP_OFFSET): New.
10667         (ARG_POINTER_CFA_OFFSET): New.
10668         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10669         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10670         (pophi): Remove.
10671
10672         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10673
10674 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10675
10676         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10677         (FUNCTION_ARG_ADVANCE): Likewise.
10678         * tm.texi.in: Change references to them to hook references.
10679         * tm.texi: Regenerate.
10680         * targhooks.c (default_function_arg): Eliminate check for target
10681         macro.
10682         (default_function_incoming_arg): Likewise.
10683         (default_function_arg_advance): Likewise.
10684         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10685         (function_arg_advance): Likewise.
10686         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10687
10688 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10689
10690         * tree.c (build_call_1): New function.
10691         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10692
10693 2011-03-22  Richard Guenther  <rguenther@suse.de>
10694
10695         PR tree-optimization/48228
10696         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10697         for single-arg PHIs.
10698
10699 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
10700
10701         PR rtl-optimization/48143
10702         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10703         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10704         sse2_cvtps2pd): Likewise.
10705
10706 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10707
10708         * recog.c (canonicalize_change_group): Use validate_unshare_change.
10709
10710 2011-03-22  Richard Guenther  <rguenther@suse.de>
10711
10712         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10713         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10714         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10715         and REALIGN_LOAD_EXPR.
10716         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10717         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10718         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10719         DOT_PROD_EXPR case ...
10720         (expand_expr_real_2): ... here.
10721         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10722         and REALIGN_LOAD_EXPR.
10723         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10724         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10725         (vect_create_epilog_for_reduction): Likewise.
10726         (vectorizable_reduction): Likewise.
10727         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10728         * tree-vect-stmts.c (vectorizable_load): Likewise.
10729
10730 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10731
10732         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10733
10734 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10735
10736         * config/s390/s390.c (s390_delegitimize_address): Fix offset
10737         handling for PLTOFF/GOTOFF.
10738
10739 2011-03-22  Nick Clifton  <nickc@redhat.com>
10740
10741         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10742         trailing backslash from the end of the macro definition.
10743
10744 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10745
10746         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10747         and PLT unspecs.
10748
10749 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
10750
10751         * expr.h (prepare_operand): Move to...
10752         * optabs.h (prepare_operand): ...here and change the insn code
10753         parameter from "int" to "enum insn_code".
10754         (insn_operand_matches): Declare.
10755         * expr.c (init_expr_target): Use insn_operand_matches.
10756         (compress_float_constant): Likewise.
10757         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10758         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10759         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
10760         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10761         Likewise.
10762         (gen_cond_trap): Likewise.
10763         (prepare_operand): Likewise.  Change icode to an insn_code.
10764         (insn_operand_matches): New function.
10765         * reload.c (find_reloads_address_1): Use insn_operand_matches.
10766         * reload1.c (gen_reload): Likewise.
10767         * targhooks.c (default_secondary_reload): Likewise.
10768
10769 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10770
10771         * config/alpha/alpha.md (unspec): New define_c_enum.
10772         (unspecv): Ditto.
10773
10774 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10775
10776         PR debug/48214
10777         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
10778         between a call and its CALL_ARG_LOCATION note.
10779
10780 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
10781
10782         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
10783
10784 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10785
10786         PR c/42544
10787         PR c/48197
10788         * c-common.c (shorten_compare): If primopN is first sign-extended
10789         to opN and then zero-extended to result type, set primopN to opN.
10790
10791 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
10792
10793         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
10794         for barrier handlers.
10795
10796 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10797
10798         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
10799         UNSPEC constants to be in the unspec enumeration, and redefine
10800         all UNSPECV constants to be in the unspecv enumeration, so that
10801         dumps print which unspec/unspec_volatile this is.
10802         * config/rs6000/vector.md (UNSPEC_*): Ditto.
10803         * config/rs6000/paired.md (UNSPEC_*): Ditto.
10804         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
10805         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
10806         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
10807
10808         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
10809         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
10810         UNSPECV_LWSYNC, since these are used as unspec_volatile.
10811         * config/rs6000/sync.md (isync, lwsync): Ditto.
10812
10813 2011-03-21  Richard Guenther  <rguenther@suse.de>
10814
10815         * params.def (lto-min-partition): Fix typo.
10816
10817 2011-03-21  Richard Guenther  <rguenther@suse.de>
10818
10819         PR c/47939
10820         * c-decl.c (grokdeclarator): Drop to the main variant only
10821         for array types.  Drop flag_gen_aux_info check.
10822
10823 2011-03-21  Richard Guenther  <rguenther@suse.de>
10824
10825         PR translation/47911
10826         * params.def (lto-partitions): Fix typo.
10827         (lto-min-partition): Fix wording.
10828
10829 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
10830
10831         * config/rs6000/t-freebsd: Remove duplication from file.
10832
10833 2011-03-21  Richard Guenther  <rguenther@suse.de>
10834
10835         PR middle-end/47661
10836         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
10837
10838 2011-03-21  Richard Guenther  <rguenther@suse.de>
10839
10840         PR lto/48210
10841         * params.def (lto-partitions): Require at least 1 partition.
10842
10843 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10844
10845         * gthr-solaris.h: Remove.
10846         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
10847         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
10848         (LIB_SPEC): Likewise.
10849         * config/sol2.opt (threads): Remove.
10850         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
10851         (sparc*-*-solaris2*): Likewise.
10852         * configure.ac (enable_threads): Enable solaris support.
10853         * configure: Regenerate.
10854         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
10855         * doc/install.texi (Configuration, --enable-threads=lib): Remove
10856         solaris.
10857
10858 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10859
10860         * config.gcc: Obsolete *-*-solaris2.8*.
10861         * doc/install.texi (Specific, *-*-solaris2*): Document it.
10862
10863 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10864
10865         PR bootstrap/48135
10866         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
10867         reference.  Solaris 8 perl works.
10868
10869 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10870
10871         PR bootstrap/48135
10872         * doc/install.texi (Prerequisites): Move jar etc. up.
10873         Explain support library version requirements.
10874
10875 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10876
10877         PR bootstrap/48135
10878         * doc/install.texi (Prerequisites): Move Perl to build
10879         requirements.  Always necessary on Solaris 2 with Sun ld.
10880
10881 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10882
10883         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10884         binutils 2.21.
10885         (Specific, i?86-*-solaris2.[89]): Likewise.
10886         (Specific, i?86-*-solaris2.10): Likewise.
10887         (Specific, mips-sgi-irix6): Likewise.
10888         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10889         Update for binutils 2.21.
10890
10891 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10892
10893         * configure.ac (gcc_cv_lto_plugin): Fix typo.
10894         Allow -fuse-linker-plugin for non-default plugin linker.
10895         * configure: Regenerate.
10896
10897 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10898
10899         PR bootstrap/48167
10900         * gengtype.c (files_rules): Added rule for cp/parser.h.
10901
10902 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10903
10904         PR target/48213
10905         * config/s390/s390.c (s390_delegitimize_address): Don't call
10906         lowpart_subreg if orig_x has BLKmode.
10907
10908 2011-03-21  Kai Tietz  <ktietz@redhat.com>
10909
10910         PR target/12171
10911         * doc/plugins.texi: Adjust documentation for plugin register_callback.
10912         * tree.h (attribute_spec): Add new member affects_type_identity.
10913         * attribs.c (empty_attribute_table): Adjust attribute_spec
10914         initializers.
10915         * config/alpha/alpha.c: Likewise.
10916         * config/arc/arc.c: Likewise.
10917         * config/arm/arm.c: Likewise.
10918         * config/avr/avr.c: Likewise.
10919         * config/bfin/bfin.c: Likewise.
10920         * config/crx/crx.c: Likewise.
10921         * config/darwin.h: Likewise.
10922         * config/h8300/h8300.c: Likewise.
10923         * config/i386/cygming.h: Likewise.
10924         * config/i386/i386.c: Likewise.
10925         * config/ia64/ia64.c: Likewise.
10926         * config/m32c/m32c.c: Likewise.
10927         * config/m32r/m32r.c: Likewise.
10928         * config/m68hc11/m68hc11.c: Likewise.
10929         * config/m68k/m68k.c: Likewise.
10930         * config/mcore/mcore.c: Likewise.
10931         * config/mep/mep.c: Likewise.
10932         * config/microblaze/microblaze.c: Likewise.
10933         * config/mips/mips.c: Likewise.
10934         * config/rs6000/rs6000.c: Likewise.
10935         * config/rx/rx.c: Likewise.
10936         * config/sh/sh.c: Likewise.
10937         * config/sol2.h: Likewise.
10938         * config/sparc/sparc.c: Likewise.
10939         * config/spu/spu.c: Likewise.
10940         * config/stormy16/stormy16.c: Likewise.
10941         * config/v850/v850.c: Likewise.
10942
10943 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
10944
10945         * simplify-rtx.c (simplify_binary_operation_1): Handle
10946         (xor (and A B) C) case when B and C are both constants.
10947
10948 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
10949
10950         * tree-dfa.c (add_referenced_var): Fix typo in comment.
10951
10952 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
10953
10954         PR bootstrap/48168
10955         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10956
10957 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
10958
10959         PR rtl-optimization/48156
10960         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10961         assume df and df_lr are not NULL.
10962
10963 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10964
10965         PR debug/48023
10966         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10967         between a call and its CALL_ARG_LOCATION note.
10968
10969 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
10970
10971         PR debug/48178
10972         * config/sh/sh.c (find_barrier): Don't emit a constant pool
10973         between a call and its corresponding CALL_ARG_LOCATION note.
10974
10975 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
10976
10977         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10978         instead of loop. Use HARD_REGISTER_NUM_P predicate.
10979         * haifa-sched.c (setup_ref_regs): Ditto.
10980         * caller-save.c (add_used_regs_1): Ditto.
10981         * dse.c (look_for_hardregs): Ditto.
10982         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10983         * sched-rgn.c (check_live_1): Ditto.
10984
10985 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10986
10987         * c-decl.c (diagnose_mismatched_decls): Give an error for
10988         redefining a typedef with variably modified type.
10989
10990 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10991
10992         * c-decl.c (grokfield): Don't allow typedefs for structures or
10993         unions with no tag by default.
10994         * doc/extend.texi (Unnamed Fields): Update.
10995
10996 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
10997
10998         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10999         Rewrite using indirect functions.
11000         (lwp_slwpcb): Ditto.
11001         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
11002         (avx_vinsertf128<mode>): Ditto.
11003
11004 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11005
11006         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
11007         unspecs.
11008
11009 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11010
11011         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
11012         splitting between a call and its corresponding CALL_ARG_LOCATION note.
11013
11014 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
11015
11016         PR rtl-optimization/48170
11017         * gcse.c (hoist_code): Remove bogus asserts.
11018
11019 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
11020
11021         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
11022         computation for prologue/epilogue.
11023
11024 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11025
11026         * Makefile.in (check-consistency): Remove.
11027
11028 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
11029
11030         PR debug/48176
11031         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11032         arange_table_in_use is 0, but either text_section_used or
11033         cold_text_section_used is true.  Don't call it if
11034         !info_section_emitted.
11035
11036 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
11037
11038         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11039         FUNCTION_VALUE_REGNO_P): Remove.
11040         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11041         Remove.
11042         * config/avr/avr.c (avr_ret_register): Make static inline.
11043         (avr_function_value_regno_p): New function.
11044         (avr_libcall_value): Make static. Add 'func' argument.
11045         (avr_function_value): Make static. Rename 'func' argument to
11046         'fn_decl_or_type', forward it to avr_libcall_value. Call
11047         avr_ret_register function instead of RET_REGISTER macro.
11048         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11049
11050 2011-03-18  Jason Merrill  <jason@redhat.com>
11051
11052         PR c++/23372
11053         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11054
11055 2011-03-18  Richard Guenther  <rguenther@suse.de>
11056
11057         * doc/install.texi (--enable-gold): Remove.
11058         (--with-plugin-ld): Document.
11059         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11060
11061 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
11062
11063         PR middle-end/47790
11064         * expr.c (optimize_bitfield_assignment_op): Revamp to work
11065         again after expansion changes.
11066
11067 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
11068
11069         * combine.c (try_combine): Do simplification only call of
11070         subst() on i2 even when i1 is present. Update comments.
11071
11072 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
11073
11074         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11075         and UNSPEC_PCREL_SYMOFF.
11076
11077 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11078
11079         * config/s390/s390.md: Use define_c_enum for the unspec constant
11080         definitions.
11081
11082 2011-03-18  Richard Henderson  <rth@redhat.com>
11083             Jakub Jelinek  <jakub@redhat.com>
11084
11085         PR bootstrap/48161
11086         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11087         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11088
11089 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11090
11091         PR middle-end/47725
11092         * combine.c (cant_combine_insn_p): Don't check zero/sign
11093         extended hard registers.
11094
11095 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11096
11097         PR middle-end/47725
11098         * combine.c (cant_combine_insn_p): Check zero/sign extended
11099         hard registers.
11100
11101 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
11102
11103         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11104         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11105         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11106         Change return type to bool.
11107         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11108
11109 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11110
11111         PR debug/48163
11112         * var-tracking.c (prepare_call_arguments): If CALL target
11113         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11114         pc instead of looking it up using cselib_lookup and use
11115         Pmode for it if x has VOIDmode.
11116         * dwarf2out.c (gen_subprogram_die): If also both first and
11117         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11118
11119         PR debug/48163
11120         * function.c (assign_parms): For data.passed_pointer parms
11121         use MEM of data.entry_parm instead of data.entry_parm itself
11122         as DECL_INCOMING_RTL.
11123         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11124         also when passed and declared mode is the same, DECL_RTL
11125         is a MEM with pseudo as address and DECL_INCOMING_RTL is
11126         a MEM too.
11127
11128 2011-03-16  Jeff Law  <law@redhat.com>
11129
11130         PR rtl-optimization/37273
11131         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11132         handle them like argument loads from stack slots.  Do not double
11133         count memory for memory constants and argument loads from stack slots.
11134
11135 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11136
11137         PR debug/48160
11138         * var-tracking.c (prepare_call_arguments): Check SUBREG.
11139
11140 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11141
11142         PR target/48171
11143         * config/i386/i386.opt: Add Save to -mavx and -mfma.
11144
11145 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11146
11147         PR bootstrap/48153
11148         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11149         if dwarf_strict.
11150         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11151         Clear call_arg_locations and call_arg_loc_last always.
11152
11153         PR middle-end/48152
11154         * var-tracking.c (prepare_call_arguments): If argument needs to be
11155         passed by reference, adjust argtype and mode.
11156
11157 2011-03-17  Richard Guenther  <rguenther@suse.de>
11158
11159         PR middle-end/48134
11160         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11161         a value make sure to fold the statement.
11162
11163 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
11164
11165         PR target/43872
11166         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11167         return condition with !cfun->calls_alloca.
11168
11169 2011-03-17  Richard Guenther  <rguenther@suse.de>
11170
11171         PR bootstrap/48148
11172         * lto-cgraph.c (input_overwrite_node): Clear the abstract
11173         origin for decls in other ltrans units.
11174         (input_varpool_node): Likewise.
11175
11176 2011-03-17  Richard Guenther  <rguenther@suse.de>
11177
11178         PR middle-end/48165
11179         * tree-object-size.c (compute_object_offset): Properly return
11180         the offset operand of MEM_REFs as sizetype.
11181
11182 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
11183
11184         PR rtl-optimization/48141
11185         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11186         * dse.c: Include params.h.
11187         (active_local_stores_len): New variable.
11188         (add_wild_read, dse_step1): Clear it when setting active_local_stores
11189         to NULL.
11190         (record_store, check_mem_read_rtx): Decrease it when removing
11191         from the chain.
11192         (scan_insn): Likewise.  Increase it when adding to chain, if it
11193         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11194         set active_local_stores to NULL before the addition.
11195         * Makefile.in (dse.o): Depend on $(PARAMS_H).
11196
11197         PR rtl-optimization/48141
11198         * dse.c (record_store): If no positions are needed in an insn
11199         that cannot be deleted, at least unchain it from active_local_stores.
11200
11201 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
11202
11203         PR debug/47510
11204         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11205         (lookup_type_die_strip_naming_typedef): ... here.
11206         (get_context_die): Use it.
11207         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11208         the anonymous struct named by the naming typedef.
11209
11210 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
11211
11212         PR target/48154
11213         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11214         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11215
11216 2011-03-16  Jeff Law  <law@redhat.com>
11217
11218         * tree-vrp.c (identify_jump_threads): Slightly simplify type
11219         check for operands of conditional.  Allow type to be a pointer.
11220
11221 2011-03-16  Richard Guenther  <rguenther@suse.de>
11222
11223         PR tree-optimization/48149
11224         * fold-const.c (fold_binary_loc): Fold
11225         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11226
11227 2011-03-16  Richard Guenther  <rguenther@suse.de>
11228
11229         PR tree-optimization/26134
11230         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11231         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11232         (non_rewritable_mem_ref_base): Handle complex type component
11233         accesses, constrain offsets for vector and complex extracts
11234         more properly.
11235
11236 2011-03-16  Richard Guenther  <rguenther@suse.de>
11237
11238         PR tree-optimization/48146
11239         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11240         operands avoiding the need for renaming.
11241
11242 2011-03-16  Richard Guenther  <rguenther@suse.de>
11243
11244         * gimple-fold.c (maybe_fold_reference): Open-code relevant
11245         constant folding.  Move MEM_REF canonicalization first.
11246         Rely on fold_const_aggregate_ref for initializer folding.
11247         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11248
11249 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11250
11251         PR middle-end/48136
11252         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11253         arg0/arg1 or their arguments are always fold converted to matching
11254         types.
11255
11256         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11257         to nargs.
11258
11259 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11260
11261         PR lto/46944
11262         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
11263         Handle in-tree gold.
11264         (ld_vers): Extract binutils version for gold.
11265         (gcc_cv_ld_hidden): Handle gold here.
11266         (gcc_cv_lto_plugin): Determine level of linker plugin support.
11267         * configure: Regenerate.
11268         * config.in: Regenerate.
11269         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
11270         -fuse-linker-plugin otherwise.
11271         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
11272         (LINK_COMMAND_SPEC): Use it.
11273         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
11274
11275 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
11276
11277         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
11278         * calls.c: Remove debug.h include.
11279         (emit_call_1): Don't call virtual_call_token debug hook.
11280         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
11281         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
11282         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
11283         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
11284         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
11285         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
11286         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
11287         dwarf2out_virtual_call): Remove.
11288         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
11289         copy_call_info and virtual_call hooks.
11290         (dwarf2out_init): Don't initialize vcall_insn_table,
11291         debug_dcall_section and debug_vcall_section.
11292         (prune_unused_types): Don't mark nodes from dcall_table.
11293         (dwarf2out_finish): Don't output dcall or vcall tables.
11294         * final.c (final_scan_insn): Don't call direct_call or
11295         virtual_call debug hooks.
11296         * debug.h (struct gcc_debug_hooks): Remove direct_call,
11297         virtual_call_token, copy_call_info and virtual_call hooks.
11298         (debug_nothing_uid): Remove prototype.
11299         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
11300         copy_call_info and virtual_call hooks.
11301         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11302         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11303         * debug.c (do_nothing_debug_hooks): Likewise.
11304         (debug_nothing_uid): Remove.
11305         * doc/invoke.texi (-fenable-icf-debug): Remove.
11306         * common.opt (-fenable-icf-debug): Likewise.
11307
11308         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
11309         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
11310         call's MEM.  Handle functions returning aggregate through a hidden
11311         first pointer.  For virtual calls add clobbered pc to call arguments
11312         chain.
11313         * dwarf2out.c (gen_subprogram_die): Emit
11314         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
11315         can't be emitted.
11316
11317         PR debug/45882
11318         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
11319         * rtl.h (ENTRY_VALUE_EXP): Define.
11320         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
11321         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11322         * print-rtl.c (print_rtx): Likewise.
11323         * gengtype.c (adjust_field_rtx_def): Likewise.
11324         * var-tracking.c (vt_add_function_parameter): Adjust
11325         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
11326         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
11327         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
11328         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
11329         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
11330
11331         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
11332         Call var_location debug hook even on CALL_INSNs.
11333         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
11334         * rtl.def (ENTRY_VALUE): New.
11335         * dwarf2out.c: Include cfglayout.h.
11336         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11337         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
11338         (struct call_arg_loc_node): New type.
11339         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
11340         tail_call_site_count): New variables.
11341         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
11342         DW_TAG_GNU_call_site_parameter.
11343         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
11344         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
11345         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
11346         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
11347         and DW_AT_GNU_all_source_call_sites.
11348         (mem_loc_descriptor): Handle ENTRY_VALUE.
11349         (add_src_coords_attributes): Don't add enything if
11350         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
11351         (dwarf2out_abstract_function): Save and clear call_arg_location,
11352         call_site_count and tail_call_site_count around dwarf2out_decl call.
11353         (gen_call_site_die): New function.
11354         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
11355         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
11356         (dwarf2out_function_decl): Clear call_arg_locations,
11357         call_arg_loc_last, set call_site_count and tail_call_site_count
11358         to -1 and free block_map.
11359         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
11360         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
11361         followed by any real instructions.
11362         (dwarf2out_begin_function): Set call_site_count and
11363         tail_call_site_count to 0.
11364         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
11365         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
11366         attempt to force a DIE for it and worst case remove the attribute.
11367         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
11368         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
11369         the decl itself.
11370         * var-tracking.c: Include tm_p.h.
11371         (vt_stack_adjustments): For calls call note_register_arguments.
11372         (argument_reg_set): New variable.
11373         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
11374         ensure the VALUE is resolved.
11375         (call_arguments): New variable.
11376         (prepare_call_arguments): New function.
11377         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
11378         (struct expand_loc_callback_data): Add ignore_cur_loc field.
11379         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
11380         always use the best expression.
11381         (vt_expand_loc): Add ignore_cur_loc argument.
11382         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
11383         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
11384         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
11385         note for all calls.
11386         (vt_add_function_parameter): Use cselib_lookup_from_insn.
11387         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
11388         argument.  Don't call cselib_preserve_only_values and
11389         cselib_reset_table.
11390         (note_register_arguments): New function.
11391         (vt_initialize): Compute argument_reg_set.  Call
11392         vt_add_function_parameters before processing basic blocks instead of
11393         afterwards.  For calls call prepare_call_arguments before calling
11394         cselib_process_insn.
11395         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
11396         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
11397         (var-tracking.o): Depend on $(TM_P_H).
11398         * cfglayout.h (insn_scope): New prototype.
11399         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
11400         * cfglayout.c (insn_scope): No longer static.
11401         * insn-notes.def (CALL_ARG_LOCATION): New.
11402         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
11403         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
11404         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
11405         nothing for DECL_EXTERNAL BLOCK_VARS.
11406
11407 2011-03-16  Alan Modra  <amodra@gmail.com>
11408
11409         PR target/45844
11410         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
11411         create invalid offset address for vsx splat insn.
11412         * config/rs6000/predicates.md (splat_input_operand): New.
11413         * config/rs6000/vsx.md (vsx_splat_*): Use it.
11414
11415 2011-03-15  Xinliang David Li  <davidxl@google.com>
11416
11417         PR c/47837
11418         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
11419         (normalize_preds): New function.
11420         (is_use_properly_guarded): Normalize def predicates.
11421
11422 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11423
11424         PR target/46788
11425         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
11426         in the output template.
11427
11428 2011-03-15  Richard Guenther  <rguenther@suse.de>
11429
11430         PR middle-end/47650
11431         * tree-pretty-print.c (dump_function_declaration): Properly
11432         dump unprototyped and varargs function types.
11433
11434 2011-03-15  Richard Guenther  <rguenther@suse.de>
11435
11436         PR tree-optimization/13954
11437         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
11438         and friends.
11439
11440 2011-03-15  Richard Guenther  <rguenther@suse.de>
11441
11442         PR tree-optimization/48037
11443         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
11444         selects into BIT_FIELD_REFs.
11445         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
11446         vector select.
11447
11448 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
11449
11450         PR tree-optimization/48129
11451         * builtins.c (fold_builtin_snprintf): Convert to type of
11452         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
11453         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
11454
11455 2011-03-15  Richard Guenther  <rguenther@suse.de>
11456
11457         PR tree-optimization/41490
11458         * tree-ssa-dce.c (propagate_necessity): Handle returns without
11459         value but with VUSE.
11460         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
11461         return statements.
11462         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
11463         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
11464         * tree-tailcall.c (find_tail_calls): Ignore returns.
11465
11466 2011-03-15  Richard Guenther  <rguenther@suse.de>
11467
11468         PR middle-end/48031
11469         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
11470         or variable-indexed array accesses when in gimple form.
11471
11472 2011-03-15  Richard Guenther  <rguenther@suse.de>
11473
11474         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
11475
11476 2011-03-15  Alan Modra  <amodra@gmail.com>
11477
11478         PR target/48032
11479         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
11480         presume symbol_refs without a symbol_ref_decl are suitably
11481         aligned, nor other trees we may see here.  Handle anchor symbols.
11482         (legitimate_constant_pool_address_p): Comment.  Add mode param.
11483         Check cmodel=medium addresses.  Adjust all calls.
11484         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
11485         creating cmodel=medium optimized access to locals.
11486         * config/rs6000/constraints.md (R): Pass QImode to
11487         legitimate_constant_pool_address_p.
11488         * config/rs6000/predicates.md (input_operand): Pass mode to
11489         legitimate_constant_pool_address_p.
11490         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
11491         Update prototype.
11492
11493 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11494
11495         PR target/48053
11496         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
11497         64-bit constants being loaded into registers other than GPRs such
11498         as loading 0 into a VSX register.
11499
11500 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11501
11502         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
11503
11504 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11505
11506         PR middle-end/47917
11507         * builtins.c (fold_builtin_snprintf): New function.
11508         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
11509         (fold_builtin_4): Likewise.
11510
11511         PR middle-end/38878
11512         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
11513         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
11514         and C - X == X also strip nops from +/-/p+ operand.
11515         When optimizing -X == C, fold C to arg0's type.
11516
11517         PR debug/47946
11518         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
11519         emit it as add_AT_int instead of add_AT_unsigned.
11520
11521 2011-03-14  Tom Tromey  <tromey@redhat.com>
11522
11523         * unwind-dw2.c: Include sys/sdt.h if it exists.
11524         (_Unwind_DebugHook): Use STAP_PROBE2.
11525         * config.in, configure: Rebuild.
11526         * configure.ac: Check for sys/sdt.h.
11527
11528 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
11529
11530         * config/i386/i386.md (ROUND_FLOOR): New constant.
11531         (ROUND_CEIL): Ditto.
11532         (ROUND_TRUNC): Ditto.
11533         (ROUND_MXCSR): Ditto.
11534         (ROUND_NO_EXC): Ditto.
11535         (rint<mode>2): Use new defines instead of numerical constants.
11536         (floor<mode>2): Ditto.
11537         (ceil<mode>2): Ditto.
11538         (btrunc<mode>2): Ditto.
11539         * config/i386/i386-builtin-types.def: Define ROUND function type
11540         aliases.
11541         * config/i386/i386.c (enum ix86_builtins): Add
11542         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
11543         (struct builtin_description): Add
11544         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
11545         (ix86_expand_sse_round): New static function.
11546         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
11547         function types.
11548         (ix86_builtin_vectorized_function): Handle
11549         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11550
11551 2011-03-14  Tom Tromey  <tromey@redhat.com>
11552
11553         * c-parser.c (c_parser_asm_string_literal): Clear
11554         warn_overlength_strings.
11555
11556 2011-03-14  Tom Tromey  <tromey@redhat.com>
11557
11558         * c-parser.c (disable_extension_diagnostics): Save
11559         warn_overlength_strings.
11560         (restore_extension_diagnostics): Restore warn_overlength_strings.
11561
11562 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11563
11564         * BASE-VER: Change to 4.7.0.
11565
11566 2011-03-14  Richard Guenther  <rguenther@suse.de>
11567
11568         PR middle-end/48098
11569         * tree.c (build_vector_from_val): Adjust assert to requirements
11570         and reality.
11571
11572 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
11573
11574         PR bootstrap/48102
11575         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
11576
11577 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
11578
11579         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
11580         terms of target_flags_explicit. Adjust copyright year.
11581
11582         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
11583         * config/rs6000/t-freebsd: New file. Add override for
11584         LIB2FUNCS_EXTRA.
11585
11586 2011-03-13  Chris Demetriou  <cgd@google.com>
11587
11588         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
11589         (-fno-diagnostics-show-option): this, to reflect current default.
11590         (-Werror=): Update text about -fno-diagnostics-show-option.
11591
11592 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
11593
11594         PR target/48053
11595         * config/rs6000/predicates.md (easy_vector_constant_add_self,
11596         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
11597         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
11598         mode is not V2DImode or V2DFmode.
11599         (vspltis_constant): Do not handle V2DImode and V2DFmode.
11600         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
11601         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
11602         registers to 0.
11603         (movdi_internal64): Likewise.
11604
11605 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
11606
11607         PR tree-optimization/47127
11608         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
11609         parameter.
11610         (set_cloog_options): Same.
11611         (scop_to_clast): Same.
11612         (print_clast_stmt): Do not call cloog_state_malloc and
11613         cloog_state_free.
11614         (print_generated_program): Same.
11615         (gloog): Same.
11616         * graphite-clast-to-gimple.h (cloog_state): Declared.
11617         (scop_to_clast): Adjust declaration.
11618         * graphite.c (cloog_state): Defined here.
11619         (graphite_initialize): Call cloog_state_malloc.
11620         (graphite_finalize): Call cloog_state_free.
11621
11622 2011-03-11  Jason Merrill  <jason@redhat.com>
11623
11624         * attribs.c (lookup_attribute_spec): Take const_tree.
11625         * tree.h: Adjust.
11626
11627 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
11628
11629         * config/sparc/sparc.c (sparc_option_override): Use
11630         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
11631
11632 2011-03-11  Richard Guenther  <rguenther@suse.de>
11633
11634         PR tree-optimization/48067
11635         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
11636         multiplication result will be only used once on the target
11637         stmt.
11638
11639 2011-03-11  Richard Guenther  <rguenther@suse.de>
11640
11641         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
11642
11643 2011-03-11  Richard Guenther  <rguenther@suse.de>
11644
11645         PR lto/48073
11646         * tree.c (find_decls_types_r): Do not walk types only reachable
11647         from IDENTIFIER_NODEs.
11648
11649 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11650
11651         PR middle-end/48044
11652         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11653         all vnode->force_output nodes as needed.
11654
11655 2011-03-11  Jason Merrill  <jason@redhat.com>
11656
11657         PR c++/48069
11658         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11659         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11660
11661 2011-03-11  Martin Jambor  <mjambor@suse.cz>
11662
11663         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11664         cgraph_node.
11665
11666 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
11667
11668         PR tree-optimization/48063
11669         * ipa-inline.c (cgraph_decide_inlining): Don't try to
11670         inline functions called once if !tree_can_inline_p (node->callers).
11671
11672 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
11673
11674         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11675         extra_objs.
11676         * config/score/score3.c: Delete.
11677         * config/score/score3.h: Delete.
11678         * config/score/mul-div.S: Delete.
11679         * config/score/sfp-machine.h: Add new file.
11680         * config/score/constraints.md: Add new file.
11681         * config/score/t-score-softfp: Add new file.
11682         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
11683         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11684         (score7_extra_constraint): Delete.
11685         (score7_option_override): Remove unused code.
11686         * config/score/score.c: Remove score3 and score5 define and code.
11687         * config/score/score.h: Remove score3 and score5 define and code.
11688         * config/score/score.md: Remove score3 template and unusual insn.
11689         * config/score/score.opt: Remove score3 and score5 options.
11690
11691 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11692
11693         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11694         when _HPUX_SOURCE is defined.
11695         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11696
11697 2011-03-10  Jason Merrill  <jason@redhat.com>
11698
11699         PR c++/48029
11700         * stor-layout.c (layout_type): Don't set structural equality
11701         on arrays of incomplete type.
11702         * tree.c (type_hash_eq): Handle comparing them properly.
11703
11704 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
11705
11706         PR debug/48043
11707         * config/s390/s390.c (s390_delegitimize_address): Make sure the
11708         result mode matches original rtl mode.
11709
11710 2011-03-10  Nick Clifton  <nickc@redhat.com>
11711
11712         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
11713         (andsi3, andsi3_flags): Fix timings for three operand alternative.
11714
11715 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
11716
11717         PR rtl-optimization/47866
11718         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11719         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11720         if target wasn't scalar.
11721         * function.c (assign_stack_temp_for_type): Assert that neither
11722         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11723         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11724         macro.
11725         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11726
11727 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11728
11729         * config/s390/s390-protos.h (s390_label_align): New prototype.
11730         * config/s390/s390.c (s390_label_align): New function.
11731         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11732
11733 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
11734
11735         PR target/47755
11736         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11737         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
11738         (output_vec_const_move): Ditto.
11739
11740 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
11741
11742         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11743         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11744         * config/mips/mips.c (mips_preferred_reload_class): Make static.
11745         Change 'rclass' argument and result type to reg_class_t.
11746         (TARGET_PREFERRED_RELOAD_CLASS): Define.
11747
11748 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
11749
11750         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11751         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11752         (TARGET_MEMORY_MOVE_COST): Define.
11753         (avr_register_move_cost, avr_memory_move_cost): New Functions.
11754
11755 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
11756
11757         PR debug/47881
11758         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11759         removed anything.
11760
11761         PR tree-optimization/48022
11762         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11763         for EQ/NE_EXPR.
11764
11765 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
11766
11767         PR debug/47991
11768         * var-tracking.c (find_use_val): Return NULL for
11769         cui->sets && cui->store_p BLKmode MEMs.
11770
11771 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
11772
11773         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
11774         Remove.
11775         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
11776         xstormy16_print_operand_address): Remove.
11777         * config/stormy16/stormy16.c (xstormy16_print_operand,
11778         xstormy16_print_operand_address): Make static.
11779         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11780
11781 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
11782
11783         PR target/47862
11784         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11785         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
11786         before definition.
11787
11788 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
11789
11790         PR bootstrap/48000
11791         * cfgloopmanip.c (fix_bb_placements): Return immediately
11792         if FROM is BASE_LOOP's header.
11793
11794 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
11795
11796         * gimplify.c (gimplify_function_tree): Fix building calls
11797         to __builtin_return_address.
11798
11799 2011-03-07  Alan Modra  <amodra@gmail.com>
11800
11801         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
11802         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
11803         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
11804         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
11805         return_mode args.
11806         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
11807         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
11808         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
11809         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
11810         * config/rs6000/rs6000.c
11811         (rs6000_elf_end_indicate_exec_stack): Rename to..
11812         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
11813         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
11814         (rs6000_file_start): ..here.
11815         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
11816         file scope variables.
11817         (call_ABI_of_interest): New function.
11818         (init_cumulative_args): Set above vars when function return value
11819         is a float, vector, or small struct.
11820         (rs6000_function_arg_advance_1): Likewise for function args.
11821         (rs6000_va_start): Set rs6000_passes_float if variable arg function
11822         references float args.
11823
11824 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
11825
11826         * doc/cfg.texi: Remove "See" before @ref.
11827         * doc/invoke.texi: Likewise.
11828
11829 2011-03-05  Jason Merrill  <jason@redhat.com>
11830
11831         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
11832
11833 2011-03-05  Anthony Green  <green@moxielogic.com>
11834
11835         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
11836
11837 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
11838
11839         PR rtl-optimization/47899
11840         * cfgloopmanip.c (fix_bb_placements): Fix first argument
11841         to flow_loop_nested_p when moving the loop upward.
11842
11843 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
11844
11845         PR target/47719
11846         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
11847
11848 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
11849
11850         PR tree-optimization/47967
11851         * ipa-cp.c (build_const_val): Return NULL instead of creating
11852         VIEW_CONVERT_EXPR for mismatching sizes.
11853         (ipcp_create_replace_map): Return NULL if build_const_val failed.
11854         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
11855         give up on versioning.
11856
11857 2011-03-05  Alan Modra  <amodra@gmail.com>
11858
11859         PR target/47986
11860         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11861         full cmodel medium/large lo_sum + high addresses.
11862
11863 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11864
11865         * config/s390/s390.c (s390_decompose_address): Reject non-literal
11866         pool references in UNSPEC_LTREL_OFFSET.
11867
11868 2011-03-04  Jan Hubicka  <jh@suse.cz>
11869
11870         PR lto/47497
11871         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
11872         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
11873         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
11874         Add node pointers.
11875         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
11876         cgraph_add_thunk): Add node pointers.
11877         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
11878         associated to right node.
11879         (input_node): Update use of cgraph_same_body_alias
11880         and cgraph_add_thunk.
11881
11882 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
11883
11884         * config/i386/i386.opt (mprefer-avx128): New flag.
11885         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11886         modes when the flag -mprefer-avx128 is on.
11887
11888 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
11889
11890         * dwarf2out.c (compare_loc_operands): Fix address handling.
11891
11892 2011-03-04  Alan Modra  <amodra@gmail.com>
11893
11894         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11895
11896 2011-03-04  Richard Guenther  <rguenther@suse.de>
11897
11898         PR middle-end/47968
11899         * expmed.c (extract_bit_field_1): Prefer vector modes that
11900         vec_extract patterns can handle.
11901
11902 2011-03-04  Richard Guenther  <rguenther@suse.de>
11903
11904         PR middle-end/47975
11905         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11906
11907 2011-03-04  Richard Henderson  <rth@redhat.com>
11908
11909         * explow.c (emit_stack_save): Remove 'after' parameter.
11910         (emit_stack_restore): Likewise.
11911         * expr.h: Update to match.
11912         * builtins.c, calls.c, stmt.c: Likewise.
11913         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11914         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11915         * function.c (expand_function_end): Insert the emit_stack_save
11916         sequence before parm_birth_insn instead of after.
11917
11918 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
11919
11920         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11921         (ssse3_pmaddubsw128): Ditto.
11922         (ssse3_pmaddubsw): Ditto.
11923
11924 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
11925
11926         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11927
11928 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
11929
11930         PR c/47963
11931         * gimplify.c (omp_add_variable): Only call omp_notice_variable
11932         on TYPE_SIZE_UNIT if it is a DECL.
11933
11934         PR debug/47283
11935         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11936         first operand is not is_gimple_mem_ref_addr, try to fold it.
11937         If the operand still isn't is_gimple_mem_ref_addr, clear
11938         MEM_EXPR on op0.
11939
11940 2011-03-03  Richard Guenther  <rguenther@suse.de>
11941
11942         PR middle-end/47283
11943         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11944         match comment.
11945         (refs_may_alias_p_1): For release branches return true if
11946         we are confused by our input.
11947
11948 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11949
11950         * config/s390/s390.c (s390_function_value): Rename to ...
11951         (s390_function_and_libcall_value): ... this.
11952         (s390_function_value): New function.
11953         (s390_libcall_value): New function.
11954         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
11955         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11956         target macro definitions.
11957         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11958
11959 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
11960
11961         * config/i386/freebsd64.h (CC1_SPEC): Define.
11962         * config/i386/linux64.h (CC1_SPEC): Define.
11963         * config/i386/x86-64.h (CC1_SPEC): Don't define.
11964
11965 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
11966
11967         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11968         Remove.
11969         * config/stormy16/stormy16.c: Include reload.h.
11970         (xstormy16_memory_move_cost): New function.
11971         (TARGET_MEMORY_MOVE_COST): Define.
11972
11973 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
11974
11975         PR rtl-optimization/47925
11976         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11977         with side effects.  Remove the more-specific check for volatile asms.
11978
11979 2011-03-02  Alan Modra  <amodra@gmail.com>
11980
11981         PR target/47935
11982         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11983         toc relative addresses for valid offsets.
11984
11985 2011-03-01  Richard Guenther  <rguenther@suse.de>
11986
11987         PR tree-optimization/47890
11988         * tree-vect-loop.c (get_initial_def_for_induction): Set
11989         related stmt properly.
11990
11991 2011-03-01  Richard Guenther  <rguenther@suse.de>
11992
11993         PR lto/47924
11994         * lto-streamer.c (lto_record_common_node): Also register
11995         the canonical type.
11996
11997 2011-03-01  Richard Guenther  <rguenther@suse.de>
11998
11999         PR lto/46911
12000         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12001         Do not stream DECL_ABSTRACT_ORIGIN.
12002         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12003         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12004         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12005         Do not stream DECL_ABSTRACT_ORIGIN.
12006         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12007         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12008
12009 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
12010
12011         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
12012         FUNCTION_VALUE_REGNO_P): Remove.
12013         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
12014         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
12015         Add 'outgoing' argument.
12016         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
12017         function.
12018         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12019         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12020
12021 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
12022
12023         PR debug/28047
12024         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12025         (lookup_filename): Likewise.
12026         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
12027
12028 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
12029             Jakub Jelinek  <jakub@redhat.com>
12030
12031         PR middle-end/47893
12032         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12033         (assign_stack_local_1): Change last argument type to int.
12034         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12035         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
12036         don't record padding space into frame_space_list nor use those areas.
12037         (assign_stack_local): Adjust caller.
12038         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12039         of assign_stack_local, pass 0 as last argument.
12040         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12041         callers.
12042
12043 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
12044
12045         PR debug/47283
12046         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12047         Use target address_mode and pointer_mode hooks instead of hardcoded
12048         Pmode and ptr_mode.  Handle some simple cases of extending if
12049         POINTERS_EXTEND_UNSIGNED < 0.
12050         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12051         Call convert_debug_memory_address.
12052         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12053         convert_debug_memory_address.
12054
12055         PR middle-end/46790
12056         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12057         * configure: Regenerated.
12058         * config.in: Regenerated.
12059         * varasm.c (default_function_section): Return NULL
12060         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
12061
12062 2011-02-28  Martin Jambor  <mjambor@suse.cz>
12063
12064         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12065         the description to match the printed values.
12066
12067 2011-02-28  Richard Guenther  <rguenther@suse.de>
12068
12069         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12070         of the copied scope tree.
12071
12072 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12073
12074         * doc/extend.texi (Function Attributes): Avoid deeply (and
12075         wrongly) nested tables.
12076
12077 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
12078
12079         PR middle-end/47903
12080         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12081         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12082         r isn't op0 nor op1.
12083
12084 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12085
12086         * config/avr/avr.md: Remove magic comment for emacs.
12087
12088 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
12089
12090         PR target/45261
12091         * config/avr/avr.c (avr_option_override): Use error on bad options.
12092         (avr_help): New function.
12093         (TARGET_HELP): Define.
12094
12095 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
12096
12097         PR target/42240
12098         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12099         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12100
12101 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
12102
12103         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12104         (ARM Options): Ditto.
12105         (i386 and x86-64 Options): Ditto.
12106         (RX Options): Ditto.
12107         (SPARC Options): Ditto.
12108
12109 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
12110
12111         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12112         FreeBSD 6 and later.  Generally use cpu generic.
12113
12114 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
12115
12116         * doc/cpp.texi: Update copyright years.
12117
12118 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12119
12120         PR target/46898
12121         * config/lm32/lm32.md (ashrsi3): Added needed variable.
12122
12123 2011-02-25  Jon Beniston  <jon@beniston.com>
12124
12125         PR target/46898
12126         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12127         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12128         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12129         (lm32_block_move_inline): Add type cast to remove warning.
12130         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
12131         (gen_int_relational): Move declarations to start of function.
12132
12133 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
12134
12135         PR tree-optimization/45470
12136         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12137         can throw internally only.
12138         * tree-vect-stmts.c (vectorizable_call): Likewise.
12139
12140 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
12141
12142         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12143         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12144         * config/stormy16/stormy16-protos.h
12145         (xstormy16_preferred_reload_class): Remove.
12146         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12147         static. Change 'rclass' argument and return type to reg_class_t.
12148         (TARGET_PREFERRED_RELOAD_CLASS,
12149         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12150
12151 2011-02-24  Richard Guenther  <rguenther@suse.de>
12152
12153         * lto-streamer-in.c (input_bb): Do not find referenced vars
12154         in debug statements.
12155
12156 2011-02-23  Jason Merrill  <jason@redhat.com>
12157
12158         * common.opt (fabi-version): Document v5 and v6.
12159
12160 2011-02-23  Richard Guenther  <rguenther@suse.de>
12161
12162         PR tree-optimization/47849
12163         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12164
12165 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12166
12167         * opts-common.c (decode_cmdline_option): Print empty string
12168         argument as "" in decoded->orig_option_with_args_text.
12169         * gcc.c (execute): Print empty string argument as ""
12170         in the verbose output.
12171         (do_spec_1): Keep empty string argument.
12172
12173 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
12174
12175         * config.gcc: Declare score-* and crx-* obsolete.
12176
12177 2011-02-23  Jie Zhang  <jie@codesourcery.com>
12178
12179         PR rtl-optimization/47763
12180         * web.c (web_main): Ignore naked clobber when replacing register.
12181
12182 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
12183
12184         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12185         Remove.
12186
12187 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12188
12189         PR doc/47848
12190         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12191
12192 2011-02-22  Mike Stump  <mikestump@comcast.net>
12193
12194         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12195         assembler.
12196         * configure: Regenerate.
12197
12198 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
12199
12200         PR rtl-optimization/46002
12201         * ira-color.c (update_copy_costs): Change class intersection
12202         test to reg_class_contents[] test of 'hard_regno'.
12203
12204 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
12205
12206         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12207         than Driver option.
12208         * config/hpux11.opt (mt): Likewise.
12209         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12210         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12211         * config/vax/elf.opt (mno-asm-pic): Likewise.
12212         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12213
12214 2011-02-21  Mike Stump  <mikestump@comcast.net>
12215
12216         PR target/47822
12217         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12218         tree so we can get save the type.
12219         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12220         for CFString instead of trying to use past the end of the builtins.
12221         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12222         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12223         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12224         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12225         Rename to darwin_builtin_cfstring.
12226         (darwin_init_cfstring_builtins): Return the built type.
12227
12228 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
12229
12230         PR target/47840
12231         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12232         (_mm256_insert_epi64): Use _mm_insert_epi64.
12233
12234 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
12235
12236         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12237         * config/stormy16/stormy16-protos.h
12238         (xstormy16_mode_dependent_address_p): Remove.
12239         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12240         Make static. Change return type to bool. Change argument type to
12241         const_rtx. Remove dead code.
12242         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12243
12244 2011-02-21  Richard Guenther  <rguenther@suse.de>
12245
12246         PR lto/47820
12247         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12248         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12249         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12250         TUs context.
12251         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12252         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12253
12254 2011-02-20  Richard Guenther  <rguenther@suse.de>
12255
12256         PR lto/47822
12257         * tree.c (free_lang_data_in_decl): Clean builtins from
12258         the TU decl BLOCK_VARS.
12259
12260 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
12261
12262         PR debug/47620
12263         PR debug/47630
12264         * haifa-sched.c (fix_tick_ready): Skip tick computation
12265         for debug insns.
12266
12267 2011-02-19  Richard Guenther  <rguenther@suse.de>
12268
12269         PR lto/47647
12270         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
12271         Remove lazy BLOCK_VARS streaming.
12272         (lto_input_ts_block_tree_pointers): Likewise.
12273         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
12274
12275 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12276
12277         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
12278
12279 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
12280
12281         * config/i386/biarch32.h, config/i386/mach.h,
12282         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
12283
12284 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
12285
12286         PR target/47800
12287         * config/i386/i386.md (peephole2 for shift and plus): Use
12288         operands[1] original mode in the first insn.
12289
12290 2011-02-18  Mike Stump  <mikestump@comcast.net>
12291
12292         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
12293
12294 2011-02-18  Jan Hubicka  <jh@suse.cz>
12295
12296         PR middle-end/47788
12297         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
12298         to zero when the function is not inlinable at all.
12299
12300 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12301
12302         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
12303         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12304         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
12305         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
12306         * config/pa/t-pa64: Likewise.
12307         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
12308
12309 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12310
12311         PR driver/47787
12312         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
12313
12314 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12315
12316         PR target/47792
12317         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
12318
12319 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
12320
12321         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12322         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
12323         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
12324         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12325         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
12326         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
12327         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
12328         m32r_load_postinc_p, m32r_store_preinc_predec_p,
12329         m32r_legitimate_address_p): New functions.
12330         * config/m32r/constraints.md (constraint "S"): Don't use
12331         STORE_PREINC_PREDEC_P.
12332         (constraint "U"): Don't use LOAD_POSTINC_P.
12333
12334 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
12335
12336         PR rtl-optimization/46178
12337         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
12338         compute ira_hard_regno_cover_class[].
12339
12340 2011-02-18  Richard Guenther  <rguenther@suse.de>
12341
12342         PR lto/47798
12343         * lto-streamer.h (lto_global_var_decls): Declare.
12344         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
12345         statics for global var processing.
12346
12347 2011-02-18  Richard Guenther  <rguenther@suse.de>
12348
12349         PR tree-optimization/47737
12350         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
12351         edge dominance check.
12352
12353 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
12354
12355         PR debug/47780
12356         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
12357         avoid invalid rtx sharing.
12358
12359 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
12360
12361         * doc/cpp.texi (Obsolete Features): Add background on the
12362         origin of assertions.
12363
12364 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
12365
12366         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
12367         objc_abi == 2.
12368         * config/darwin.c (output_objc_section_asm_op): Added support for
12369         ABI v1 and v2.
12370         (is_objc_metadata): New.
12371         (darwin_objc2_section): New.
12372         (darwin_objc1_section): New.
12373         (machopic_select_section): Added support for ABI v1 and v2.
12374         (darwin_emit_objc_zeroed): New.
12375         (darwin_output_aligned_bss): Detect objc metadata and treat it
12376         appropriately.
12377         (darwin_asm_output_aligned_decl_common): Same.
12378         (darwin_asm_output_aligned_decl_local): Same.
12379         * config/darwin-sections.def: Updated for ABI v1 and v2.
12380         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
12381         compiling Objective-C code for the NeXT runtime, default to using
12382         ABI version 0 for 32-bit, and version 2 for 64-bit.
12383
12384 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12385
12386         * common.opt (optimize_fast): New Variable.
12387         * opts.c (default_options_optimization): Use opts->x_optimize_fast
12388         instead of local variable ofast.
12389
12390 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
12391
12392         * doc/invoke.texi (fobjc-abi-version): Documented.
12393         (fobjc-nilcheck): Documented.
12394         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
12395         version.
12396
12397 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12398
12399         PR driver/47390
12400         * common.opt (export-dynamic): New Driver option.
12401         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
12402
12403 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12404
12405         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
12406
12407 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
12408             Jan Hubicka  <jh@suse.cz>
12409
12410         PR debug/47106
12411         PR debug/47402
12412         * cfgexpand.c (account_used_vars_for_block): Remove.
12413         (estimated_stack_frame_size): Use referenced vars.
12414         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
12415         that were referenced in the original function.  Test src_fn
12416         rather than cfun.  Drop redundant get_var_ann.
12417         (setup_one_parameter): Drop redundant get_var_ann.
12418         (declare_return_variable): Likewise.
12419         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
12420         (copy_arguments_for_versioning): Drop redundant get_var_ann.
12421         * ipa-inline.c (compute_inline_parameters): Do not compute
12422         disregard_inline_limits here.
12423         (compute_inlinable_for_current, pass_inlinable): New.
12424         (pass_inline_parameters): Require PROP_referenced_vars.
12425         * cgraphunit.c (cgraph_process_new_functions): Don't run
12426         compute_inline_parameters explicitly unless function is in SSA form.
12427         (cgraph_analyze_function): Set .disregard_inline_limits.
12428         * tree-sra.c (convert_callers): Compute inliner parameters
12429         only for functions already in SSA form.
12430
12431 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12432
12433         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
12434         -mlittle-endian-data.
12435
12436 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
12437
12438         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
12439         -mno-fpu, not -fpu and -no-fpu.
12440         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
12441         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
12442
12443 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
12444
12445         PR target/43653
12446         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
12447         input reload with PLUS RTX.
12448
12449 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12450
12451         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
12452         of InverseVar(MDMX).
12453
12454 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12455
12456         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
12457         --m4-340.
12458
12459 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12460
12461         * config/mn10300/mn10300.opt (mno-crt0): New.
12462
12463 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12464
12465         * config/m68k/uclinux.opt (static-libc): New Driver option.
12466
12467 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12468
12469         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
12470
12471 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
12472
12473         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
12474         %{muser-extend-enabled}.
12475
12476 2011-02-16  Richard Guenther  <rguenther@suse.de>
12477
12478         PR tree-optimization/47738
12479         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
12480         the TODO from tree_predictive_commoning.
12481
12482 2011-02-15  Jeff Law  <law@redhat.com>
12483
12484         Revert
12485         2011-01-25  Jeff Law  <law@redhat.com>
12486
12487         PR rtl-optimization/37273
12488         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12489         handle them like argument loads from stack slots.  Do not double
12490         count memory for memory constants and argument loads from stack slots.
12491
12492 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12493
12494         PR middle-end/47725
12495         * combine.c (cant_combine_insn_p): Revert the last change.
12496
12497 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
12498
12499         PR target/47755
12500         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
12501         mode for vector constants.  Remove code that checks for TImode.
12502
12503 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12504
12505         PR debug/47106
12506         PR debug/47402
12507         * cgraph.h (compute_inline_parameters): Return void.
12508         * ipa-inline.c (compute_inline_parameters): Adjust.
12509
12510 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12511
12512         PR debug/47106
12513         PR debug/47402
12514         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
12515         rather than decl.
12516         * cfgexpand.c (estimated_stack_frame_size): Likewise.
12517         * ipa-inline.c (compute_inline_parameters): Adjust.
12518
12519 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12520
12521         PR debug/47106
12522         PR debug/47402
12523         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
12524         Adjust all users.  Pass FN to...
12525         * tree-flow-inline.h (first_referenced_var): ... this.  Add
12526         fn argument.
12527         * ipa-struct-reorg.c: Adjust.
12528         * tree-dfa.c: Adjust.
12529         * tree-into-ssa.c: Adjust.
12530         * tree-sra.c: Adjust.
12531         * tree-ssa-alias.c: Adjust.
12532         * tree-ssa-live.c: Adjust.
12533         * tree-ssa.c: Adjust.
12534         * tree-ssanames.c: Adjust.
12535         * tree-tailcall.c: Adjust.
12536
12537 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
12538
12539         PR debug/47106
12540         PR debug/47402
12541         * tree-flow.h (referenced_var_lookup): Add fn parameter.
12542         Adjust all callers.
12543         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
12544         * tree-flow-inline.h: Adjust.
12545         * gimple-pretty-print.c: Adjust.
12546         * tree-into-ssa.c: Adjust.
12547         * tree-ssa.c: Adjust.
12548         * cfgexpand.c: Adjust.
12549
12550 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12551
12552         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
12553         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12554         (EXTRA_CONSTRAINT): Delete.
12555         * config/iq2000/constraints.md: New file.
12556         * config/iq2000/iq2000.md: Include it.
12557         (define_insn ""): Delete.
12558         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
12559         unsupported constraint letters from patterns.
12560         (call_value, call_value_internal1): Likewise.
12561         (call_value_multiple_internal1): Likewise.
12562
12563 2011-02-15  Nick Clifton  <nickc@redhat.com>
12564
12565         * config/mn10300/mn10300.c: Include tm-constrs.h.
12566         (struct liw_data): New data structure describing an LIW candidate
12567         instruction.
12568         (extract_bundle): Use struct liw_data.  Allow small integer
12569         operands for some instructions.
12570         (check_liw_constraints): Use struct liw_data.  Remove swapped
12571         parameter.  Add comments describing the checks.  Fix bug when
12572         assigning the source of liw1 to the source of liw2.
12573         (liw_candidate): Delete.  Code moved into extract_bundle.
12574         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
12575         before swapping.
12576         * config/mn10300/predicates.md (liw_operand): New predicate.
12577         Allows registers and small integer constants.
12578         * config/mn10300/constraints.md (O): New constraint.  Accetps
12579         integers in the range -8 to +7 inclusive.
12580         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
12581         for moving a small integer into a register.  Give this alternative
12582         LIW attributes.
12583         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
12584         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
12585         using the J,K,L and M constraints,
12586         (liw): Remove SI mode on second operands to allow for HI and QI
12587         mode values.
12588         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
12589         instruction.
12590
12591 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12592
12593         PR middle-end/47725
12594         * combine.c (cant_combine_insn_p): Check zero/sign extended
12595         hard registers.
12596
12597 2011-02-15  Richard Guenther  <rguenther@suse.de>
12598
12599         PR tree-optimization/47743
12600         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
12601         for a non-type-compatible VN lookup bail out.
12602
12603 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12604
12605         * config/fr30/constraints.md: New file.
12606         * config/fr30/fr30.md: Include it.
12607         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
12608         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12609         (EXTRA_CONSTRAINT): Delete.
12610
12611 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
12612
12613         * config/frv/constraints.md: New file.
12614         * config/frv/predicates.md: Include it.
12615         * config/frv/frv.c (reg_class_from_letter): Delete.
12616         (frv_option_override): Don't initialize it.
12617         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
12618         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
12619         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
12620         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12621         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
12622         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12623         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
12624         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
12625         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
12626         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
12627         (REG_CLASS_FROM_CONSTRAINT): Delete.
12628
12629 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
12630
12631         PR middle-end/47581
12632         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
12633         if frame size is 0 in a leaf function.
12634
12635 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12636
12637         PR pch/14940
12638         * config/alpha/host-osf.c: New file.
12639         * config/alpha/x-osf: New file.
12640         * config.host (alpha*-dec-osf*): Use it.
12641
12642 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12643
12644         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12645         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
12646         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
12647         (rx_mode_dependent_address_p): ...this. Make static. Change argument
12648         type to const_rtx.
12649         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12650
12651 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12652
12653         * config/stormy16/constraints.md: New file.
12654         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12655         Use satisfies_constraint_Q and satisfies_constraint_R.
12656         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12657         Delete.
12658         (xstormy16_legitiamte_address_p): Declare.
12659         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12660         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12661         (EXTRA_CONSTRAINT): Delete.
12662         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
12663         Un-staticize.
12664         (xstormy16_extra_constraint_p): Delete.
12665
12666 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
12667
12668         PR tree-optimization/46494
12669         * loop-unroll.c (split_edge_and_insert): Adjust comment.
12670         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12671         (pass_rtl_loop_done): Add TODO_verify_flow.
12672         * fwprop.c (pass_rtl_fwprop): Likewise.
12673         * modulo-sched.c (pass_sms): Likewise.
12674         * tree-ssa-dom.c (pass_dominator): Likewise.
12675         * tree-ssa-loop-ch.c (pass_ch): Likewise.
12676         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12677         (pass_tree_loop_done): Likewise.
12678         * tree-ssa-pre.c (execute_pre): Likewise.
12679         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12680         * tree-ssa-sink.c (pass_sink_code): Likewise.
12681         * tree-vrp.c (pass_vrp): Likewise.
12682
12683 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12684
12685         * config/v850/constraints.md: New file.
12686         * config/v850/v850.md: Include it.
12687         * config/v850/predicates.md (reg_or_0_operand): Use
12688         satisfies_constraint_G.
12689         (special_symbolref_operand): Use satisfies_constraint_K.
12690         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12691         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12692         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12693         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12694         (EXTRA_CONSTRAINT): Delete.
12695         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12696         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12697         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
12698
12699 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12700
12701         PR target/47696
12702         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12703         description.
12704
12705 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12706
12707         * config/mcore/constraints.md: New file.
12708         * config/mcore/mcore.md: Include it.
12709         * config/mcore/mcore.c (reg_class_from_letter): Delete.
12710         * config/mcore/mcore.h (reg_class_from_letter): Delete.
12711         (REG_CLASS_FROM_LETTER): Delete.
12712         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12713         insn_const_int_ok_for_constraint.
12714         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12715         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12716         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12717         (EXTRA_CONSTRAINT): Delete.
12718
12719 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12720
12721         PR ada/41929
12722         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12723         (IS_SIGHANDLER): Define.
12724         (sparc64_is_sighandler): New function, split off from
12725         sparc64_fallback_frame_state.
12726         (sparc_is_sighandler): New function, split off from
12727         sparc_fallback_frame_state.
12728         (sparc64_fallback_frame_state): Merge with ...
12729         (sparc_fallback_frame_state): ... this into ...
12730         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
12731         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
12732         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
12733         stack instead of hardcoded offsets.
12734
12735 2011-02-14  Andriy Gapon  <avg@freebsd.org>
12736
12737         PR target/45808
12738         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12739
12740 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12741
12742         * configure: Regenerate.
12743
12744 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
12745
12746         PR driver/45731
12747         * gcc.c (asm_options): Correct spec matching --target-help.
12748
12749 2011-02-12  Martin Jambor  <mjambor@suse.cz>
12750
12751         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12752         to gimple call error.
12753
12754 2011-02-12  Mike Stump  <mikestump@comcast.net>
12755
12756         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12757         comments in backslash regions.
12758
12759 2011-02-12  Mike Stump  <mikestump@comcast.net>
12760             Jakub Jelinek  <jakub@redhat.com>
12761             Iain Sandoe  <iains@gcc.gnu.org>
12762
12763         PR target/47324
12764         * dwarf2out.c (output_cfa_loc): When required, apply the
12765         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12766         (output_loc_sequence): Likewise.
12767         (output_loc_operands_raw): Likewise.
12768         (output_loc_sequence_raw): Likewise.
12769         (output_cfa_loc): Likewise.
12770         (output_loc_list): Suppress register number adjustment when
12771         calling output_loc_sequence()
12772         (output_die): Likewise.
12773
12774 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
12775
12776         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12777         Remove macros.
12778         * config/xtensa/xtensa.c (xtensa_register_move_cost,
12779         xtensa_memory_move_cost): New functions.
12780         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
12781
12782 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
12783
12784         PR lto/47225
12785         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
12786         in the current directory.
12787         * configure: Rebuilt.
12788
12789 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12790
12791         * config/darwin.c (darwin_override_options): Add a hunk missed
12792         from the commit of r168571.  Trim comment line lengths and
12793         correct indents of the preceding block.
12794
12795 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12796
12797         * gcc.c (driver_handle_option): Concatenate the argument to -F with
12798         the switch.
12799
12800 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12801
12802         * common.opt (nostartfiles): New Driver option.
12803
12804 2011-02-11  Xinliang David Li  <davidxl@google.com>
12805
12806         PR tree-optimization/47707
12807         * tree-chrec.c (convert_affine_scev): Keep type precision.
12808
12809 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
12810
12811         PR tree-optimization/47420
12812         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
12813
12814 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
12815
12816         PR rtl-optimization/47614
12817         * rtl.h (check_for_inc_dec): Declare.
12818         * dse.c (check_for_inc_dec): Externalize...
12819         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
12820         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
12821
12822 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12823
12824         PR driver/47678
12825         * gcc.c (main): Do not compile inputs if there were errors in
12826         option handling.
12827         * opts-common.c (read_cmdline_option): Check for wrong language
12828         after other error checks.
12829
12830 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
12831
12832         * cgraph.c: Fix comment typos.
12833         * cgraph.h: Likewise.
12834         * cgraphunit.c: Likewise.
12835         * ipa-cp.c: Likewise.
12836         * ipa-inline.c: Likewise.
12837         * ipa-prop.c: Likewise.
12838         * ipa-pure-const.c: Likewise.
12839         * ipa-ref.c: Likewise.
12840         * ipa-reference.c: Likewise.
12841
12842 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
12843
12844         PR debug/47684
12845         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
12846
12847 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12848
12849         PR testsuite/47400
12850         * doc/sourcebuild.texi (Require Support): Document
12851         dg-require-ascii-locale.
12852
12853 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
12854
12855         * doc/lto.texi (Write summary): Fix missing parentheses.
12856
12857 2011-02-10  DJ Delorie  <dj@redhat.com>
12858
12859         * config/m32c/m32c.c (m32c_option_override): Disable
12860         -fcombine-stack-adjustments until flag value tracking and compare
12861         optimization can be rewritten.
12862
12863 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
12864
12865         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
12866         PROCESSOR_POWER7.
12867         (PROCESSOR_DEFAULT64): Likewise.
12868
12869 2011-02-10  Richard Henderson  <rth@redhat.com>
12870
12871         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
12872         change from 2011-02-03.
12873         * config/rx/rx.c (flags_from_code): Likewise.
12874         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
12875         is valid, n/pz otherwise.
12876         (rx_select_cc_mode): Return CCmode if Y is not zero.
12877
12878 2011-02-10  Richard Guenther  <rguenther@suse.de>
12879
12880         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
12881
12882 2011-02-10  Richard Guenther  <rguenther@suse.de>
12883
12884         PR tree-optimization/47677
12885         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12886
12887 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
12888
12889         PR target/47665
12890         * combine.c (make_compound_operation): Only change shifts into
12891         multiplication for SCALAR_INT_MODE_P.
12892
12893 2011-02-10  Jie Zhang  <jie@codesourcery.com>
12894
12895         PR testsuite/47622
12896         Revert
12897         2011-02-05  Jie Zhang  <jie@codesourcery.com>
12898         PR debug/42631
12899         * web.c (entry_register): Don't clobber the number of the
12900         first uninitialized reference in used[].
12901
12902 2011-02-09  Richard Guenther  <rguenther@suse.de>
12903
12904         PR tree-optimization/47664
12905         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12906         all edges again.
12907
12908 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
12909
12910         PR target/46481
12911         PR target/47032
12912         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12913         PROCESSOR_POWER7.
12914         (PROCESSOR_DEFAULT64): Same.
12915         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12916
12917 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12918
12919         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12920
12921 2011-02-09  Martin Jambor  <mjambor@suse.cz>
12922
12923         PR middle-end/45505
12924         * tree-sra.c (struct access): New flags grp_scalar_read and
12925         grp_scalar_write.  Changed description of assignment read and write
12926         flags.
12927         (dump_access): Dump new flags, reorder all of them.
12928         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12929         to detect multiple scalar reads.
12930         (analyze_access_subtree): Use the new scalar read write flags instead
12931         of the old flags.  Adjusted comments.
12932
12933 2011-02-08  DJ Delorie  <dj@redhat.com>
12934
12935         PR target/47548
12936         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12937         patterns.
12938
12939 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12940
12941         * config/m68k/uclinux.opt: New.
12942         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12943
12944 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12945
12946         * config/cris/elf.opt (sim): New Driver option.
12947
12948 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12949
12950         * config/xtensa/elf.opt: New.
12951         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12952
12953 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12954
12955         * config/vax/elf.opt: New.
12956         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12957
12958 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12959
12960         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12961
12962 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12963
12964         * config/gnu-user.opt: New.
12965         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12966         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12967         *-*-uclinux*): Use gnu-user.opt.
12968
12969 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
12970
12971         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12972         * config/i386/gnu.h (CPP_SPEC): Likewise.
12973
12974 2011-02-08  Ian Lance Taylor  <iant@google.com>
12975
12976         * common.opt (fcx-limited-range): Add SetByCombined flag.
12977         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12978         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12979         (fassociative-math, freciprocal-math): Likewise.
12980         (funsafe-math-optimizations): Likewise.
12981         * opth-gen.awk: Handle SetByCombined.
12982         * optc-gen.awk: Likewise.
12983         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
12984         (set_unsafe_math_optimizations_flags): Likewise.
12985         * doc/options.texi (Option properties): Document SetByCombined.
12986
12987 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12988
12989         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12990         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12991         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12992         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12993         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12994
12995 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
12996
12997         PR tree-optimization/46834
12998         PR tree-optimization/46994
12999         PR tree-optimization/46995
13000         * graphite-sese-to-poly.c (used_outside_reduction): New.
13001         (detect_commutative_reduction): Call used_outside_reduction.
13002         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
13003         translate_scalar_reduction_to_array only when at least one
13004         loop-phi/close-phi tuple has been detected.
13005
13006 2011-02-08  Richard Guenther  <rguenther@suse.de>
13007
13008         PR middle-end/47639
13009         * tree-vect-generic.c (expand_vector_operations_1): Update
13010         stmts here ...
13011         (expand_vector_operations): ... not here.  Cleanup EH info
13012         and the CFG if required.
13013
13014 2011-02-08  Richard Guenther  <rguenther@suse.de>
13015
13016         PR tree-optimization/47641
13017         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
13018         require type compatibility.
13019
13020 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13021
13022         * gimple-low.c (lower_function_body): Don't remove the location of
13023         the return statement here.
13024         (lower_gimple_return): Do it here instead but only if the return
13025         statement is actually used twice.
13026
13027 2011-02-08  Richard Guenther  <rguenther@suse.de>
13028
13029         PR tree-optimization/47632
13030         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13031         unused up_to_stmt parameter, return whether cfg-cleanup is
13032         necessary, remove EH info properly.
13033         (forward_propagate_into_gimple_cond): Adjust caller.
13034         (forward_propagate_into_cond): Likewise.
13035         (forward_propagate_comparison): Likewise.
13036         (tree_ssa_forward_propagate_single_use_vars): Make
13037         forward_propagate_comparison case similar to the two others.
13038
13039 2011-02-08  Nick Clifton  <nickc@redhat.com>
13040
13041         * config/mn10300/mn10300.opt (mliw): New command line option.
13042         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13043         (liw_bundling): New automaton.
13044         (liw): New attribute.
13045         (liw_op): New attribute.
13046         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13047         (movsi_internal): Add LIW attributes.
13048         (andsi3): Likewise.
13049         (iorsi3): Likewise.
13050         (xorsi3): Likewise.
13051         (addsi3): Separate register and immediate alternatives.
13052         Add LIW attributes.
13053         (subsi3): Likewise.
13054         (cmpsi): Likewise.
13055         (aslsi3): Likewise.
13056         (lshrsi3): Likewise.
13057         (ashrsi3): Likewise.
13058         (liw): New pattern.
13059         * config/mn10300/mn10300.c (liw_op_names): New
13060         (mn10300_print_operand): Handle 'W' operand descriptor.
13061         (extract_bundle): New function.
13062         (check_liw_constraints): New function.
13063         (liw_candidate): New function.
13064         (mn10300_bundle_liw): New function.
13065         (mn10300_reorg): New function.
13066         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13067         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13068         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13069         __LIW__ or __NO_LIW__.
13070         * doc/invoke.texi: Describe the -mliw command line option.
13071
13072 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13073
13074         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13075         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13076         pthread_mutex_unlock): Remove.
13077         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13078         * config/pa/t-pa64: Likewise.
13079         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13080         shared libc if not linking against libpthread.
13081         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13082
13083 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
13084
13085         PR target/47558
13086         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13087         on 10.6 and later to ensure that we always use the unwinder from
13088         the system.  Only add -no_compact_unwind when tarteting darwin
13089         10.6 or later.
13090
13091 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
13092
13093         PR target/46997
13094         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13095         (vec_interleave_lowv2sf): Ditto.
13096         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13097         (vec_extract_oddv2sf): Ditto.
13098
13099 2011-02-07  Mike Stump  <mikestump@comcast.net>
13100
13101         PR target/42333
13102         Add __ieee_divdc3 entry point.
13103         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13104         entry point.
13105         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13106         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13107         * config/darwin.c (darwin_rename_builtins): Add.
13108         * config/darwin-protos.h (darwin_rename_builtins): Add.
13109
13110 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
13111
13112         PR target/47636
13113         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13114         for the condition.
13115
13116 2011-02-07  Mike Stump  <mikestump@comcast.net>
13117
13118         * config/darwin.opt (mmacosx-version-min): Update default OS version.
13119
13120 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
13121
13122         PR target/47534
13123         * config/avr/libgcc.S (exit): Move .endfunc
13124
13125 2011-02-07  Richard Guenther  <rguenther@suse.de>
13126
13127         PR tree-optimization/47615
13128         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13129         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13130         (run_scc_vn): Initialize it.
13131         (visit_reference_op_load): Use it.
13132         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13133
13134 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13135
13136         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13137         DImode trapping arithmetic libfuncs.
13138
13139 2011-02-07  Richard Guenther  <rguenther@suse.de>
13140
13141         PR tree-optimization/47621
13142         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13143         two duplicates ...
13144         (execute_update_addresses_taken): ... here.  Make it more
13145         conservative in what we accept.
13146
13147 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13148
13149         * config/sparc/freebsd.h (ASM_SPEC): Define.
13150         * config/sparc/vxworks.h (ASM_SPEC): Define.
13151
13152 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
13153
13154         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13155
13156 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
13157
13158         * doc/invoke.texi: Remove reference to compiler internals from
13159         user documentation.
13160
13161         * reg-notes.def: Remove REG_VALUE_PROFILE.
13162         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13163
13164 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
13165
13166         PR middle-end/47610
13167         * varasm.c (default_section_type_flags): If decl is NULL,
13168         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
13169
13170 2011-02-05  Jie Zhang  <jie@codesourcery.com>
13171
13172         PR debug/42631
13173         * web.c (entry_register): Don't clobber the number of the
13174         first uninitialized reference in used[].
13175
13176 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
13177
13178         PR tree-optimization/46194
13179         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13180         (build_classic_dist_vector_1): Do not represent classic distance
13181         vectors when the access functions are variating in different loops.
13182
13183 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13184
13185         * config/mips/iris6.opt: New.
13186         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13187
13188 2011-02-04  Richard Henderson  <rth@redhat.com>
13189             Steve Ellcey  <sje@cup.hp.com>
13190
13191         PR target/46997
13192         * config/ia64/predicates.md (mux1_brcst_element): New.
13193         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13194         * config/ia64/ia64.c (ia64_unpack_assemble): New.
13195         (ia64_unpack_sign): New.
13196         (ia64_expand_unpack): Rewrite using new routines.
13197         (ia64_expand_widen_sum): Ditto.
13198         (ia64_expand_dot_prod_v8qi): Ditto.
13199         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13200         routines, add endian check.
13201         (pmpy2_even): Rename from pmpy2_r, add endian check.
13202         (pmpy2_odd): Rename from pmpy2_l, add endian check.
13203         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13204         (vec_widen_smult_hi_v4hi): Ditto.
13205         (vec_widen_umult_lo_v4hi): Ditto.
13206         (vec_widen_umult_hi_v4hi): Ditto.
13207         (mulv2si3): Change endian checks.
13208         (sdot_prodv4hi): Rewrite with new calls.
13209         (udot_prodv4hi): New.
13210         (vec_pack_ssat_v4hi): Add endian check.
13211         (vec_pack_usat_v4hi): Ditto.
13212         (vec_pack_ssat_v2si): Ditto.
13213         (max1_even): Rename from max1_r, add endian check.
13214         (max1_odd): Rename from max1_l, add endian check.
13215         (*mux1_rev): Format change.
13216         (*mux1_mix): Ditto.
13217         (*mux1_shuf): Ditto.
13218         (*mux1_alt): Ditto.
13219         (*mux1_brcst_v8qi): Use new predicate.
13220         (vec_extract_evenv8qi): Remove endian check.
13221         (vec_extract_oddv8qi): Ditto.
13222         (vec_interleave_lowv4hi): Format change.
13223         (vec_interleave_highv4hi): Ditto.
13224         (mix2_even): Rename from mix2_r, add endian check.
13225         (mix2_odd): Rename from mux2_l, add endian check.
13226         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13227         (vec_extract_evenodd_helper): Format change.
13228         (vec_extract_evenv4hi): Remove endian check.
13229         (vec_extract_oddv4hi): Remove endian check.
13230         (vec_interleave_lowv2si): Format change.
13231         (vec_interleave_highv2si): Format change.
13232         (vec_initv2si): Remove endian check.
13233         (vecinit_v2si): Add endian check.
13234         (reduc_splus_v2sf): Add endian check.
13235         (reduc_smax_v2sf): Ditto.
13236         (reduc_smin_v2sf): Ditto.
13237         (vec_initv2sf): Remove endian check.
13238         (fpack): Add endian check.
13239         (fswap): Add endian check.
13240         (vec_interleave_highv2sf): Add endian check.
13241         (vec_interleave_lowv2sf): Add endian check.
13242         (fmix_lr): Add endian check.
13243         (vec_setv2sf): Format change.
13244         (*vec_extractv2sf_0_be): Use shift to extract operand.
13245         (*vec_extractv2sf_1_be): New.
13246         (vec_pack_trunc_v4hi): Add endian check.
13247         (vec_pack_trunc_v2si): Format change.
13248
13249 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
13250
13251         PR inline-asm/23200
13252         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
13253         do bb, locus and block comparison and disallow loads if it is not set.
13254         (stmt_is_replaceable_p): New function.
13255         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13256         callers.
13257         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13258         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13259         SSA_NAME_DEF_STMT.
13260         * tree-flow.h (stmt_is_replaceable_p): New prototype.
13261
13262 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13263
13264         * config/rs6000/xilinx.opt: New.
13265         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
13266
13267 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
13268
13269         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
13270
13271 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
13272
13273         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
13274         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13275         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
13276         secondary_reload_info, xtensa_secondary_reload): Remove.
13277         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
13278         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13279         (xtensa_preferred_reload_class): Make static. Change return and
13280         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
13281         Use CONST_DOUBLE_P predicate.
13282         (xtensa_preferred_output_reload_class): New function.
13283         (xtensa_secondary_reload): Make static.
13284
13285 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
13286
13287         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
13288         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
13289         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
13290
13291 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13292
13293         PR middle-end/31490
13294         * output.h (SECTION_RELRO): Define.
13295         (SECTION_MACH_DEP): Adjust.
13296         (get_variable_section): New prototype.
13297         * varpool.c (varpool_finalize_named_section_flags): New function.
13298         (varpool_assemble_pending_decls): Call it.
13299         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
13300         * cgraphunit.c (cgraph_output_in_order): Call
13301         varpool_finalize_named_section_flags.
13302         * varasm.c (get_section): Allow section flags conflicts between
13303         relro and read-only sections if the section hasn't been declared yet.
13304         Set SECTION_OVERRIDE after diagnosing section type conflict.
13305         (get_variable_section): No longer static.
13306         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
13307         readonly sections that need relocations.
13308         (decl_readonly_section_1): New function.
13309         (decl_readonly_section): Use it.
13310
13311         Revert:
13312         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
13313                     Steve Ellcey  <sje@cup.hp.com>
13314
13315         PR middle-end/31490
13316         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
13317         if section attribute used.
13318
13319 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13320
13321         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
13322         * config/darwin.c (SECTION_NO_ANCHOR): Define.
13323         (darwin_init_sections): Remove assertion.
13324
13325 2011-02-03  Nick Clifton  <nickc@redhat.com>
13326
13327         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
13328         lt and ge.
13329         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
13330         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
13331         instead of "n" and "pz".
13332         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
13333         CC_FLAG_S.
13334
13335 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
13336
13337         PR target/47312
13338         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
13339         fma, expand FMA_EXPR as fma{,f,l} call.
13340
13341         PR lto/47274
13342         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
13343         copy them into a unsigned char variable and pass address of it to
13344         lto_output_data_stream.
13345
13346         PR target/47564
13347         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
13348         around backend_init_target and lang_dependent_init_target calls.
13349         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
13350         (verify_cgraph_node): Don't call set_cfun here.  Use
13351         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
13352         Set error_found for incorrectly represented calls to thunks.
13353
13354 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13355
13356         PR debug/43092
13357         PR rtl-optimization/43494
13358         * rtl.h (for_each_inc_dec_fn): New type.
13359         (for_each_inc_dec): Declare.
13360         * rtlanal.c (struct for_each_inc_dec_ops): New type.
13361         (for_each_inc_dec_find_inc_dec): New fn.
13362         (for_each_inc_dec_find_mem): New fn.
13363         (for_each_inc_dec): New fn.
13364         * dse.c (struct insn_size): Remove.
13365         (replace_inc_dec, replace_inc_dec_mem): Remove.
13366         (emit_inc_dec_insn_before): New fn.
13367         (check_for_inc_dec): Use it, along with for_each_inc_dec.
13368         (canon_address): Pass mem modes to cselib_lookup.
13369         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
13370         (cselib_lookup_from_insn): Likewise.
13371         (cselib_subst_to_values): Likewise.
13372         * cselib.c (find_slot_memmode): New var.
13373         (cselib_find_slot): New fn.  Use it instead of
13374         htab_find_slot_with_hash everywhere.
13375         (entry_and_rtx_equal_p): Use find_slot_memmode.
13376         (autoinc_split): New fn.
13377         (rtx_equal_for_cselib_p): Rename and implement in terms of...
13378         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
13379         Deal with autoinc.  Special-case recursion into MEMs.
13380         (cselib_hash_rtx): Likewise.
13381         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
13382         address and MEM modes.
13383         (cselib_subst_to_values): Add memmode, pass it on.
13384         Deal with autoinc.
13385         (cselib_lookup): Add memmode argument, pass it on.
13386         (cselib_lookup_from_insn): Add memmode.
13387         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
13388         (struct cselib_record_autoinc_data): New.
13389         (cselib_record_autoinc_cb): New fn.
13390         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
13391         mode to cselib_lookup.  Reset autoinced REGs here instead of...
13392         (cselib_process_insn): ... here.
13393         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
13394         to cselib_lookup.
13395         (add_uses): Likewise, also to cselib_subst_to_values.
13396         (add_stores): Likewise.
13397         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
13398         cselib_subst_to_values.
13399         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
13400         * gcse.c (do_local_cprop): Adjusted.
13401         * postreload.c (reload_cse_simplify_set): Adjusted.
13402         (reload_cse_simplify_operands): Adjusted.
13403         * sel-sched-dump (debug_mem_addr_value): Pass mode.
13404
13405 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
13406
13407         PR tree-optimization/45122
13408         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
13409         unsafe assumptions when there's more than one loop exit.
13410
13411 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13412
13413         PR target/47272
13414         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13415         Document using vector double with the load/store builtins, and
13416         that the load/store builtins always use Altivec instructions.
13417
13418         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
13419         to use altivec memory instructions, even on VSX.
13420         (vector_altivec_store_<mode>): Ditto.
13421
13422         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
13423         function.
13424
13425         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13426         V2DF, V2DI support to load/store overloaded builtins.
13427
13428         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
13429         altivec load/store builtins for V2DF/V2DI types.
13430
13431         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13432         set avoid indexed addresses on power6 if -maltivec.
13433         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
13434         vector_altivec_load/vector_altivec_store builtins.
13435         (altivec_expand_st_builtin): Ditto.
13436         (altivec_expand_builtin): Add VSX memory builtins.
13437         (rs6000_init_builtins): Add V2DI types to internal types.
13438         (altivec_init_builtins): Add support for V2DF/V2DI altivec
13439         load/store builtins.
13440         (rs6000_address_for_altivec): Insure memory address is appropriate
13441         for Altivec.
13442
13443         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
13444         vec_vsx_ld and vec_vsx_st.
13445         (vsx_store_<mode>): Ditto.
13446
13447         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
13448         variables to hold long long types for VSX vector memory builtins.
13449         (RS6000_BTI_unsigned_long_long): Ditto.
13450         (long_long_integer_type_internal_node): Ditti.
13451         (long_long_unsigned_type_internal_node): Ditti.
13452
13453         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
13454         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
13455         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
13456
13457         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
13458         short cuts.
13459         (vec_vsx_st): Ditto.
13460
13461 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13462
13463         * config/pa/pa-hpux10.opt: New.
13464         * config/hpux11.opt (pthread): New Driver option.
13465         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
13466         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
13467
13468 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13469
13470         * config/ia64/vms.opt: New.
13471         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
13472
13473 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
13474
13475         PR target/47580
13476         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
13477         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
13478         generator functions.
13479         (vsx_floatuns<VSi><mode>2): Ditto.
13480         (vsx_fix_trunc<mode><VSi>2): Ditto.
13481         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
13482
13483 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
13484
13485         * config/i386/djgpp.opt (posix): New Driver option.
13486
13487 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
13488
13489         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
13490         Move to the unsupported targets list.
13491
13492 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
13493
13494         PR rtl-optimization/47525
13495         * df-scan.c: Update copyright years.
13496         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
13497         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
13498
13499 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13500
13501         * config/i386/sysv4.h (TARGET_VERSION): Remove.
13502         (SUBTARGET_RETURN_IN_MEMORY): Remove.
13503         (ASM_OUTPUT_ASCII): Remove.
13504         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
13505
13506 2011-02-02  Jeff Law  <law@redhat.com>
13507
13508         PR middle-end/47543
13509         * reload.c (find_reloads_address): Handle reg+d address where both
13510         components are invalid by reloading the entire address.
13511
13512 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13513             Richard Guenther  <rguenther@suse.de>
13514
13515         PR tree-optimization/40979
13516         PR bootstrap/47044
13517         * passes.c (init_optimization_passes): After LIM call copy_prop
13518         and DCE to clean up.
13519         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
13520
13521 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
13522
13523         PR tree-optimization/47576
13524         PR tree-optimization/47555
13525         * doc/invoke.texi (scev-max-expr-complexity): Documented.
13526         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13527         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
13528         * tree-scalar-evolution.c (follow_ssa_edge): Use
13529         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
13530
13531 2011-02-02  Richard Guenther  <rguenther@suse.de>
13532
13533         PR tree-optimization/47566
13534         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
13535
13536 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13537
13538         PR debug/47106
13539         PR debug/47402
13540         * tree-inline.c (declare_return_variable): Remove unused caller
13541         variable.
13542
13543         PR debug/47106
13544         PR debug/47402
13545         * tree-flow-inline.h (clear_is_used, is_used_p): New.
13546         * cfgexpand.c (account_used_vars_for_block): Use them.
13547         * tree-nrv.c (tree_nrv): Likewise.
13548         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
13549         (dump_scope_block): Likewise.
13550         (remove_unused_locals): Likewise.
13551
13552         PR debug/47106
13553         PR debug/47402
13554         * tree-inline.c (declare_return_variable): Add result decl to
13555         local decls only once.
13556         * gimple-low.c (record_vars_into): Mark newly-created variables
13557         as referenced.
13558
13559 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
13560
13561         PR debug/47498
13562         PR debug/47501
13563         PR debug/45136
13564         PR debug/45130
13565         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13566         debug insns.
13567         (no_real_insns_p, schedule_block, set_priorities): Drop special
13568         treatment of boundary debug insns.
13569         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13570         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
13571         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13572         (BOUNDARY_DEBUG_INSN_P): Likewise.
13573         (SCHEDULE_DEBUG_INSN_P): Likewise.
13574         * sched-rgn.c (init_ready_list): Drop special treatment of
13575         boundary debug insns.
13576         * final.c (rest_of_clean_state): Clear notes' BB.
13577
13578 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13579
13580         * config/openbsd.opt (assert=): New Driver option.
13581
13582 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13583
13584         * config/i386/nto.opt: New.
13585         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
13586
13587 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13588
13589         * config/i386/netware.opt: New.
13590         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
13591
13592 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13593
13594         * config/interix.opt (posix): New Driver option.
13595
13596 2011-02-01  DJ Delorie  <dj@redhat.com>
13597
13598         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
13599
13600         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
13601         class for A0/A1.
13602
13603 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
13604
13605         PR tree-optimization/47561
13606         * toplev.c (process_options): Print the Graphite flags.  Add
13607         flag_loop_flatten to the list of options requiring Graphite.
13608
13609 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13610
13611         * config/i386/cygming.opt (posix): New Driver option.
13612
13613 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13614
13615         * config/arm/vxworks.opt: New.
13616         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
13617
13618 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
13619
13620         * config/alpha/elf.opt: New.
13621         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
13622         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
13623
13624 2011-02-01  Richard Guenther  <rguenther@suse.de>
13625
13626         PR tree-optimization/47559
13627         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
13628         store-motion on references that can throw.
13629
13630 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
13631
13632         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
13633         * tree-pass.h (TDF_CSELIB): New macro.
13634         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
13635         cselib_lookup): Check for it rather than for TDF_DETAILS.
13636
13637 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
13638
13639         PR driver/47547
13640         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
13641         is HOST_BIT_BUCKET.
13642
13643         * opts.c (finish_options): Don't add x_aux_base_name if it is
13644         HOST_BIT_BUCKET.
13645
13646 2011-02-01  Richard Guenther  <rguenther@suse.de>
13647
13648         PR tree-optimization/47555
13649         Revert
13650         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
13651
13652         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13653
13654 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
13655
13656         PR gcc/46692
13657         * config/lm32/t-lm32: Add multilib for all CPU options.
13658
13659 2011-02-01  Richard Guenther  <rguenther@suse.de>
13660
13661         PR tree-optimization/47541
13662         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13663         sure to have a field at offset zero.
13664
13665 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13666
13667         * config/arc/arc.opt (EB, EL): New Driver options.
13668
13669 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13670
13671         * config/alpha/osf5.opt: New.
13672         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13673
13674 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13675
13676         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13677
13678 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
13679
13680         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13681         -floop-interchange.
13682         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13683         is an alias of -floop-interchange and that it requires the
13684         Graphite infrastructure.
13685         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13686         flag_loop_interchange based on the value of flag_tree_loop_linear.
13687
13688 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
13689             Richard Guenther  <rguenther@suse.de>
13690
13691         PR tree-optimization/47538
13692         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13693         type instead of r1type, except for comparisons.  For right
13694         shifts and comparisons punt if there are mismatches in
13695         sizetype vs. non-sizetype types.
13696
13697 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13698
13699         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13700         avx_runtime.
13701
13702 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13703
13704         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13705         version number.
13706         * configure: Regenerate.
13707
13708 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13709
13710         * configure.ac (gcc_cv_ld_static_option): Define.
13711         (gcc_cv_ld_dynamic_option): Define.
13712         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13713         instead.
13714         (HAVE_LD_STATIC_DYNAMIC): Update message.
13715         (LD_STATIC_OPTION): Define.
13716         (LD_DYNAMIC_OPTION): Define.
13717         * configure: Regenerate.
13718         * config.in: Regenerate.
13719         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13720         HAVE_LD_STATIC_DYNAMIC]: Use them.
13721
13722 2011-01-31  Nick Clifton  <nickc@redhat.com>
13723
13724         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13725         registers inside interrupt handlers if the handler is not a leaf
13726         function.
13727
13728 2011-01-31  Nick Clifton  <nickc@redhat.com>
13729
13730         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13731         reg_renumber returning an INVALID_REGNUM.
13732
13733 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13734
13735         PR libgcj/44341
13736         * doc/install.texi: Document host options discarded when cross
13737         configuring target libraries.
13738
13739 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13740
13741         Reverted:
13742         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
13743         PR debug/45136
13744         PR debug/45130
13745         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13746         debug insns.
13747         (no_real_insns_p, schedule_block, set_priorities): Drop special
13748         treatment of boundary debug insns.
13749         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13750         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13751         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13752         (BOUNDARY_DEBUG_INSN_P): Likewise.
13753         (SCHEDULE_DEBUG_INSN_P): Likewise.
13754         * sched-rgn.c (init_ready_list): Drop special treatment of
13755         boundary debug insns.
13756         * final.c (rest_of_clean-state): Clear notes' BB.
13757
13758 2011-01-31  Alan Modra  <amodra@gmail.com>
13759
13760         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13761         toc relative expressions as we do in print_operand_address.
13762
13763 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
13764
13765         * doc/extend.texi: Follow spelling conventions.
13766         * doc/invoke.texi: Fix a typo.
13767
13768 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
13769
13770         * config/hpux11.opt: New.
13771         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
13772         ia64*-*-hpux*): Use hpux11.opt.
13773
13774 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
13775
13776         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
13777         to tmake_file.
13778
13779 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13780
13781         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
13782         support sites.
13783
13784 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13785
13786         * doc/install.texi (Binaries): Remove outdated reference for
13787         Motorola 68HC11/68HC12 downloads.
13788
13789 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13790
13791         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
13792         Drepper's paper.
13793
13794 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
13795
13796         PR bootstrap/47147
13797         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
13798         used by NetBSD.
13799
13800 2011-01-28  Ahmad Sharif  <asharif@google.com>
13801
13802         * value-prof.c (check_counter): Corrected error message.
13803
13804 2011-01-29  Jie Zhang  <jie@codesourcery.com>
13805
13806         * config/arm/arm.c (arm_legitimize_reload_address): New.
13807         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13808         arm_legitimize_reload_address.
13809         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
13810
13811 2011-01-28  Ian Lance Taylor  <iant@google.com>
13812
13813         * godump.c (go_define): Ignore macros whose definitions include
13814         two adjacent operands.
13815
13816 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
13817
13818         PR target/42894
13819         * varasm.c (force_const_mem): Store copy of x in desc->constant
13820         instead of x itself.
13821         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
13822         itself into REG_EQUAL note.
13823
13824 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
13825
13826         * config/freebsd.opt (posix, rdynamic): New Driver options.
13827
13828 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13829
13830         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
13831         -Bstatic/-Bdynamic.
13832         * configure: Regenerate.
13833
13834 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
13835
13836         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
13837         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
13838
13839 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
13840
13841         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
13842         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
13843         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13844         (s390_preferred_reload_class): Make static. Change return and
13845         'rclass' argument type to reg_class_t.
13846
13847 2011-01-27  Jan Hubicka  <jh@suse.cz>
13848
13849         PR middle-end/46949
13850         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
13851         (process_function_and_variable_attributes): Check defined weakrefs.
13852
13853 2011-01-27  Martin Jambor  <mjambor@suse.cz>
13854
13855         PR tree-optimization/47228
13856         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
13857         build_ref_for_offset.
13858
13859 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13860
13861         * config/spu/spu-elf.h (ASM_SPEC): Remove.
13862
13863 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
13864
13865         PR rtl-optimization/46856
13866         * postreload.c (reload_combine_recognize_const_pattern): Do not
13867         separate cc0 setter and user on cc0 targets.
13868
13869 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
13870
13871         PR c/43082
13872         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
13873         passed a VOID_TYPE expression, immediately emit an error and
13874         return error_mark_node.
13875
13876 2011-01-26  Jeff Law  <law@redhat.com>
13877
13878         PR rtl-optimization/47464
13879         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
13880         rather than may_trap_p as needed.
13881
13882 2011-01-26  DJ Delorie  <dj@redhat.com>
13883
13884         PR rtl-optimization/46878
13885         * combine.c (insn_a_feeds_b): Check for the implicit cc0
13886         setter/user dependency as well.
13887
13888 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13889
13890         PR rtl-optimization/44469
13891         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13892         after removing trivially dead basic blocks.
13893
13894 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13895
13896         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13897         * config/frv/frv.h (LINK_SPEC): Likewise.
13898         * config/i386/netware.h (LINK_SPEC): Likewise.
13899         * config/m68k/linux.h (ASM_SPEC): Likewise.
13900         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13901         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13902         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13903         * config/sparc/linux.h (ASM_SPEC): Likewise.
13904         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13905         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13906
13907 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13908
13909         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13910         * config/frv/frv.h (ASM_SPEC): Likewise.
13911         * config/m68k/linux.h (ASM_SPEC): Likewise.
13912         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13913         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13914         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13915         * config/sparc/linux.h (ASM_SPEC): Likewise.
13916         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13917         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13918
13919 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13920
13921         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13922         * config/frv/frv.h (LINK_SPEC): Likewise.
13923         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13924
13925 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13926
13927         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13928         * config/frv/frv.h (ASM_SPEC): Likewise.
13929         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13930         * config/m68k/linux.h (ASM_SPEC): Likewise.
13931         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13932         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13933         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13934         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13935         * config/sparc/linux.h (ASM_SPEC): Likewise.
13936         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13937         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13938         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13939
13940 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
13941
13942         PR target/46997
13943         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13944         (*mux2): Ditto.
13945         (vec_extract_evenodd_help): Ditto.
13946         (vec_extract_evenv4hi): Ditto.
13947         (vec_extract_oddv4hi): Ditto.
13948         (vec_interleave_lowv2si): Ditto.
13949         (vec_interleave_highv2si): Ditto.
13950         (vec_extract_evenv2si): Ditto.
13951         (vec_extract_oddv2si: Ditto.
13952         (vec_pack_trunc_v2si): Ditto.
13953
13954 2011-01-22  Jan Hubicka  <jh@suse.cz>
13955
13956         PR target/47237
13957         * cgraph.h (cgraph_local_info): New field can_change_signature.
13958         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13959         signature can change.
13960         (ipcp_estimate_growth): Call sequence simplify only if calle signature
13961         can change.
13962         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13963         (cgraph_function_versioning): We can not change signature of functions
13964         that don't allow that.
13965         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13966         (lto_input_node): Likewise.
13967         * ipa-inline.c (compute_inline_parameters): Compute
13968         local.can_change_signature.
13969         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
13970         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13971         functions that can not change signature.
13972         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
13973         init_cumulative_args): Do not use local calling conventions
13974         for functions that can not change signature.
13975
13976 2011-01-22  Jan Hubicka  <jh@suse.cz>
13977
13978         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13979
13980 2011-01-26  Richard Guenther  <rguenther@suse.de>
13981
13982         PR tree-optimization/47190
13983         * cgraphunit.c (process_common_attributes): New function.
13984         (process_function_and_variable_attributes): Use it.
13985
13986 2011-01-26  Richard Guenther  <rguenther@suse.de>
13987
13988         PR lto/47423
13989         * cgraphbuild.c (record_eh_tables): Record reference to personality
13990         function.
13991
13992 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
13993
13994         PR debug/45454
13995         * sel-sched.c (moveup_expr): Don't let debug insns prevent
13996         non-debug insns from moving up.
13997
13998 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13999
14000         PR target/40125
14001         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
14002         t-dlldir{,-x} fragment for build and add it to tmake_file.
14003         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14004         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
14005         * config/i386/t-dlldir: New file.
14006         (SHLIB_DLLDIR): Define.
14007         * config/i386/t-dlldir-x: New file.
14008         (SHLIB_DLLDIR): Define.
14009         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
14010         (SHLIB_INSTALL): Use it.
14011
14012 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
14013
14014         PR target/47246
14015         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
14016         lower bound of the allowed Thumb-2 coprocessor load/store
14017         index range to -256. Add explaining comment.
14018
14019 2011-01-25  Ian Lance Taylor  <iant@google.com>
14020
14021         * godump.c (go_define): Improve lexing of macro expansion to only
14022         accept expressions which match Go spec.
14023
14024 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
14025
14026         PR c++/43601
14027         * tree.c (handle_dll_attribute): Handle it.
14028         * doc/extend.texi (@item dllexport): Mention it.
14029         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14030
14031 2011-01-25  Ian Lance Taylor  <iant@google.com>
14032
14033         PR tree-optimization/26854
14034         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14035         (decl_jump_unsafe): Move higher in file, with no other change.
14036         (bind): Set has_jump_unsafe_decl if appropriate.
14037         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14038         (check_earlier_gotos): Likewise.
14039         (c_check_switch_jump_warnings): Likewise.
14040
14041 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
14042
14043         * doc/invoke.texi (Warning Options): Add missing hyphen.
14044         (-fprofile-dir): Minor grammatical fixes.
14045         (-fbranch-probabilities): Likewise.
14046
14047 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
14048
14049         PR debug/45136
14050         PR debug/45130
14051         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14052         debug insns.
14053         (no_real_insns_p, schedule_block, set_priorities): Drop special
14054         treatment of boundary debug insns.
14055         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
14056         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14057         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14058         (BOUNDARY_DEBUG_INSN_P): Likewise.
14059         (SCHEDULE_DEBUG_INSN_P): Likewise.
14060         * sched-rgn.c (init_ready_list): Drop special treatment of
14061         boundary debug insns.
14062         * final.c (rest_of_clean-state): Clear notes' BB.
14063
14064 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14065
14066         * Makefile.in (LAMBDA_H): Removed.
14067         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14068         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14069         lambda-trans.o, and tree-loop-linear.o.
14070         (lto-symtab.o): Remove dependence on LAMBDA_H.
14071         (tree-loop-linear.o): Remove rule.
14072         (lambda-mat.o): Same.
14073         (lambda-trans.o): Same.
14074         (lambda-code.o): Same.
14075         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14076         (tree-vect-slp.o): Same.
14077         * hwint.h (gcd): Moved here.
14078         (least_common_multiple): Same.
14079         * lambda-code.c: Removed.
14080         * lambda-mat.c: Removed.
14081         * lambda-trans.c: Removed.
14082         * lambda.h: Removed.
14083         * tree-loop-linear.c: Removed.
14084         * lto-symtab.c: Do not include lambda.h.
14085         * omega.c (gcd): Removed.
14086         * passes.c (init_optimization_passes): Remove pass_linear_transform.
14087         * tree-data-ref.c (print_lambda_vector): Moved here.
14088         (lambda_vector_copy): Same.
14089         (lambda_matrix_copy): Same.
14090         (lambda_matrix_id): Same.
14091         (lambda_vector_first_nz): Same.
14092         (lambda_matrix_row_add): Same.
14093         (lambda_matrix_row_exchange): Same.
14094         (lambda_vector_mult_const): Same.
14095         (lambda_vector_negate): Same.
14096         (lambda_matrix_row_negate): Same.
14097         (lambda_vector_equal): Same.
14098         (lambda_matrix_right_hermite): Same.
14099         * tree-data-ref.h: Do not include lambda.h.
14100         (lambda_vector): Moved here.
14101         (lambda_matrix): Same.
14102         (dependence_level): Same.
14103         (lambda_transform_legal_p): Removed declaration.
14104         (lambda_collect_parameters): Same.
14105         (lambda_compute_access_matrices): Same.
14106         (lambda_vector_gcd): Same.
14107         (lambda_vector_new): Same.
14108         (lambda_vector_clear): Same.
14109         (lambda_vector_lexico_pos): Same.
14110         (lambda_vector_zerop): Same.
14111         (lambda_matrix_new): Same.
14112         * tree-flow.h (least_common_multiple): Removed declaration.
14113         * tree-parloops.c (lambda_trans_matrix): Moved here.
14114         (LTM_MATRIX): Same.
14115         (LTM_ROWSIZE): Same.
14116         (LTM_COLSIZE): Same.
14117         (LTM_DENOMINATOR): Same.
14118         (lambda_trans_matrix_new): Same.
14119         (lambda_matrix_vector_mult): Same.
14120         (lambda_transform_legal_p): Same.
14121         * tree-pass.h (pass_linear_transform): Removed declaration.
14122         * tree-ssa-loop.c (tree_linear_transform): Removed.
14123         (gate_tree_linear_transform): Removed.
14124         (pass_linear_transform): Removed.
14125         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14126         flag_loop_interchange.
14127
14128 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14129
14130         PR tree-optimization/47265
14131         PR tree-optimization/47443
14132         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14133         if name still has some uses.
14134
14135 2011-01-25  Martin Jambor  <mjambor@suse.cz>
14136
14137         PR tree-optimization/47382
14138         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14139         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14140
14141 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
14142
14143         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14144         sjlj_except_unwind_info.
14145
14146 2011-01-25  Richard Guenther  <rguenther@suse.de>
14147
14148         PR tree-optimization/47426
14149         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14150         visible functions results escape.
14151
14152 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14153
14154         PR target/45701
14155         * config/arm/arm.c (any_sibcall_uses_r3): New function.
14156         (arm_get_frame_offsets): Use it.
14157
14158 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14159             Jakub Jelinek  <jakub@redhat.com>
14160
14161         PR tree-optimization/47271
14162         * tree-if-conv.c (bb_postdominates_preds): New.
14163         (if_convertible_bb_p): Call bb_postdominates_preds.
14164         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14165         (predicate_scalar_phi): Call bb_postdominates_preds.
14166
14167 2011-01-25  Nick Clifton  <nickc@redhat.com>
14168
14169         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14170         * config/rx/rx.c (rx_function_value): Likewise.
14171         (rx_promote_function_mode): Likewise.
14172         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14173         in order to make it legitimate.
14174         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14175         make sure that the first operand is the same as the result register.
14176         (addsi3_unspec): Delete.
14177         (subdi3): Do not accept immediate operands.
14178         (subdi3_internal): Likewise.
14179
14180 2011-01-25  Jeff Law  <law@redhat.com>
14181
14182         PR rtl-optimization/37273
14183         * ira-costs.c (scan_one_insn): Detect constants living in memory and
14184         handle them like argument loads from stack slots.  Do not double
14185         count memory for memory constants and argument loads from stack slots.
14186
14187 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
14188
14189         PR tree-optimization/47427
14190         PR tree-optimization/47428
14191         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14192         coalesce if the new root var would be TREE_READONLY.
14193
14194 2011-01-25  Richard Guenther  <rguenther@suse.de>
14195
14196         PR middle-end/47414
14197         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14198         correct type for TBAA.
14199
14200 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14201
14202         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14203         (close_phi_written_to_memory): Call for_each_index with
14204         dr_indices_valid_in_loop.
14205
14206 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14207
14208         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14209         when it is initialized.
14210
14211 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14212
14213         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14214         call to graphite_find_data_references_in_stmt.
14215         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14216         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
14217         call to graphite_find_data_references_in_stmt.
14218         (analyze_drs_in_stmts): Same.
14219         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14220         in which the scalar analysis of indices is performed.
14221         (create_data_ref): Same.  Update call to dr_analyze_indices.
14222         (find_data_references_in_stmt): Update call to create_data_ref.
14223         (graphite_find_data_references_in_stmt): Same.
14224         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14225         declaration.
14226         (create_data_ref): Same.
14227         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14228         call to create_data_ref.
14229
14230 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14231
14232         * graphite-sese-to-poly.c (build_poly_scop): Move
14233         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
14234
14235 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14236
14237         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14238         VAR_DECL, PARM_DECL, and RESULT_DECL.
14239
14240 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14241
14242         * graphite-dependences.c (reduction_dr_1): Allow several reductions
14243         in a reduction PBB.
14244         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14245         that have already been marked as PBB_IS_REDUCTION.
14246
14247 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14248
14249         * graphite-scop-detection.c (same_close_phi_node): New.
14250         (remove_duplicate_close_phi): New.
14251         (make_close_phi_nodes_unique): New.
14252         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14253
14254 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14255
14256         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14257         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14258         of both data references to be the same.
14259
14260 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14261
14262         * graphite-dependences.c (build_lexicographical_constraint): Remove
14263         the gdim parameter.
14264         (build_lexicographical_constraint): Adjust call to
14265         ppl_powerset_is_empty.
14266         (dependence_polyhedron): Same.
14267         (graphite_legal_transform_dr): Same.
14268         (graphite_carried_dependence_level_k): Same.
14269         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
14270         parameter.
14271         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
14272
14273 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14274
14275         * graphite-sese-to-poly.c
14276         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
14277         (close_phi_written_to_memory): New.
14278         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
14279         and unshare_expr.
14280
14281 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14282
14283         * doc/install.texi: Update the expected version number of PPL to 0.11.
14284         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
14285         #if PPL_VERSION_MINOR < 11.
14286
14287 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14288
14289         * graphite-dependences.c: Include graphite-cloog-util.h.
14290         (new_poly_ddr): Inlined into dependence_polyhedron.
14291         (free_poly_ddr): Moved close by new_poly_ddr.
14292         (dependence_polyhedron_1): Renamed dependence_polyhedron.
14293         Early return NULL when ppl_powerset_is_empty returns true.
14294         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
14295         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
14296         (graphite_legal_transform_dr): Call new_poly_ddr.
14297         (graphite_carried_dependence_level_k): Same.
14298         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
14299         (dot_transformed_deps_stmt_1): Removed.
14300         (dot_deps_stmt_1): Call dot_deps_stmt_2.
14301         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
14302         (dot_deps_1): Call dot_deps_2.
14303         * Makefile.in (graphite-dependences.o): Add missing dependence on
14304         graphite-cloog-util.h.
14305
14306 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14307
14308         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
14309         (build_lexicographical_constraint): Same.
14310         (dependence_polyhedron_1): Same.
14311         (graphite_legal_transform_dr): Same.
14312         (graphite_carried_dependence_level_k): Same.
14313         * graphite-ppl.c (ppl_powerset_is_empty): New.
14314         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
14315         * tree-data-ref.c (dump_data_reference): Print the basic block index.
14316
14317 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14318
14319         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
14320         the "a followed by b" relation and document it.
14321
14322 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14323
14324         * graphite-dependences.c (build_lexicographical_constraint): Stop the
14325         iteration when the bag of constraints is empty.
14326
14327 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14328
14329         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
14330
14331 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14332
14333         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
14334         nest and two loop depths as parameters.
14335         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
14336         lst_perfect_nestify.
14337
14338 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14339
14340         * graphite-dependences.c (print_pddr): Call
14341         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
14342
14343 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
14344
14345         * graphite-ppl.c (debug_gmp_value): New.
14346         * graphite-ppl.h (debug_gmp_value): Declared.
14347
14348 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
14349
14350         * doc/install.texi: Document availability of cloog-0.16.
14351
14352 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
14353
14354         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
14355         invalid postdominance info.
14356
14357 2011-01-24  Jan Hubicka  <jh@suse.cz>
14358
14359         PR c/21659
14360         * doc/extend.texi (weak pragma): Drop claim that it must
14361         appear before definition.
14362         * varasm.c (merge_weak, declare_weak): Only sanity check
14363         that DECL is not output at a time it is declared weak.
14364
14365 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
14366
14367         * machmode.def: Fixed comments.
14368
14369 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
14370
14371         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
14372
14373 2011-01-24  Paul Koning  <ni1d@arrl.net>
14374
14375         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
14376         WORDS_BIG_ENDIAN.
14377
14378 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
14379
14380         PR target/46519
14381         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
14382         (block_info): Add scanned and prev.
14383         (move_or_delete_vzeroupper_2): Return if the basic block
14384         has been scanned and the upper 128bit state is unchanged
14385         from the last scan.
14386         (move_or_delete_vzeroupper_1): Return true if the exit
14387         state is changed.
14388         (move_or_delete_vzeroupper): Visit basic blocks using the
14389         work-list based algorithm based on vt_find_locations in
14390         var-tracking.c.
14391
14392         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
14393
14394 2011-01-24  Nick Clifton  <nickc@redhat.com>
14395
14396         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
14397         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
14398         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
14399         then define __v850e1__.
14400         * doc/invoke.texi: Document -mv850es.
14401
14402 2011-01-24  Richard Henderson  <rth@redhat.com>
14403
14404         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
14405         compound unordered comparisons.
14406         * config/rx/rx.c (rx_split_fp_compare): Remove.
14407         * config/rx/rx-protos.h: Update.
14408         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
14409         (cbranchsf4): Don't call rx_split_fp_compare.
14410         (*cbranchsf4): Use rx_split_cbranch.
14411         (*cmpsf): Don't accept "i" constraint.
14412         (*conditional_branch): Only valid after reload.
14413         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
14414
14415 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
14416
14417         PR target/47385
14418         * config/rs6000/altivec.md (vector constant splitters): Add
14419         support for creating vector single precision constants if -mvsx is
14420         used and we would create the constant using Altivec primitives.
14421
14422 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
14423             Richard Sandiford  <rdsandiford@googlemail.com>
14424
14425         PR rtl-optimization/47166
14426         * reload1.c (emit_reload_insns): Disable the spill_reg_store
14427         mechanism for PRE_MODIFY and POST_MODIFY.
14428         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
14429         reloadreg.
14430
14431 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
14432
14433         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
14434
14435 2011-01-22  Jan Hubicka  <jh@suse.cz>
14436
14437         PR lto/47333
14438         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
14439
14440 2011-01-22  Jan Hubicka  <jh@suse.cz>
14441
14442         PR tree-optimization/43884
14443         PR lto/44334
14444         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
14445         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
14446
14447 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
14448
14449         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14450         * config/s390/s390.c (s390_register_move_cost,
14451         s390_memory_move_cost): New.
14452         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14453
14454 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14455
14456         PR middle-end/47401
14457         * except.c (sjlj_assign_call_site_values): Move setting the
14458         crtl->uses_eh_lsda flag to ...
14459         (sjlj_mark_call_sites): ... here.
14460         (sjlj_emit_function_enter): Support NULL dispatch label.
14461         (sjlj_build_landing_pads): In a function with no landing pads
14462         that still has must-not-throw regions, generate code to register
14463         a personality function with empty LSDA.
14464
14465 2011-01-21  Richard Henderson  <rth@redhat.com>
14466
14467         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
14468
14469         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
14470
14471         * compare-elim.c: New file.
14472         * Makefile.in (OBJS-common): Add it.
14473         (compare-elim.o): New.
14474         * common.opt (fcompare-elim): New.
14475         * opts.c (default_options_table): Add OPT_fcompare_elim.
14476         * tree-pass.h (pass_compare_elim_after_reload): New.
14477         * passes.c (init_optimization_passes): Add it.
14478         * recog.h: Protect against re-inclusion.
14479         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
14480         * doc/invoke.texi (-fcompare-elim): Document it.
14481         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
14482         * doc/tm.texi: Rebuild.
14483
14484 2011-01-22  Nick Clifton  <nickc@redhat.com>
14485
14486         * config/rx/rx.md (cstoresf4): Pass comparison operator to
14487         rx_split_fp_compare.
14488
14489 2011-01-22  Nick Clifton  <nickc@redhat.com>
14490
14491         * config/rx/rx.md (UNSPEC_CONST): New.
14492         (deallocate_and_return): Wrap the amount popped off the stack in
14493         an UNSPEC_CONST in order to stop it being rejected by
14494         -mmax-constant-size.
14495         (pop_and_return): Add a "(return)" rtx.
14496         (call): Drop the immediate operand.
14497         (call_internal): Likewise.
14498         (call_value): Likewise.
14499         (call_value_internal): Likewise.
14500         (sibcall_internal): Likewise.
14501         (sibcall_value_internal): Likewise.
14502         (sibcall): Likewise.  Generate an explicit call using
14503         sibcall_internal.
14504         (sibcall_value): Likewise.
14505         (mov<>): FAIL if a constant operand is not legitimate.
14506         (addsi3_unpsec): New pattern.
14507
14508         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
14509         (ok_for_max_constant): New function.
14510         (gen_safe_add): New function.
14511         (rx_expand_prologue): Use gen_safe_add.
14512         (rx_expand_epilogue): Likewise.
14513         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
14514         UNSPEC CONSTs.
14515
14516 2011-01-21  Jeff Law  <law@redhat.com>
14517
14518         PR tree-optimization/47053
14519         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
14520         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
14521         statements are deleted.
14522         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
14523         is nonempty, then purge dead edges and cleanup the CFG.
14524
14525 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14526
14527         PR debug/47402
14528         Temporarily revert:
14529         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14530         PR debug/47106
14531         * tree-dfa.c (create_var_ann): Mark variable as used.
14532
14533 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14534
14535         PR middle-end/45566
14536         * except.c (convert_to_eh_region_ranges): Emit queued no-region
14537         notes from other section in hot/cold partitioning even if
14538         last_action is -3.  Increment call_site_base.
14539
14540         PR rtl-optimization/47366
14541         * fwprop.c (forward_propagate_into): Return bool.  If
14542         any changes are made, -fnon-call-exceptions is used and
14543         REG_EH_REGION note is present, call purge_dead_edges
14544         and return true if it purged anything.
14545         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
14546         any EH edges were purged.
14547
14548 2011-01-21  Jeff Law  <law@redhat.com>
14549
14550         PR rtl-optimization/41619
14551         * caller-save.c (setup_save_areas): Break out code to determine
14552         which hard regs are live across calls by examining the reload chains
14553         so that it is always used.
14554         Eliminate code which checked REG_N_CALLS_CROSSED.
14555
14556 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14557
14558         PR tree-optimization/47355
14559         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
14560         NOP has non-debug uses beyond PHIs in new_bb.
14561
14562 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
14563
14564         PR debug/47106
14565         * cfgexpand.c (account_used_vars_for_block): Only account vars
14566         that are annotated as used.
14567         (estimated_stack_frame_size): Don't set TREE_USED.
14568         * tree-dfa.c (create_var_ann): Mark variable as used.
14569
14570 2011-01-21  Richard Guenther  <rguenther@suse.de>
14571
14572         PR middle-end/47395
14573         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
14574
14575 2011-01-21  Richard Guenther  <rguenther@suse.de>
14576
14577         PR tree-optimization/47365
14578         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
14579         (vn_reference_lookup_pieces): Adjust.
14580         (vn_reference_lookup): Likewise.
14581         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
14582         (vn_reference_lookup_3): Only look through kills if in
14583         VN_WALKREWRITE mode.
14584         (vn_reference_lookup_pieces): Adjust.
14585         (vn_reference_lookup): Likewise.
14586         (visit_reference_op_load): Likewise.
14587         (visit_reference_op_store): Likewise.
14588         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
14589         (compute_avail): Likewise.
14590         (eliminate): Likewise.
14591
14592 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
14593
14594         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
14595         DECL_IGNORED_P non-reg vars if they are used.
14596
14597         PR tree-optimization/47391
14598         * varpool.c (const_value_known_p): Return false if
14599         decl is volatile.
14600
14601 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
14602
14603         PR bootstrap/47215
14604         * config/i386/i386.c (ix86_local_alignment): Handle
14605         case for va_list_type_node is nil.
14606         (ix86_canonical_va_list_type): Likewise.
14607
14608 2011-01-21  Alan Modra  <amodra@gmail.com>
14609
14610         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
14611         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
14612
14613 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14614
14615         * config/arm/arm.md (define_attr type): Rename f_load
14616         and f_store to f_fpa_load and f_fpa_store. Update.
14617         (write_conflict): Deal with rename fallout.
14618         (*push_fp_multi): Likewise.
14619         * config/arm/fpa.md (f_load): Use f_fpa_load.
14620         (f_store): Use f_fpa_store.
14621         (*movsf_fpa): Likewise.
14622         (*movdf_fpa): Likewise.
14623         (*movxf_fpa): Likewise.
14624         (*thumb2_movsf_fpa): Likewise.
14625         (*thumb2_movdf_fpa): Likewise.
14626         (*thumb2_movxf_fpa): Likewise.
14627         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
14628         f_loadd and f_stored.
14629         (*thumb2_movdi_vfp): Likewise.
14630         (*thumb2_movsf_vfp): Fix attribute to f_loads.
14631         (*thumb2_movsi_vfp): Likewise.
14632         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
14633         Use f_loads instead of f_load.
14634         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
14635
14636 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
14637
14638         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14639         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
14640         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14641         (xtensa_mode_dependent_address_p): New function.
14642         (constantpool_address_p): Make static. Change return type to bool.
14643         Change argument type to const_rtx. Use CONST_INT_P predicate.
14644
14645 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
14646
14647         PR debug/46583
14648         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
14649
14650 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14651
14652         PR debug/47283
14653         * cfgexpand.c (expand_debug_expr): Instead of generating
14654         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14655         etc. handling.
14656
14657 2011-01-20  Richard Guenther  <rguenther@suse.de>
14658
14659         PR middle-end/47370
14660         * tree-inline.c (remap_gimple_op_r): Recurse manually for
14661         the pointer operand of MEM_REFs.
14662
14663 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
14664
14665         PR tree-optimization/46130
14666         * ipa-split.c (consider_split): If return_bb contains non-virtual
14667         PHIs other than for retval or if split_function would not adjust it,
14668         refuse to split.
14669
14670 2011-01-20  Richard Guenther  <rguenther@suse.de>
14671
14672         PR tree-optimization/47167
14673         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14674         Revert previous change, only avoid enumeral type changes.
14675
14676 2011-01-19  Mike Stump  <mikestump@comcast.net>
14677
14678         * doc/tm.texi.in (BRANCH_COST): Englishify.
14679         * doc/tm.texi (BRANCH_COST): Likewise.
14680
14681 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
14682
14683         PR c++/47291
14684         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
14685         (gen_scheduled_generic_parms_dies): New functions.
14686         (gen_struct_or_union_type_die): Schedule template parameters DIEs
14687         generation for the end of CU compilation.
14688         (dwarf2out_finish): Generate template parameters DIEs here.
14689
14690 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14691
14692         PR debug/46240
14693         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14694         debug bind stmt on merge edges.
14695
14696 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14697
14698         PR debug/47079
14699         PR debug/46724
14700         * function.c (instantiate_expr): Instantiate incoming rtl of
14701         implicit arguments, and recurse on VALUE_EXPRs.
14702         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14703         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14704
14705 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14706
14707         * c-parser.c (c_parser_for_statement): Initialize
14708         collection_expression.
14709
14710 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14711
14712         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14713
14714 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14715
14716         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14717         (LINK_SHLIB_SPEC): Don't use %(link_path).
14718         (SUBTARGET_EXTRA_SPECS): Remove link_path.
14719
14720 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14721
14722         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14723         (NO_SHARED_LIB_SUPPORT): Remove.
14724         (LINK_SHLIB_SPEC): Remove one conditional definition.
14725
14726 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14727
14728         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14729         %{call_shared}.
14730         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14731         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14732         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14733         %{call_shared} and conditionals on these options not being passed.
14734         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14735         %{call_shared}.
14736
14737 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14738
14739         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14740         simplify.
14741
14742         * ipa-split.c: Spelling fixes.
14743
14744 2011-01-19  Richard Henderson  <rth@redhat.com>
14745
14746         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14747         (*mulsi3): Likewise.
14748
14749         * longlong.h [__mn10300__] (count_leading_zeros): New.
14750         [__mn10300__] (umul_ppmm, smul_ppmm): New.
14751         [__mn10300__] (add_ssaaaa, subddmmss): New.
14752         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14753         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14754
14755 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14756
14757         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14758
14759 2011-01-19  Richard Henderson  <rth@redhat.com>
14760
14761         * config/mn10300/mn10300.md (addsi3_flags): New.
14762         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14763         (subsi3_flags, subc_internal, subdi3): New.
14764         (subdi3_internal, *subdi3_degenerate): New.
14765         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14766
14767         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14768         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14769         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
14770         * config/mn10300/mn10300-protos.h: Update.
14771         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
14772         (return_ret): Likewise.  Rename from return_internal_regs.
14773         (return_internal): Remove.
14774
14775         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
14776         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
14777         (mn10300_legitimate_constant_p): Likewise.
14778         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
14779         (mn10300_frame_size): New.
14780         (mn10300_expand_prologue): Use it.
14781         (mn10300_expand_epilogue): Likewise.
14782         (mn10300_initial_offset): Likewise.
14783         * config/mn10300/mn10300-protos.h: Update.
14784         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
14785         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
14786         (prologue, epilogue, return_internal): Tidy output code.
14787         (mn10300_store_multiple_operation, return): Likewise.
14788         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
14789         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
14790         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
14791         (load_pic, am33_load_pic): New.
14792         (mn10300_load_pic0, mn10300_load_pic1): New.
14793
14794         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
14795         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
14796         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
14797         (cc_flags_for_mode, cc_flags_for_code): New.
14798         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
14799         overflow flag is not valid.  Validate that the flags we need
14800         for the comparison are valid.
14801         (mn10300_output_cmp): Remove.
14802         (mn10300_output_add): New.
14803         (mn10300_select_cc_mode): Use cc_flags_for_code.
14804         (mn10300_split_cbranch): New.
14805         (mn10300_match_ccmode): New.
14806         (mn10300_split_and_operand_count): New.
14807         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
14808         to the function.
14809         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
14810         (addsi3): ... here.  Use mn10300_output_add.
14811         (*addsi3_flags): New.
14812         (*am33_subsi3, *mn10300_subsi3): Merge...
14813         (subsi3): ... here.  Use attribute isa.
14814         (*subsi3_flags): New.
14815         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
14816         when possible.
14817         (*am33_andsi3, *mn10300_andsi3): Merge...
14818         (andsi3): ... here.
14819         (*andsi3_flags): New.
14820         (andsi3 splitters): New.
14821         (*am33_iorsi3, *mn10300_iorsi3): Merge...
14822         (iorsi3): ... here.
14823         (*iorsi3_flags): New.
14824         (*am33_xorsi3, *mn10300_xorsi3): Merge...
14825         (xorsi3): ... here.
14826         (*xorsi3_flags): New.
14827         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
14828         (one_cmplsi2): ... here.
14829         (*one_cmplsi2_flags): New.
14830         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
14831         instead of "dax" in constraints.  Use mn10300_split_cbranch.
14832         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
14833         use matching constraints to eliminate a self-comparison.
14834         (*integer_conditional_branch): Rename from integer_conditional_branch.
14835         Use int_mode_flags to match CC_REG.
14836         (*cbranchsi4_btst, *btstsi): New.
14837         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
14838         mn10300_split_cbranch.
14839         (*am33_cmpsf): Rename from am33_cmpsf.
14840         (*float_conditional_branch): Rename from float_conditional_branch.
14841         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
14842         (zero_extendqisi2): ... here.
14843         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
14844         (zero_extendhisi2): ... here.
14845         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
14846         (extendqisi2): ... here.
14847         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
14848         (extendhisi2): ... here.
14849         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
14850         (ashlsi3): ... here.
14851         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
14852         (lshrsi3): ... here.
14853         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
14854         (ashrsi3): ... here.
14855         (consecutive add peephole): Remove.
14856         * config/mn10300/predicates.md (label_ref_operand): New.
14857         (int_mode_flags): New.
14858         (CCZN_comparison_operator): New.
14859
14860         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
14861         (throughput_42_latency_43): New reservation.
14862         (mulsidi3, umulsidi3): New expanders.
14863         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
14864         the MDR register to allocation; separately allocate the low and
14865         high parts of the DImode result.
14866         (umulsidi3_internal): Similarly.
14867         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
14868         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
14869         (udivsi3, umodsi3): Remove.
14870         (udivmodsi4, divmodsi4): New expanders.
14871         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
14872         (*divmodsi4): Simiarly.
14873         (ext_internal): New.
14874
14875         * config/mn10300/constraints.md ("z"): New constraint.
14876         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
14877         (FIXED_REGISTERS): Don't fix MDR.
14878         (CALL_USED_REGSITERS): Reformat nicely.
14879         (REG_ALLOC_ORDER): Add MDR.
14880         (enum regclass): Add MDR_REGS.
14881         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14882         (IRA_COVER_CLASSES): Add MDR_REGS.
14883         (REGNO_REG_CLASS): Handle MDR_REG.
14884         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14885         (mn10300_register_move_cost): Likewise.
14886         * config/mn10300/mn10300.md (MDR_REG): New.
14887         (*movsi_internal): Handle moves to/from MDR_REGS.
14888
14889         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14890         POST_MODIFY.
14891         (mn10300_secondary_reload): Tidy combination reload classes.
14892         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14893         addresses for AM33.  Allow symbolic offsets for reg+imm.
14894         (mn10300_regno_in_class_p): New.
14895         (mn10300_legitimize_reload_address): New.
14896         * config/mn10300/mn10300.h (enum reg_class): Remove
14897         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14898         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
14899         SP_OR_GENERAL_REGS.
14900         (REG_CLASS_NAMES): Update to match.
14901         (REG_CLASS_CONTENTS): Likewise.
14902         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14903         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14904         (REGNO_IN_RANGE_P): Remove.
14905         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14906         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14907         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14908         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14909         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14910         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14911         (REGNO_GENERAL_P): New.
14912         (HAVE_POST_MODIFY_DISP): New.
14913         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14914         (LEGITIMIZE_RELOAD_ADDRESS): New.
14915         * config/mn10300/mn10300-protos.h: Update.
14916
14917         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14918         DATA_REGS for AM33 stack-pointer destination.
14919         (mn10300_preferred_output_reload_class): Likewise.
14920         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14921         into a form appropriate for ...
14922         (TARGET_SECONDARY_RELOAD): New.
14923         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14924         * config/mn10300/mn10300-protos.h: Update.
14925         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14926         reload_insi; use the "A" constraint for the scratch; handle AM33
14927         moves of sp to non-address registers.
14928
14929         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14930         (*movqi_internal): ... here.
14931         (*am33_movhi, *mn10300_movhi): Merge into...
14932         (*movhi_internal): ... here.
14933         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
14934         as the source/destination of moves from/to SP.
14935         (movsf): Only allow for AM33-2.
14936         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
14937         any integer constant constraint.  Only allow for AM33-2.  Tidy
14938         all of the alternative outputs.
14939         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14940         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
14941         for MN103.
14942         (udivsi3, umodsi3): New patterns for MN103 only.
14943
14944 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
14945
14946         * doc/tm.texi.in: Spell out that a lack of register class unions
14947         can lead to ICEs.
14948         * doc/tm.texi: Regenerate.
14949
14950 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14951
14952         PR rtl-optimization/47337
14953         * dce.c (check_argument_store): New function.
14954         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
14955
14956         PR tree-optimization/47290
14957         * tree-eh.c (infinite_empty_loop_p): New function.
14958         (cleanup_empty_eh): Use it.
14959
14960 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
14961
14962         PR target/46997
14963         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14964         (a64_expand_widen_sum): Ditto.
14965         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14966         (vec_extract_evenodd_help): Ditto.
14967         (vec_extract_evenv4hi): Ditto.
14968         (vec_extract_oddv4hi): Ditto.
14969         (vec_extract_evenv2si): Ditto.
14970         (vec_extract_oddv2si): Ditto.
14971         (vec_extract_evenv2sf): Ditto.
14972         (vec_extract_oddv2sf): Ditto.
14973         (vec_pack_trunc_v4hi: Ditto.
14974         (vec_pack_trunc_v2si): Ditto.
14975         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14976         (vec_interleave_highv8qi): Ditto.
14977         (mix1_r): Ditto.
14978         (vec_extract_oddv8qi): Ditto.
14979         (vec_interleave_lowv4hi): Ditto.
14980         (vec_interleave_highv4hi): Ditto.
14981         (vec_interleave_lowv2si): Ditto.
14982         (vec_interleave_highv2si): Ditto.
14983
14984 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14985
14986         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14987         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14988         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
14989         (pa_c_mode_for_suffix): New.
14990         (TARGET_EXPAND_BUILTIN): Define.
14991         (TARGET_C_MODE_FOR_SUFFIX): Define.
14992         (pa_builtins): Define.
14993         (pa_init_builtins): Register __float128 type and init new support
14994         builtins.
14995         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14996         * config/pa/quadlib.c (_U_Qfcopysign): New.
14997
14998 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
14999
15000         PR middle-end/46894
15001         * explow.c (allocate_dynamic_stack_space): Do not assume more than
15002         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
15003         are defined.
15004
15005 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15006
15007         PR tree-optimization/47179
15008         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
15009         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
15010
15011 2011-01-18  Richard Guenther  <rguenther@suse.de>
15012
15013         PR rtl-optimization/47216
15014         * emit-rtl.c: Include tree-flow.h.
15015         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
15016         of replicating it with different semantics.
15017         * Makefile.in (emit-rtl.o): Adjust.
15018
15019 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15020
15021         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
15022         (cortex_a9_dp): Handle neon types correctly.
15023
15024 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
15025
15026         PR rtl-optimization/47299
15027         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
15028         subtarget.  Use normal multiplication if both operands are constants.
15029         * expmed.c (expand_widening_mult): Don't try to optimize constant
15030         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
15031         before using it.
15032
15033 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15034
15035         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
15036         spacing after 'e.g.', typos, comma, hyphenation.
15037
15038 2011-01-17  Richard Henderson  <rth@redhat.com>
15039
15040         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15041         (rx_restricted_mem_operand): New.
15042         (rx_shift_operand): Use register_operand.
15043         (rx_source_operand, rx_compare_operand): Likewise.
15044         * config/rx/rx.md (addsi3_flags): New expander.
15045         (adddi3): Rewrite as expander.
15046         (adc_internal, *adc_flags, adddi3_internal): New patterns.
15047         (subsi3_flags): New expander.
15048         (subdi3): Rewrite as expander.
15049         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15050
15051         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15052         (rx_init_builtins): Remove sat builtin.
15053         (rx_expand_builtin): Likewise.
15054         * config/rx/rx.md (ssaddsi3): New.
15055         (*sat): Rename from sat.  Represent the CC_REG input.
15056
15057         * config/rx/predicates.md (rshift_operator): New.
15058         * config/rx/rx.c (rx_expand_insv): Remove.
15059         * config/rx/rx-protos.h: Update.
15060         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
15061         operand to the canonical position.
15062         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15063         (*bitclr, *bitclr_in_memory): Similarly.
15064         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15065         (insv): Retain the zero_extract in the expansion.
15066
15067         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15068         (bswaphi2, bitinvert, revw): Likewise.
15069
15070         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15071         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15072         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15073         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15074         (bitset, bitset_in_memory): Likewise.
15075         (bitinvert, bitinvert_in_memory): Likewise.
15076         (bitclr, bitclr_in_memory): Likewise.
15077         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15078         (rx_strend, rx_cmpstrn): Likewise.
15079         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
15080         (bitop peep2 patterns): Remove.
15081
15082         * config/rx/rx.c (rx_match_ccmode): New.
15083         * config/rx/rx-protos.h: Update.
15084         * config/rx/rx.md (abssi2): Clobber, don't set flags.
15085         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15086         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15087         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15088         (fix_truncsfsi2, floatsisf2): Likewise.
15089         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15090         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15091         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15092         (*subsi3_flags, *xorsi3_flags): New.
15093
15094         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15095
15096         * config/rx/rx.c (rx_print_operand): Remove workaround for
15097         unsplit comparison operations.
15098
15099         * config/rx/rx.md (movsicc): Split after reload.
15100         (*movsicc): Merge *movsieq and *movsine via match_operator.
15101         (*stcc): New pattern.
15102
15103         * config/rx/rx.c (rx_float_compare_mode): Remove.
15104         * config/rx/rx.h (rx_float_compare_mode): Remove.
15105         * config/rx/rx.md (cstoresi4): Split after reload.
15106         (*sccc): New pattern.
15107
15108         * config/rx/predicates.md (label_ref_operand): New.
15109         (rx_z_comparison_operator): New.
15110         (rx_zs_comparison_operator): New.
15111         (rx_fp_comparison_operator): New.
15112         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15113         Validate that the flags are set properly for the comparison.
15114         (rx_gen_cond_branch_template): Remove.
15115         (rx_cc_modes_compatible): Remove.
15116         (mode_from_flags): New.
15117         (flags_from_code): Rename from flags_needed_for_conditional.
15118         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15119         (rx_select_cc_mode): Likewise.
15120         (rx_split_fp_compare): New.
15121         (rx_split_cbranch): New.
15122         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15123         (*cbranchsi4): Use match_operator and rx_split_cbranch.
15124         (*cbranchsf4): Similarly.
15125         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
15126         match_operator and rx_split_cbranch.
15127         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15128         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
15129         (*cmpsi): Rename from cmpsi.
15130         (*tstsi): Rename from tstsi.
15131         (*cmpsf): Rename from cmpsf; use CC_Fmode.
15132         (*conditional_branch): Rename from conditional_branch.
15133         (*reveresed_conditional_branch): Remove.
15134         (b<code>): Remove expander.
15135         * config/rx/rx-protos.h: Update.
15136
15137         * config/rx/rx.c (rx_compare_redundant): Remove.
15138         * config/rx/rx.md (cmpsi): Don't use it.
15139         * config/rx/rx-protos.h: Update.
15140
15141         * config/rx/rx-modes.def (CC_F): New mode.
15142         * config/rx/rx.c (rx_select_cc_mode): New.
15143         * config/rx/rx.h (SELECT_CC_MODE): Use it.
15144         * config/rx/rx-protos.h: Update.
15145
15146 2011-01-17  Richard Henderson  <rth@redhat.com>
15147
15148         * except.c (dump_eh_tree): Fix stray ; after for statement.
15149
15150 2011-01-17  Richard Guenther  <rguenther@suse.de>
15151
15152         PR tree-optimization/47313
15153         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15154         handling before copying the body.  Properly deal with
15155         by-reference result in SSA form.
15156
15157 2011-01-17  Ian Lance Taylor  <iant@google.com>
15158
15159         PR target/47219
15160         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15161         (struct_value_alias_set): Don't define.
15162         (sparc_option_override): Don't set sparc_sr_alias_set and
15163         struct_value_alias_set.
15164         (save_or_restore_regs): Use gen_frame_mem rather than calling
15165         set_mem_alias_set.
15166         (sparc_struct_value_rtx): Likewise.
15167
15168 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
15169
15170         PR target/47318
15171         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
15172         (_mm_maskstore_pd): Likewise.
15173         (_mm_maskload_ps): Likewise.
15174         (_mm_maskstore_ps): Likewise.
15175         (_mm256_maskload_pd): Change mask to __m256i.
15176         (_mm256_maskstore_pd): Likewise.
15177         (_mm256_maskload_ps): Likewise.
15178         (_mm256_maskstore_ps): Likewise.
15179
15180         * config/i386/i386-builtin-types.def: Updated.
15181         (ix86_expand_special_args_builtin): Likewise.
15182
15183         * config/i386/i386.c (bdesc_special_args): Update
15184         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15185         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15186         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15187         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15188
15189         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15190         Use <avxpermvecmode> on mask register.
15191         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15192
15193 2011-01-17  Olivier Hainque  <hainque@adacore.com>
15194             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
15195             Eric Botcazou  <ebotcazou@adacore.com>
15196
15197         PR target/46655
15198         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15199         if <= USHRT_MAX in 32-bit mode.
15200
15201 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15202
15203         * doc/install.texi (Configuration, Specific): Wrap long
15204         lines in examples.  Allow line wrapping in long options
15205         and URLs where beneficial for PDF output.
15206
15207 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
15208
15209         * config/mips/mips.c (mips_classify_symbol): Don't return
15210         SYMBOL_PC_RELATIVE for nonlocal labels.
15211
15212 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15213
15214         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15215
15216 2011-01-15  Jan Hubicka  <jh@suse.cz>
15217
15218         PR tree-optimization/47276
15219         * ipa.c (function_and_variable_visibility): Do not try to mark alias
15220         declarations as needed.
15221
15222 2011-01-15  Martin Jambor  <mjambor@suse.cz>
15223
15224         * common.opt (fdevirtualize): New flag.
15225         * doc/invoke.texi (Option Summary): Document it.
15226         * opts.c (default_options_table): Add devirtualize flag.
15227         * ipa-prop.c (detect_type_change): Return immediately if
15228         devirtualize flag is not set.
15229         (detect_type_change_ssa): Likewise.
15230         (compute_known_type_jump_func): Likewise.
15231         (ipa_analyze_virtual_call_uses): Likewise.
15232
15233 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15234
15235         PR tree-optimization/45934
15236         PR tree-optimization/46302
15237         * ipa-prop.c (type_change_info): New type.
15238         (stmt_may_be_vtbl_ptr_store): New function.
15239         (check_stmt_for_type_change): Likewise.
15240         (detect_type_change): Likewise.
15241         (detect_type_change_ssa): Likewise.
15242         (compute_complex_assign_jump_func): Check for dynamic type change.
15243         (compute_complex_ancestor_jump_func): Likewise.
15244         (compute_known_type_jump_func): Likewise.
15245         (compute_scalar_jump_functions): Likewise.
15246         (ipa_analyze_virtual_call_uses): Likewise.
15247         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15248
15249 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15250
15251         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15252         * config/i386/i386.opt (msse5): New Alias.
15253
15254 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15255
15256         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15257         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15258         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15259         * config/sparc/sparc.h (CC1_SPEC): Likewise.
15260
15261 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15262
15263         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
15264         -mcpu options.
15265         * config/sparc/linux64.h (CC1_SPEC): Likewise.
15266         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15267         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
15268         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
15269         Likewise.
15270         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
15271
15272 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15273
15274         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
15275
15276 2011-01-14  Mike Stump  <mikestump@comcast.net>
15277
15278         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
15279         * config/fr30/fr30.md: Likweise
15280         (movsi_push): Likewise.
15281         (movsi_pop): Likewise.
15282         (enter_func): Likewise.
15283         * config/moxie/moxie.md (movsi_push): Likewise.
15284         (movsi_pop): Likewise.
15285
15286 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15287
15288         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
15289         %{no_archive} %{exact_version}.
15290         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
15291         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
15292         %{no_archive} %{exact_version}.
15293         * config/mips/openbsd.h (LINK_SPEC): Likewise.
15294         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
15295         * config/mips/vxworks.h: Likewise.
15296
15297 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15298
15299         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
15300
15301 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15302
15303         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
15304         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
15305
15306 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15307
15308         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
15309         -nodefaultlib.
15310
15311 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15312
15313         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
15314         for mcpu not cpu.
15315         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
15316         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
15317         not cpu.
15318         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
15319         Don't handle -shlib.
15320
15321 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15322
15323         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
15324         (CC1_SPEC): Don't handle -profile.
15325
15326 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15327
15328         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
15329         * config/mips/mips.h (CC1_SPEC): Likewise.
15330
15331 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15332
15333         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
15334         * config/mips/mips.h (CC1_SPEC): Likewise.
15335
15336 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15337
15338         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
15339         * config/m32r/linux.h (LINK_SPEC): Likewise.
15340         * config/mips/linux.h (LINK_SPEC): Likewise.
15341         * config/mips/linux64.h (LINK_SPEC): Likewise.
15342         * config/sparc/linux.h (LINK_SPEC): Likewise.
15343         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
15344         LINK_SPEC): Likewise.
15345         * config/xtensa/linux.h (LINK_SPEC): Likewise.
15346
15347 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15348
15349         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
15350         %{version:-v}.
15351         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
15352
15353 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15354
15355         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
15356         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
15357
15358 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
15359
15360         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
15361
15362 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15363
15364         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
15365         supports -Bstatic/-Bdynamic.
15366         * configure: Regenerate.
15367
15368 2011-01-14  Jan Hubicka  <jh@suse.cz>
15369             Jack Howarth  <howarth@bromo.med.uc.edu>
15370
15371         PR target/46037
15372         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
15373         when checking debug_info_level. Test write_symbols instead of
15374         debug_hooks->var_location when setting flag_var_tracking_uninit.
15375
15376 2011-01-14  Richard Guenther  <rguenther@suse.de>
15377
15378         PR tree-optimization/47179
15379         * target.def (ref_may_alias_errno): New target hook.
15380         * targhooks.h (default_ref_may_alias_errno): Declare.
15381         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
15382         (default_ref_may_alias_errno): New function.
15383         * target.h (struct ao_ref_s): Declare.
15384         * tree-ssa-alias.c: Include target.h.
15385         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
15386         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
15387         (targhooks.o): Likewise.
15388         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
15389         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
15390
15391 2011-01-14  Richard Guenther  <rguenther@suse.de>
15392
15393         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
15394
15395 2011-01-14  Richard Guenther  <rguenther@suse.de>
15396
15397         PR tree-optimization/47280
15398         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
15399         return CFG changes.
15400         (tree_ssa_forward_propagate_single_use_vars): Deal with
15401         CFG changes from associate_plusminus.
15402
15403 2011-01-14  Richard Guenther  <rguenther@suse.de>
15404
15405         PR middle-end/47281
15406         Revert
15407         2011-01-11  Richard Guenther  <rguenther@suse.de>
15408
15409         PR tree-optimization/46076
15410         * tree-ssa.c (useless_type_conversion_p): Conversions from
15411         unprototyped to empty argument list function types are useless.
15412
15413 2011-01-14  Richard Guenther  <rguenther@suse.de>
15414
15415         PR tree-optimization/47286
15416         * tree-ssa-structalias.c (new_var_info): Register variables are global.
15417
15418 2011-01-14  Martin Jambor  <mjambor@suse.cz>
15419
15420         PR middle-end/46823
15421         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
15422
15423 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
15424
15425         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
15426         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15427         * config/xtensa/xtensa.c (xtensa_libcall_value,
15428         xtensa_function_value_regno_p): New functions.
15429         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15430
15431 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
15432
15433         PR c++/47213
15434         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
15435         PE specific hook.
15436         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
15437         New function prototype.
15438         * config/i386/winnt.c (i386_pe_assemble_visibility):
15439         Warn only if attribute was specified by user.
15440
15441 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15442
15443         PR target/47251
15444         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
15445         floating point.
15446         (floatunsdidf2_fcfidu): Ditto.
15447
15448 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15449
15450         * config/s390/s390.c (print_operand_address): Replace 'error' with
15451         'output_operand_lossage'.
15452         (print_operand): Likewise.
15453
15454 2011-01-13  Jeff Law  <law@redhat.com>
15455
15456         PR rtl-optimization/39077
15457         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
15458         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
15459         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
15460         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
15461         * gcse.c (prune_insertions_deletions): New function.
15462         (compute_pre_data): Use it.
15463
15464 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
15465
15466         PR debug/PR46973
15467         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
15468         static function.
15469         (prune_unused_types_mark): Use it.
15470
15471 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
15472
15473         PR rtl-optimization/45352
15474         * sel-sched.c: Update copyright years.
15475         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
15476         in the advancing loop when we have issued issue_rate insns.
15477
15478 2011-01-12  Richard Henderson  <rth@redhat.com>
15479
15480         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
15481         (TARGET_MD_ASM_CLOBBERS): New.
15482
15483         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
15484         (TARGET_DELEGITIMIZE_ADDRESS): New.
15485
15486         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
15487         (clzsi2, *bsch): New patterns.
15488
15489         * config/mn10300/mn10300.md (INT): New mode iterator.
15490         (*mov<INT>_clr): New pattern, and peep2 to generate it.
15491
15492         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
15493         flag_split_wide_types.
15494
15495         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
15496         (mn10300_trampoline_init): Rewrite without a template, an immediate
15497         load and a direct branch.
15498         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
15499
15500 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
15501
15502         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15503         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
15504         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
15505         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15506
15507 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
15508
15509         PR debug/47209
15510         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
15511         of type.
15512
15513 2011-01-12  Jan Hubicka  <jh@suse.cz>
15514
15515         PR driver/47244
15516         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
15517         (PLUGIN_COND_CLOSE): New macro.
15518         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
15519
15520 2011-01-12  Richard Guenther  <rguenther@suse.de>
15521
15522         PR lto/47259
15523         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
15524         register variables in a MEM_REF.
15525
15526 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
15527
15528         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
15529         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
15530         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
15531         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15532         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15533         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
15534         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
15535         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
15536         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
15537         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
15538         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
15539         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
15540         * config/gnu-user.h: New.  Copied from linux.h.
15541         (LINUX_TARGET_STARTFILE_SPEC): Rename to
15542         GNU_USER_TARGET_STARTFILE_SPEC.
15543         (LINUX_TARGET_ENDFILE_SPEC): Rename to
15544         GNU_USER_TARGET_ENDFILE_SPEC.
15545         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
15546         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
15547         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
15548         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
15549         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
15550         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15551         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
15552         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
15553         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
15554         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
15555         * config/arm/linux-eabi.h (CC1_SPEC): Use
15556         GNU_USER_TARGET_CC1_SPEC.
15557         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
15558         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
15559         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
15560         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
15561         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
15562         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
15563         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
15564         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
15565
15566 2011-01-12  Richard Guenther  <rguenther@suse.de>
15567
15568         PR other/46946
15569         * doc/invoke.texi (ffast-math): Document it is turned on
15570         with -Ofast.
15571
15572 2011-01-12  Jan Hubicka  <jh@suse.cz>
15573
15574         PR tree-optimization/47233
15575         * opts.c (common_handle_option): Disable ipa-reference with profile
15576         feedback.
15577
15578 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15579
15580         * c-parser.c (c_parser_objc_at_property_declaration): Improved
15581         error message.
15582
15583 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15584
15585         * c-parser.c (c_lex_one_token): Updated and reindented some
15586         comments.  No changes in code.
15587
15588 2011-01-11  Ian Lance Taylor  <iant@google.com>
15589
15590         * godump.c (go_output_var): Don't output the variable if there is
15591         already a type with the same name.
15592
15593 2011-01-11  Ian Lance Taylor  <iant@google.com>
15594
15595         * godump.c (go_format_type): Don't generate float80.
15596
15597 2011-01-11  Richard Henderson  <rth@redhat.com>
15598
15599         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
15600         declaration.  Rewrite for both speed and size.
15601         (mn10300_address_cost_1): Remove.
15602         (mn10300_register_move_cost): New.
15603         (mn10300_memory_move_cost): New.
15604         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
15605         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
15606         extensions, shifts, BSWAP, CLZ.
15607         (mn10300_wide_const_load_uses_clr): Remove.
15608         (TARGET_REGISTER_MOVE_COST): New.
15609         (TARGET_MEMORY_MOVE_COST): New.
15610         * config/mn10300/mn10300-protos.h: Update.
15611         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
15612
15613         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
15614         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
15615         * config/mn10300/mn10300-protos.h: Update.
15616         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
15617         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
15618         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
15619         (*test_int_bitfield, *test_byte_bitfield): Remove.
15620         (*bit_test, *subreg_bit_test): Remove.
15621         * config/mn10300/predicates.md (const_8bit_operand): Remove.
15622
15623         * config/mn10300/constraints.md ("c"): Rename from "A".
15624         ("A", "D"): New constraint letters.
15625         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
15626         (fmssf4, fnmasf4, fnmssf4): Likewise.
15627
15628         * config/mn10300/mn10300.md (isa): New attribute.
15629         (enabled): New attribute.
15630
15631         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
15632         (abssf2, negsf2): Define only for hardware fp.
15633         (sqrtsf2): Reformat.
15634         (addsf3, subsf3, mulsf3): Merge expander and insn.
15635
15636         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
15637         (DEBUGGER_AUTO_OFFSET): Remove.
15638         (DEBUGGER_ARG_OFFSET): Remove.
15639
15640         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
15641         Emit register stores with the same offsets as the hardware.
15642         (mn10300_store_multiple_operation): Don't check that the register
15643         save offsets are monotonic.
15644         * config/mn10300/mn10300-protos.h: Update.
15645
15646         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
15647
15648         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
15649         in terms of the value on the stack, not the MDR register.
15650
15651 2011-01-11  Jan Hubicka  <jh@suse.cz>
15652
15653         PR lto/45721
15654         PR lto/45375
15655         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15656         (symbol_alias_set_destroy, symbol_alias_set_contains,
15657         propagate_aliases_backward): Declare.
15658         * lto-streamer-out.c (struct sets): New sturcture.
15659         (trivally_defined_alias): New function.
15660         (output_alias_pair_p): Rewrite.
15661         (output_unreferenced_globals): Fix output of alias pairs.
15662         (produce_symtab): Likewise.
15663         * ipa.c (function_and_variable_visibility): Set weak alias destination
15664         as needed in lto.
15665         * varasm.c (symbol_alias_set_t): Remove.
15666         (symbol_alias_set_destroy): Export.
15667         (propagate_aliases_forward, propagate_aliases_backward): New functions
15668         based on ...
15669         (compute_visible_aliases): ... this one; remove.
15670         (trivially_visible_alias): New
15671         (trivially_defined_alias): New.
15672         (remove_unreachable_alias_pairs): Rewrite.
15673         (finish_aliases_1): Reorganize code checking if alias is defined.
15674         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15675         in LTO mode.
15676
15677 2011-01-11  Richard Guenther  <rguenther@suse.de>
15678
15679         PR tree-optimization/46076
15680         * tree-ssa.c (useless_type_conversion_p): Conversions from
15681         unprototyped to empty argument list function types are useless.
15682
15683 2011-01-11  Richard Guenther  <rguenther@suse.de>
15684
15685         PR middle-end/45235
15686         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15687         volatile MEMs as MEM_READONLY_P.
15688
15689 2011-01-11  Richard Guenther  <rguenther@suse.de>
15690
15691         PR tree-optimization/47239
15692         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15693
15694 2011-01-11  Jeff Law  <law@redhat.com>
15695
15696         PR tree-optimization/47086
15697         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15698         IVs from statements that might throw.
15699
15700 2011-01-10  Jan Hubicka  <jh@suse.cz>
15701
15702         PR lto/45375
15703         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15704
15705 2011-01-10  Jan Hubicka  <jh@suse.cz>
15706
15707         PR lto/45375
15708         * profile.c (read_profile_edge_counts): Ignore profile inconistency
15709         when correcting profile.
15710
15711 2011-01-10  Jan Hubicka  <jh@suse.cz>
15712
15713         PR lto/46083
15714         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15715         DECL_FINI_PRIORITY.
15716         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15717         Restore DECL_FINI_PRIORITY.
15718
15719 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15720
15721         * doc/gimple.texi: Fix quoting of multi-word return values in
15722         @deftypefn statements.  Ensure presence of return value.  Wrap
15723         overlong @deftypefn lines.
15724         (is_gimple_operand, is_gimple_min_invariant_address): Remove
15725         descriptions of removed functions.
15726         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15727         of multi-word return value in @deftypefn statement.
15728
15729 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15730
15731         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15732         (Conditional Expressions, Logical Operators)
15733         (Statement and operand traversals): Do not indent smallexample
15734         code.  Fix duplicate function argument in example.
15735
15736 2011-01-10  Jeff Law  <law@redhat.com>
15737
15738         PR tree-optimization/47141
15739         * ipa-split.c (split_function): Handle case where we are
15740         returning a value and the return block has a virtual operand phi.
15741
15742 2011-01-10  Jan Hubicka  <jh@suse.cz>
15743
15744         PR tree-optimization/47234
15745         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15746         (pass_feedback_split_functions): Declare.
15747         * passes.c (init_optimization_passes): Add ipa-split as subpass of
15748         tree-profile.
15749         * ipa-split.c (gate_split_functions): Update comments; disable
15750         split-functions for profile_arc_flag and branch_probabilities.
15751         (gate_feedback_split_functions): New function.
15752         (execute_feedback_split_functions): New function.
15753         (pass_feedback_split_functions): New global var.
15754
15755 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
15756
15757         PR lto/46760
15758         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15759         calling gimple_call_set_cannot_inline.
15760
15761 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
15762
15763         * config/darwin-sections.def: Remove unused section.
15764
15765 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
15766
15767         PR c++/47218
15768         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15769
15770 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
15771
15772         PR objc/47232
15773         * c-parser.c (c_parser_declaration_or_fndef): Improved
15774         error message.
15775
15776 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
15777
15778         * config/i386/winnt.c (i386_pe_start_function): Make sure
15779         to switch back to function's section.
15780
15781 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
15782
15783         PR gcc/46902
15784         PR testsuite/46912
15785         * plugin.c: Move include of dlfcn.h from here...
15786         * system.h: ... to here.
15787
15788 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15789
15790         * doc/cpp.texi (C++ Named Operators): Fix markup for header
15791         file name.
15792         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
15793         two extra empty pages in PDF output.
15794
15795 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
15796
15797         PR objc/47078
15798         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
15799         for error recovery purposes behave as if it was not specified so
15800         that the default type is usd.
15801
15802 2011-01-07  Jan Hubicka  <jh@suse.cz>
15803
15804         PR tree-optmization/46469
15805         * ipa.c (function_and_variable_visibility): Clear needed flags on
15806         nodes with external decls; handle weakrefs merging correctly.
15807
15808 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
15809
15810         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
15811         not false.
15812
15813 2011-01-07  Jan Hubicka  <jh@suse.cz>
15814
15815         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
15816         and no longer claim that gold is required for linker plugin.
15817         * configure: Regenerate.
15818         * gcc.c (PLUGIN_COND): New macro.
15819         (LINK_COMMAND_SPEC): Use it.
15820         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
15821         * config.in (HAVE_LTO_PLUGIN): New.
15822         * configure.ac (--with-lto-plugin): New parameter; autodetect
15823         HAVE_LTO_PLUGIN.
15824
15825 2011-01-07  Jan Hubicka  <jh@suse.cz>
15826
15827         PR tree-optimization/46367
15828         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
15829         when we can update original.
15830         (cgraph_mark_inline_edge): Sanity check.
15831         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
15832
15833 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15834
15835         * config/spu/spu.h (ASM_COMMENT_START): Define.
15836
15837 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15838
15839         PR driver/42445
15840         * gcc.c (%>S): New.
15841         (SWITCH_KEEP_FOR_GCC): Likewise.
15842         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
15843         (do_spec_1): Handle "%>".
15844
15845         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
15846
15847 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
15848
15849         PR target/47201
15850         * config/i386/i386.c (ix86_delegitimize_address): If
15851         simplify_gen_subreg fails, return orig_x.
15852
15853         PR bootstrap/47187
15854         * value-prof.c (gimple_stringop_fixed_value): Handle
15855         lhs of the call properly.
15856
15857 2011-01-07  Jan Hubicka  <jh@suse.cz>
15858
15859         PR lto/45375
15860         * lto-opt.c (lto_reissue_options): Set flag_shlib.
15861
15862 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15863
15864         * target.def (function_switched_text_sections): New hook.
15865         * doc/tm.texi: Regenerated.
15866         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15867         * final.c (default_function_switched_text_sections): New.
15868         (final_scan_insn): Call function_switched_text_sections when a
15869         mid-function section change occurs.
15870         * output.h (default_function_switched_text_sections): Declare.
15871         * config/darwin-protos.h (darwin_function_switched_text_sections):
15872         Likewise.
15873         * config/darwin.c (darwin_function_switched_text_sections): New.
15874         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15875
15876 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15877
15878         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
15879         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
15880         the secondary code fragment when outputting for DWARF == 2.
15881
15882 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
15883
15884         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15885         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15886         Remove.
15887         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15888         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15889
15890 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
15891
15892         PR debug/46704
15893         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15894         when it is not empty.
15895
15896 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
15897
15898         Bobcat Enablement
15899         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
15900         (case ${target}): Add btver1.
15901         * config/i386/driver-i386.c (host_detect_local_cpu): Let
15902         -march=native recognize btver1 processors.
15903         * config/i386/i386-c.c (ix86_target_macros_internal): Add
15904         btver1 def_and_undef
15905         * config/i386/i386.c (struct processor_costs btver1_cost): New
15906         btver1 cost table.
15907         (m_BTVER1): New definition.
15908         (m_AMD_MULTIPLE): Includes m_BTVER1.
15909         (initial_ix86_tune_features): Add btver1 tune.
15910         (processor_target_table): Add btver1 entry.
15911         (static const char *const cpu_names): Add btver1 entry.
15912         (software_prefetching_beneficial_p): Add btver1.
15913         (ix86_option_override_internal): Add btver1 instruction sets.
15914         (ix86_issue_rate): Add btver1.
15915         (ix86_adjust_cost): Add btver1.
15916         * config/i386/i386.h (TARGET_BTVER1): New definition.
15917         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15918         (enum processor_type): Add PROCESSOR_BTVER1.
15919         * config/i386/i386.md (define_attr "cpu"): Add btver1.
15920
15921 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15922
15923         PR target/43309
15924         * config/i386/i386.c (legitimize_tls_address)
15925         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15926         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15927         (tls_initial_exec_64_sun): New pattern.
15928
15929 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15930
15931         * doc/invoke.texi (Overall Options): Improve wording and markup
15932         of the description of -wrapper.
15933
15934 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15935
15936         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15937         rdynamic, threads): New Driver options.
15938
15939 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15940
15941         PR target/38118
15942         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15943         if coming from .tdata.
15944         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15945
15946 2011-01-06  Jan Hubicka  <jh@suse.cz>
15947
15948         PR lto/47188
15949         * collect2.c (main): Do not enable LTOmode when plugin is active.
15950
15951 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15952
15953         PR other/45915
15954         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15955         --version output if supported.
15956         * configure: Regenerate.
15957
15958 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15959
15960         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15961         Driver options.
15962
15963 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
15964
15965         PR c/47150
15966         * c-convert.c (convert): When converting a complex expression
15967         other than COMPLEX_EXPR to a different complex type, ensure
15968         c_save_expr is called instead of save_expr, unless in_late_binary_op.
15969         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15970         when converting COMPLEX_TYPE.
15971
15972 2011-01-06  Ira Rosen  <irar@il.ibm.com>
15973
15974         PR tree-optimization/47139
15975         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15976         only the last reduction value is used outside the loop.  Update
15977         documentation.
15978
15979 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
15980
15981         * config/rtems.opt: New.
15982         * config.gcc (*-*-rtems*): Use rtems.opt.
15983
15984 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
15985
15986         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15987         processors do not support 3DNow instructions.
15988
15989 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15990
15991         * config/spu/spu.c (spu_option_override): Set parameter
15992         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15993
15994 2011-01-05  Jan Hubicka  <jh@suse.cz>
15995
15996         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15997         at the command line.
15998
15999 2011-01-05  Martin Jambor  <mjambor@suse.cz>
16000
16001         PR lto/47162
16002         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
16003         deltas on streamed outgoing edges.
16004         (output_node_opt_summary): Output info for outgoing edges only when
16005         the node is in new parameter set.
16006         (output_cgraph_opt_summary): New parameter set, passed to the two
16007         aforementioned functions.  Update its forward declaration and its
16008         callee too.
16009
16010 2011-01-05  Tom Tromey  <tromey@redhat.com>
16011
16012         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
16013         operator to c_finish_omp_atomic.
16014         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
16015         (build_unary_op): Update.
16016         (build_modify_expr): Update.
16017         (build_asm_expr): Update.
16018
16019 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16020
16021         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
16022         newly inserted insns.
16023         (pad_bb): Likewise.
16024         (spu_emit_branch_hint): Likewise.
16025         (insert_hbrp_for_ilb_runout): Likewise.
16026         (spu_machine_dependent_reorg): Call df_finish_pass after
16027         schedule_insns returns.
16028
16029 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16030
16031         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16032
16033 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
16034
16035         PR tree-optimization/47005
16036         * tree-sra.c (struct access): Add 'non_addressable' bit.
16037         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16038         (decide_one_param_reduction): Return 0 if the parameter is passed by
16039         reference and one of the accesses in the group is non_addressable.
16040
16041 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16042
16043         PR tree-optimization/47056
16044         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16045         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
16046         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
16047
16048 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16049
16050         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16051         initializer.  Skip view conversions from aggregate types.
16052
16053 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
16054
16055         PR bootstrap/47055
16056         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16057
16058 2011-01-04  Philipp Thomas  <pth@suse.de>
16059
16060         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16061         obvious typo.
16062
16063 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16064
16065         * function.c (thread_prologue_and_epilogue_insns): Do not crash
16066         on empty epilogue sequences.
16067
16068 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
16069
16070         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16071         non-static): New Driver options.
16072
16073 2011-01-04  Jie Zhang  <jie@codesourcery.com>
16074
16075         PR driver/47137
16076         * gcc.c (default_compilers[]): Set combinable field to 0
16077         for all assembly languages.
16078
16079 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
16080
16081         * config/mips/loongson3a.md: New file.
16082         * config/mips/mips.md: Include loongson3a.md.
16083         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16084         TUNE_LOONGSON_3A.
16085
16086 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
16087
16088         PR middle-end/47017
16089         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16090         instead of convert_memory_address_addr_space on the base expression.
16091
16092 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16093
16094         * config/spu/spu.c (spu_option_override): Update error text
16095         for bad -march= / -mtune= values.
16096
16097 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16098
16099         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16100         if branch-hint optimization will be performed.
16101
16102 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16103
16104         PR tree-optimization/47148
16105         * ipa-split.c (split_function): Convert arguments to
16106         DECL_ARG_TYPE if possible.
16107
16108         PR tree-optimization/47155
16109         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16110         when computing uns.
16111
16112         PR rtl-optimization/47157
16113         * combine.c (try_combine): If undobuf.other_insn becomes
16114         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16115         and set *new_direct_jump_p too.
16116
16117 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16118
16119         PR tree-optimization/47021
16120         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16121
16122 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
16123
16124         * gcc.c (process_command): Update copyright notice dates.
16125         * gcov.c (print_version): Likewise.
16126         * gcov-dump.c (print_version): Likewise.
16127         * mips-tfile.c (main): Likewise.
16128         * mips-tdump.c (main): Likewise.
16129
16130 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16131
16132         PR tree-optimization/46801
16133         * tree-sra.c (type_internals_preclude_sra_p): Check whether
16134         aggregate fields start at byte boundary instead of the bit-field flag.
16135
16136 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16137
16138         PR driver/47137
16139         * gcc.c (main): Revert revision 168407.
16140
16141 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16142
16143         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16144
16145 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16146
16147         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16148         vector optab to expand vector/scalar shift, update gimple to vector.
16149
16150 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16151
16152         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16153         a thunk.
16154
16155 2011-01-03  Martin Jambor  <mjambor@suse.cz>
16156
16157         PR tree-optimization/46984
16158         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16159         HOST_WIDE_INT.
16160         (cgraph_create_indirect_edge): Fixed line length.
16161         (cgraph_indirect_call_info): Declare.
16162         (cgraph_make_edge_direct) Update declaration.
16163         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16164         (cgraph_create_indirect_edge): Use it.
16165         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
16166         callees.
16167         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16168         the new thunk_delta representation.
16169         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16170         HOST_WIDE_INT.
16171         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16172         (ipa_read_indirect_edge_info): Likewise.
16173         * lto-cgraph.c (output_edge_opt_summary): New function.
16174         (output_node_opt_summary): Call it on all outgoing edges.
16175         (input_edge_opt_summary): New function.
16176         (input_node_opt_summary): Call it on all outgoing edges.
16177
16178 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
16179
16180         PR driver/47137
16181         * gcc.c (main): Don't check have_o when settting combine_inputs.
16182
16183 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
16184
16185         * regrename.c: Add general comment describing the pass.
16186         (struct du_head): Remove 'length' field.
16187         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16188         (regrename_optimize): Do not sort chains.  Rework comments, add others.
16189         Force renaming to the preferred class (if any) in the first pass and do
16190         not consider registers that belong to it in the second pass.
16191         (create_new_chain): Do not set 'length' field.
16192         (scan_rtx_reg): Likewise.
16193
16194 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
16195
16196         PR tree-optimization/47140
16197         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16198         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16199         to bit_value_binop.
16200
16201         PR rtl-optimization/47028
16202         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16203         parm_birth_insn instead of at the beginning of first bb.
16204
16205 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
16206
16207         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16208         Remove the word "see" before "@pxref".
16209         * doc/rtl.texi: Remove the word "see" before "@pxref".
16210
16211 2011-01-01  Jan Hubicka  <jh@suse.cz>
16212
16213         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16214         memory.
16215
16216 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
16217
16218         PR target/38662
16219         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
16220
16221 \f
16222 Copyright (C) 2011 Free Software Foundation, Inc.
16223
16224 Copying and distribution of this file, with or without modification,
16225 are permitted in any medium without royalty provided the copyright
16226 notice and this notice are preserved.