OSDN Git Service

60f09e4963144807bf771b9b3761a9350d6e110a
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2
3         PR tree-optimization/49170
4         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
5         sincos or cexp.
6         
7 2011-05-27  Richard Guenther  <rguenther@suse.de>
8
9         PR middle-end/49189
10         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
11         of comparisons.
12
13 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
14
15         * haifa-sched.c (sched_scan_info): Remove.
16         (schedule_block): Call sched_extend_luids rather than sched_init_luids
17         with NULL args.
18         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
19         Remove functions.
20         (sched_scan): Remove.
21         (sched_extend_luids): Renamed from luids_extend_insn and no longer
22         static.  All callers changed.
23         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
24         static.  All callers changed.
25         (sched_init_luids): Remove all arguments except the first.  All
26         callers changed.  Don't use sched_scan.
27         (haifa_init_h_i_d): Likewise.
28         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
29         manually rather than using sched_init_luids.  Likewise with
30         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
31         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
32         rather than sched_init_luids with NULL args.
33         * sel-sched-ir.c (new_insns): Remove variable.
34         (sched_scan): New static function, previously in haifa-sched.c.  Remove
35         all arguments but the first two; all callers changed.
36         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
37         rather than sched_init_luids.
38         (sel_init_bbs): Remove second argument.  All callers changed.
39         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
40         with NULL arguments.
41         (create_insn_rtx_from_pattern): Likewise.
42         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
43         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
44         (sched_init_insn_luid, sched_extend_luids): Declare.
45         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
46         declarations.
47
48 2011-05-27  Richard Guenther  <rguenther@suse.de>
49
50         PR middle-end/49177
51         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
52         A CMP B ? (T) true : (T) false for non-integral types T again.
53
54 2011-05-27  Jan Hubicka  <jh@suse.cz>
55
56         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
57         so 0 means NULL string.
58         (lto_output_string_with_length): ... here.
59         (lto_output_string, output_string_cst, output_identifier): Update
60         handling of NULL strings.
61         (lto_output_location_bitpack): New function.
62         (lto_output_location): Use it.
63         (lto_output_tree_ref): Use output_record_start.
64         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
65         len values.
66         * lto-streamer-in.c (string_for_index): Break out from ...; offset
67         values by 1.
68         (input_string_internal): ... here; 
69         (input_string_cst, input_identifier, lto_input_string): Update handling
70         of NULL strings.
71         (lto_input_location_bitpack): New function
72         (lto_input_location): Use it.
73         (unpack_ts_type_common_value_fields): Pack align & alias in var len
74         values.
75         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
76         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
77         (bp_pack_value): Sanity check the value range.
78         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
79         New functions.
80         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
81         New functions.
82
83 2011-05-27  Hariharan Sandanagobalane <hariharan@picochip.com>
84
85         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
86         call_arg_location instructions down the floor.
87
88 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
89
90         PR rtl-optimization/49154
91         * ira.c (setup_pressure_classes): Process class without sublcasses
92         as a candidate for pressure classes.
93
94 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
95
96         PR rtl-optimization/48575
97         * genrecog.c (position_type): New enum.
98         (position): New structure.
99         (decision): Use position structure instead of a string.
100         (root_pos, peep2_insn_pos_list): New variables.
101         (next_position, compare_positions): New functions.
102         (new_decision): Use position structures instead of strings.
103         (maybe_both_true): Likewise.
104         (change_state): Likewise.
105         (write_tree): Likewise.
106         (make_insn_sequence): Likewise.
107
108 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
109
110         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
111         TS_BASE instead of TS_COMMON.
112         (find_decls_types_r): Check for TS_TYPED structure before looking at
113         TREE_TYPE.
114         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
115         Add chain field.
116         (BLOCK_CHAIN): Use new chain field.
117
118 2011-05-26  Pat Haugen <pthaugen@us.ibm.com>
119
120         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
121         moves expensive on Power7 also.
122
123 2011-05-26  Richard Guenther  <rguenther@suse.de>
124
125         * fold-const.c (fold_unary_loc): Remove bogus code.
126
127 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
128
129         * tree.h (struct tree_identifier): Inherit from tree_typed, not
130         tree_common.
131         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
132         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
133         TS_BASE instead of TS_COMMON.
134         * varasm.c (assemble_name): Remove assert.
135
136 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
137
138         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
139         substituted first.
140         * libgcc-std.ver: Delete file.
141
142 2011-05-26  Richard Guenther  <rguenther@suse.de>
143
144         PR tree-optimization/48702
145         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
146         only when we know the base address is within bounds.
147         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
148         assume the base address of TARGET_MEM_REFs is in bounds.
149
150 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
151
152         PR target/49099
153         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
154         declaration in TARGET_SOLARIS.
155
156 2011-05-26  Hariharan Sandanagobalane <hariharan@picochip.com>
157
158         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
159           The instruction is then expanded explicitly.
160         (supported_compare): Callable instruction.
161         (compare): Likewise.
162
163 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
164
165         PR c++/49165
166         * gimplify.c (shortcut_cond_r): Don't special case
167         COND_EXPRs if they have void type on one of their arms.
168
169 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
170
171         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
172         to reduce duplication, and to achieve a slightly more logical order
173         of operations.
174
175 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
176
177         PR tree-optimization/49161
178         * tree-vrp.c (struct case_info): New type.
179         (compare_case_labels): Sort case_info structs instead of
180         trees, and not primarily by CASE_LABEL uids but by
181         label_for_block indexes.
182         (find_switch_asserts): Put case labels into struct case_info
183         array instead of TREE_VEC, adjust sorting, compare label_for_block
184         values instead of CASE_LABELs.
185
186 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
187
188         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
189         ("orndi3_neon"): Likewise.
190         ("bic<mode>3_neon"): Likewise.
191
192 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
193
194         PR tree-optimization/49038
195         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
196         Ensure at least one epilogue iteration if required by data
197         accesses with gaps.
198         * tree-vectorizer.h (struct _loop_vec_info): Add new field
199         to mark loops that require peeling for gaps.
200         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
201         (vect_get_known_peeling_cost): Take peeling for gaps into
202         account.
203         (vect_transform_loop): Generate epilogue if required by data
204         access with gaps.
205         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
206         loop as requiring an epilogue if there are gaps in the end of
207         the strided group.
208
209 2011-05-25  Ian Lance Taylor  <iant@google.com>
210
211         * godump.c (go_format_type): Output the first field with a usable
212         Go type, if any.
213
214 2011-05-25  Ian Lance Taylor  <iant@google.com>
215
216         * godump.c (go_format_type): Check for invalid type names, pointer
217         target types, and struct field types.
218
219 2011-05-25  Jason Merrill  <jason@redhat.com>
220
221         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
222
223 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
224
225         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
226
227 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
228
229         * config/i386/i386.md (*movqi_extv_1)): Put back
230         "register_operand" check in "type" calculation.
231         (*movqi_extzv_2): Likewise.
232
233 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
234
235         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
236
237 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
238
239         PR bootstrap/49160
240         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
241         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
242         __divxc3, __divtc3): Wrap definitions in #ifndef.
243
244 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
245
246         PR target/49142
247         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
248         "register_operand" check and replace q_regs_operand with
249         QIreg_operand in "type" calculation.
250         (*movqi_extv_1): Likewise.
251         (*movqi_extzv_2_rex64): Likewise.
252         (*movqi_extzv_2): Likewise.
253
254         * config/i386/predicates.md (QIreg_operand): New.
255
256 2011-05-25  Richard Guenther  <rguenther@suse.de>
257
258         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
259         type-based offset disambiguation, streamline MEM_REF and
260         TARGET_MEM_REF handling.
261
262 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
263
264         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
265         (bdesc_special_args): Add pause intrinsic.
266
267         * config/i386/i386.md (UNSPEC_PAUSE): New.
268         (pause): Likewise.
269         (*pause): Likewise.
270         * config/i386/ia32intrin.h (__pause): Likewise.
271
272         * doc/extend.texi (X86 Built-in Functions): Add documentation for
273         pause intrinsic.
274
275 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
276
277         PR tree-optimization/46728
278         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
279         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
280
281 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
282
283         * tree.h (struct tree_exp): Inherit from struct tree_typed.
284         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
285         instead of TS_COMMON.
286
287 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
288
289         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
290         LIBGCC2_GNU_PREFIX is defined.
291         (__N): New macro.
292         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
293         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
294         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
295         __clz_tab): Define using __N.
296         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
297         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
298         * target.def (libfunc_gnu_prefix): New hook.
299         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
300         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
301         * doc/tm.texi: Regenerate.
302         * system.h (LIBGCC2_GNU_PREFIX): Poison.
303         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
304         account.
305         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
306         (init_optabs): Likewise for the bswap libfuncs.
307         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
308         and divide.
309         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
310         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
311         * libgcc-std.ver: Remove.
312         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
313         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
314         libgcc-std.ver.
315         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
316         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
317         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
318         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
319         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
320         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
321         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
322         * config/fixed-bit.h (FIXED_OP): Define differently depending on
323         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
324         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
325
326 2011-05-25  Jan Hubicka  <jh@suse.cz>
327
328         * lto-streamer-out.c (output_record_start): Use lto_output_enum
329         (lto_output_tree): Use output_record_start.
330         * lto-streamer-in.c (input_record_start): Use lto_input_enum
331         (lto_get_pickled_tree): Use input_record_start.
332         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
333         (lto_value_range_error): New function.
334         * lto-streamer.h (lto_value_range_error): Declare.
335         (lto_output_int_in_range, lto_input_int_in_range): New functions.
336         (lto_output_enum, lto_input_enum): New macros.
337
338 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
339
340         * common.opt (flag_stack_usage_info): New variable.
341         (-Wstack-usage): New option.
342         * doc/invoke.texi (Warning options): Document -Wstack-usage.
343         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
344         <OPT_fstack_usage>: Likewise.
345         * toplev.c (output_stack_usage): Handle -Wstack-usage.
346         * calls.c (expand_call): Test flag_stack_usage_info variable instead
347         of flag_stack_usage.
348         (emit_library_call_value_1): Likewise.
349         * explow.c (allocate_dynamic_stack_space): Likewise.
350         * function.c (instantiate_virtual_regs ): Likewise.
351         (prepare_function_start): Likewise.
352         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
353         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
354         * config/arm/arm.c (arm_expand_prologue): Likewise.
355         (thumb1_expand_prologue): Likewise.
356         * config/avr/avr.c (expand_prologue): Likewise.
357         * config/i386/i386.c (ix86_expand_prologue): Likewise.
358         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
359         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
360         * config/mips/mips.c (mips_expand_prologue): Likewise.
361         * config/pa/pa.c (hppa_expand_prologue): Likewise.
362         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
363         * config/s390/s390.c (s390_emit_prologue): Likewise.
364         * config/sh/sh.c (sh_expand_prologue): Likewise.
365         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
366         * config/spu/spu.c (spu_expand_prologue): Likewise.
367
368 2011-05-25  Richard Guenther  <rguenther@suse.de>
369
370         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
371         (gimple_canonical_types_compatible_p): Likewise.
372
373 2011-05-25  Jan Hubicka  <jh@suse.cz>
374
375         PR middle-end/49062
376         * ipa.c (function_and_variable_visibility): Only add to same
377         comdat group list if DECL_ONE_ONLY.
378
379 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
380
381         PR rtl-optimization/49014
382         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
383
384 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
385
386         PR target/49128
387         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
388
389 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
390
391         PR rtl-optimization/48757
392         * ira-build.c (loop_with_eh_edge_p): Rename to
393         loop_with_complex_edge_p, check edges on complexity, make function
394         conditional.
395         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
396         conditional.
397
398 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
399
400         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
401         force flag_ira_share_save_slots to 0.
402
403 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
404
405         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
406         (vt_initialize): Set PROLOGUE_BB unconditionally.
407         Add block comment about CFA_BASE_RTX machinery.
408         Reset FP_CFA_OFFSET to -1 on all invalid paths.
409         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
410
411 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
412
413         PR objc/48187
414         * c-parser.c (c_parser_objc_class_instance_variables): More robust
415         parsing of syntax error in ObjC instance variable lists.  In
416         particular, avoid an infinite loop if there is a stray ']'.
417         Updated error message.
418
419 2011-05-24  Ian Lance Taylor  <iant@google.com>
420
421         * godump.c (go_define): Don't accept a string immediately after
422         another operand.
423
424 2011-05-24  Ian Lance Taylor  <iant@google.com>
425
426         * godump.c (struct godump_container): Add invalid_hash field.
427         (go_format_type): Return false if type is found in invalid_hash.
428         (go_output_typedef): Add invalid type to invalid_hash.
429         (go_finish): Create and delete invalid_hash.
430
431 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
432
433         PR tree-optimization/46728
434         * tree-ssa-math-opts.c (powi_table): New.
435         (powi_lookup_cost): New.
436         (powi_cost): New.
437         (powi_as_mults_1): New.
438         (powi_as_mults): New.
439         (gimple_expand_builtin_powi): New.
440         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
441         (gate_cse_sincos): Remove sincos/cexp restriction.
442
443 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
444
445         PR target/3746
446         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
447         mips-tdump native.
448         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
449         * mips-tdump.c: Likewise.
450
451 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
452
453         PR target/49128
454         * config/i386/driver-i386.c (host_detect_local_cpu): Always
455         add -mno-XXX.  Handle FMA.
456
457 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
458
459         PR rtl-optimization/48633
460         * ira-build.c (loop_with_eh_edge_p): New function.
461         (mark_loops_for_removal): Use it.
462
463 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
464
465         PR rtl-optimization/48971
466         * ira.c (setup_pressure_classes): Don't check register move cost
467         for classes with one registers.  Don't add pressure class if there
468         is a pressure class with the same available hard registers.
469         Check contains_reg_of_mode.  Fix a typo in collecting
470         temp_hard_regset.  Ignore hard registers not belonging to a class.
471
472 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
473
474         PR target/49133
475         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
476
477 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
478             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
479
480         PR gcov-profile/48845
481         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
482
483 2011-05-24  Richard Guenther  <rguenther@suse.de>
484
485         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
486         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
487         (gimple_types_compatible_p_1): Adjust.
488         (iterative_hash_canonical_type): Do not bother about complete vs.
489         incomplete types.
490         (gimple_canonical_types_compatible_p): Likewise.
491
492 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
493
494         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
495
496 2011-05-24  Richard Guenther  <rguenther@suse.de>
497
498         PR bootstrap/49078
499         * gimple.c (gimple_register_canonical_type): Revert
500         previous change.
501         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
502         does not for a tree for the case where it matters.  Cache
503         pointer-type alias-sets.
504
505 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
506
507         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
508         (OBJS): Remove options.o, opts-common.o and prefix.o.
509         (OBJS-libcommon-target): New.
510         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
511         (BACKEND): Include libcommon-target.a.
512         (MOSTLYCLEANFILES): Include libcommon-target.a.
513         (libcommon-target.a): New.
514         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
515         prefix.o.
516
517 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
518
519         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
520         parts of output shared with the driver.
521         * optc-gen.awk: Don't generate parts of output not shared with the
522         driver.
523         * opth-gen.awk: Remove GCC_DRIVER conditionals.
524         * doc/options.texi (SourcerInclude): Mention options-save.c.
525         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
526         (OBJS): Add options-save.o.
527         (options-save.c, options-save.o): New.
528         (options.o): Update dependencies.
529         (gcc-options.o): Remove.
530         (mostlyclean): Remove options-save.c.
531
532 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
533
534         PR debug/49032
535         * dbxout.c: Include cgraph.h.
536         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
537         and without value expr, return NULL if no varpool node exists for
538         it or if it is not needed.
539         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
540
541         PR c/49120
542         * c-decl.c (start_decl): Convert expr to void_type_node.
543
544 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
545
546         PR rtl-optimization/48826
547         * emit-rtl.c (try_split): When splitting a call that is followed
548         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
549
550 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
551
552         * cfgexpand.c (expand_debug_expr): For unused non-addressable
553         parameters passed in memory prefer using DECL_INCOMING_RTL over
554         the pseudos it will be copied into.
555
556 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
557
558         PR target/47315
559         * config/i386/i386.c (ix86_option_override_internal): Save the
560         initial options after checking vzeroupper.
561
562 2011-05-23  David Li  <davidxl@google.com>
563
564         PR tree-optimization/48988
565         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
566         Initialize has_valid_pred for each pred chain.
567
568 2011-05-23  Richard Guenther  <rguenther@suse.de>
569
570         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
571         (iterative_hash_gimple_type): Always hash type names.
572
573 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
574
575         * c-typeck.c (build_function_call_vec): Tweak call to
576         check_function_arguments.
577
578 2011-05-23  Richard Guenther  <rguenther@suse.de>
579
580         PR tree-optimization/49115
581         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
582         is not necessarily carried out, do not claim it kills the ref.
583         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
584
585 2011-05-23  Richard Guenther  <rguenther@suse.de>
586
587         PR middle-end/15419
588         * builtins.c (fold_builtin_memory_op): Be less restrictive about
589         what pointer types we accept for folding.
590
591 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
592
593         * gthr-gnat.c: Remove.
594         * gthr-gnat.h: Remove.
595         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
596         * config/t-freebsd (LIB2ADDEH): Likewise.
597         * config/t-linux (LIB2ADDEH): Likewise.
598         * config/t-sol2 (LIB2ADDEH): Likewise.
599         * config/ia64/t-vms (LIB2ADDEH): Likewise.
600         * configure.ac (target_thread_file): Remove gnat handling.
601         * configure: Regenerate.
602         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
603
604 2011-05-23  Tristan Gingold  <gingold@adacore.com>
605             Eric Botcazou  <ebotcazou@adacore.com>
606
607         * gcov.c (create_file_names): If no object directory is specified,
608         keep the directory of the file.
609
610 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
611
612         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
613         * configure: Regenerate.
614
615 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
616
617         PR middle-end/48973
618         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
619         failed and the comparison has a single bit signed type, use
620         constm1_rtx instead of const1_rtx for true value.
621         (do_store_flag): If ops->type is single bit signed type, disable
622         signel bit test optimization and pass -1 instead of 1 as last
623         parameter to emit_store_flag_force.
624
625 2011-05-23  Tom de Vries  <tom@codesourcery.com>
626
627         PR target/45098
628         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
629         function.
630         (infer_loop_bounds_from_undefined): Use new function.
631
632 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
633
634         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
635         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
636         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
637         and -O0 otherwise.
638         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
639
640 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
641
642         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
643         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
644         returns true.
645
646 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
647
648         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
649
650 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
651
652         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
653         UNSPEC_MOVE_PIC pattern.
654
655 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
656
657         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
658         (sparc-*-rtems*): Likewise.
659         (sparc64-*-elf*): Likewise.
660         (sparc64-*-rtems*): Likewise.
661         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
662         * config/sparc/t-crtin: New file.
663         * config/sparc/t-sol2 (crti.o): Delete rule.
664         (crtn.o): Likewise.
665         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
666         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
667         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
668         (ENDFILE_SPEC): Add crtn.o.
669
670 2011-05-22  Tom de Vries  <tom@codesourcery.com>
671
672         PR middle-end/48689
673         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
674         CODE_CONTAINS_STRUCT (TS_COMMON).
675
676 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
677
678         PR middle-end/49029
679         * expmed.c (extract_fixed_bit_field): Test whether target can be used
680         only after deciding which mode to use.
681
682 2011-05-22  Tom de Vries  <tom@codesourcery.com>
683
684         PR target/45098
685         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
686         for call to get_shiftadd_cost.
687
688 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
689
690         PR target/49104
691         * config/i386/cpuid.h (bit_MMXEXT): New define.
692
693 2011-05-22  Nick Clifton  <nickc@redhat.com>
694
695         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
696         initialisation of non-existant args[2] element.  Use args[] array
697         not arg[] array to pass arguments to build_function_type_list.
698
699 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
700
701         PR tree-optimization/49087
702         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
703
704 2011-05-21  Jason Merrill  <jason@redhat.com>
705
706         PR c++/49092
707         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
708         static storage duration.
709
710 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
711
712         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
713         frame pointer.
714
715 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
716
717         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
718         false if there are call-saved registers here...
719         (sparc_can_use_return_insn_p): ...but here instead.
720         (save_or_restore_regs): Fix thinko.
721         (sparc_expand_prologue): Use current_function_is_leaf.
722         (sparc_frame_pointer_required): Likewise.
723
724 2011-05-21  Nick Clifton  <nickc@redhat.com>
725
726         PR target/49098
727         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
728
729 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
730
731         * gengtype.c (walk_type): Implemented "atomic" GTY option.
732         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
733
734 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
735
736         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
737         * optc-gen.awk: Move common code to opt-read.awk.
738         * opth-gen.awk: Likewise.
739         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
740
741 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
742
743         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
744
745 2011-05-20  Tom de Vries  <tom@codesourcery.com>
746
747         PR target/45098
748         * tree-ssa-loop-ivopts.c: Include expmed.h.
749         (get_shiftadd_cost): New function.
750         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
751
752 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
753
754         PR bootstrap/49086
755         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
756         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
757
758 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
759
760         * Makefile.in: Update comment referring to $(OBJS-common).
761
762 2011-05-20  Ian Lance Taylor  <iant@google.com>
763
764         * godump.c (go_output_typedef): Put enum constants in the macro
765         hash table to avoid duplicate Go const definitions.
766
767 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
768
769         * Makefile.in (LIBDEPS): Add libcommon.a.
770         (LIBS): Likewise.
771         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
772         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
773         pretty-print.o and version.o.
774         (OBJS-libcommon): New.
775         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
776         (BACKEND): Add libcommon.a.
777         (MOSTLYCLEANFILES): Likewise.
778         (libcommon.a): New.
779         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
780         (cpp$(exeext)): Likewise.
781         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
782         pretty-print.o and input.o.
783         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
784         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
785         (errors.o): Remove.
786         (mips-tfile): Don't explicitly use version.o.
787         (mips-tdump): Likewise.
788         (gcov.o): Depend on $(DIAGNOSTIC_H).
789         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
790         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
791         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
792         * gcov-dump.c: Include intl.h and diagnostic.h.
793         (main): Initialize diagnostics.
794         * gcov.c: Include diagnostic.h.
795         (fnotice): Remove.
796         (main): Initialize diagnostics.
797         * lto-wrapper.c: Include diagnostic.h.
798         (main): Initialize diagnostics.
799
800 2011-05-20  Michael Matz  <matz@suse.de>
801
802         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
803
804 2011-05-20  Michael Matz  <matz@suse.de>
805             Richard Guenther  <rguenther@suse.de>
806
807         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
808         use lto_streamer_cache_append directly instead of returning a VEC.
809         (preload_common_node): Remove.
810         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
811         track seen nodes.
812         (lto_streamer_cache_create): Call lto_preload_common_nodes.
813
814 2011-05-20  Richard Guenther  <rguenther@suse.de>
815
816         PR tree-optimization/49079
817         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
818         MEM_REFs correctly for the trailing array access detection.
819         Special case constants the same way as decls for overall size
820         constraining.
821
822 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
823
824         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
825         argument expansion.
826
827 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
828
829         PR tree-optimization/49073
830         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
831         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
832         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
833
834 2011-05-20  Richard Guenther  <rguenther@suse.de>
835
836         PR middle-end/48849
837         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
838         of pointer types the same way the middle-end does.
839
840 2011-05-20  Richard Guenther  <rguenther@suse.de>
841
842         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
843         or pointer-to chains.  Delay all fixup to uniquify_nodes.
844
845 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
846
847         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
848         (fma4_fmaddsub): Likewise
849
850 2011-05-19  Jan Hubicka  <jh@suse.cz>
851
852         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
853         (GIMPLE_TYPE_PAIR_SIZE): New macro.
854         (type_pair_cache): New static var.
855         (lookup_type_pair): Use fixed sized custom hash; make inline.
856         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
857         calls of lookup_type_pair.
858         (print_gimple_types_stats): Remove cache stats.
859         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
860         and gtc_ob.
861
862 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
863
864         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
865         when TARGET_RDRND is active.
866         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
867         Generate dummy SImode target register when target is NULL.
868
869 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
870
871         * config/arm/arm-fpus.def: New.
872         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
873         arm-fpus.def.
874         * config/arm/arm-tables.opt: Regenerate.
875         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
876         (arm_option_override): Don't decode FPU name to string here.
877         * config/arm/arm.opt (mfpu=): Use Enum.
878         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
879         Update dependencies.
880
881 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
882
883         * collect2.c: Include diagnostic.h.
884         (fatal_perror, fatal, error, fancy_abort): Remove.
885         (main): Set progname.  Call xmalloc_set_program_name and
886         diagnostic_initialize.
887         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
888         scan_libraries, resolve_lib_name): Call fatal_error instead of
889         fatal and fatal_perror.
890         * collect2.h (error, fatal, fatal_perror): Don't declare.
891         * tlink.c: Include diagnostic-core.h.
892         (recompile_files): Call fatal_error instead of fatal_perror.
893         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
894         pretty-print.o and input.o.
895         (collect2.o, tlink.o): Update dependencies.
896
897 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
898
899         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
900
901 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
902
903         PR target/40483
904         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
905         COMDAT group syntax, both SPARC and x86 variants.
906         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
907         * configure: Regenerate.
908         * config/sol2.h (TARGET_SOLARIS): Define.
909         (PUSHSECTION_FORMAT): Remove.
910         (SECTION_NAME_FORMAT): Define.
911         * config/sol2.c: Include hashtab.h.
912         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
913         expansion, using SECTION_NAME_FORMAT.
914         (solaris_comdat_htab): New variable.
915         (struct comdat_entry): Define.
916         (comdat_hash): New function.
917         (comdat_eq): New function.
918         (solaris_elf_asm_comdat_section): New function.
919         (solaris_define_comdat_signature): New function.
920         (solaris_code_end): New function.
921         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
922         (solaris_code_end): Declare.
923         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
924         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
925         solaris_code_end.
926         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
927         Remove ATTRIBUTE_UNUSED.
928         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
929         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
930         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
931         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
932         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
933         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
934         (PUSHSECTION_FORMAT): Remove.
935         (SECTION_NAME_FORMAT): Redefine.
936
937 2011-05-19  Kai Tietz  <ktietz@redhat.com>
938
939         * tree-cfg.c (verify_gimple_assign_binary): Barf on
940         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
941         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
942
943 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
944             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
945
946         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
947
948 2011-05-19  Richard Guenther  <rguenther@suse.de>
949
950         PR middle-end/48985
951         * tree-object-size.c (addr_object_size): If the pointed-to
952         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
953
954 2011-05-19  Richard Guenther  <rguenther@suse.de>
955
956         * gimple.c (gimple_types_compatible_p_1): Compare names of
957         the types themselves.
958         (iterative_hash_gimple_type): And hash them that way.
959         (gimple_register_type_1): If we register a main variant properly
960         initialize the leader to ourselves.
961
962 2011-05-19  Tom de Vries  <tom@codesourcery.com>
963
964         PR target/45098
965         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
966         get_loop_invariant_expr_id.
967         (get_loop_invariant_expr_id): Use get_expr_id.
968         (parm_decl_cost): New function.
969         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
970         Improve bound cost estimation.  Use different inv_expr_id for elim and
971         express cases.
972
973 2011-05-19  Tom de Vries  <tom@codesourcery.com>
974
975         PR target/45098
976         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
977         cost_base.cost == 0.
978
979 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
980
981         PR target/49002
982         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
983         Properly handle load cast.
984
985 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
986
987         PR tree-optimization/49039
988         * tree-vrp.c (extract_range_from_binary_expr): For
989         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
990         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
991
992 2011-05-18  Tom de Vries  <tom@codesourcery.com>
993
994         PR target/45098
995         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
996
997 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
998
999         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1000         (*tls_global_dynamic_64): Ditto.
1001         (*tls_local_dynamic_base_32_gnu): Ditto.
1002         (*tls_local_dynamic_base_64): Ditto.
1003         (tls_initial_exec_64_sun): Ditto.
1004
1005 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
1006
1007         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1008         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1009         bf592-none.
1010         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1011         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1012         * config/bfin/bfin.c (bfin_cpus): Add bf592.
1013         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1014         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1015         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1016         * config/bfin/elf.h (LIB_SPEC): Add bf592.
1017
1018 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
1019
1020         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1021         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1022         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1023         target_thread_pointer, arm_structure_size_boundary, struct
1024         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1025         struct abi_name, arm_all_abis): Remove.
1026         (arm_option_override) Don't process most enumerated option values here.
1027         Don't process target_fpe_name here.  Work with integer not string for
1028         structure size boundary; use separate diagnostics for each case.
1029         * config/arm/arm.h (enum float_abi_type, enum
1030         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1031         to arm-opts.h.
1032         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1033         arm_structure_size_boundary): Remove.
1034         * config/arm/arm.opt (mabi=): Use Enum and Init.
1035         (arm_abi_type): New Enum and EnumValue entries.
1036         (mfloat-abi=): Use Enum and Init.
1037         (float_abi_type): New Enum and EnumValue entries.
1038         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1039         (mfp16-format=): Use Enum and Init.
1040         (arm_fp16_format_type): New Enum and EnumValue entries.
1041         (mstructure-size-boundary=): Use UInteger and Init.
1042         (mtp=): Use Enum and Init.
1043         (arm_tp_type): New Enum and EnumValue entries.
1044
1045 2011-05-18  Richard Guenther  <rguenther@suse.de>
1046
1047         PR tree-optimization/49018
1048         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1049         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1050         gimple_has_side_effects.
1051
1052 2011-05-18  Richard Guenther  <rguenther@suse.de>
1053
1054         * gimple.c (gimple_register_type_1): New function, split out from ...
1055         (gimple_register_type): ... here.  Avoid infinite recursion.
1056
1057 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1058
1059         PR tree-optimization/41881
1060         * tree-vectorizer.h (struct _loop_vec_info): Add new field
1061         reduction_chains along with a macro for its access.
1062         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1063         (destroy_loop_vec_info): Free reduction chains.
1064         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1065         (vect_is_slp_reduction): New function.
1066         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1067         (vect_create_epilog_for_reduction): Support SLP reduction chains.
1068         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1069         definition types for reduction chains.
1070         (vect_supported_load_permutation_p): Don't allow permutations for
1071         reduction chains.
1072         (vect_analyze_slp_instance): Support reduction chains.
1073         (vect_analyze_slp): Try to build SLP instance from reduction chains.
1074         (vect_get_constant_vectors):  Handle reduction chains.
1075         (vect_schedule_slp_instance): Mark the first statement of the
1076         reduction chain as reduction.
1077
1078 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
1079
1080         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1081         names for group elements access.
1082         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1083         reduction chains as well.  Remove data reference and interleaving
1084         related words from the fields names.
1085         * tree-vect-loop.c (vect_transform_loop): Use new names for group
1086         elements access.
1087         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1088         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1089         vect_update_interleaving_chain, vect_same_range_drs,
1090         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1091         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1092         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1093         vect_analyze_group_access, vect_analyze_data_ref_access,
1094         vect_create_data_ref_ptr, vect_transform_strided_load,
1095         vect_record_strided_load_vectors): Likewise.
1096         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1097         vect_model_load_cost, vectorizable_store, vectorizable_load,
1098         vect_remove_stores, new_stmt_vec_info): Likewise.
1099         * tree-vect-slp.c (vect_build_slp_tree,
1100         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1101
1102 2011-05-18  Richard Guenther  <rguenther@suse.de>
1103
1104         PR middle-end/48989
1105         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1106         operand verification.
1107         (verify_gimple_assign_binary): Likewise.
1108         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1109         to non-1-precision BOOLEAN_TYPEs.
1110
1111 2011-05-18  Tom de Vries  <tom@codesourcery.com>
1112
1113         PR target/45098
1114         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1115
1116 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
1117
1118         PR tree-optimization/49000
1119         * tree-ssa.c (execute_update_addresses_taken): Call
1120         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
1121         be rewritten and decl has been marked for renaming, reset
1122         the debug stmt.
1123
1124 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
1125
1126         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1127         enum_opts_set when testing if attributes have set -mfpmath=.
1128
1129 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
1130
1131         * config/mips/mips.c (mips_handle_option): Remove unused variable.
1132
1133 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1134
1135         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1136         info->entry with 0
1137         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
1138         id.transform_lang_insert_block with NULL.
1139
1140 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
1141
1142         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1143         (output_fp_compare): Change args 3 and 4 to bool.
1144         (ix86_expand_call): Change arg 6 to bool.
1145         (ix86_attr_length_immediate_default): Change arg 2 to bool.
1146         (ix86_attr_length_vex_default): Change arg 3 to bool.
1147         * config/i386/i386.md: Update all uses.
1148         * config/i386/i386.c: Ditto.
1149         (ix86_flags_dependent): Change return type to bool.
1150
1151 2011-05-17  Richard Guenther  <rguenther@suse.de>
1152
1153         * gimple.c (type_hash_pair_compare): Fix comparison.
1154
1155 2011-05-17  Richard Guenther  <rguenther@suse.de>
1156
1157         * gimple.c (iterative_hash_gimple_type): Simplify singleton
1158         case some more, fix final hash value of the non-singleton case.
1159
1160 2011-05-17  Richard Guenther  <rguenther@suse.de>
1161
1162         PR bootstrap/49013
1163         Revert
1164         2011-05-16  Richard Guenther  <rguenther@suse.de>
1165
1166         * gimple.c (gimple_types_compatible_p_1): Use names of the
1167         type itself, not its main variant.
1168         (iterative_hash_gimple_type): Likewise.
1169
1170 2011-05-17  Richard Guenther  <rguenther@suse.de>
1171
1172         * gimple.c (gimple_register_canonical_type): Use the main-variant
1173         leader for computing the canonical type.
1174
1175 2011-05-17  Nick Clifton  <nickc@redhat.com>
1176
1177         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1178         moves.
1179
1180         * config/rx/rx.md: Add peephole to remove redundant extensions
1181         after loads.
1182         (bitset_in_memory): Use rx_restricted_mem_operand.
1183         (bitinvert_in_memory): Likewise.
1184         (bitclr_in_memory): Likewise.
1185
1186 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
1187             Nick Clifton  <nickc@redhat.com>
1188
1189         * config/rx/rx.md: Add peepholes to match a register move followed
1190         by a comparison of the moved register.  Replace these with an
1191         addition of zero that does both actions in one instruction.
1192
1193 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
1194
1195         PR target/48986
1196         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1197         predicate to allow CONST_INT.
1198         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1199
1200 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1201
1202         * opts-common.c (opt_enum_arg_to_value): New.
1203         * opts.h (opt_enum_arg_to_value): Declare.
1204         * config/i386/i386.opt (fpmath): Remove.
1205         (mfpmath=): Use Enum, Init and Save.
1206         (fpmath_unit): New Enum and EnumValue entries.
1207         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1208         name for function fpmath state.
1209         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1210         * config/i386/i386.c: Include diagnostic.h.
1211         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
1212         (ix86_target_string): Take enum fpmath_unit value instead of string.
1213         (ix86_debug_options): Update call to ix86_target_string.
1214         (ix86_option_override_internal): Don't process fpmath strings here.
1215         (x86_function_specific_save, ix86_function_specific_restore):
1216         Don't handle fpmath state specially.
1217         (ix86_function_specific_print): Pass fpmath state to
1218         ix86_target_string instead of printing in this function.
1219         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1220         Handle enum attributes.
1221         (IX86_ATTR_ENUM, ix86_opt_enum): New.
1222         (ix86_valid_target_attribute_tree): Update option_strings
1223         handling.  Handle fpmath as enum option.
1224         (ix86_can_inline_p): Update field names for function fpmath state.
1225         (ix86_expand_builtin): Update call to ix86_target_string.
1226         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1227         (ix86_fpmath): Remove.
1228         * config/i386/t-i386 (i386.o): Update dependencies.
1229
1230 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
1231
1232         PR preprocessor/48677
1233         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1234         from decoded_options[0], not from itself.
1235
1236 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
1237
1238         * config/i386/constraints.md (z): New constraint.
1239         * config/i386/i386.c (c): New mode attribute.
1240         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1241         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1242         constraint for operand 0.
1243         (*call_vzeroupper): Ditto.
1244         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
1245         (*call_rex64_ms_sysv_vzeroupper): Ditto.
1246         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1247         Use "lzm" constraint for operand 0.
1248         (*call_pop_vzeroupper): Ditto.
1249         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1250         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
1251         constraint for operand 0.
1252         (*sibcall_vzeroupper): Ditto.
1253         (*sibcall_rex64_ms_sysv): Ditto.
1254         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1255         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1256         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
1257         (*sibcall_pop_vzeroupper): Ditto.
1258         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1259         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1260         mode iterator.  Use "<c>zm" constraint for operand 1.
1261         (*call_value_vzeroupper): Ditto.
1262         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
1263         for operand 1.
1264         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1265         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1266         *call_value_pop_1.  Use "lzm" constraint for operand 1.
1267         (*call_value_pop_vzeroupper): Ditto.
1268         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1269         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1270         mode iterator.  Use "Uz" constraint for operand 1.
1271         (*sibcall_value_vzeroupper): Ditto.
1272         (*sibcall_value_rex64_ms_sysv): Ditto.
1273         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1274         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
1275         constraint for operand 1.
1276         (*sibcall_value_pop_vzeroupper): Ditto.
1277         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1278         and "z" constraint for operand 2.
1279         (*tls_global_dynamic_32_gnu): Ditto.
1280         (*tls_local_dynamic_base_32_gnu): Ditto.
1281         (*tls_local_dynamic_base_64): Ditto.
1282         (*tls_local_dynamic_32_once): Ditto.
1283         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1284         Update all callers.
1285         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1286
1287 2011-05-16  Richard Guenther  <rguenther@suse.de>
1288
1289         * gimple.c (gimple_types_compatible_p_1): Use names of the
1290         type itself, not its main variant.
1291         (iterative_hash_gimple_type): Likewise.
1292
1293 2011-05-16  Richard Guenther  <rguenther@suse.de>
1294
1295         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1296         always visit pointer target and function result and argument types.
1297
1298 2011-05-16  Jason Merrill  <jason@redhat.com>
1299
1300         PR c++/48999
1301         * tree-inline.c (copy_statement_list): Put back recursion.
1302
1303 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1304
1305         PR target/27663
1306         PR target/41076
1307         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1308         * config/avr/avr.md ("*ior<mode>qi.byte0",
1309         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1310
1311 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1312
1313         PR target/45099
1314         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1315         register is needed for a function argument.
1316
1317 2011-05-16  Richard Guenther  <rguenther@suse.de>
1318
1319         * gimple.c (struct type_hash_pair): New type.
1320         (type_hash_pair_compare): New function.
1321         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1322
1323 2011-05-16  Revital Eres  <revital.eres@linaro.org>
1324
1325         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1326
1327 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1328
1329         * config/i386/i386.md (floating point move splitters): Fix
1330         usage of standard_80387_constant_p.
1331         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1332
1333 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1334
1335         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1336
1337 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1338
1339         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1340         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1341         (tree_ssa_lim_finalize): Likewise.
1342
1343 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
1344
1345         * config/i386/constraint.md (Yd, Yx): New register constraints.
1346         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
1347         Yd conditional register constraint.
1348         (*movtf_internal): Use standard_sse_constant_opcode.
1349         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
1350         Yx conditional register constraint.
1351         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
1352         Yd conditional register constraint.  Use standard_sse_constant_p to
1353         check for valid SSE constants and call standard_sse_constant_opcode to
1354         output SSE insn.
1355         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1356         constants and call standard_sse_constant_opcode to output SSE insn.
1357         * config/i386/i386.c (ix86_option_ovverride_internal): Set
1358         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
1359         optimize_size is set.
1360         (standard_sse_constant_opcode): Output conditional AVX insn templates.
1361
1362 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1363
1364         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1365
1366 2011-05-13  Martin Jambor  <mjambor@suse.cz>
1367
1368         * ipa-prop.c (ipa_cst_from_jfunc): New function.
1369         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1370         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1371         (evaluate_conditions_for_ipcp_clone): Removed.
1372         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1373         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1374         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1375
1376 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1377
1378         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1379         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1380         lieu of MAY_HAVE_DEBUG_STMTS.
1381         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1382         debug statements if !MAY_HAVE_DEBUG_STMTS.
1383
1384 2011-05-13  Martin Thuresson  <martint@google.com>
1385
1386         PR gcov-profile/47793
1387         * libgcov.c (gcov_exit): Support relative profile paths.
1388         * doc/invoke.texi (-fprofile-dir): Update for above change.
1389
1390 2011-05-13  Richard Guenther  <rguenther@suse.de>
1391
1392         * gimple.c (gimple_canonical_types_compatible_p): Do not use
1393         type-pair caching, do not compare hashes.
1394
1395 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
1396
1397         PR middle-end/48965
1398         * tree-cfg.c (edge_to_cases_cleanup): Return true.
1399         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1400
1401 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1402
1403         * gimplify.c (gimplify_expr): Make sure operand is boolified.
1404         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1405         compatible type for TRUTH_NOT_EXPR.
1406
1407 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1408
1409         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
1410         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
1411         can_create_pseudo_p ().
1412
1413 2011-05-13  Richard Guenther  <rguenther@suse.de>
1414
1415         PR lto/48978
1416         * gimple.c (iterative_hash_gimple_type): Revert change in
1417         pointer target and function result and argument hashing.
1418
1419 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
1420
1421         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1422         (*movxf_internal_nointeger): Ditto.
1423         (*movdf_internal_rex64): Ditto.
1424         (*movdf_internal): Ditto.
1425         (*movdf_internal_nointeger): Ditto.
1426         (*movsf_internal): Ditto.
1427         (sincos splitters): Use can_create_pseudo ().
1428
1429 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
1430
1431         * config/i386/i386-opts.h: New.
1432         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1433         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1434         ix86_section_threshold): Remove.
1435         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
1436         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1437         OPT_mbranch_cost_.
1438         (ix86_option_override_internal): Don't decode strings for options
1439         other than -march=, -mtune= and -mfpmath=.  Don't allow for
1440         __attribute__ uses in remaining diagnostics for options with
1441         string arguments.  Don't check for integer arguments being negative.
1442         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
1443         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
1444         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1445         ix86_branch_cost, ix86_section_threshold): Remove.
1446         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1447         HeaderInclude.
1448         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1449         but not Var.
1450         (masm=): Use Enum and Init.
1451         (asm_dialect): New Enum and EnumValue entries.
1452         (mbranch-cost=): Use UInteger.
1453         (mlarge-data-threshold=): Use UInteger and Init.
1454         (mcmodel=): Use Enum and Init.
1455         (cmodel): New Enum and EnumValue entries.
1456         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1457         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1458         mregparm=): Use UInteger.
1459         (mstringop-strategy=): Use Enum and Init.
1460         (stringop_alg): New Enum and EnumValue entries.
1461         (mtls-dialect=): Use Enum and Init.
1462         (tls_dialect): New Enum and EnumValue entries.
1463         (mabi=): Use Enum and Init.
1464         (calling_abi): New Enum and EnumValue entries.
1465         (mveclibabi=): Use Enum and Init.
1466         (ix86_veclibabi): New Enum and EnumValue entries.
1467
1468 2011-05-13  Nick Clifton  <nickc@redhat.com>
1469
1470         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1471         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1472
1473 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1474
1475         PR middle-end/48984
1476         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1477         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1478         (gimple_boolify): Check for cast for boolean_type_node instead for
1479         BOOLEAN_TYPE.
1480
1481 2011-05-13  Richard Guenther  <rguenther@suse.de>
1482
1483         PR tree-optimization/48172
1484         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1485         multiplying by number of iterations for equal step.
1486         (vect_create_cond_for_alias_checks): Likewise.
1487
1488 2011-05-13  Andreas Schwab  <schwab@redhat.com>
1489
1490         * configure.ac: Use AS_HELP_STRING throughout.
1491         * configure: Regenerate.
1492
1493 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1494
1495         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1496         (ix86_emit_restore_regs_using_mov): Likewise.
1497         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1498
1499 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
1500
1501         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1502         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1503         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1504         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1505         RTX_OK_FOR_OLO10_P): ...here.
1506         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1507         SYMBOLIC_CONST.
1508
1509 2011-05-12  Kai Tietz  <ktietz@redhat.com>
1510
1511         * gimplify.c (gimple_boolify): Re-boolify expression
1512         arguments even if expression type is of kind BOOLEAN_TYPE.
1513         (gimplify_boolean_expr): Removed.
1514         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1515         and XOR. Additional take care that we keep expression's type.
1516         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1517         of TRUTH_AND|OR|XOR_EXPR.
1518
1519 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1520
1521         PR tree-optimization/48975
1522         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1523         on all bbs here and free and clear ifc_bbs at the end.
1524
1525 2011-05-12  Richard Guenther  <rguenther@suse.de>
1526
1527         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1528         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
1529         until after simple checks.
1530         (gimple_types_compatible_p): Likewise.
1531         (iterative_hash_gimple_type): Always hash pointer targets
1532         and function return and argument types.
1533         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1534         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
1535         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1536         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
1537         completely in the simple compare section.
1538         (gimple_register_canonical_type): Query the cache again after
1539         registering.
1540
1541 2011-05-12  Richard Guenther  <rguenther@suse.de>
1542
1543         PR tree-optimization/48172
1544         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1545         the number of iterations from the segment size calculation.
1546         (vect_create_cond_for_alias_checks): Adjust.
1547
1548 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1549
1550         PR debug/48967
1551         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1552         if validate_subreg fails.
1553
1554 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
1555
1556         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1557         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1558         early.
1559
1560 2011-05-12  DJ Delorie  <dj@redhat.com>
1561
1562         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1563         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1564         created builtin into rx_builtins array.
1565         (rx_builtin_decl): New function.
1566         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
1567
1568 2011-05-12  DJ Delorie  <dj@redhat.com>
1569             Nick Clifton  <nickc@redhat.com>
1570
1571         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1572         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1573         (rx_is_legitimate_address): Add pre-decrement and post-increment
1574         addressing in HImode and QImode.  Fix test for out of range
1575         REG+INT addressing.
1576         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
1577         (rx_align_for_label): Test label before extracting its usage count.
1578         (rx_adjust_insn_lengths): Fix selection of insn codes.
1579         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
1580
1581 2011-05-11  Jason Merrill  <jason@redhat.com>
1582
1583         * tree.c (type_hash_canon): Use struct tree_type_non_common.
1584
1585 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1586
1587         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1588         reindent the subsequent block.
1589
1590 2011-05-11  Satoru Takabayashi  <satorux@google.com>
1591             Paul Pluzhnikov  <ppluzhnikov@google.com>
1592
1593         * doc/install.texi (Configuration): Document --with-linker-hash-style.
1594         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1595         * config.in: Add LINKER_HASH_STYLE.
1596         * configure.ac: Add --with-linker-hash-style.
1597         * configure: Regenerate.
1598
1599 2011-05-11  Richard Guenther  <rguenther@suse.de>
1600
1601         PR middle-end/48964
1602         * gimple.c (iterative_hash_canonical_type): Fix typo.
1603
1604 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
1605
1606         * config/i386/i386.c (legitimize_tls_address)
1607         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1608         expanders directly for TARGET_GNU2_TLS.  Determine pic and
1609         __tls_get_addr symbol reference here.  Update call to
1610         gen_tls_global_dynamic_{32,64} for added arguments.
1611         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1612         expanders directly for TARGET_GNU2_TLS.  Determine
1613         __tls_get_addr symbol reference here.  Update call to
1614         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
1615         unique UNSPEC REG_EQUIV to libcall block.
1616         (ix86_tls_get_addr): Declare static.
1617         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1618         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1619         Do not determine pic and __tls_get_addr symbol reference here. Do not
1620         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1621         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1622         (tls_global_dynamic_64): Add operand 2.  Do not determine
1623         __tls_get_addr symbol reference here.  Do not call
1624         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1625         (tls_local_dynamic_base64): Ditto for operand 1.
1626
1627 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1628
1629         * function.c (expand_function_start): Initialize stack_check_probe_note
1630         only if the generic stack checking mechanism is used.
1631
1632 2011-05-11  Richard Guenther  <rguenther@suse.de>
1633
1634         PR tree-optimization/15256
1635         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1636         (A & B) | C, combine (A op CST1) op CST2.
1637         (tree_ssa_forward_propagate_single_use_vars): Only bother to
1638         visit assigns that have uses.
1639
1640 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
1641
1642         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
1643         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1644         (unpack_ts_type_common_value_fields): ...this.  Update comment.
1645         (unpack_value_fields): Adjust for renaming.
1646         (lto_input_ts_type_tree_pointers): Split into...
1647         (lto_input_ts_type_common_tree_pointer): ...this and...
1648         (lto_input_ts_type_non_common_tree_pointers): ...this.
1649         (lto_input_tree_pointers): Adjust for above split.
1650         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1651         (pack_ts_type_common_value_fields): ...this.  Update comment.
1652         (lto_output_ts_type_tree_pointers): Split into...
1653         (lto_output_ts_type_common_tree_pointers): ...this and...
1654         (lto_output_ts_type_non_common_tree_pointers): ...this.
1655         (lto_output_tree_pointers): Adjust for above split.
1656         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1657         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1658         * stor-layout.c (vector_type_mode): Adjust location of mode field.
1659         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1660         Define.
1661         (struct tree_type): Split into...
1662         (struct tree_type_common: ...this and...
1663         (struct tree_type_with_lang_specific): ...this and...
1664         (struct tree_type_non_common): ...this.  Adjust accessor macros
1665         accordingly.
1666         (TYPE_VALUES_RAW): Define.
1667         (union tree_node): Update for above changes.
1668         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
1669         TS_TYPE_NON_COMMON.
1670         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
1671         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
1672         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
1673         * treestructu.def (TS_TYPE): Remove.
1674         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
1675         Define.
1676
1677 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
1678
1679         PR debug/48159
1680         * tree-ssa.c (reset_debug_uses): New function.
1681         * tree-flow.h (reset_debug_uses): New prototype.
1682         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1683         * tree-loop-distribution.c (generate_loops_for_partition): Call
1684         reset_debug_uses on the stmts that will be removed.  Keep around
1685         all debug stmts, don't count them as bits in partition bitmap.
1686         (generate_builtin): Don't count debug stmts or labels as bits in
1687         partition bitmap.
1688
1689 2011-05-11  Richard Guenther  <rguenther@suse.de>
1690
1691         * gimple.c (gimple_type_hash_1): Merge with ...
1692         (gimple_type_hash): ... this.
1693         (gtc_visit): Remove mode parameter and simplify accordingly.
1694         (gimple_types_compatible_p_1): Likewise.
1695         (gimple_types_compatible_p): Likewise.
1696         (iterative_hash_gimple_type): Likewise.
1697         (visit): Likewise.
1698         (gimple_type_eq): Adjust.
1699
1700 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1701
1702         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1703         enters the branch create an anti edge in the opposite direction
1704         to prevent the creation of reg-moves.
1705         * modulo-sched.c: Adjust comment to reflect the fact we are
1706         scheduling closing branch.
1707         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1708         (stage_count): New field in struct partial_schedule.
1709         (calculate_stage_count): New function.
1710         (normalize_sched_times): Rename to reset_sched_times and handle
1711         incrementing the sched time of the nodes by a constant value
1712         passed as parameter.
1713         (duplicate_insns_of_cycles): Skip closing branch.
1714         (sms_schedule_by_order): Schedule closing branch.
1715         (ps_insn_find_column): Handle closing branch.
1716         (sms_schedule): Call reset_sched_times and adjust the code to
1717         support scheduling of the closing branch.
1718         (ps_insert_empty_row): Update calls to normalize_sched_times
1719         and rotate_partial_schedule functions.
1720
1721 2011-05-11  Richard Guenther  <rguenther@suse.de>
1722
1723         PR middle-end/48953
1724         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1725
1726 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
1727
1728         * opts.c (finish_options): Move warning settings from process_options.
1729         * toplev.c (process_options): Move warning settings to finish_options.
1730
1731 2011-05-11  Richard Guenther  <rguenther@suse.de>
1732
1733         PR tree-optimization/18041
1734         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1735         (simplify_bitwise_binary): ... this.  Handle operand conversions
1736         by applying them to the result instead.
1737         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
1738
1739 2011-05-11  Richard Guenther  <rguenther@suse.de>
1740
1741         * gimple.c (gimple_canonical_types_compatible_p): Split out
1742         from gimple_types_compatible_p and friends.  Do not recurse
1743         to pointed-to types.
1744         (gimple_canonical_type_eq): Use it.
1745         (iterative_hash_canonical_type): Split out from
1746         iterative_hash_gimple_type and friends.  Do not recurse
1747         to pointed-to types.
1748         (gimple_canonical_type_hash): Use it, allocate the hash here.
1749
1750 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1751
1752         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1753         recognizing doloop.
1754
1755 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1756
1757         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1758         instead of PREV_INSN.
1759
1760 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1761
1762         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1763         * loop-doloop.c (doloop_condition_get): Likewise.
1764         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1765         (doloop_end): New.
1766         * config/arm/arm.md (*addsi3_compare0): Remove "*".
1767
1768 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
1769
1770         * tree.def (CASE_LABEL_EXPR): Add an operand.
1771         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1772
1773 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1774
1775         * c-decl.c (c_override_global_bindings_to_false): Remove.
1776         (global_bindings_p): Don't check
1777         c_override_global_bindings_to_false.
1778         * c-tree.h (c_override_global_bindings_to_false): Remove.
1779         * c-typeck.c (composite_type): Don't set
1780         c_override_global_bindings_to_false.
1781
1782 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
1783
1784         PR target/48857, 48495
1785         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1786         (VSX_MODE): Ditto.
1787         (VSX_MOVE_MODE): Ditto.
1788         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1789         VSX vector types.  Add V2DImode.
1790         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1791         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1792         (MODES_TIEABLE_P): Ditto.
1793
1794         * config/rs6000/rs6000.c (rs6000_emit_move): Use
1795         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1796         VSX_VECTOR_MODE.
1797         (init_cumulative_args): Ditto.
1798         (rs6000_function_arg_boundary): Ditto.
1799         (rs6000_function_arg_advance_1): Ditto.
1800         (rs6000_function_arg): Ditto.
1801         (rs6000_function_ok_for_sibcall): Ditto.
1802         (emit_frame_save): Ditto.
1803         (rs6000_function_value): Ditto.
1804         (rs6000_libcall_value): Ditto.
1805
1806 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1807
1808         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1809         i386/darwin-lib.h to $libgcc_tm_file.
1810         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1811
1812 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1813
1814         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1815
1816 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1817
1818         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
1819         * config/rs6000/rs6000-tables.opt: New file (generated).
1820         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1821         rs6000/rs6000-tables.opt to extra_options.
1822         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1823         * config/rs6000/rs6000.c (rs6000_select): Remove.
1824         (processor_target_table): Move contents to rs6000-cpus.def.
1825         (darwin_rs6000_override_options): Check
1826         global_options_set.x_rs6000_cpu_index instead of
1827         rs6000_select[1].string.
1828         (rs6000_option_override_internal): Likewise.
1829         (rs6000_handle_option): Don't assert that global structures are in
1830         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
1831         (rs6000_default_cpu): New variable.
1832         (rs6000_file_start): Set it instead of local default_cpu.  Check
1833         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1834         global_options_set.x_rs6000_tune_index instead of rs6000_select.
1835         (rs6000_darwin_file_start): Check rs6000_default_cpu and
1836         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1837         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1838         rs6000_select): Remove.
1839         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1840         Remove.
1841         (mcpu=, mtune=): Use Var, Init, Enum and Save.
1842         * config/rs6000/t-rs6000
1843         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1844         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1845         global_options_set.x_rs6000_cpu_index instead of
1846         rs6000_select[1].string.
1847         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1848         global_options_set.x_rs6000_cpu_index instead of
1849         rs6000_select[1].string.
1850
1851 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1852
1853         * config.gcc (libgcc_tm_file): Define instead of including files
1854         from ../../libgcc/config/ in tm_file.
1855         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
1856         * configure: Regenerate.
1857         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1858         libgcc_tm.h, cs-libgcc_tm.h): New.
1859         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1860         (clean): Remove libgcc_tm.h.
1861         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1862         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1863         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1864
1865 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
1866
1867         PR target/48896
1868         * config/avr/avr.c (avr_ret_register): Return unsigned int
1869         instead of int.
1870         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1871         it to avr_libcall_value.
1872         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1873         expand_expr.
1874         (avr_expand_binop_builtin): Ditto.
1875         (avr_expand_unop_builtin): Ditto.
1876
1877 2011-05-10  DJ Delorie  <dj@redhat.com>
1878
1879         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1880         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1881         * config/rx/rx.c (rx_align_for_label): Add label and
1882         uses_threshold parameters.  Do not align when the label is not
1883         used enough.
1884         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1885
1886 2011-05-10  Richard Guenther  <rguenther@suse.de>
1887
1888         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1889         a series of conversions and apply foldings similar to what
1890         fold-const does.
1891         (tree_ssa_forward_propagate_single_use_vars): Call it.
1892
1893 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
1894
1895         PR tree-optimization/48611
1896         PR tree-optimization/48794
1897         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1898         referenced from RESX or EH_DISPATCH arguments.
1899
1900         PR debug/48928
1901         * dfp.c (decimal_to_decnumber): Handle conversion from
1902         dconst{1,2,m1,half}.
1903
1904 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1905
1906         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1907         for !flag_prefer_avx128.
1908         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1909
1910 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1911
1912         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1913         (fold_ternary_loc): Use expr_location_or.
1914
1915 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1916
1917         PR debug/48853
1918         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1919         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1920         Pmode and mem_mode is not VOIDmode.
1921
1922 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
1923
1924         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1925         TYPE_QUAL_RESTRICT): Convert to enum.
1926
1927 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1928
1929         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1930         (const_pow2_1_to_8_operand): Ditto.
1931         (const_pow2_1_to_128_operand): Ditto.
1932         (const_pow2_1_to_32768_operand): Ditto.
1933         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1934         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
1935         in insn constraint to check integer value of operand 3.
1936         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1937
1938         (PINSR_MODE): New mode iterator.
1939         (sse2p4_1): New mode attribute.
1940         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1941         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1942         iterator.  Use const_int_operand instead of
1943         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
1944         exact_log2 in insn constraint to check integer value of operand 3.
1945
1946 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1947
1948         * config/i386/sse.md (blendbits): Remove mode attribute.
1949         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1950         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1951         Check integer value of operand 3 in insn constraint.
1952
1953 2011-05-09  Richard Guenther  <rguenther@suse.de>
1954
1955         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1956         for diagnostics.
1957         (lto_symtab_merge): Likewise.  Do not register types here.
1958         (lto_symtab_merge_decls_2): Likewise.
1959         (lto_symtab_merge_decls_1): Likewise.
1960         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1961         * gimple.c (enum gtc_mode): Declare.
1962         (gimple_types_compatible_p): Make static.
1963
1964 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1965
1966         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1967         temporary register to match Pmode.
1968
1969 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1970
1971         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1972         and *vec_concatv4si_1_avx.
1973
1974 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1975
1976         PR rtl-optimization/48927
1977         * ira-conflicts.c (commutative_constraint_p): Use
1978         recog_data.alternative_enabled_p to disable alternatives where
1979         "enabled" attribute is false.
1980         (get_dup_num): Ditto.
1981         * ira-lives.c (single_reg_class): Ditto.
1982         (ira_implicitly_set_insn_hard_regs): Ditto.
1983
1984 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1985
1986         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1987         (dataflow_set_preserve_mem_locs): Likewise.
1988
1989 2011-05-09  Philipp Thomas  <pth@suse.de>
1990
1991         * config/mep/mep.c (mep_validate_vliw): Syntax description
1992         should not be translated.
1993
1994 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
1995
1996         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1997         * config/mips/mips-tables.opt: New file (generated).
1998         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
1999         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2000         MIPS_ARCH_OPTION_NATIVE): Define.
2001         * config/mips/mips.c (mips_cpu_info_table): Move contents to
2002         mips-cpus.def.
2003         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2004         mips_parse_cpu): Remove.
2005         (mips_cpu_info_from_opt, mips_default_arch): New.
2006         (mips_handle_option): Don't assert that global structures are in
2007         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2008         (mips_option_override): Use new variables and functions to set
2009         state of these options.  Use strcmp to check for individual CPU names.
2010         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2011         definition.
2012         * config/mips/mips.opt (march=): Use ToLower and Enum.
2013         (mips): Use ToLower, Enum and Var.
2014         (mtune=): Use ToLower and Enum.
2015         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2016
2017 2011-05-08  Jan Hubicka  <jh@suse.cz>
2018
2019         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2020         Arrange type pairs to be UID ordered.
2021         (gimple_lookup_type_leader): Make inline.
2022
2023 2011-05-09  Nick Clifton  <nickc@redhat.com>
2024
2025         PR target/48899
2026         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2027         PROCESSOR_DEFAULT.
2028
2029         PR target/48897
2030         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2031         variable 's'.
2032
2033 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
2034
2035         * combine.c (simplify_comparison): Abstract out parts into...
2036         (simplify_compare_const): ... new function.
2037         (try_combine): Generalize parallel arithmetic/compare combining
2038         to call simplify_compare_const() and CANONICALIZE_COMPARE().
2039
2040 2011-05-08  Jan Hubicka  <jh@suse.cz>
2041
2042         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2043         (cgraph_create_virtual_clone): Call hooks once virtual clone
2044         is finished.
2045         * cgraph.h (cgraph_clone_node): Update prototype.
2046         * ipa-cp.c (ipcp_estimate_growth): Use
2047         estimate_ipcp_clone_size_and_time.
2048         * ipa-inline-transform.c (clone_inlined_nodes): Update.
2049         * lto-cgraph.c (input_node): Update.
2050         * ipa-inline.c (recursive_inlining): Update.
2051         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2052         (evaluate_conditions_for_known_args): Break out from ...
2053         (evaluate_conditions_for_edge): ... here.
2054         (evaluate_conditions_for_ipcp_clone): New function.
2055         (inline_node_duplication_hook): Update clone summary based
2056         on parameter map.
2057         (estimate_callee_size_and_time): Rename to ...
2058         (estimate_node_size_and_time): take NODE instead of EDGE;
2059         take POSSIBLE_TRUTHS as argument.
2060         (estimate_callee_size_and_time): Update.
2061         (estimate_ipcp_clone_size_and_time): New function.
2062         (do_estimate_edge_time): Update.
2063
2064 2011-05-08  Richard Guenther  <rguenther@suse.de>
2065
2066         PR middle-end/48908
2067         PR middle-end/48905
2068         * expmed.c (expand_shift_1): Compute adjusted constant shift
2069         amount manually.
2070
2071 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2072
2073         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2074
2075 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2076
2077         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2078
2079 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
2080
2081         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2082
2083 2011-05-07  Jan Hubicka  <jh@suse.cz>
2084
2085         * ipa-inline-transform.c (inline_call): Account when program size
2086         decreases.
2087         * ipa-inline.c (relative_time_benefit): New function.
2088         (edge_badness): Reorganize to be power 2 based; fix thinko when
2089         computing badness for negative growth; update comments to match
2090         reality; better dumps.
2091
2092 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
2093
2094         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2095         type to bool and adjust comment.
2096         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2097         (fold_mathfn_compare): Remove calls to global_bindings_p.
2098         (fold_inf_compare): Likewise.
2099         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2100         * c-tree.h (global_bindings_p): Adjust prototype.
2101         * c-decl.c (global_bindings_p): Return bool and simplify.
2102
2103 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
2104
2105         PR tree-optimization/48837
2106         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2107         when accumulator transformation is performed.
2108
2109 2011-05-06  Jan Hubicka  <jh@suse.cz>
2110
2111         * i386.h (ix86_tune_indices): Add
2112         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2113         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2114         * i386.c (initial_ix86_tune_features): Add
2115         X86_SOFTARE_PREFETCHING_BENEFICIAL.
2116         (software_prefetching_beneficial_p): Remove predicate.
2117         (ix86_option_override_internal): Use new macro.
2118
2119 2011-05-06  Jan Hubicka  <jh@suse.cz>
2120
2121         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2122
2123 2011-05-06  Jan Hubicka  <jh@suse.cz>
2124
2125         * cgraph.c (cgraph_add_thunk): Create real function node instead
2126         of alias node; finalize it and mark needed/reachale; arrange visibility
2127         to be right and add it into the corresponding same comdat group list.
2128         (dump_cgraph_node): Dump thunks.
2129         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2130         cgraph_function_with_gimple_body_p,
2131         cgraph_first_function_with_gimple_body,
2132         cgraph_next_function_with_gimple_body): New functions.
2133         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2134         New macros.
2135         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2136         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2137         * cgraphunit.c (cgraph_finalize_function): Only look into possible
2138         devirtualization when optimizing.
2139         (verify_cgraph_node): Verify thunks.
2140         (cgraph_analyze_function): Analyze thunks.
2141         (cgraph_mark_functions_to_output): Output thunks only in combination
2142         with function they are assigned to.
2143         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2144         alias into normal node.
2145         (assemble_thunks): New functoin.
2146         (cgraph_expand_function): Use it.
2147         * lto-cgraph.c (lto_output_node): Stream thunks.
2148         (input_overwrite_node): Stream in thunks.
2149         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2150         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2151         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2152         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2153         (inline_analyze_function): Do not care about thunk jump functions.
2154         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
2155         * ipa-prop.c (ipa_prop_write_jump_functions): Use
2156         cgraph_function_with_gimple_body_p.
2157         * passes.c (do_per_function_toporder): Use
2158         cgraph_function_with_gimple_body_p.
2159         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2160         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2161         (function_called_by_processed_nodes_p): Likewise.
2162
2163 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2164
2165         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2166         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2167         entries.
2168         (mabi=): Replace with separate entries for mabi=altivec,
2169         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2170         mabi=ieeelongdouble and mabi=ibmlongdouble.
2171         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2172         check for -mabi=spe without SPE ABI support here.
2173         (rs6000_handle_option): Replace OPT_mabi_ handling with
2174         OPT_mabi_altivec and OPT_mabi_spe handling.
2175
2176 2011-05-06  Cary Coutant  <ccoutant@google.com>
2177
2178         * dwarf2out.c (contains_subprogram_definition): New function.
2179         (should_move_die_to_comdat): Call it.
2180
2181 2011-05-06  Jeff Law  <law@redhat.com>
2182
2183         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2184         remove_ctrl_stmt_and_useless_edges.
2185         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2186         (fixup_template_block, thread_single_edge): Likewise.
2187         (mark_threaded_blocks): Use THREAD_TARGET.
2188
2189 2011-05-06  Alan Modra  <amodra@gmail.com>
2190
2191         PR target/48900
2192         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2193         const0_rtx as the arg to the dummy __tls_get_addr libcall.
2194
2195 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2196
2197         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2198         constraint modifier to "r".
2199
2200 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
2201
2202         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2203         fall through for OPT_mcmodel_.
2204
2205 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2206
2207         * config/s390/s390.c (s390_asm_trampoline_template): Comment
2208         instruction sizes.
2209         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
2210
2211 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2212
2213         PR target/47930
2214         * config/arm/arm.opt (marm): Document it.
2215         (mthumb): Reject negative variant.
2216
2217 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
2218
2219         PR target/48898
2220         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2221         Fix typo in "ccvt" variable name.
2222
2223 2011-05-06  Tristan Gingold  <gingold@adacore.com>
2224
2225         PR target/48895
2226         * config/vms/vms-ar.c (main): Remove cwd variable.
2227
2228 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
2229
2230         PR debug/48902
2231         * var-tracking.c (prepare_call_arguments): Move else before #endif.
2232
2233 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
2234
2235         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2236         * gimplify.c (gimplify_switch_expr): Likewise.
2237         * omp-low.c (expand_omp_sections): Likewise.
2238         * tree-eh.c (lower_try_finally_switch): Likewise.
2239         (lower_eh_dispatch): Likewise.
2240         * tree.h (build_case_label): Declare.
2241         * tree.c (build_case_label): Define.
2242
2243 2011-05-05  Jason Merrill  <jason@redhat.com>
2244
2245         PR c++/40975
2246         * tree-inline.c (copy_tree_r): Use copy_statement_list.
2247         (copy_statement_list): Don't recurse.
2248         * stor-layout.c (copy_self_referential_tree_r): Don't allow
2249         STATEMENT_LIST.
2250
2251 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2252
2253         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2254         through from -mfpu= handling.
2255         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2256
2257 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
2258
2259         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2260         POST_MODIFY.
2261
2262 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
2263
2264         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2265         for 11.31.
2266         (hppa[12]*-*-hpux11*): Ditto.
2267         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2268         * config/ia64/hpux-unix2003.h: New.
2269         * config/pa/pa-hpux1131.opt: New.
2270         * config/pa/pa-hpux1131.h: New.
2271         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2272         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2273         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2274
2275 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2276
2277         PR debug/48853
2278         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2279         instead of mode as 3rd argument to recursive call.
2280         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2281         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2282         VOIDmode.
2283         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2284         don't give up if mode is Pmode and mem_mode is not VOIDmode.
2285         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2286         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2287
2288 2011-05-05  Julian Brown  <julian@codesourcery.com>
2289
2290         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2291         parenthesis in D-register case.
2292
2293 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2294
2295         * opt-functions.awk (var_type_struct): Handle Enum options.
2296         * optc-gen.awk: Don't check range of variables of character type.
2297         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2298         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2299         rs6000_sdata_name, rs6000_explicit_options): Remove.
2300         (rs6000_option_override_internal): Check for -malign-power here.
2301         Use global_options_set instead of rs6000_explicit_options.
2302         (rs6000_parse_fpu_option): Remove.
2303         (rs6000_handle_option): Access variables via opts and opts_set
2304         pointers.  Use error_at and warning_at.  Add fall-through
2305         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2306         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2307         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2308         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2309         here.  Don't use rs6000_parse_fpu_option.
2310         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2311         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2312         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2313         (mrecip=): Use Var.
2314         (mspe): Use Var and Save.
2315         (mtraceback=): Use Enum and Var.
2316         (rs6000_traceback_type): New Enum and EnumValue entries.
2317         (mfloat-gprs=): Use Enum, Var and Save.
2318         (rs6000_float_gprs): New Enum and EnumValue entries.
2319         (mlong-double-): use Var and Save.
2320         (msched-costly-dep=, minsert-sched-nops=): Use Var.
2321         (malign-): Use Enum and Var.
2322         (rs6000_alignment_flags): New Enum and EnumValue entries.
2323         (mfpu=): Use Enum.
2324         (fpu_type_t): New Enum and EnumValue entries.
2325         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2326         global_options_set instead of rs6000_explicit_options.
2327         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2328         global_options_set instead of rs6000_explicit_options.
2329         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2330         global_options_set instead of rs6000_explicit_options.
2331         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2332         global_options_set instead of rs6000_explicit_options.
2333         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2334         global_options_set instead of rs6000_explicit_options.
2335         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2336         global_options_set instead of rs6000_explicit_options.
2337         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2338         definition.
2339         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2340         global_options_set instead of rs6000_explicit_options.
2341         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2342         (rs6000_cmodel): New Enum and EnumValue entries.
2343         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2344         global_options_set instead of rs6000_explicit_options.
2345         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2346         (mtls-size=): Use Enum and Var.
2347         (rs6000_tls_size): New Enum and EnumValue entries.
2348
2349 2011-05-05  Michael Matz  <matz@suse.de>
2350
2351         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2352         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2353         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2354         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2355         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2356         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2357         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2358         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2359         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2360         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2361         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2362         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2363         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2364         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2365         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2366         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2367
2368 2011-05-05  Richard Guenther  <rguenther@suse.de>
2369
2370         * expmed.c (expand_variable_shift): Rename to ...
2371         (expand_shift_1): ... this.  Take an expanded shift amount.
2372         For rotates recurse directly not building trees for the shift amount.
2373         (expand_variable_shift): Wrap around expand_shift_1.
2374         (expand_shift): Adjust.
2375
2376 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2377
2378         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2379
2380 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2381
2382         * tree.h (get_pending_sizes): Remove prototype.
2383         (put_pending_size): Likewise.
2384         (put_pending_sizes): Likewise.
2385         * stor-layout.c (pending_sizes): Delete.
2386         (get_pending_sizes): Likewise.
2387         (put_pending_size): Likewise.
2388         (put_pending_sizes): Likewise.
2389         (variable_size): Do not call put_pending_size and tidy up.
2390         * function.h (struct function): Remove dont_save_pending_sizes_p.
2391         * lto-streamer-in.c (input_function): Do not stream it.
2392         * lto-streamer-out.c (output_function): Likewise.
2393         * tree-inline.c (initialize_cfun): Do not copy it.
2394         * c-decl.c (store_parm_decls): Do not set it.
2395         * omp-low.c (create_task_copyfn): Likewise.
2396         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2397
2398 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
2399
2400         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2401         conditions.
2402         (*movdf_internal): Ditto.
2403         (*movdf_internal_nointeger): Ditto.
2404         (*movsf_internal): Ditto.
2405
2406 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2407
2408         * c-decl.c (finish_decl): Don't call get_pending_sizes.
2409         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
2410         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
2411         (c_variable_size): Remove.
2412         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
2413         call put_pending_sizes.
2414         (get_parm_info): Add parameter expr.  Use it to set
2415         arg_info->pending_sizes.
2416         (store_parm_decls): Use arg_info->pending_sizes instead or calling
2417         get_pending_sizes.
2418         * c-parser.c (c_parser_parms_declarator): Update call to
2419         c_parser_parms_list_declarator.
2420         (c_parser_parms_list_declarator): Take parameter expr.  Update
2421         call to push_parm_decl.  Update recursive call.  Don't call
2422         get_pending_sizes.  Update calls to get_parm_info.
2423         (c_parser_objc_method_definition): Update calls to
2424         c_parser_objc_method_decl and objc_start_method_definition.
2425         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
2426         (c_parser_objc_method_decl): Add parameter expr.  Update call to
2427         grokparm.
2428         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
2429         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2430         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2431
2432 2011-05-05  Michael Hope  <michael.hope@linaro.org>
2433
2434         PR pch/45979
2435         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2436         __ARM_EABI__ hosts.
2437
2438 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2439
2440         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2441         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2442         (spu_output_mi_thunk): New function.
2443
2444 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2445
2446         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2447         targetm.asm_out.print_operand.
2448         * config/sol2.c: Include target.h.
2449
2450 2011-05-04  Jan Hubicka  <jh@suse.cz>
2451
2452         * ipa-inline.c (reset_edge_caches): New function.
2453         (update_caller_keys): Add check_inlinablity_for; do not
2454         reset edge caches; remove now unnecesary loop.
2455         (update_callee_keys): Add comments; reset node_growth_cache of callee.
2456         (update_all_callee_keys): Likewise.
2457         (inline_small_functions): Sanity check cache; update code
2458         recomputing it.
2459
2460 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
2461
2462         PR rtl-optimization/47612
2463         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2464         as the last insn of the sequence to be moved.
2465
2466 2011-05-04  Tobias Burnus  <burnus@net-b.de>
2467
2468         PR fortran/48864
2469         * doc/invoke.texi (Ofast): Document that it
2470         enables Fortran's -fno-protect-parens.
2471
2472 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2473
2474         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2475
2476 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2477
2478         * stor-layout.c (variable_size): Do not issue errors.
2479
2480 2011-05-04  Richard Guenther  <rguenther@suse.de>
2481
2482         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2483         for array-ref indices.
2484         (tree_coverage_counter_addr): Likewise.
2485         (build_fn_info_type): Use size_int for index types.
2486         (build_gcov_info): Likewise.
2487
2488 2011-05-04  Richard Guenther  <rguenther@suse.de>
2489
2490         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2491         to build_int_cst.
2492         * c-typeck.c (really_start_incremental_init): Use bitsize_int
2493         for constructor indices.
2494         (push_init_level): Likewise.
2495
2496 2011-05-04  Richard Guenther  <rguenther@suse.de>
2497
2498         * explow.c (promote_mode): Move variable declarations before code.
2499
2500 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2501
2502         * tree.h (build_function_type_array): Declare.
2503         (build_varargs_function_type_array): Declare.
2504         (build_function_type_vec, build_varargs_function_type_vec): Define.
2505         * tree.c (build_function_type_array_1): New function.
2506         (build_function_type_array): New function.
2507         (build_varargs_function_type_array): New function.
2508
2509 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
2510
2511         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2512         before setting STMT_VINFO_TYPE.
2513
2514 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2515
2516         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2517         instead of spu_pass_by_reference.
2518
2519 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2520
2521         * calls.c (emit_library_call_value_1): Invoke
2522         promote_function_mode hook on libcall arguments.
2523         * explow.c (promote_function_mode, promote_mode): Handle TYPE
2524         argument being NULL.
2525         * targhooks.c (default_promote_function_mode): Lisewise.
2526         * config/s390/s390.c (s390_promote_function_mode): Likewise.
2527         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2528
2529         * doc/tm.texi: Document that TYPE argument might be NULL.
2530
2531 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2532
2533         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2534
2535 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2536
2537         From Bernd Schmidt
2538         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2539
2540 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2541
2542         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2543         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2544         Move ...
2545         * mips-tfile.c: ... here.
2546         Don't include coretypes.h, tm.h, filenames.h.
2547         (saber_stop): Remove definition and all calls.
2548         [__SABER__]: Remove.
2549         (__LINE__): Remove default.
2550         (Size_t, Ptrdiff_t): Remove definitions.
2551         Replace by size_t, ptrdiff_t.
2552         [!MIPS_DEBUGGING_INFO]: Remove.
2553         (SHASH_SIZE, THASH_SIZE): Remove defaults.
2554         (progname): Add const.
2555         (STATIC): Remove.
2556         Replace all uses by static.
2557         (ALIGN_SYMTABLE_OFFSET): Remove default.
2558         * mips-tdump.c: Don't include coretypes.h, tm.h.
2559         Remove !MIPS_IS_STAB guard.
2560         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2561         $(TM_H), filenames.h dependencies.
2562         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2563
2564 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2565
2566         From Jie Zhang
2567         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2568         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2569
2570 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2571
2572         From Bernd Schmidt
2573         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2574         account and save/restore RETS.
2575         (PROFILE_BEFORE_PROLOGUE): Define.
2576         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
2577         the push insn to use predecrement.
2578
2579 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2580
2581         From Jie Zhang
2582         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2583
2584 2011-05-04  Nick Clifton  <nickc@redhat.com>
2585
2586         * config/mn10300/mn10300.c: Include cfgloop.h.
2587         (DUMP): New macro.
2588         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
2589         Lcc or a FLcc insn into the instruction stream.
2590         (mn10300_block_contains_call): New function.  Returns true if the
2591         given basic block contains a CALL insn.
2592         (mn10300_loop_contains_call_insn): New function.  Returns true if
2593         the given loop contains a CALL insn.
2594         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
2595         to use the SETLB and Lcc or FLcc insns.
2596         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2597         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2598         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
2599         disable the SETLB optimization.
2600         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2601         __SETLB__ or __NO_SETLB__.
2602         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2603         (movsf_internal): Handle MDR register.
2604         (cmpsi): Make visible.
2605         (setlb): New pattern.
2606         (Lcc): New pattern.
2607         (FLcc): New pattern.
2608
2609 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2610
2611         PR target/48860
2612         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2613         for reg<->xmm moves.
2614         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2615         (vec_concatv2di_rex64_sse): Ditto.
2616         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2617         (*vec_extractv2di_1_rex64): Ditto.
2618
2619         Revert:
2620         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2621
2622         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2623         reg<->xmm moves.
2624         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2625
2626 2011-05-04  Richard Guenther  <rguenther@suse.de>
2627
2628         * tree.h (int_const_binop): Remove notrunc argument.
2629         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
2630         create integer constants that are properly truncated.
2631         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2632         (const_binop): Remove zero notrunc argument to int_const_binop.
2633         (size_binop_loc): Likewise.
2634         (fold_div_compare): Likewise.
2635         (maybe_canonicalize_comparison_1): Likewise.
2636         (fold_comparison): Likewise.
2637         (fold_binary_loc): Likewise.
2638         (multiple_of_p): Likewise.
2639         * expr.c (store_constructor): Likewise.
2640         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2641         (maybe_fold_stmt_addition): Likewise.
2642         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2643         * stor-layout.c (layout_type): Likewise.
2644         * tree-data-ref.c (tree_fold_divides_p): Likewise.
2645         * tree-sra.c (build_ref_for_offset): Likewise.
2646         (build_user_friendly_ref_for_offset): Likewise.
2647         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2648         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2649         * tree-ssa-loop-niter.c (inverse): Likewise.
2650         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2651         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2652         * tree-switch-conversion.c (check_range): Likewise.
2653         (build_constructors): Likewise.
2654         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2655         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2656         (extract_range_from_assert): Likewise.
2657         (vrp_int_const_binop): Likewise.
2658         (extract_range_from_binary_expr): Likewise.
2659         (extract_range_from_unary_expr): Likewise.
2660         (check_array_ref): Likewise.
2661         (find_case_label_range): Likewise.
2662         (simplify_div_or_mod_using_ranges): Likewise.
2663         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2664         comparing case labels for merging.
2665
2666 2011-05-03  Mark Wielaard  <mjw@redhat.com>
2667
2668         * dwarf2out.c (debug_str_hash_forced): Removed.
2669         (gen_label_for_indirect_string): Removed.
2670         (get_debug_string_label): Removed.
2671         (AT_string_form): Generate label directly.
2672         (output_indirect_string): Test indirect_string_node for
2673         DW_FORM_strp instead of checking label and refcount.
2674         (prune_indirect_string): Removed.
2675         (prune_unused_types): Don't check debug_str_hash_forced or
2676         call prune_indirect_string.
2677
2678 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2679
2680         PR other/48093
2681         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2682
2683 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2684
2685         PR debug/47994
2686         PR debug/47919
2687         * combine.c (try_combine): Skip debug insns at m_split tests.
2688
2689 2011-04-26  Mark Wielaard  <mjw@redhat.com>
2690
2691         PR42288
2692         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2693         when info_section_emitted.
2694
2695 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
2696
2697         * config/mips/mips-opts.h: New.
2698         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2699         to mips-opts.h.
2700         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2701         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2702         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
2703         via opts pointer.
2704         * config/mips/mips.h (enum mips_code_readable_setting): Move to
2705         mips-opts.h.
2706         (mips_abi, mips_code_readable): Don't declare.
2707         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
2708         (mabi=): Use Enum and Var.
2709         (mips_abi): New Enum and EnumValue entries.
2710         (mcode-readable=): Use Enum and Var.
2711         (mips_code_readable_setting): New Enum and EnumValue entries.
2712         (mr10k-cache-barrier=): Use Enum and Var.
2713         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2714
2715 2011-05-03  Jan Hubicka  <jh@suse.cz>
2716
2717         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2718         replace hash by pointer map.
2719         (cgraph_node_set_element_def, cgraph_node_set_element,
2720         const_cgraph_node_set_element, varpool_node_set_element_def,
2721         varpool_node_set_element, const_varpool_node_set_element): Remove.
2722         (free_cgraph_node_set, free_varpool_node_set): New function.
2723         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2724         * tree-emutls.c: Free varpool node set.
2725         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2726         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2727         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2728         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2729         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2730         Move here from ipa.c; implement using pointer_map
2731         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2732         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2733         debug_cgraph_node_set, varpool_node_set_new,
2734         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2735         dump_varpool_node_set, debug_varpool_node_set):
2736         Move to ipa-uitls.c.
2737         * passes.c (ipa_write_summaries): Update.
2738
2739 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2740
2741         From Mike Frysinger:
2742         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2743         bf542/bf544/bf547/bf548/bf549.
2744
2745 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2746
2747         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2748
2749 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2750
2751         From Bernd Schmidt:
2752         * config/bfin/bfin.md (MOVCC): New mode_macro.
2753         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2754         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
2755         comments from generated assembly.
2756
2757 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2758
2759         From Bernd Schmidt
2760         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2761         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2762         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2763         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2764         * config/bfin/lib1funcs.asm (___muldi3): New function.
2765
2766 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2767
2768         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2769         build_function_type_list instead of build_function_type.
2770         Rearrange initialization of `args' to do so.
2771
2772 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2773
2774         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2775         instead of build_function_type.
2776
2777 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2778
2779         * config/rs6000/rs6000.c (spe_init_builtins): Call
2780         build_function_type_list instead of build_function_type.
2781         (paired_init_builtins, altivec_init_builtins): Likewise.
2782         (builtin_function_type): Likewise.
2783
2784 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2785
2786         * config/sh/sh.c (sh_media_init_builtins): Call
2787         build_function_type_list instead of build_function_type.
2788
2789 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2790
2791         * config/sparc/sparc.c (sparc_file_end): Call
2792         build_function_type_list instead of build_function_type.
2793
2794 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2795
2796         * config/alpha/alpha.c (alpha_init_builtins): Call
2797         build_function_type_list instead of build_function_type.
2798
2799 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2800
2801         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2802         build_function_type_list instead of build_function_type.
2803
2804 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2805
2806         * config/iq2000/i2000.c (iq2000_init_builtins): Call
2807         build_function_type_list instead of build_function_type.
2808         Delete `endlink' variable.
2809
2810 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2811
2812         * config/avr/avr.c (avr_init_builtins): Call
2813         build_function_type_list instead of build_function_type.
2814
2815 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2816
2817         * config/picochip/picochip.c (picochip_init_builtins): Call
2818         build_function_type_list instead of build_function_type.
2819         Delete `endlink' variable.
2820
2821 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2822
2823         * config/bfin/bfin.c (bfin_init_builtins): Call
2824         build_function_type_list instead of build_function_type.
2825
2826 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2827
2828         From Bernd Schmidt
2829         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2830         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
2831
2832 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2833
2834         From Jie Zhang:
2835         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2836         libbffastfp overrides libgcc when -mfast-fp.
2837
2838 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2839
2840         Originally from Bernd Schmidt
2841         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2842         * config/bfin/bfin.c (override_options): Test it and error if
2843         TARGET_FDPIC.
2844
2845 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2846
2847         Originally From Bernd Schmidt
2848         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2849         FD-PIC.
2850
2851 2011-05-03  Jeff Law  <law@redhat.com>
2852
2853         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2854         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2855         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
2856         than accessing AUX field directly.  Free the AUX field before
2857         clearing it.
2858         (thread_block, thread_through_loop_header): Likewise.
2859         (thread_single_edge, mark_threaded_blocks): Likewise.
2860         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
2861         (register_jump_thread): Do not attempt to thread to a NULL edge.
2862
2863 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2864
2865         * function.c (init_function_start): Call decide_function_section.
2866         * varasm.c (decide_function_section): New function.
2867         (assemble_start_function): When not using
2868         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2869         or first_function_block_is_cold.
2870         * rtl.h (decide_function_section): Declare.
2871
2872 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2873             Jakub Jelinek  <jakub@redhat.com>
2874
2875         PR target/48774
2876         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2877         only succeed if req_mode is the same as set_mode.
2878
2879 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2880
2881         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2882         * genemit.c (gen_exp): Handle RETURN.
2883         * emit-rtl.c (verify_rtx_sharing): Likewise.
2884         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2885         * rtl.c (copy_rtx): RETURN is shared.
2886         * rtl.h (enum global_rtl_index): Add GR_RETURN.
2887         (ret_rtx): New.
2888         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2889         * config/s390/s390.c (s390_emit_epilogue): Likewise.
2890         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2891         * config/cris/cris.c (cris_expand_return): Likewise.
2892         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2893         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2894         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2895         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2896         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2897         Likewise.
2898         * config/v850/v850.c (expand_epilogue): Likewise.
2899         * config/bfin/bfin.c (bfin_expand_call): Likewise.
2900         * config/arm/arm.md (epilogue): Likewise.
2901         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2902         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2903         variable to ret_reg.
2904
2905 2011-05-03  Richard Guenther  <rguenther@suse.de>
2906
2907         PR lto/48846
2908         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2909         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2910         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2911
2912 2011-05-03  Richard Guenther  <rguenther@suse.de>
2913
2914         * c-decl.c (grokdeclarator): Instead of looking at
2915         TREE_OVERFLOW check if the constant fits in the index type.
2916
2917 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2918
2919         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2920         (vec_store_lanes<mode><mode>): Likewise.
2921
2922 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2923
2924         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2925         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2926         convert_optab_index values.
2927         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2928         * genopinit.c (optabs): Initialize the new optabs.
2929         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2930         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2931         (expand_STORE_LANES): New functions.
2932         * tree.h (build_array_type_nelts): Declare.
2933         * tree.c (build_array_type_nelts): New function.
2934         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2935         (vect_model_load_cost): Likewise.
2936         (vect_store_lanes_supported, vect_load_lanes_supported)
2937         (vect_record_strided_load_vectors): Declare.
2938         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2939         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2940         (vect_transform_strided_load): Split out statement recording into...
2941         (vect_record_strided_load_vectors): ...this new function.
2942         * tree-vect-stmts.c (create_vector_array, read_vector_array)
2943         (write_vector_array, create_array_ref): New functions.
2944         (vect_model_store_cost): Add store_lanes_p argument.
2945         (vect_model_load_cost): Add load_lanes_p argument.
2946         (vectorizable_store): Try to use store-lanes functions for
2947         interleaved stores.
2948         (vectorizable_load): Likewise load-lanes and loads.
2949         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2950         to vect_model_store_cost.
2951         (vect_build_slp_tree): Likewise vect_model_load_cost.
2952
2953 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2954
2955         * hooks.h (hook_bool_mode_uhwi_false): Declare.
2956         * hooks.c (hook_bool_mode_uhwi_false): New function.
2957         * target.def (array_mode_supported_p): New hook.
2958         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2959         * doc/tm.texi: Regenerate.
2960         * stor-layout.c (mode_for_array): New function.
2961         (layout_type): Use it.
2962         * config/arm/arm.c (arm_array_mode_supported_p): New function.
2963         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2964
2965 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2966
2967         PR target/48723
2968         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2969         for -fstack-check if the size to allocate is negative.
2970
2971 2011-05-02  Lawrence Crowl  <crowl@google.com>
2972
2973         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2974         (timevar_cond_start): New for starting a timer only when it is not
2975         already running.
2976         (timevar_cond_stop): New for stopping a timer when it was not already
2977         running.
2978
2979         * timevar.c (timevar_stop): Enable start/stop timers to start again.
2980         (timevar_cond_start): New as above.
2981         (timevar_cond_stop): New as above.
2982
2983         * timevar.def: Add start/stop timers for compiler phases,
2984         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2985         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2986         and TV_PHASE_FINALIZE.
2987         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2988         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2989         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2990         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2991         Make unused TV_OVERLOAD into a start/stop timer.
2992
2993         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2994         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2995         to indicate that they are start/stop timers.
2996
2997         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2998         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2999         Move initialization to do_compile.
3000         (do_compile): Add initialization from above.
3001         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3002
3003         * c-decl.c (c_write_global_declarations): Add start/stop of
3004         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3005
3006         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3007         or TV_PARSE_INLINE, as appropriate.
3008         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3009         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3010
3011 2011-05-02  Jason Merrill  <jason@redhat.com>
3012
3013         PR c++/40975
3014         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3015
3016 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
3017
3018         PR c/35445
3019         * c-decl.c (finish_decl): Only create a composite if the types are
3020         compatible.
3021
3022 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3023
3024         * config/fr30/fr30-protos.h (Mmode): Don't define.
3025         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
3026         definition where used.
3027         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3028         define.  Expand definitions where used.
3029         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3030         Expand definitions where used.
3031         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3032         rx_function_arg, rx_function_arg_advance,
3033         rx_function_arg_boundary): Expand definitions of those macros.
3034         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
3035         definition where used.
3036
3037 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3038
3039         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3040         reg<->xmm moves.
3041         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3042         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
3043         with *movv2sf_internal_rex64_avx.
3044         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3045         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3046         Use %v prefix in insn mnemonic to handle TARGET_AVX.
3047         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
3048         "vex" in "prefix" attribute calculation.
3049         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
3050
3051 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
3052
3053         PR target/47951
3054         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3055         inputs match the output.
3056
3057 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
3058
3059         PR target/47955
3060         * config/m68k/m68k.c (m68k_expand_prologue): Set
3061         current_function_static_stack_size.
3062
3063 2011-05-02   Jan Hubicka  <jh@suse.cz>
3064
3065         * lto-streamer.c (lto_streamer_cache_insert_1,
3066         lto_streamer_cache_lookup, lto_streamer_cache_create,
3067         lto_streamer_cache_delete): Use pointer map instead of hashtable.
3068         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3069
3070 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
3071
3072         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3073         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3074         config/m68k/t-opts: New files.
3075         * config/m68k/m68k-tables.opt: New file (generated).
3076         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3077         extra_options and m68k/t-opts to tmake_file.
3078         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3079         (all_isas): Initialize using m68k-isas.def.
3080         (all_microarchs): Initialize using m68k-microarchs.def.
3081         (m68k_find_selection): Remove.
3082         (m68k_handle_option): Don't assert that global structures are in
3083         use.  Use error_at.  Access variables via opts pointer.  Don't
3084         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
3085         directly for -m68020-40 and -m68020-60.
3086         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3087         m68k_tune_entry here.
3088         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3089         to m68k-opts.h.
3090         (m68k_library_id_string): Remove declaration.
3091         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
3092         (m68k_library_id_string): New Variable.
3093         (march=, mcpu=, mtune=): Use Enum and Var.
3094
3095 2011-05-02  Richard Guenther  <rguenther@suse.de>
3096
3097         * varasm.c (output_constructor_regular_field): Compute zero-based
3098         index with double-ints.  Make sure to ICE instead of producing
3099         wrong code.
3100         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3101         in asserts.  Properly use a signed type.
3102
3103 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
3104
3105         * config/i386/sse.md (V): New mode iterator.
3106         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
3107         TARGET_SSE2.
3108         (V_256): Rename from AVX256MODE.
3109         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
3110         condition to all users.
3111         (VF1): Ditto.
3112         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
3113         condition to all users.
3114         (VF_128): Make V4SF mode unconditional.
3115         (VF_256): Rename from AVX256MODEF2P.
3116         (VI4F_128): Rename from SSEMODE4S.
3117         (VI8F_128): Rename from SSEMODE2D.
3118         (VI4F_256): Rename from AVX256MODE8P.
3119         (VI8F_256): Rename from AVX256MODE4P.
3120         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
3121         (ssescalarmodesuffix): Remove SF and DF modes.
3122         (SSEMODE124): Remove.
3123         (SSEMODE1248): Ditto.
3124         (SSEMODEF2P): Ditto.
3125         (AVXMODEF2P): Ditto.
3126         (AVXMODEFDP): Ditto.
3127         (AVXMODEFSP): Ditto.
3128         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
3129         unconditional.
3130         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
3131         unconditional.
3132         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
3133         xop_pcmov_<mode>256.  Use V mode iterator.
3134
3135         Adjust RTX patterns globally for renamed mode attributes.
3136
3137 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3138
3139         * haifa-sched.c (sched_emit_insn): Emit insn before first
3140         non-scheduled insn.  Inform back-end about new insn.  Add
3141         new insn to scheduled_insns list.
3142
3143 2011-05-02  Richard Guenther  <rguenther@suse.de>
3144
3145         PR tree-optimization/48822
3146         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
3147         (process_scc): Indicate which iteration we start.
3148
3149 2011-05-02  Jan Hubicka  <jh@suse.cz>
3150
3151         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
3152         (lto_section_overrun): New.
3153         * lto-section-out.c (append_block): Rename to ...
3154         (lto_append_block): ... this one; export.
3155         (lto_output_1_stream): Move lto lto-streamer.h
3156         (lto_output_data_stream): Update.
3157         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
3158         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
3159         functions.
3160
3161 2011-05-02  Richard Guenther  <rguenther@suse.de>
3162
3163         * tree.c (tree_code_counts): New global array.
3164         (record_node_allocation_statistics): Count individual tree codes.
3165         (dump_tree_statistics): Dump individual code stats.
3166
3167 2011-05-01  Jan Hubicka  <jh@suse.cz>
3168
3169         * ipa-inline.c (caller_growth_limits): Fix thinko when
3170         looking for largest stack frame.
3171         * ipa-inline.h (dump_inline_summary): Declare.
3172         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
3173         on stack usage.
3174         (dump_inline_summary): Export.
3175         (debug_inline_summary): Declare as DEBUG_FUNCTION.
3176
3177 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
3178
3179         * reginfo.c (memory_move_cost): Change rclass argument type form
3180         'enum reg_class' to reg_class_t.
3181         * reload.h (memory_move_cost): Update prototype.
3182         * postreload.c reload_cse_simplify_set): Change type dclass var to
3183         reg_class_t.
3184         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
3185         Update prototype.
3186         (ira_allocate_and_set_costs): Change aclass argument type form
3187         'enum reg_class' to reg_class_t.
3188         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
3189         Change aclass argument type to reg_class_t.
3190         (update_conflict_hard_reg_costs): Change type aclass and pref vars
3191         to reg_class_t.
3192         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
3193         memory_move_cost call.
3194
3195         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
3196         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
3197         Change type tmp var to reg_class_t.
3198
3199 2011-04-30  Jan Hubicka  <jh@suse.cz>
3200
3201         * ipa-inline.c (can_inline_edge_p): Disregard limits when
3202         inlining into function with flatten attribute.
3203         (want_inline_small_function_p): Be more realistic about inlining
3204         cold calls where callee size grows.
3205
3206 2011-04-30  Jan Hubicka  <jh@suse.cz>
3207
3208         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3209         flags.
3210
3211 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
3212
3213         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3214         PRINT_OPERAND_PUNCT_VALID_P): Remove.
3215         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3216         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3217         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3218         (print_operand): Rename to...
3219         (sparc_print_operand): ...this. Make static. Adjust
3220         sparc_print_operand function call.
3221         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3222         functions.
3223
3224 2011-04-30  Jan Hubicka  <jh@suse.cz>
3225
3226         PR middle-end/48752
3227         * ipa-inline.c (early_inliner): Disable when doing late
3228         addition of function.
3229
3230 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
3231
3232         * dwarf2out.c (get_address_mode): New inline.
3233         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3234         if not dwarf_strict emit
3235         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3236         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3237         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
3238         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3239         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3240         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3241         mem_loc_descriptor callers.
3242         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3243         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3244         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3245         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3246         (base_types): New variable.
3247         (get_base_type_offset, calc_base_type_die_sizes,
3248         base_type_for_mode, mark_base_types, base_type_cmp,
3249         move_marked_base_types): New functions.
3250         (calc_die_sizes): Assert that die_offset is 0 or equal to
3251         next_die_offset.
3252         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3253         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
3254         callers.  If not dwarf_strict, call mem_loc_descriptor even for
3255         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3256         (gen_subprogram_die): Don't give up on call site parameters
3257         with non-integral or large integral modes.  Adjust
3258         mem_loc_descriptor callers.
3259         (prune_unused_types): Call prune_unused_types_mark on base_types
3260         vector entries.
3261         (resolve_addr): Call mark_base_types.
3262         (dwarf2out_finish): Call move_marked_base_types.
3263
3264         PR tree-optimization/48809
3265         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3266         type.
3267         (gen_inbound_check): Don't compute index_expr - range_min in utype
3268         again, instead reuse SSA_NAME initialized in build_arrays.
3269         Remove two useless gsi_for_stmt calls.
3270
3271 2011-04-29  Jeff Law  <law@redhat.com>
3272
3273         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3274
3275 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3276
3277         * cgraph.h (cgraph_postorder): Remove declaration.
3278         * ipa-utils.h (ipa_free_postorder_info): Declare.
3279         (ipa_reverse_postorder): Likewise.
3280         * cgraphunit.c: Include ipa-utils.h.
3281         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3282         * ipa-inline.c: Include ipa-utils.h.
3283         (ipa_inline): Update call to ipa_reverse_postorder.
3284         * ipa-pure-const.c (propagate_pure_const): Update call to
3285         ipa_reduced_postorder and ipa_print_order.  Call
3286         ipa_free_postorder_info to clean up.
3287         (propagate_nothrow): Likewise.
3288         * ipa-reference.c (propagate): Removed a useless call to
3289         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3290         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
3291         * ipa.c: Include ipa-utils.h.
3292         (ipa_profile): Update call to ipa_reverse_postorder.
3293         (cgraph_postorder): Moved to...
3294         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3295         (ipa_utils_print_order): Renamed to ipa_print_order.
3296         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3297         comments.
3298         (ipa_free_postorder_info): New function.
3299         * passes.c: Include ipa-utils.h.
3300         (do_per_function_toporder): Update call to ipa_reverse_postorder.
3301         (ipa_write_summaries): Likewise.
3302         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3303         (cgraphunit.o): Likewise.
3304         (ipa.o): Likewise.
3305         (ipa-inline.o): Likewise.
3306
3307 2011-04-29  Jan Hubicka  <jh@suse.cz>
3308
3309         * gcc.dg/tree-ssa/inline-10.c: New testcase.
3310         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3311         * ipa-inline.h (clause_t): Turn into unsigned int.
3312         * ipa-inline-analysis.c (add_clause): Do more simplification.
3313         (and_predicates): Shortcut more cases.
3314         (predicates_equal_p): Move forward; check that clauses are properly
3315         ordered.
3316         (or_predicates): Shortcut more cases.
3317         (edge_execution_predicate): Rewrite as...
3318         (set_cond_stmt_execution_predicate): ... this function; handle
3319         __builtin_constant_p.
3320         (set_switch_stmt_execution_predicate): New .
3321         (compute_bb_predicates): New.
3322         (will_be_nonconstant_predicate): Update TODO.
3323         (estimate_function_body_sizes): Use compute_bb_predicates
3324         and free them later, always try to estimate if stmt is constant.
3325         (estimate_time_after_inlining, estimate_size_after_inlining):
3326         Gracefully handle optimized out edges.
3327         (read_predicate): Fix off by one error.
3328
3329 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
3330
3331         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3332
3333 2011-04-27  Xinliang David Li  <davidxl@google.com>
3334
3335         * tree-profile.c (init_ic_make_global_vars): Set
3336         tls attribute on ic vars.
3337         * coverage.c (coverage_end_function): Initialize
3338         function_list with zero.
3339
3340 2011-04-29  Richard Guenther  <rguenther@suse.de>
3341
3342         * builtins.c (fold_builtin_classify_type): Use integer_type_node
3343         for the type of the result.
3344         (fold_builtin_isascii): Likewise.
3345         (fold_builtin_toascii): Use integer_type_node where appropriate.
3346         (fold_builtin_logb): Likewise.
3347         (fold_builtin_frexp): Likewise.
3348         (fold_builtin_strstr): Likewise.
3349         (fold_builtin_strpbrk): Likewise.
3350         (fold_builtin_fputs): Likewise.
3351         (fold_builtin_sprintf): Likewise.
3352         (fold_builtin_snprintf): Likewise.
3353         (fold_builtin_printf): Likewise.
3354         (do_mpfr_remquo): Use a proper type for the assigned constant.
3355         (do_mpfr_lgamma_r): Likewise.
3356         * dwarf2out.c (resolve_one_addr): Use size_int.
3357         * except.c (init_eh): Likewise.
3358         (assign_filter_values): Use integer_type_node for filter values.
3359         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3360         indices.
3361         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3362         for EH region numbers.
3363         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3364         for the shift amount.
3365
3366 2011-04-29  Richard Guenther  <rguenther@suse.de>
3367
3368         * expr.h (expand_shift): Rename to ...
3369         (expand_variable_shift): ... this.
3370         (expand_shift): Take a constant shift amount.
3371         * expmed.c (expand_shift): Rename to ...
3372         (expand_variable_shift): ... this.
3373         (expand_shift): New wrapper around expand_variable_shift.
3374         * expr.c (convert_move, emit_group_load_1, emit_group_store,
3375         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3376         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3377         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3378         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3379         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3380         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3381         emit_store_flag_1, emit_store_flag): Likewise.
3382         * builtins.c (expand_builtin_signbit): Likewise.
3383         * calls.c (load_register_parameters): Likewise.
3384         * function.c (assign_parm_setup_block): Likewise.
3385         * lower-subreg.c (resolve_shift_zext): Likewise.
3386         * optabs.c (widen_bswap, expand_abs_nojump,
3387         expand_one_cmpl_abs_nojump, expand_float): Likewise.
3388         * spu/spu.c (spu_expand_extv): Likewise.
3389         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3390
3391 2011-04-29  Richard Guenther  <rguenther@suse.de>
3392
3393         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3394         for the remapped region number.
3395         * predict.c (build_predict_expr): Use integer_type_node for the
3396         predict kind.
3397         * fold-const.c (fold_binary_loc): Use integer_type_node for
3398         the shift amount.  Use a proper type for the PLUS_EXPR operand.
3399
3400 2011-04-29  Michael Matz  <matz@suse.de>
3401
3402         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3403         other trees that just builtins.
3404         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3405
3406 2011-04-29  Richard Guenther  <rguenther@suse.de>
3407
3408         * tree-nested.c (get_trampoline_type): Use size_int.
3409         (get_nl_goto_field): Likewise.
3410         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3411         for all indexes.
3412         (lower_eh_constructs_2): Likewise.
3413         (lower_resx): Likewise.
3414         (lower_eh_dispatch): Likewise.
3415         * tree-mudflap.c (mf_build_string): Use size_int.
3416         (mudflap_register_call): Use integer_type_node for the flag.
3417         (mudflap_enqueue_constant): Use size_int.
3418         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3419         instead of rebuilding it.
3420
3421 2011-04-29  Richard Guenther  <rguenther@suse.de>
3422
3423         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3424         Handle OBJ_TYPE_REF.
3425         (find_func_aliases_for_call): Use it more consistently.
3426
3427 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
3428
3429         * haifa-sched.c (last_nondebug_scheduled_insn): New.
3430         (rank_for_schedule): Use it.
3431         (schedule_block): Set it.
3432
3433 2011-04-28  David Li  <davidxl@google.com>
3434
3435         * tree.c (crc32_string): Use crc32_byte.
3436         (crc32_byte): New function.
3437         * tree.h (crc32_byte): New function.
3438         * gcov.c (read_graph_file): Handle new cfg_cksum.
3439         (read_count_file): Ditto.
3440         * profile.c (instrument_values): Ditto.
3441         (get_exec_counts): Ditto.
3442         (read_profile_edge_counts): Ditto.
3443         (compute_branch_probabilities): Ditto.
3444         (compute_value_histograms): Ditto.
3445         (branch_prob): Ditto.
3446         (end_branch_prob): Ditto.
3447         * coverage.c (read_counts_file): Ditto.
3448         (get_coverage_counts): Ditto.
3449         (tree_coverage_counter_addr): Ditto.
3450         (coverage_checksum_string): Ditto.
3451         (coverage_begin_output): Ditto.
3452         (coverage_end_function): Ditto.
3453         (build_fn_info_type): Ditto.
3454         (build_fn_info_value): Ditto.
3455         * libgcov.c (gcov_exit): Ditto.
3456         * gcov-dump.c (tag_function): Ditto.
3457         (compute_checksum): Remove.
3458
3459 2011-04-29  Alan Modra  <amodra@gmail.com>
3460
3461         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3462         unspec plus offset.  Tidy macho code.
3463
3464 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3465
3466         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3467         node instead of a decl.  Update all callers.
3468         * cgraph.h: Update declaration.
3469
3470 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
3471
3472         PR tree-optimization/48765
3473         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3474         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3475         to indicate if loop aware SLP is being used.  Scan the statements
3476         and update the vectorization factor according to the type of
3477         vectorization before statement analysis.
3478         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3479         pass it to vect_analyze_loop_operations.
3480         (vectorizable_reduction): Set number of copies to 1 in case of pure
3481         SLP statement.
3482         * tree-vect-stmts.c (vectorizable_conversion,
3483         vectorizable_assignment, vectorizable_shift,
3484         vectorizable_operation, vectorizable_type_demotion,
3485         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3486         Likewise.
3487         (vectorizable_condition): Move the check that it is not SLP
3488         vectorization before the number of copies check.
3489         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3490         to vectorize the loop using SLP.
3491
3492 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
3493
3494         PR middle-end/48597
3495         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3496         inline asm.
3497
3498 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
3499
3500         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3501         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3502         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3503         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3504         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3505         linux*.h headers.
3506         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
3507         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3508         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3509         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3510         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3511         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3512         REG_NAME.
3513         * config/i386/linux.h (REG_NAME): Don't define.
3514         * config/i386/linux64.h (REG_NAME): Don't define.
3515         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3516         Undefine before defining.
3517
3518 2011-04-28  Jan Hubicka  <jh@suse.cz>
3519
3520         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3521         nonconstant_names array.
3522         (estimate_function_body_sizes): Build nonconstant_names array; handle
3523         BUILT_IN_CONSTANT_P.
3524
3525 2011-04-28  Richard Guenther  <rguenther@suse.de>
3526
3527         PR bootstrap/48804
3528         Revert
3529         2011-04-28  Richard Guenther  <rguenther@suse.de>
3530
3531         * tree-ssa-structalias.c (solve_constraints): Build succ graph
3532         as late as possible.
3533
3534 2011-04-28  Richard Guenther  <rguenther@suse.de>
3535
3536         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3537         (debug_constraint): Do it here.
3538         (dump_constraints): And here.
3539         (rewrite_constraints): And here.
3540         (dump_constraint_edge): Remove.
3541         (dump_constraint_graph): Rewrite to produce DOT output.
3542         (solve_constraints): Build succ graph as late as possible.
3543         Dump constraint graphs before and after solving.
3544
3545 2011-04-28  Richard Guenther  <rguenther@suse.de>
3546
3547         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3548         New function split out from ...
3549         (find_func_aliases): ... here.  Call it.
3550         (find_func_aliases_for_call): Likewise.
3551
3552 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3553
3554         * internal-fn.h (internal_fn_name_array): Declare.
3555         (internal_fn_flags_array): Likewise.
3556
3557 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3558
3559         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
3560         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3561         Move from sse.md.
3562         (ssemodefsuffix): Remove.
3563         (ssevecmodesuffix): New mode attribute.
3564         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3565         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3566         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3567         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3568         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3569         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3570         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3571         ssemodesuffix mode attribute.
3572         (float splitters): Use ssevecmodesuffix mode attribute.
3573         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3574         (sseinsmode): Rename from avxvecmode.
3575         (avxsizesuffix): Rename from avxmodesuffix.
3576         (sseintvecmode): Rename from avxpermvecmode.
3577         (ssedoublevecmode): Rename from ssedoublesizemode.
3578         (ssehalfvecmode): Rename from avxhalfvecmode.
3579         (ssescalarmode): Rename from avxscalarmode.
3580         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3581         templates for ssemodesuffix mode attribute.
3582         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3583         mode attribute.
3584
3585         Adjust RTX patterns globally for renamed mode attributes.
3586
3587 2011-04-27  Jan Hubcika  <jh@suse.cz>
3588
3589         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3590         * ipa-inline-analysis.c: Include alloc-pool.h.
3591         (edge_predicate_pool): New.
3592         (trye_predicate_p): New function
3593         (false_predicate_p): New function.
3594         (add_clause): Sanity check that false clauses are "optimized";
3595         never add clauses to predicate that is already known to be false.
3596         (and_predicate): Use flase_predicate_p.
3597         (evaulate_predicate): Rename to ...
3598         (evaluate_predicate): ... this one; update all callers; assert
3599         that false is not listed among possible truths.
3600         (dump_predicate): Use true_predicate_p.
3601         (account_size_time): Use false_predicate_p.
3602         (evaulate_conditions_for_edge): Rename to ...
3603         (evaluate_conditions_for_edge) ... this one.
3604         (edge_set_predicate): New function.
3605         (inline_edge_duplication_hook): Duplicate edge predicates.
3606         (inline_edge_removal_hook): Free edge predicates.
3607         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
3608         (dump_inline_summary): Update.
3609         (estimate_function_body_sizes): Set edge predicates.
3610         (estimate_calls_size_and_time): Handle predicates.
3611         (estimate_callee_size_and_time): Update.
3612         (remap_predicate): Add toplev_predicate; update comment.
3613         (remap_edge_predicates): New function.
3614         (inline_merge_summary): Compute toplev predicate; update.
3615         (read_predicate): New function.
3616         (read_inline_edge_summary): Use it.
3617         (inline_read_section): Likewise.
3618         (write_predicate): New function.
3619         (write_inline_edge_summary): Use it.
3620         (inline_write_summary): Likewise.
3621         (inline_free_summary): Free alloc pool and edge summary vec.
3622
3623 2011-04-27  Richard Guenther  <rguenther@suse.de>
3624
3625         * tree-ssa-structalias.c (changed_count): Remove.
3626         (changed): Use a bitmap.
3627         (unify_nodes): Adjust.
3628         (do_sd_constraint): Likewise.
3629         (do_ds_constraint): Likewise.
3630         (do_complex_constraint): Likewise.
3631         (solve_graph): Likewise.
3632
3633 2011-04-27  Jan Hubicka  <jh@suse.cz>
3634
3635         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
3636
3637 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3638
3639         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
3640         (avx_vperm2f128_*_operand): Ditto.
3641         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
3642         Use avx_vpermilp_parallel in insn condition.
3643         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
3644         Use avx_vperm2f128_parallel in insn condition.
3645
3646 2011-04-27  Richard Guenther  <rguenther@suse.de>
3647
3648         * Makefile.in (tree-ssa-structalias.o): Remove
3649         gt-tree-ssa-structalias.h dependency.
3650         (GTFILES): Remove tree-ssa-structalias.c.
3651         * tree.c (allocate_decl_uid): New function.
3652         (make_node_stat): Use it.
3653         (copy_node_stat): Likewise.
3654         * tree.h (allocate_decl_uid): Declare.
3655         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
3656         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
3657         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
3658         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
3659         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
3660         (struct heapvar_map): Likewise.
3661         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
3662         heapvar_insert): Likewise.
3663         (make_heapvar_for): Rename to ...
3664         (make_heapvar): ... this.  Simplify.
3665         (fake_var_decl_obstack): New global var.
3666         (build_fake_var_decl): New function.
3667         (make_constraint_from_heapvar): Adjust.
3668         (handle_lhs_call): Likewise.
3669         (create_function_info_for): Likewise.
3670         (intra_create_variable_infos): Likewise.
3671         (init_alias_vars): Allocate fake_var_decl_obstack.
3672         (init_alias_heapvars, delete_alias_heapvars): Remove.
3673         (compute_points_to_sets): Do not call init_alias_heapvars.
3674         (ipa_pta_execute): Likewise.
3675         (delete_points_to_sets): Free fake_var_decl_obstack.
3676
3677 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3678
3679         * config/spu/divmovti4.c (union qword_UTItype): New data type.
3680         (si_from_UTItype, si_to_UTItype): New functions.
3681         (__udivmodti4): Use them to implement type-punning.
3682         * config/spu/multi3.c (union qword_TItype): New data type.
3683         (si_from_TItype, si_to_TItype): New functions.
3684         (__multi3): Use them to implement type-punning.
3685
3686 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3687
3688         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
3689
3690 2011-04-27  Jan Hubicka  <jh@suse.cz>
3691
3692         * ipa-prop.c (function_insertion_hook_holder): New holder.
3693         (ipa_add_new_function): New function.
3694         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
3695         Register/deregister holder.
3696
3697 2011-04-27  Richard Guenther  <rguenther@suse.de>
3698
3699         PR tree-optimization/48772
3700         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
3701
3702 2011-04-27  Richard Guenther  <rguenther@suse.de>
3703
3704         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3705         TARGET_MEM_REF handling.
3706
3707 2011-04-27  Nick Clifton  <nickc@redhat.com>
3708
3709         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3710         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3711         (REG_CLASS_NAMES): Likewise.
3712         (REG_CLASS_CONTENTS): Likewise.
3713         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3714         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3715         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
3716         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
3717         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
3718         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3719         duplicate register classes.
3720         (frv_class_likely_spilled_p): Likewise.
3721         (frv_register_move_cost): Likewise.
3722
3723         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3724         end of the regno_reg_class array.
3725
3726 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
3727
3728         PR c/48742
3729         * c-typeck.c (build_binary_op): Don't wrap arguments if
3730         int_operands is true.
3731
3732 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
3733
3734         PR target/48767
3735         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3736         targetm.calls.must_pass_in_stack for void type.
3737
3738 2011-04-26  Jan Hubicka  <jh@suse.cz>
3739
3740         * cgraphbuild.c (build_cgraph_edges): Update call
3741         of cgraph_create_edge and cgraph_create_indirect_edge.
3742         * cgraph.c (cgraph_create_edge_including_clones,
3743         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3744         cgraph_update_edges_for_call_stmt_node): Do not take nest
3745         argument; do not initialize call_stmt_size/time.
3746         (dump_cgraph_node): Do not dump nest.
3747         (cgraph_clone_edge): Do not take loop_nest argument;
3748         do not propagate it; do not clone call_stmt_size/time.
3749         (cgraph_clone_node): Likewise.
3750         (cgraph_create_virtual_clone): Update.
3751         * cgraph.h (struct cgraph_edge): Remove
3752         call_stmt_size/call_stmt_time/loop_nest.
3753         (cgraph_create_edge, cgraph_create_indirect_edge,
3754         cgraph_create_edge_including_clones, cgraph_clone_node): Update
3755         prototype.
3756         * tree-emutls.c (gen_emutls_addr): Update.
3757         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3758         loop_nest; handle indirect calls, too.
3759         (clone_inlined_nodes): Do not care about updating inline summaries.
3760         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3761         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3762         stream call_stmt_size/call_stmt_time/loop_nest.
3763         * ipa-inline.c (edge_badness): Update.
3764         (ipa_inline): dump summaries after inlining.
3765         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
3766         New.
3767         (inline_edge_summary): New function.
3768         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3769         (inline_edge_removal_hook): Handle edge summaries.
3770         (inline_edge_duplication_hook): New hook.
3771         (inline_summary_alloc): Alloc hooks.
3772         (initialize_growth_caches): Do not register removal hooks.
3773         (free_growth_caches); Do not free removal hook.
3774         (dump_inline_edge_summary): New function.
3775         (dump_inline_summary): Use it.
3776         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3777         (inline_update_callee_summaries): New function.
3778         (inline_merge_summary): Use it.
3779         (do_estimate_edge_time, do_estimate_edge_growth): Update.
3780         (read_inline_edge_summary): New function.
3781         (inline_read_section): Use it.
3782         (write_inline_edge_summary): New function.
3783         (inline_write_summary): Use it.
3784         (inline_free_summary): Free edge new holders.
3785         * tree-inline.c (copy_bb): Update.
3786
3787 2011-04-26  Jason Merrill  <jason@redhat.com>
3788
3789         * tree-eh.c (lower_try_finally_switch): Create the label along with
3790         the CASE_LABEL_EXPR.
3791
3792 2011-04-26  David S. Miller  <davem@davemloft.net>
3793             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3794
3795         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3796         * configure: Regenerate.
3797
3798 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3799
3800         PR target/48258
3801         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3802         reduction.
3803         (VEC_reduc): New code iterator and splitters for vector reduction.
3804         (VEC_reduc_name): Ditto.
3805         (VEC_reduc_rtx): Ditto.
3806         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3807         (reduc_<VEC_reduc_name>_v4sf): Ditto.
3808
3809         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3810         support for extracting SF on VSX.
3811
3812         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3813         generating xscvspdp.
3814         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3815         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3816         double add, minimum, maximum vector reduction.
3817         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3818         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3819         optimize double vector reduction.
3820         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3821
3822 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
3823
3824         * config/fr30/fr30.h (inhibit_libc): Don't define.
3825         * config/m32r/m32r-protos.h: Correct comment.
3826         * config/v850/v850.h (GHS_default_section_names,
3827         GHS_current_section_names): Use tree, not union tree_node *.
3828
3829 2011-04-26  Xinliang David Li  <davidxl@google.com>
3830
3831         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
3832         * c-family/c-opts.c (c_common_handle_option): Set
3833         warn_maybe_uninitialized.
3834         * opts.c (common_handle_option): Ditto.
3835         * common.opt:  New option.
3836         * tree-ssa.c (warn_uninit): Add one more parameter.
3837         (warn_uninitialized_var): Pass warning code.
3838         * tree-flow.h: Interface change.
3839
3840
3841 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3842
3843         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
3844         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3845         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3846
3847 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3848
3849         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3850         * config/mips/mips.opt (mmips-tfile): Remove.
3851
3852         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3853         mips-tdump reference to ...
3854         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
3855         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3856         reference by Tru64 UNIX.
3857
3858 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
3859
3860         PR debug/48768
3861         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3862         is error_mark_node, set value to NULL.
3863
3864         PR tree-optimization/48734
3865         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3866         if return value from maybe_fold_*_comparsions isn't something
3867         the code is prepared to handle.
3868
3869 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
3870
3871         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3872         mode check.
3873         (ext_QIreg_nomode_operands): Remove.
3874         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3875         (*andsi_1): Ditto.
3876         (*andhi_1): Ditto.
3877
3878 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
3879
3880         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3881
3882 2011-04-26  Richard Guenther  <rguenther@suse.de>
3883
3884         * c-typeck.c (build_unary_op): Do not expand array-refs via
3885         pointer arithmetic.  Only adjust qualifiers for function types.
3886
3887 2011-04-26  Richard Guenther  <rguenther@suse.de>
3888
3889         PR middle-end/48694
3890         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3891         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
3892         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
3893         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
3894
3895 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
3896
3897         * doc/extend.texi: Document __underlying_type.
3898
3899 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
3900
3901         * config/rs6000/titan.md (automata_option "progress"): Remove.
3902
3903 2011-04-25  Jeff Law  <law@redhat.com>
3904
3905         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3906
3907 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
3908
3909         * system.h (ENUM_BITFIELD): Remove.
3910
3911 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
3912             Eric Botcazou  <ebotcazou@adacore.com>
3913
3914         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3915         for STORE_FLAG_VALUE==-1 case.
3916
3917 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
3918
3919         PR target/43804
3920         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3921         LEGITIMATE_PIC_OPERAND_P.
3922
3923 2011-04-24  Jan Hubicka  <jh@suse.cz>
3924
3925         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3926         WPA hack.
3927         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3928         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3929         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
3930         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3931         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3932         Sanity check predicate length.
3933         (remap_predicate): Likewise; sanity check jump functions.
3934         (inline_read_section, inline_write_summary): Sanity check
3935         predicate length.
3936
3937 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
3938
3939         PR other/48748
3940         * doc/extend.texi (Type Traits): Document __is_standard_layout,
3941         __is_literal_type, and __is_trivial; update throughout about
3942         possibly cv-qualified void types.
3943
3944 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3945
3946         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3947         testsuite and make it version agnostic.
3948
3949 2011-04-22  Jan Hubicka  <jh@suse.cz>
3950
3951         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3952
3953 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
3954
3955         PR c/48685
3956         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3957         to VOID_TYPE even around MODIFY_EXPR.
3958
3959 2011-04-22  Mike Stump  <mikestump@comcast.net>
3960
3961         * gensupport.c (read_md_rtx): Fix typo in comment.
3962         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3963         comment.
3964
3965 2011-04-22  Jan Hubicka  <jh@suse.cz>
3966
3967         * gengtype.c (open_base_files): Add ipa-inline.h include.
3968         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3969         ipa-prop.c; update all uses.
3970         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
3971         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3972         merge summary of inlined function into former caller.
3973         * ipa-inline.c (max_benefit): Remove.
3974         (edge_badness): Compensate for removal of benefits.
3975         (update_caller_keys): Use
3976         reset_node_growth_cache/reset_edge_growth_cache.
3977         (update_callee_keys): Likewise.
3978         (update_all_callee_keys): Likewise.
3979         (inline_small_functions): Do not collect max_benefit; do not reset
3980         estimated_growth; call free_growth_caches and initialize_growth_caches.
3981         * ipa-inline.h (struct condition, type clause_t, struct predicate,
3982         struct size_time_entry): New structures.
3983         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
3984         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3985         and estimated_growth.
3986         (edge_growth_cache_entry): New structure.
3987         (node_growth_cache, edge_growth_cache): New global vars.
3988         (estimate_growth): Turn into inline.
3989         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3990         initialize_growth_caches, free_growth_caches): Declare.
3991         (estimate_edge_growth): Rewrite.
3992         (estimate_edge_time): Implement as inline cache lookup.
3993         (reset_node_growth_cache, reset_edge_growth_cache): New inline
3994         functions.
3995         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3996         (NUM_CONDITIONS): New constant.
3997         (predicate_conditions): New enum.
3998         (IS_NOT_CONSTANT): New constant.
3999         (edge_removal_hook_holder): New var.
4000         (node_growth_cache, edge_growth_cache): New global vars.
4001         (true_predicate, single_cond_predicate, false_predicate,
4002         not_inlined_predicate, add_condition, add_clause, and_predicates,
4003         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
4004         dump_clause, dump_predicate, account_size_time,
4005         evaulate_conditions_for_edge): New functions.
4006         (inline_summary_alloc): Move to heap.
4007         (inline_node_removal_hook): Clear condition and entry vectors.
4008         (inline_edge_removal_hook): New function.
4009         (initialize_growth_caches, free_growth_caches): New function.
4010         (dump_inline_summary): Update.
4011         (edge_execution_predicate): New function.
4012         (will_be_nonconstant_predicate): New function.
4013         (estimate_function_body_sizes): Compute BB and constantness predicates.
4014         (compute_inline_parameters): Do not clear estimated_growth.
4015         (estimate_edge_size_and_time): New function.
4016         (estimate_calls_size_and_time):&n