OSDN Git Service

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