OSDN Git Service

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