OSDN Git Service

* sched-int.h (struct _haifa_deps_insn_data): New members cond
[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.