OSDN Git Service

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