OSDN Git Service

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