OSDN Git Service

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