OSDN Git Service

PR bootstrap/49160
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
2
3         PR bootstrap/49160
4         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
5         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
6         __divxc3, __divtc3): Wrap definitions in #ifndef.
7
8 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
9
10         PR target/49142
11         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
12         "register_operand" check and replace q_regs_operand with
13         QIreg_operand in "type" calculation.
14         (*movqi_extv_1): Likewise.
15         (*movqi_extzv_2_rex64): Likewise.
16         (*movqi_extzv_2): Likewise.
17
18         * config/i386/predicates.md (QIreg_operand): New.
19
20 2011-05-25  Richard Guenther  <rguenther@suse.de>
21
22         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
23         type-based offset disambiguation, streamline MEM_REF and
24         TARGET_MEM_REF handling.
25
26 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
27
28         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
29         (bdesc_special_args): Add pause intrinsic.
30
31         * config/i386/i386.md (UNSPEC_PAUSE): New.
32         (pause): Likewise.
33         (*pause): Likewise.
34         * config/i386/ia32intrin.h (__pause): Likewise.
35
36         * doc/extend.texi (X86 Built-in Functions): Add documentation for
37         pause intrinsic.
38
39 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40
41         PR tree-optimization/46728
42         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
43         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
44         
45 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
46
47         * tree.h (struct tree_exp): Inherit from struct tree_typed.
48         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
49         instead of TS_COMMON.
50
51 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
52
53         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
54         LIBGCC2_GNU_PREFIX is defined.
55         (__N): New macro.
56         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
57         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
58         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
59         __clz_tab): Define using __N.
60         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
61         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
62         * target.def (libfunc_gnu_prefix): New hook.
63         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
64         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
65         * doc/tm.texi: Regenerate.
66         * system.h (LIBGCC2_GNU_PREFIX): Poison.
67         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
68         account.
69         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
70         (init_optabs): Likewise for the bswap libfuncs.
71         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
72         and divide.
73         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
74         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
75         * libgcc-std.ver: Remove.
76         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
77         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
78         libgcc-std.ver.
79         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
80         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
81         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
82         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
83         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
84         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
85         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
86         * config/fixed-bit.h (FIXED_OP): Define differently depending on
87         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
88         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
89
90 2011-05-25  Jan Hubicka  <jh@suse.cz>
91
92         * lto-streamer-out.c (output_record_start): Use lto_output_enum
93         (lto_output_tree): Use output_record_start.
94         * lto-streamer-in.c (input_record_start): Use lto_input_enum
95         (lto_get_pickled_tree): Use input_record_start.
96         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
97         (lto_value_range_error): New function.
98         * lto-streamer.h (lto_value_range_error): Declare.
99         (lto_output_int_in_range, lto_input_int_in_range): New functions.
100         (lto_output_enum, lto_input_enum): New macros.
101
102 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
103
104         * common.opt (flag_stack_usage_info): New variable.
105         (-Wstack-usage): New option.
106         * doc/invoke.texi (Warning options): Document -Wstack-usage.
107         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
108         <OPT_fstack_usage>: Likewise.
109         * toplev.c (output_stack_usage): Handle -Wstack-usage.
110         * calls.c (expand_call): Test flag_stack_usage_info variable instead
111         of flag_stack_usage.
112         (emit_library_call_value_1): Likewise.
113         * explow.c (allocate_dynamic_stack_space): Likewise.
114         * function.c (instantiate_virtual_regs ): Likewise.
115         (prepare_function_start): Likewise.
116         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
117         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
118         * config/arm/arm.c (arm_expand_prologue): Likewise.
119         (thumb1_expand_prologue): Likewise.
120         * config/avr/avr.c (expand_prologue): Likewise.
121         * config/i386/i386.c (ix86_expand_prologue): Likewise.
122         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
123         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
124         * config/mips/mips.c (mips_expand_prologue): Likewise.
125         * config/pa/pa.c (hppa_expand_prologue): Likewise.
126         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
127         * config/s390/s390.c (s390_emit_prologue): Likewise.
128         * config/sh/sh.c (sh_expand_prologue): Likewise.
129         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
130         * config/spu/spu.c (spu_expand_prologue): Likewise.
131
132 2011-05-25  Richard Guenther  <rguenther@suse.de>
133
134         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
135         (gimple_canonical_types_compatible_p): Likewise.
136
137 2011-05-25  Jan Hubicka  <jh@suse.cz>
138
139         PR middle-end/49062
140         * ipa.c (function_and_variable_visibility): Only add to same
141         comdat group list if DECL_ONE_ONLY.
142
143 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
144
145         PR rtl-optimization/49014
146         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
147
148 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
149
150         PR target/49128
151         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
152
153 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
154
155         PR rtl-optimization/48757
156         * ira-build.c (loop_with_eh_edge_p): Rename to
157         loop_with_complex_edge_p, check edges on complexity, make function
158         conditional.
159         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
160         conditional.
161
162 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
163
164         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
165         force flag_ira_share_save_slots to 0.
166
167 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
168
169         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
170         (vt_initialize): Set PROLOGUE_BB unconditionally.
171         Add block comment about CFA_BASE_RTX machinery.
172         Reset FP_CFA_OFFSET to -1 on all invalid paths.
173         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
174
175 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
176
177         PR objc/48187
178         * c-parser.c (c_parser_objc_class_instance_variables): More robust
179         parsing of syntax error in ObjC instance variable lists.  In
180         particular, avoid an infinite loop if there is a stray ']'.
181         Updated error message.
182
183 2011-05-24  Ian Lance Taylor  <iant@google.com>
184
185         * godump.c (go_define): Don't accept a string immediately after
186         another operand.
187
188 2011-05-24  Ian Lance Taylor  <iant@google.com>
189
190         * godump.c (struct godump_container): Add invalid_hash field.
191         (go_format_type): Return false if type is found in invalid_hash.
192         (go_output_typedef): Add invalid type to invalid_hash.
193         (go_finish): Create and delete invalid_hash.
194
195 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
196         
197         PR tree-optimization/46728
198         * tree-ssa-math-opts.c (powi_table): New.
199         (powi_lookup_cost): New.
200         (powi_cost): New.
201         (powi_as_mults_1): New.
202         (powi_as_mults): New.
203         (gimple_expand_builtin_powi): New.
204         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
205         (gate_cse_sincos): Remove sincos/cexp restriction.
206
207 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
208
209         PR target/3746
210         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
211         mips-tdump native.
212         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
213         * mips-tdump.c: Likewise.
214
215 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
216
217         PR target/49128
218         * config/i386/driver-i386.c (host_detect_local_cpu): Always
219         add -mno-XXX.  Handle FMA.
220
221 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
222
223         PR rtl-optimization/48633
224         * ira-build.c (loop_with_eh_edge_p): New function.
225         (mark_loops_for_removal): Use it.
226
227 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
228
229         PR rtl-optimization/48971
230         * ira.c (setup_pressure_classes): Don't check register move cost
231         for classes with one registers.  Don't add pressure class if there
232         is a pressure class with the same available hard registers.
233         Check contains_reg_of_mode.  Fix a typo in collecting
234         temp_hard_regset.  Ignore hard registers not belonging to a class.
235
236 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
237
238         PR target/49133
239         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
240
241 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
242             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
243
244         PR gcov-profile/48845
245         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
246
247 2011-05-24  Richard Guenther  <rguenther@suse.de>
248
249         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
250         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
251         (gimple_types_compatible_p_1): Adjust.
252         (iterative_hash_canonical_type): Do not bother about complete vs.
253         incomplete types.
254         (gimple_canonical_types_compatible_p): Likewise.
255
256 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
257
258         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
259
260 2011-05-24  Richard Guenther  <rguenther@suse.de>
261
262         PR bootstrap/49078
263         * gimple.c (gimple_register_canonical_type): Revert
264         previous change.
265         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
266         does not for a tree for the case where it matters.  Cache
267         pointer-type alias-sets.
268
269 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
270
271         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
272         (OBJS): Remove options.o, opts-common.o and prefix.o.
273         (OBJS-libcommon-target): New.
274         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
275         (BACKEND): Include libcommon-target.a.
276         (MOSTLYCLEANFILES): Include libcommon-target.a.
277         (libcommon-target.a): New.
278         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
279         prefix.o.
280
281 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
282
283         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
284         parts of output shared with the driver.
285         * optc-gen.awk: Don't generate parts of output not shared with the
286         driver.
287         * opth-gen.awk: Remove GCC_DRIVER conditionals.
288         * doc/options.texi (SourcerInclude): Mention options-save.c.
289         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
290         (OBJS): Add options-save.o.
291         (options-save.c, options-save.o): New.
292         (options.o): Update dependencies.
293         (gcc-options.o): Remove.
294         (mostlyclean): Remove options-save.c.
295
296 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
297
298         PR debug/49032
299         * dbxout.c: Include cgraph.h.
300         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
301         and without value expr, return NULL if no varpool node exists for
302         it or if it is not needed.
303         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
304
305         PR c/49120
306         * c-decl.c (start_decl): Convert expr to void_type_node.
307
308 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
309
310         PR rtl-optimization/48826
311         * emit-rtl.c (try_split): When splitting a call that is followed
312         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
313
314 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
315
316         * cfgexpand.c (expand_debug_expr): For unused non-addressable
317         parameters passed in memory prefer using DECL_INCOMING_RTL over
318         the pseudos it will be copied into.
319
320 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
321
322         PR target/47315
323         * config/i386/i386.c (ix86_option_override_internal): Save the
324         initial options after checking vzeroupper.
325
326 2011-05-23  David Li  <davidxl@google.com>
327
328         PR tree-optimization/48988
329         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
330         Initialize has_valid_pred for each pred chain.
331
332 2011-05-23  Richard Guenther  <rguenther@suse.de>
333
334         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
335         (iterative_hash_gimple_type): Always hash type names.
336
337 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
338
339         * c-typeck.c (build_function_call_vec): Tweak call to
340         check_function_arguments.
341
342 2011-05-23  Richard Guenther  <rguenther@suse.de>
343
344         PR tree-optimization/49115
345         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
346         is not necessarily carried out, do not claim it kills the ref.
347         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
348
349 2011-05-23  Richard Guenther  <rguenther@suse.de>
350
351         PR middle-end/15419
352         * builtins.c (fold_builtin_memory_op): Be less restrictive about
353         what pointer types we accept for folding.
354
355 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
356
357         * gthr-gnat.c: Remove.
358         * gthr-gnat.h: Remove.
359         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
360         * config/t-freebsd (LIB2ADDEH): Likewise.
361         * config/t-linux (LIB2ADDEH): Likewise.
362         * config/t-sol2 (LIB2ADDEH): Likewise.
363         * config/ia64/t-vms (LIB2ADDEH): Likewise.
364         * configure.ac (target_thread_file): Remove gnat handling.
365         * configure: Regenerate.
366         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
367
368 2011-05-23  Tristan Gingold  <gingold@adacore.com>
369             Eric Botcazou  <ebotcazou@adacore.com>
370
371         * gcov.c (create_file_names): If no object directory is specified,
372         keep the directory of the file.
373
374 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
375
376         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
377         * configure: Regenerate.
378
379 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
380
381         PR middle-end/48973
382         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
383         failed and the comparison has a single bit signed type, use
384         constm1_rtx instead of const1_rtx for true value.
385         (do_store_flag): If ops->type is single bit signed type, disable
386         signel bit test optimization and pass -1 instead of 1 as last
387         parameter to emit_store_flag_force.
388
389 2011-05-23  Tom de Vries  <tom@codesourcery.com>
390
391         PR target/45098
392         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
393         function.
394         (infer_loop_bounds_from_undefined): Use new function.
395
396 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
397
398         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
399         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
400         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
401         and -O0 otherwise.
402         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
403
404 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
405
406         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
407         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
408         returns true.
409
410 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
411
412         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
413
414 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
415
416         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
417         UNSPEC_MOVE_PIC pattern.
418
419 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
420
421         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
422         (sparc-*-rtems*): Likewise.
423         (sparc64-*-elf*): Likewise.
424         (sparc64-*-rtems*): Likewise.
425         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
426         * config/sparc/t-crtin: New file.
427         * config/sparc/t-sol2 (crti.o): Delete rule.
428         (crtn.o): Likewise.
429         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
430         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
431         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
432         (ENDFILE_SPEC): Add crtn.o.
433
434 2011-05-22  Tom de Vries  <tom@codesourcery.com>
435
436         PR middle-end/48689
437         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
438         CODE_CONTAINS_STRUCT (TS_COMMON).
439
440 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
441
442         PR middle-end/49029
443         * expmed.c (extract_fixed_bit_field): Test whether target can be used
444         only after deciding which mode to use.
445
446 2011-05-22  Tom de Vries  <tom@codesourcery.com>
447
448         PR target/45098
449         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
450         for call to get_shiftadd_cost.
451
452 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
453
454         PR target/49104
455         * config/i386/cpuid.h (bit_MMXEXT): New define.
456
457 2011-05-22  Nick Clifton  <nickc@redhat.com>
458
459         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
460         initialisation of non-existant args[2] element.  Use args[] array
461         not arg[] array to pass arguments to build_function_type_list.
462
463 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
464
465         PR tree-optimization/49087
466         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
467
468 2011-05-21  Jason Merrill  <jason@redhat.com>
469
470         PR c++/49092
471         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
472         static storage duration.
473
474 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
475
476         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
477         frame pointer.
478
479 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
480
481         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
482         false if there are call-saved registers here...
483         (sparc_can_use_return_insn_p): ...but here instead.
484         (save_or_restore_regs): Fix thinko.
485         (sparc_expand_prologue): Use current_function_is_leaf.
486         (sparc_frame_pointer_required): Likewise.
487
488 2011-05-21  Nick Clifton  <nickc@redhat.com>
489
490         PR target/49098
491         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
492
493 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
494
495         * gengtype.c (walk_type): Implemented "atomic" GTY option.
496         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
497
498 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
499
500         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
501         * optc-gen.awk: Move common code to opt-read.awk.
502         * opth-gen.awk: Likewise.
503         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
504
505 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
506
507         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
508
509 2011-05-20  Tom de Vries  <tom@codesourcery.com>
510
511         PR target/45098
512         * tree-ssa-loop-ivopts.c: Include expmed.h.
513         (get_shiftadd_cost): New function.
514         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
515
516 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
517
518         PR bootstrap/49086
519         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
520         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
521
522 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
523
524         * Makefile.in: Update comment referring to $(OBJS-common).
525
526 2011-05-20  Ian Lance Taylor  <iant@google.com>
527
528         * godump.c (go_output_typedef): Put enum constants in the macro
529         hash table to avoid duplicate Go const definitions.
530
531 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
532
533         * Makefile.in (LIBDEPS): Add libcommon.a.
534         (LIBS): Likewise.
535         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
536         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
537         pretty-print.o and version.o.
538         (OBJS-libcommon): New.
539         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
540         (BACKEND): Add libcommon.a.
541         (MOSTLYCLEANFILES): Likewise.
542         (libcommon.a): New.
543         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
544         (cpp$(exeext)): Likewise.
545         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
546         pretty-print.o and input.o.
547         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
548         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
549         (errors.o): Remove.
550         (mips-tfile): Don't explicitly use version.o.
551         (mips-tdump): Likewise.
552         (gcov.o): Depend on $(DIAGNOSTIC_H).
553         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
554         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
555         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
556         * gcov-dump.c: Include intl.h and diagnostic.h.
557         (main): Initialize diagnostics.
558         * gcov.c: Include diagnostic.h.
559         (fnotice): Remove.
560         (main): Initialize diagnostics.
561         * lto-wrapper.c: Include diagnostic.h.
562         (main): Initialize diagnostics.
563
564 2011-05-20  Michael Matz  <matz@suse.de>
565
566         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
567
568 2011-05-20  Michael Matz  <matz@suse.de>
569             Richard Guenther  <rguenther@suse.de>
570
571         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
572         use lto_streamer_cache_append directly instead of returning a VEC.
573         (preload_common_node): Remove.
574         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
575         track seen nodes.
576         (lto_streamer_cache_create): Call lto_preload_common_nodes.
577
578 2011-05-20  Richard Guenther  <rguenther@suse.de>
579
580         PR tree-optimization/49079
581         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
582         MEM_REFs correctly for the trailing array access detection.
583         Special case constants the same way as decls for overall size
584         constraining.
585
586 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
587
588         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
589         argument expansion.
590
591 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
592
593         PR tree-optimization/49073
594         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
595         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
596         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
597
598 2011-05-20  Richard Guenther  <rguenther@suse.de>
599
600         PR middle-end/48849
601         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
602         of pointer types the same way the middle-end does.
603
604 2011-05-20  Richard Guenther  <rguenther@suse.de>
605
606         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
607         or pointer-to chains.  Delay all fixup to uniquify_nodes.
608
609 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
610
611         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
612         (fma4_fmaddsub): Likewise
613
614 2011-05-19  Jan Hubicka  <jh@suse.cz>
615
616         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
617         (GIMPLE_TYPE_PAIR_SIZE): New macro.
618         (type_pair_cache): New static var.
619         (lookup_type_pair): Use fixed sized custom hash; make inline.
620         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
621         calls of lookup_type_pair.
622         (print_gimple_types_stats): Remove cache stats.
623         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
624         and gtc_ob.
625
626 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
627
628         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
629         when TARGET_RDRND is active.
630         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
631         Generate dummy SImode target register when target is NULL.
632
633 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
634
635         * config/arm/arm-fpus.def: New.
636         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
637         arm-fpus.def.
638         * config/arm/arm-tables.opt: Regenerate.
639         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
640         (arm_option_override): Don't decode FPU name to string here.
641         * config/arm/arm.opt (mfpu=): Use Enum.
642         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
643         Update dependencies.
644
645 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
646
647         * collect2.c: Include diagnostic.h.
648         (fatal_perror, fatal, error, fancy_abort): Remove.
649         (main): Set progname.  Call xmalloc_set_program_name and
650         diagnostic_initialize.
651         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
652         scan_libraries, resolve_lib_name): Call fatal_error instead of
653         fatal and fatal_perror.
654         * collect2.h (error, fatal, fatal_perror): Don't declare.
655         * tlink.c: Include diagnostic-core.h.
656         (recompile_files): Call fatal_error instead of fatal_perror.
657         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
658         pretty-print.o and input.o.
659         (collect2.o, tlink.o): Update dependencies.
660
661 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
662
663         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
664
665 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
666
667         PR target/40483
668         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
669         COMDAT group syntax, both SPARC and x86 variants.
670         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
671         * configure: Regenerate.
672         * config/sol2.h (TARGET_SOLARIS): Define.
673         (PUSHSECTION_FORMAT): Remove.
674         (SECTION_NAME_FORMAT): Define.
675         * config/sol2.c: Include hashtab.h.
676         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
677         expansion, using SECTION_NAME_FORMAT.
678         (solaris_comdat_htab): New variable.
679         (struct comdat_entry): Define.
680         (comdat_hash): New function.
681         (comdat_eq): New function.
682         (solaris_elf_asm_comdat_section): New function.
683         (solaris_define_comdat_signature): New function.
684         (solaris_code_end): New function.
685         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
686         (solaris_code_end): Declare.
687         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
688         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
689         solaris_code_end.
690         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
691         Remove ATTRIBUTE_UNUSED.
692         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
693         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
694         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
695         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
696         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
697         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
698         (PUSHSECTION_FORMAT): Remove.
699         (SECTION_NAME_FORMAT): Redefine.
700
701 2011-05-19  Kai Tietz  <ktietz@redhat.com>
702
703         * tree-cfg.c (verify_gimple_assign_binary): Barf on
704         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
705         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
706
707 2011-05-19  Anatoly Sokolov <aesok@post.ru>
708             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
709
710         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
711
712 2011-05-19  Richard Guenther  <rguenther@suse.de>
713
714         PR middle-end/48985
715         * tree-object-size.c (addr_object_size): If the pointed-to
716         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
717
718 2011-05-19  Richard Guenther  <rguenther@suse.de>
719
720         * gimple.c (gimple_types_compatible_p_1): Compare names of
721         the types themselves.
722         (iterative_hash_gimple_type): And hash them that way.
723         (gimple_register_type_1): If we register a main variant properly
724         initialize the leader to ourselves.
725
726 2011-05-19  Tom de Vries  <tom@codesourcery.com>
727
728         PR target/45098
729         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
730         get_loop_invariant_expr_id.
731         (get_loop_invariant_expr_id): Use get_expr_id.
732         (parm_decl_cost): New function.
733         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
734         Improve bound cost estimation.  Use different inv_expr_id for elim and
735         express cases.
736
737 2011-05-19  Tom de Vries  <tom@codesourcery.com>
738
739         PR target/45098
740         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
741         cost_base.cost == 0.
742
743 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
744
745         PR target/49002
746         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
747         Properly handle load cast.
748
749 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
750
751         PR tree-optimization/49039
752         * tree-vrp.c (extract_range_from_binary_expr): For
753         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
754         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
755
756 2011-05-18  Tom de Vries  <tom@codesourcery.com>
757
758         PR target/45098
759         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
760
761 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
762
763         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
764         (*tls_global_dynamic_64): Ditto.
765         (*tls_local_dynamic_base_32_gnu): Ditto.
766         (*tls_local_dynamic_base_64): Ditto.
767         (tls_initial_exec_64_sun): Ditto.
768
769 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
770
771         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
772         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
773         bf592-none.
774         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
775         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
776         * config/bfin/bfin.c (bfin_cpus): Add bf592.
777         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
778         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
779         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
780         * config/bfin/elf.h (LIB_SPEC): Add bf592.
781
782 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
783
784         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
785         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
786         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
787         target_thread_pointer, arm_structure_size_boundary, struct
788         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
789         struct abi_name, arm_all_abis): Remove.
790         (arm_option_override) Don't process most enumerated option values here.
791         Don't process target_fpe_name here.  Work with integer not string for
792         structure size boundary; use separate diagnostics for each case.
793         * config/arm/arm.h (enum float_abi_type, enum
794         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
795         to arm-opts.h.
796         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
797         arm_structure_size_boundary): Remove.
798         * config/arm/arm.opt (mabi=): Use Enum and Init.
799         (arm_abi_type): New Enum and EnumValue entries.
800         (mfloat-abi=): Use Enum and Init.
801         (float_abi_type): New Enum and EnumValue entries.
802         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
803         (mfp16-format=): Use Enum and Init.
804         (arm_fp16_format_type): New Enum and EnumValue entries.
805         (mstructure-size-boundary=): Use UInteger and Init.
806         (mtp=): Use Enum and Init.
807         (arm_tp_type): New Enum and EnumValue entries.
808
809 2011-05-18  Richard Guenther  <rguenther@suse.de>
810
811         PR tree-optimization/49018
812         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
813         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
814         gimple_has_side_effects.
815
816 2011-05-18  Richard Guenther  <rguenther@suse.de>
817
818         * gimple.c (gimple_register_type_1): New function, split out from ...
819         (gimple_register_type): ... here.  Avoid infinite recursion.
820
821 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
822
823         PR tree-optimization/41881
824         * tree-vectorizer.h (struct _loop_vec_info): Add new field
825         reduction_chains along with a macro for its access.
826         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
827         (destroy_loop_vec_info): Free reduction chains.
828         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
829         (vect_is_slp_reduction): New function.
830         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
831         (vect_create_epilog_for_reduction): Support SLP reduction chains.
832         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
833         definition types for reduction chains.
834         (vect_supported_load_permutation_p): Don't allow permutations for
835         reduction chains.
836         (vect_analyze_slp_instance): Support reduction chains.
837         (vect_analyze_slp): Try to build SLP instance from reduction chains.
838         (vect_get_constant_vectors):  Handle reduction chains.
839         (vect_schedule_slp_instance): Mark the first statement of the
840         reduction chain as reduction.
841
842 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
843
844         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
845         names for group elements access.
846         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
847         reduction chains as well.  Remove data reference and interleaving
848         related words from the fields names.
849         * tree-vect-loop.c (vect_transform_loop): Use new names for group
850         elements access.
851         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
852         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
853         vect_update_interleaving_chain, vect_same_range_drs,
854         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
855         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
856         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
857         vect_analyze_group_access, vect_analyze_data_ref_access,
858         vect_create_data_ref_ptr, vect_transform_strided_load,
859         vect_record_strided_load_vectors): Likewise.
860         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
861         vect_model_load_cost, vectorizable_store, vectorizable_load,
862         vect_remove_stores, new_stmt_vec_info): Likewise.
863         * tree-vect-slp.c (vect_build_slp_tree,
864         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
865
866 2011-05-18  Richard Guenther  <rguenther@suse.de>
867
868         PR middle-end/48989
869         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
870         operand verification.
871         (verify_gimple_assign_binary): Likewise.
872         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
873         to non-1-precision BOOLEAN_TYPEs.
874
875 2011-05-18  Tom de Vries  <tom@codesourcery.com>
876
877         PR target/45098
878         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
879
880 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
881
882         PR tree-optimization/49000
883         * tree-ssa.c (execute_update_addresses_taken): Call
884         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
885         be rewritten and decl has been marked for renaming, reset
886         the debug stmt.
887
888 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
889
890         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
891         enum_opts_set when testing if attributes have set -mfpmath=.
892
893 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
894
895         * config/mips/mips.c (mips_handle_option): Remove unused variable.
896
897 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
898
899         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
900         info->entry with 0
901         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
902         id.transform_lang_insert_block with NULL.
903
904 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
905
906         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
907         (output_fp_compare): Change args 3 and 4 to bool.
908         (ix86_expand_call): Change arg 6 to bool.
909         (ix86_attr_length_immediate_default): Change arg 2 to bool.
910         (ix86_attr_length_vex_default): Change arg 3 to bool.
911         * config/i386/i386.md: Update all uses.
912         * config/i386/i386.c: Ditto.
913         (ix86_flags_dependent): Change return type to bool.
914
915 2011-05-17  Richard Guenther  <rguenther@suse.de>
916
917         * gimple.c (type_hash_pair_compare): Fix comparison.
918
919 2011-05-17  Richard Guenther  <rguenther@suse.de>
920
921         * gimple.c (iterative_hash_gimple_type): Simplify singleton
922         case some more, fix final hash value of the non-singleton case.
923
924 2011-05-17  Richard Guenther  <rguenther@suse.de>
925
926         PR bootstrap/49013
927         Revert
928         2011-05-16  Richard Guenther  <rguenther@suse.de>
929
930         * gimple.c (gimple_types_compatible_p_1): Use names of the
931         type itself, not its main variant.
932         (iterative_hash_gimple_type): Likewise.
933
934 2011-05-17  Richard Guenther  <rguenther@suse.de>
935
936         * gimple.c (gimple_register_canonical_type): Use the main-variant
937         leader for computing the canonical type.
938
939 2011-05-17  Nick Clifton  <nickc@redhat.com>
940
941         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
942         moves.
943
944         * config/rx/rx.md: Add peephole to remove redundant extensions
945         after loads.
946         (bitset_in_memory): Use rx_restricted_mem_operand.
947         (bitinvert_in_memory): Likewise.
948         (bitclr_in_memory): Likewise.
949
950 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
951             Nick Clifton  <nickc@redhat.com>
952
953         * config/rx/rx.md: Add peepholes to match a register move followed
954         by a comparison of the moved register.  Replace these with an
955         addition of zero that does both actions in one instruction.
956
957 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
958
959         PR target/48986
960         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
961         predicate to allow CONST_INT.
962         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
963
964 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
965
966         * opts-common.c (opt_enum_arg_to_value): New.
967         * opts.h (opt_enum_arg_to_value): Declare.
968         * config/i386/i386.opt (fpmath): Remove.
969         (mfpmath=): Use Enum, Init and Save.
970         (fpmath_unit): New Enum and EnumValue entries.
971         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
972         name for function fpmath state.
973         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
974         * config/i386/i386.c: Include diagnostic.h.
975         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
976         (ix86_target_string): Take enum fpmath_unit value instead of string.
977         (ix86_debug_options): Update call to ix86_target_string.
978         (ix86_option_override_internal): Don't process fpmath strings here.
979         (x86_function_specific_save, ix86_function_specific_restore):
980         Don't handle fpmath state specially.
981         (ix86_function_specific_print): Pass fpmath state to
982         ix86_target_string instead of printing in this function.
983         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
984         Handle enum attributes.
985         (IX86_ATTR_ENUM, ix86_opt_enum): New.
986         (ix86_valid_target_attribute_tree): Update option_strings
987         handling.  Handle fpmath as enum option.
988         (ix86_can_inline_p): Update field names for function fpmath state.
989         (ix86_expand_builtin): Update call to ix86_target_string.
990         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
991         (ix86_fpmath): Remove.
992         * config/i386/t-i386 (i386.o): Update dependencies.
993
994 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
995
996         PR preprocessor/48677
997         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
998         from decoded_options[0], not from itself.
999
1000 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
1001
1002         * config/i386/constraints.md (z): New constraint.
1003         * config/i386/i386.c (c): New mode attribute.
1004         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1005         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1006         constraint for operand 0.
1007         (*call_vzeroupper): Ditto.
1008         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
1009         (*call_rex64_ms_sysv_vzeroupper): Ditto.
1010         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1011         Use "lzm" constraint for operand 0.
1012         (*call_pop_vzeroupper): Ditto.
1013         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1014         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
1015         constraint for operand 0.
1016         (*sibcall_vzeroupper): Ditto.
1017         (*sibcall_rex64_ms_sysv): Ditto.
1018         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1019         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1020         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
1021         (*sibcall_pop_vzeroupper): Ditto.
1022         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1023         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1024         mode iterator.  Use "<c>zm" constraint for operand 1.
1025         (*call_value_vzeroupper): Ditto.
1026         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
1027         for operand 1.
1028         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1029         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1030         *call_value_pop_1.  Use "lzm" constraint for operand 1.
1031         (*call_value_pop_vzeroupper): Ditto.
1032         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1033         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1034         mode iterator.  Use "Uz" constraint for operand 1.
1035         (*sibcall_value_vzeroupper): Ditto.
1036         (*sibcall_value_rex64_ms_sysv): Ditto.
1037         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1038         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
1039         constraint for operand 1.
1040         (*sibcall_value_pop_vzeroupper): Ditto.
1041         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1042         and "z" constraint for operand 2.
1043         (*tls_global_dynamic_32_gnu): Ditto.
1044         (*tls_local_dynamic_base_32_gnu): Ditto.
1045         (*tls_local_dynamic_base_64): Ditto.
1046         (*tls_local_dynamic_32_once): Ditto.
1047         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1048         Update all callers.
1049         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1050
1051 2011-05-16  Richard Guenther  <rguenther@suse.de>
1052
1053         * gimple.c (gimple_types_compatible_p_1): Use names of the
1054         type itself, not its main variant.
1055         (iterative_hash_gimple_type): Likewise.
1056
1057 2011-05-16  Richard Guenther  <rguenther@suse.de>
1058
1059         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1060         always visit pointer target and function result and argument types.
1061
1062 2011-05-16  Jason Merrill  <jason@redhat.com>
1063
1064         PR c++/48999
1065         * tree-inline.c (copy_statement_list): Put back recursion.
1066
1067 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1068
1069         PR target/27663
1070         PR target/41076
1071         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1072         * config/avr/avr.md ("*ior<mode>qi.byte0",
1073         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1074
1075 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
1076
1077         PR target/45099
1078         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1079         register is needed for a function argument.
1080
1081 2011-05-16  Richard Guenther  <rguenther@suse.de>
1082
1083         * gimple.c (struct type_hash_pair): New type.
1084         (type_hash_pair_compare): New function.
1085         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1086
1087 2011-05-16  Revital Eres  <revital.eres@linaro.org>
1088
1089         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1090
1091 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1092
1093         * config/i386/i386.md (floating point move splitters): Fix
1094         usage of standard_80387_constant_p.
1095         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1096
1097 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
1098
1099         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1100
1101 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1102
1103         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1104         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1105         (tree_ssa_lim_finalize): Likewise.
1106
1107 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
1108
1109         * config/i386/constraint.md (Yd, Yx): New register constraints.
1110         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
1111         Yd conditional register constraint.
1112         (*movtf_internal): Use standard_sse_constant_opcode.
1113         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
1114         Yx conditional register constraint.
1115         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
1116         Yd conditional register constraint.  Use standard_sse_constant_p to
1117         check for valid SSE constants and call standard_sse_constant_opcode to
1118         output SSE insn.
1119         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1120         constants and call standard_sse_constant_opcode to output SSE insn.
1121         * config/i386/i386.c (ix86_option_ovverride_internal): Set
1122         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
1123         optimize_size is set.
1124         (standard_sse_constant_opcode): Output conditional AVX insn templates.
1125
1126 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1127
1128         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1129
1130 2011-05-13  Martin Jambor  <mjambor@suse.cz>
1131
1132         * ipa-prop.c (ipa_cst_from_jfunc): New function.
1133         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1134         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1135         (evaluate_conditions_for_ipcp_clone): Removed.
1136         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1137         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1138         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1139
1140 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1141
1142         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1143         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1144         lieu of MAY_HAVE_DEBUG_STMTS.
1145         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1146         debug statements if !MAY_HAVE_DEBUG_STMTS.
1147
1148 2011-05-13  Martin Thuresson  <martint@google.com>
1149
1150         PR gcov-profile/47793
1151         * libgcov.c (gcov_exit): Support relative profile paths.
1152         * doc/invoke.texi (-fprofile-dir): Update for above change.
1153
1154 2011-05-13  Richard Guenther  <rguenther@suse.de>
1155
1156         * gimple.c (gimple_canonical_types_compatible_p): Do not use
1157         type-pair caching, do not compare hashes.
1158
1159 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
1160
1161         PR middle-end/48965
1162         * tree-cfg.c (edge_to_cases_cleanup): Return true.
1163         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1164
1165 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1166
1167         * gimplify.c (gimplify_expr): Make sure operand is boolified.
1168         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1169         compatible type for TRUTH_NOT_EXPR.
1170
1171 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1172
1173         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
1174         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
1175         can_create_pseudo_p ().
1176
1177 2011-05-13  Richard Guenther  <rguenther@suse.de>
1178
1179         PR lto/48978
1180         * gimple.c (iterative_hash_gimple_type): Revert change in
1181         pointer target and function result and argument hashing.
1182
1183 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
1184
1185         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1186         (*movxf_internal_nointeger): Ditto.
1187         (*movdf_internal_rex64): Ditto.
1188         (*movdf_internal): Ditto.
1189         (*movdf_internal_nointeger): Ditto.
1190         (*movsf_internal): Ditto.
1191         (sincos splitters): Use can_create_pseudo ().
1192
1193 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
1194
1195         * config/i386/i386-opts.h: New.
1196         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1197         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1198         ix86_section_threshold): Remove.
1199         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
1200         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1201         OPT_mbranch_cost_.
1202         (ix86_option_override_internal): Don't decode strings for options
1203         other than -march=, -mtune= and -mfpmath=.  Don't allow for
1204         __attribute__ uses in remaining diagnostics for options with
1205         string arguments.  Don't check for integer arguments being negative.
1206         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
1207         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
1208         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1209         ix86_branch_cost, ix86_section_threshold): Remove.
1210         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1211         HeaderInclude.
1212         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1213         but not Var.
1214         (masm=): Use Enum and Init.
1215         (asm_dialect): New Enum and EnumValue entries.
1216         (mbranch-cost=): Use UInteger.
1217         (mlarge-data-threshold=): Use UInteger and Init.
1218         (mcmodel=): Use Enum and Init.
1219         (cmodel): New Enum and EnumValue entries.
1220         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1221         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1222         mregparm=): Use UInteger.
1223         (mstringop-strategy=): Use Enum and Init.
1224         (stringop_alg): New Enum and EnumValue entries.
1225         (mtls-dialect=): Use Enum and Init.
1226         (tls_dialect): New Enum and EnumValue entries.
1227         (mabi=): Use Enum and Init.
1228         (calling_abi): New Enum and EnumValue entries.
1229         (mveclibabi=): Use Enum and Init.
1230         (ix86_veclibabi): New Enum and EnumValue entries.
1231
1232 2011-05-13  Nick Clifton  <nickc@redhat.com>
1233
1234         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1235         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1236
1237 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1238
1239         PR middle-end/48984
1240         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1241         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1242         (gimple_boolify): Check for cast for boolean_type_node instead for
1243         BOOLEAN_TYPE.
1244
1245 2011-05-13  Richard Guenther  <rguenther@suse.de>
1246
1247         PR tree-optimization/48172
1248         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1249         multiplying by number of iterations for equal step.
1250         (vect_create_cond_for_alias_checks): Likewise.
1251
1252 2011-05-13  Andreas Schwab  <schwab@redhat.com>
1253
1254         * configure.ac: Use AS_HELP_STRING throughout.
1255         * configure: Regenerate.
1256
1257 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1258
1259         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1260         (ix86_emit_restore_regs_using_mov): Likewise.
1261         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1262
1263 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
1264
1265         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1266         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1267         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1268         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1269         RTX_OK_FOR_OLO10_P): ...here.
1270         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1271         SYMBOLIC_CONST.
1272
1273 2011-05-12  Kai Tietz  <ktietz@redhat.com>
1274
1275         * gimplify.c (gimple_boolify): Re-boolify expression
1276         arguments even if expression type is of kind BOOLEAN_TYPE.
1277         (gimplify_boolean_expr): Removed.
1278         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1279         and XOR. Additional take care that we keep expression's type.
1280         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1281         of TRUTH_AND|OR|XOR_EXPR.
1282
1283 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1284
1285         PR tree-optimization/48975
1286         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1287         on all bbs here and free and clear ifc_bbs at the end.
1288
1289 2011-05-12  Richard Guenther  <rguenther@suse.de>
1290
1291         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1292         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
1293         until after simple checks.
1294         (gimple_types_compatible_p): Likewise.
1295         (iterative_hash_gimple_type): Always hash pointer targets
1296         and function return and argument types.
1297         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1298         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
1299         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1300         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
1301         completely in the simple compare section.
1302         (gimple_register_canonical_type): Query the cache again after
1303         registering.
1304
1305 2011-05-12  Richard Guenther  <rguenther@suse.de>
1306
1307         PR tree-optimization/48172
1308         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1309         the number of iterations from the segment size calculation.
1310         (vect_create_cond_for_alias_checks): Adjust.
1311
1312 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1313
1314         PR debug/48967
1315         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1316         if validate_subreg fails.
1317
1318 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
1319
1320         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1321         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1322         early.
1323
1324 2011-05-12  DJ Delorie  <dj@redhat.com>
1325
1326         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1327         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1328         created builtin into rx_builtins array.
1329         (rx_builtin_decl): New function.
1330         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
1331
1332 2011-05-12  DJ Delorie  <dj@redhat.com>
1333             Nick Clifton  <nickc@redhat.com>
1334
1335         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1336         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1337         (rx_is_legitimate_address): Add pre-decrement and post-increment
1338         addressing in HImode and QImode.  Fix test for out of range
1339         REG+INT addressing.
1340         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
1341         (rx_align_for_label): Test label before extracting its usage count.
1342         (rx_adjust_insn_lengths): Fix selection of insn codes.
1343         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
1344
1345 2011-05-11  Jason Merrill  <jason@redhat.com>
1346
1347         * tree.c (type_hash_canon): Use struct tree_type_non_common.
1348
1349 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1350
1351         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1352         reindent the subsequent block.
1353
1354 2011-05-11  Satoru Takabayashi  <satorux@google.com>
1355             Paul Pluzhnikov  <ppluzhnikov@google.com>
1356
1357         * doc/install.texi (Configuration): Document --with-linker-hash-style.
1358         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1359         * config.in: Add LINKER_HASH_STYLE.
1360         * configure.ac: Add --with-linker-hash-style.
1361         * configure: Regenerate.
1362
1363 2011-05-11  Richard Guenther  <rguenther@suse.de>
1364
1365         PR middle-end/48964
1366         * gimple.c (iterative_hash_canonical_type): Fix typo.
1367
1368 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
1369
1370         * config/i386/i386.c (legitimize_tls_address)
1371         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1372         expanders directly for TARGET_GNU2_TLS.  Determine pic and
1373         __tls_get_addr symbol reference here.  Update call to
1374         gen_tls_global_dynamic_{32,64} for added arguments.
1375         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1376         expanders directly for TARGET_GNU2_TLS.  Determine
1377         __tls_get_addr symbol reference here.  Update call to
1378         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
1379         unique UNSPEC REG_EQUIV to libcall block.
1380         (ix86_tls_get_addr): Declare static.
1381         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1382         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1383         Do not determine pic and __tls_get_addr symbol reference here. Do not
1384         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1385         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1386         (tls_global_dynamic_64): Add operand 2.  Do not determine
1387         __tls_get_addr symbol reference here.  Do not call
1388         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1389         (tls_local_dynamic_base64): Ditto for operand 1.
1390
1391 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1392
1393         * function.c (expand_function_start): Initialize stack_check_probe_note
1394         only if the generic stack checking mechanism is used.
1395
1396 2011-05-11  Richard Guenther  <rguenther@suse.de>
1397
1398         PR tree-optimization/15256
1399         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1400         (A & B) | C, combine (A op CST1) op CST2.
1401         (tree_ssa_forward_propagate_single_use_vars): Only bother to
1402         visit assigns that have uses.
1403
1404 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
1405
1406         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
1407         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1408         (unpack_ts_type_common_value_fields): ...this.  Update comment.
1409         (unpack_value_fields): Adjust for renaming.
1410         (lto_input_ts_type_tree_pointers): Split into...
1411         (lto_input_ts_type_common_tree_pointer): ...this and...
1412         (lto_input_ts_type_non_common_tree_pointers): ...this.
1413         (lto_input_tree_pointers): Adjust for above split.
1414         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1415         (pack_ts_type_common_value_fields): ...this.  Update comment.
1416         (lto_output_ts_type_tree_pointers): Split into...
1417         (lto_output_ts_type_common_tree_pointers): ...this and...
1418         (lto_output_ts_type_non_common_tree_pointers): ...this.
1419         (lto_output_tree_pointers): Adjust for above split.
1420         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1421         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1422         * stor-layout.c (vector_type_mode): Adjust location of mode field.
1423         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1424         Define.
1425         (struct tree_type): Split into...
1426         (struct tree_type_common: ...this and...
1427         (struct tree_type_with_lang_specific): ...this and...
1428         (struct tree_type_non_common): ...this.  Adjust accessor macros
1429         accordingly.
1430         (TYPE_VALUES_RAW): Define.
1431         (union tree_node): Update for above changes.
1432         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
1433         TS_TYPE_NON_COMMON.
1434         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
1435         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
1436         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
1437         * treestructu.def (TS_TYPE): Remove.
1438         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
1439         Define.
1440
1441 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
1442
1443         PR debug/48159
1444         * tree-ssa.c (reset_debug_uses): New function.
1445         * tree-flow.h (reset_debug_uses): New prototype.
1446         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1447         * tree-loop-distribution.c (generate_loops_for_partition): Call
1448         reset_debug_uses on the stmts that will be removed.  Keep around
1449         all debug stmts, don't count them as bits in partition bitmap.
1450         (generate_builtin): Don't count debug stmts or labels as bits in
1451         partition bitmap.
1452
1453 2011-05-11  Richard Guenther  <rguenther@suse.de>
1454
1455         * gimple.c (gimple_type_hash_1): Merge with ...
1456         (gimple_type_hash): ... this.
1457         (gtc_visit): Remove mode parameter and simplify accordingly.
1458         (gimple_types_compatible_p_1): Likewise.
1459         (gimple_types_compatible_p): Likewise.
1460         (iterative_hash_gimple_type): Likewise.
1461         (visit): Likewise.
1462         (gimple_type_eq): Adjust.
1463
1464 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1465
1466         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1467         enters the branch create an anti edge in the opposite direction
1468         to prevent the creation of reg-moves.
1469         * modulo-sched.c: Adjust comment to reflect the fact we are
1470         scheduling closing branch.
1471         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1472         (stage_count): New field in struct partial_schedule.
1473         (calculate_stage_count): New function.
1474         (normalize_sched_times): Rename to reset_sched_times and handle
1475         incrementing the sched time of the nodes by a constant value
1476         passed as parameter.
1477         (duplicate_insns_of_cycles): Skip closing branch.
1478         (sms_schedule_by_order): Schedule closing branch.
1479         (ps_insn_find_column): Handle closing branch.
1480         (sms_schedule): Call reset_sched_times and adjust the code to
1481         support scheduling of the closing branch.
1482         (ps_insert_empty_row): Update calls to normalize_sched_times
1483         and rotate_partial_schedule functions.
1484
1485 2011-05-11  Richard Guenther  <rguenther@suse.de>
1486
1487         PR middle-end/48953
1488         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1489
1490 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
1491
1492         * opts.c (finish_options): Move warning settings from process_options.
1493         * toplev.c (process_options): Move warning settings to finish_options.
1494
1495 2011-05-11  Richard Guenther  <rguenther@suse.de>
1496
1497         PR tree-optimization/18041
1498         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1499         (simplify_bitwise_binary): ... this.  Handle operand conversions
1500         by applying them to the result instead.
1501         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
1502
1503 2011-05-11  Richard Guenther  <rguenther@suse.de>
1504
1505         * gimple.c (gimple_canonical_types_compatible_p): Split out
1506         from gimple_types_compatible_p and friends.  Do not recurse
1507         to pointed-to types.
1508         (gimple_canonical_type_eq): Use it.
1509         (iterative_hash_canonical_type): Split out from
1510         iterative_hash_gimple_type and friends.  Do not recurse
1511         to pointed-to types.
1512         (gimple_canonical_type_hash): Use it, allocate the hash here.
1513
1514 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1515
1516         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1517         recognizing doloop.
1518
1519 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1520
1521         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1522         instead of PREV_INSN.
1523
1524 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1525
1526         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1527         * loop-doloop.c (doloop_condition_get): Likewise.
1528         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1529         (doloop_end): New.
1530         * config/arm/arm.md (*addsi3_compare0): Remove "*".
1531
1532 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
1533
1534         * tree.def (CASE_LABEL_EXPR): Add an operand.
1535         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1536
1537 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1538
1539         * c-decl.c (c_override_global_bindings_to_false): Remove.
1540         (global_bindings_p): Don't check
1541         c_override_global_bindings_to_false.
1542         * c-tree.h (c_override_global_bindings_to_false): Remove.
1543         * c-typeck.c (composite_type): Don't set
1544         c_override_global_bindings_to_false.
1545
1546 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
1547
1548         PR target/48857, 48495
1549         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1550         (VSX_MODE): Ditto.
1551         (VSX_MOVE_MODE): Ditto.
1552         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1553         VSX vector types.  Add V2DImode.
1554         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1555         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1556         (MODES_TIEABLE_P): Ditto.
1557
1558         * config/rs6000/rs6000.c (rs6000_emit_move): Use
1559         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1560         VSX_VECTOR_MODE.
1561         (init_cumulative_args): Ditto.
1562         (rs6000_function_arg_boundary): Ditto.
1563         (rs6000_function_arg_advance_1): Ditto.
1564         (rs6000_function_arg): Ditto.
1565         (rs6000_function_ok_for_sibcall): Ditto.
1566         (emit_frame_save): Ditto.
1567         (rs6000_function_value): Ditto.
1568         (rs6000_libcall_value): Ditto.
1569
1570 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1571
1572         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1573         i386/darwin-lib.h to $libgcc_tm_file.
1574         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1575
1576 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1577
1578         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1579
1580 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1581
1582         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
1583         * config/rs6000/rs6000-tables.opt: New file (generated).
1584         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1585         rs6000/rs6000-tables.opt to extra_options.
1586         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1587         * config/rs6000/rs6000.c (rs6000_select): Remove.
1588         (processor_target_table): Move contents to rs6000-cpus.def.
1589         (darwin_rs6000_override_options): Check
1590         global_options_set.x_rs6000_cpu_index instead of
1591         rs6000_select[1].string.
1592         (rs6000_option_override_internal): Likewise.
1593         (rs6000_handle_option): Don't assert that global structures are in
1594         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
1595         (rs6000_default_cpu): New variable.
1596         (rs6000_file_start): Set it instead of local default_cpu.  Check
1597         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1598         global_options_set.x_rs6000_tune_index instead of rs6000_select.
1599         (rs6000_darwin_file_start): Check rs6000_default_cpu and
1600         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1601         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1602         rs6000_select): Remove.
1603         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1604         Remove.
1605         (mcpu=, mtune=): Use Var, Init, Enum and Save.
1606         * config/rs6000/t-rs6000
1607         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1608         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1609         global_options_set.x_rs6000_cpu_index instead of
1610         rs6000_select[1].string.
1611         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1612         global_options_set.x_rs6000_cpu_index instead of
1613         rs6000_select[1].string.
1614
1615 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1616
1617         * config.gcc (libgcc_tm_file): Define instead of including files
1618         from ../../libgcc/config/ in tm_file.
1619         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
1620         * configure: Regenerate.
1621         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1622         libgcc_tm.h, cs-libgcc_tm.h): New.
1623         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1624         (clean): Remove libgcc_tm.h.
1625         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1626         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1627         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1628
1629 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
1630
1631         PR target/48896
1632         * config/avr/avr.c (avr_ret_register): Return unsigned int
1633         instead of int.
1634         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1635         it to avr_libcall_value.
1636         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1637         expand_expr.
1638         (avr_expand_binop_builtin): Ditto.
1639         (avr_expand_unop_builtin): Ditto.
1640
1641 2011-05-10  DJ Delorie  <dj@redhat.com>
1642
1643         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1644         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1645         * config/rx/rx.c (rx_align_for_label): Add label and
1646         uses_threshold parameters.  Do not align when the label is not
1647         used enough.
1648         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1649
1650 2011-05-10  Richard Guenther  <rguenther@suse.de>
1651
1652         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1653         a series of conversions and apply foldings similar to what
1654         fold-const does.
1655         (tree_ssa_forward_propagate_single_use_vars): Call it.
1656
1657 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
1658
1659         PR tree-optimization/48611
1660         PR tree-optimization/48794
1661         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1662         referenced from RESX or EH_DISPATCH arguments.
1663
1664         PR debug/48928
1665         * dfp.c (decimal_to_decnumber): Handle conversion from
1666         dconst{1,2,m1,half}.
1667
1668 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1669
1670         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1671         for !flag_prefer_avx128.
1672         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1673
1674 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1675
1676         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1677         (fold_ternary_loc): Use expr_location_or.
1678
1679 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1680
1681         PR debug/48853
1682         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1683         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1684         Pmode and mem_mode is not VOIDmode.
1685
1686 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
1687
1688         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1689         TYPE_QUAL_RESTRICT): Convert to enum.
1690
1691 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1692
1693         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1694         (const_pow2_1_to_8_operand): Ditto.
1695         (const_pow2_1_to_128_operand): Ditto.
1696         (const_pow2_1_to_32768_operand): Ditto.
1697         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1698         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
1699         in insn constraint to check integer value of operand 3.
1700         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1701
1702         (PINSR_MODE): New mode iterator.
1703         (sse2p4_1): New mode attribute.
1704         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1705         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1706         iterator.  Use const_int_operand instead of
1707         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
1708         exact_log2 in insn constraint to check integer value of operand 3.
1709
1710 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1711
1712         * config/i386/sse.md (blendbits): Remove mode attribute.
1713         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1714         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1715         Check integer value of operand 3 in insn constraint.
1716
1717 2011-05-09  Richard Guenther  <rguenther@suse.de>
1718
1719         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1720         for diagnostics.
1721         (lto_symtab_merge): Likewise.  Do not register types here.
1722         (lto_symtab_merge_decls_2): Likewise.
1723         (lto_symtab_merge_decls_1): Likewise.
1724         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1725         * gimple.c (enum gtc_mode): Declare.
1726         (gimple_types_compatible_p): Make static.
1727
1728 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1729
1730         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1731         temporary register to match Pmode.
1732
1733 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1734
1735         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1736         and *vec_concatv4si_1_avx.
1737
1738 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1739
1740         PR rtl-optimization/48927
1741         * ira-conflicts.c (commutative_constraint_p): Use
1742         recog_data.alternative_enabled_p to disable alternatives where
1743         "enabled" attribute is false.
1744         (get_dup_num): Ditto.
1745         * ira-lives.c (single_reg_class): Ditto.
1746         (ira_implicitly_set_insn_hard_regs): Ditto.
1747
1748 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1749
1750         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1751         (dataflow_set_preserve_mem_locs): Likewise.
1752
1753 2011-05-09  Philipp Thomas  <pth@suse.de>
1754
1755         * config/mep/mep.c (mep_validate_vliw): Syntax description
1756         should not be translated.
1757
1758 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
1759
1760         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1761         * config/mips/mips-tables.opt: New file (generated).
1762         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
1763         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1764         MIPS_ARCH_OPTION_NATIVE): Define.
1765         * config/mips/mips.c (mips_cpu_info_table): Move contents to
1766         mips-cpus.def.
1767         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1768         mips_parse_cpu): Remove.
1769         (mips_cpu_info_from_opt, mips_default_arch): New.
1770         (mips_handle_option): Don't assert that global structures are in
1771         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1772         (mips_option_override): Use new variables and functions to set
1773         state of these options.  Use strcmp to check for individual CPU names.
1774         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1775         definition.
1776         * config/mips/mips.opt (march=): Use ToLower and Enum.
1777         (mips): Use ToLower, Enum and Var.
1778         (mtune=): Use ToLower and Enum.
1779         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1780
1781 2011-05-08  Jan Hubicka  <jh@suse.cz>
1782
1783         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1784         Arrange type pairs to be UID ordered.
1785         (gimple_lookup_type_leader): Make inline.
1786
1787 2011-05-09  Nick Clifton  <nickc@redhat.com>
1788
1789         PR target/48899
1790         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1791         PROCESSOR_DEFAULT.
1792
1793         PR target/48897
1794         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1795         variable 's'.
1796
1797 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
1798
1799         * combine.c (simplify_comparison): Abstract out parts into...
1800         (simplify_compare_const): ... new function.
1801         (try_combine): Generalize parallel arithmetic/compare combining
1802         to call simplify_compare_const() and CANONICALIZE_COMPARE().
1803
1804 2011-05-08  Jan Hubicka  <jh@suse.cz>
1805
1806         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
1807         (cgraph_create_virtual_clone): Call hooks once virtual clone
1808         is finished.
1809         * cgraph.h (cgraph_clone_node): Update prototype.
1810         * ipa-cp.c (ipcp_estimate_growth): Use
1811         estimate_ipcp_clone_size_and_time.
1812         * ipa-inline-transform.c (clone_inlined_nodes): Update.
1813         * lto-cgraph.c (input_node): Update.
1814         * ipa-inline.c (recursive_inlining): Update.
1815         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1816         (evaluate_conditions_for_known_args): Break out from ...
1817         (evaluate_conditions_for_edge): ... here.
1818         (evaluate_conditions_for_ipcp_clone): New function.
1819         (inline_node_duplication_hook): Update clone summary based
1820         on parameter map.
1821         (estimate_callee_size_and_time): Rename to ...
1822         (estimate_node_size_and_time): take NODE instead of EDGE;
1823         take POSSIBLE_TRUTHS as argument.
1824         (estimate_callee_size_and_time): Update.
1825         (estimate_ipcp_clone_size_and_time): New function.
1826         (do_estimate_edge_time): Update.
1827
1828 2011-05-08  Richard Guenther  <rguenther@suse.de>
1829
1830         PR middle-end/48908
1831         PR middle-end/48905
1832         * expmed.c (expand_shift_1): Compute adjusted constant shift
1833         amount manually.
1834
1835 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1836
1837         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1838
1839 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1840
1841         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1842
1843 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
1844
1845         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1846
1847 2011-05-07  Jan Hubicka  <jh@suse.cz>
1848
1849         * ipa-inline-transform.c (inline_call): Account when program size
1850         decreases.
1851         * ipa-inline.c (relative_time_benefit): New function.
1852         (edge_badness): Reorganize to be power 2 based; fix thinko when
1853         computing badness for negative growth; update comments to match
1854         reality; better dumps.
1855
1856 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
1857
1858         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1859         type to bool and adjust comment.
1860         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1861         (fold_mathfn_compare): Remove calls to global_bindings_p.
1862         (fold_inf_compare): Likewise.
1863         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1864         * c-tree.h (global_bindings_p): Adjust prototype.
1865         * c-decl.c (global_bindings_p): Return bool and simplify.
1866
1867 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
1868
1869         PR tree-optimization/48837
1870         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1871         when accumulator transformation is performed.
1872
1873 2011-05-06  Jan Hubicka  <jh@suse.cz>
1874
1875         * i386.h (ix86_tune_indices): Add
1876         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
1877         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
1878         * i386.c (initial_ix86_tune_features): Add
1879         X86_SOFTARE_PREFETCHING_BENEFICIAL.
1880         (software_prefetching_beneficial_p): Remove predicate.
1881         (ix86_option_override_internal): Use new macro.
1882
1883 2011-05-06  Jan Hubicka  <jh@suse.cz>
1884
1885         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1886
1887 2011-05-06  Jan Hubicka  <jh@suse.cz>
1888
1889         * cgraph.c (cgraph_add_thunk): Create real function node instead
1890         of alias node; finalize it and mark needed/reachale; arrange visibility
1891         to be right and add it into the corresponding same comdat group list.
1892         (dump_cgraph_node): Dump thunks.
1893         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
1894         cgraph_function_with_gimple_body_p,
1895         cgraph_first_function_with_gimple_body,
1896         cgraph_next_function_with_gimple_body): New functions.
1897         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1898         New macros.
1899         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1900         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1901         * cgraphunit.c (cgraph_finalize_function): Only look into possible
1902         devirtualization when optimizing.
1903         (verify_cgraph_node): Verify thunks.
1904         (cgraph_analyze_function): Analyze thunks.
1905         (cgraph_mark_functions_to_output): Output thunks only in combination
1906         with function they are assigned to.
1907         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1908         alias into normal node.
1909         (assemble_thunks): New functoin.
1910         (cgraph_expand_function): Use it.
1911         * lto-cgraph.c (lto_output_node): Stream thunks.
1912         (input_overwrite_node): Stream in thunks.
1913         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1914         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1915         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1916         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1917         (inline_analyze_function): Do not care about thunk jump functions.
1918         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
1919         * ipa-prop.c (ipa_prop_write_jump_functions): Use
1920         cgraph_function_with_gimple_body_p.
1921         * passes.c (do_per_function_toporder): Use
1922         cgraph_function_with_gimple_body_p.
1923         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1924         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1925         (function_called_by_processed_nodes_p): Likewise.
1926
1927 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1928
1929         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1930         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1931         entries.
1932         (mabi=): Replace with separate entries for mabi=altivec,
1933         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1934         mabi=ieeelongdouble and mabi=ibmlongdouble.
1935         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1936         check for -mabi=spe without SPE ABI support here.
1937         (rs6000_handle_option): Replace OPT_mabi_ handling with
1938         OPT_mabi_altivec and OPT_mabi_spe handling.
1939
1940 2011-05-06  Cary Coutant  <ccoutant@google.com>
1941
1942         * dwarf2out.c (contains_subprogram_definition): New function.
1943         (should_move_die_to_comdat): Call it.
1944
1945 2011-05-06  Jeff Law  <law@redhat.com>
1946
1947         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1948         remove_ctrl_stmt_and_useless_edges.
1949         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1950         (fixup_template_block, thread_single_edge): Likewise.
1951         (mark_threaded_blocks): Use THREAD_TARGET.
1952
1953 2011-05-06  Alan Modra  <amodra@gmail.com>
1954
1955         PR target/48900
1956         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1957         const0_rtx as the arg to the dummy __tls_get_addr libcall.
1958
1959 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1960
1961         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1962         constraint modifier to "r".
1963
1964 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1965
1966         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1967         fall through for OPT_mcmodel_.
1968
1969 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1970
1971         * config/s390/s390.c (s390_asm_trampoline_template): Comment
1972         instruction sizes.
1973         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
1974
1975 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1976
1977         PR target/47930
1978         * config/arm/arm.opt (marm): Document it.
1979         (mthumb): Reject negative variant.
1980
1981 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1982
1983         PR target/48898
1984         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1985         Fix typo in "ccvt" variable name.
1986
1987 2011-05-06  Tristan Gingold  <gingold@adacore.com>
1988
1989         PR target/48895
1990         * config/vms/vms-ar.c (main): Remove cwd variable.
1991
1992 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1993
1994         PR debug/48902
1995         * var-tracking.c (prepare_call_arguments): Move else before #endif.
1996
1997 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1998
1999         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2000         * gimplify.c (gimplify_switch_expr): Likewise.
2001         * omp-low.c (expand_omp_sections): Likewise.
2002         * tree-eh.c (lower_try_finally_switch): Likewise.
2003         (lower_eh_dispatch): Likewise.
2004         * tree.h (build_case_label): Declare.
2005         * tree.c (build_case_label): Define.
2006
2007 2011-05-05  Jason Merrill  <jason@redhat.com>
2008
2009         PR c++/40975
2010         * tree-inline.c (copy_tree_r): Use copy_statement_list.
2011         (copy_statement_list): Don't recurse.
2012         * stor-layout.c (copy_self_referential_tree_r): Don't allow
2013         STATEMENT_LIST.
2014
2015 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2016
2017         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2018         through from -mfpu= handling.
2019         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2020
2021 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
2022
2023         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2024         POST_MODIFY.
2025
2026 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
2027
2028         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2029         for 11.31.
2030         (hppa[12]*-*-hpux11*): Ditto.
2031         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2032         * config/ia64/hpux-unix2003.h: New.
2033         * config/pa/pa-hpux1131.opt: New.
2034         * config/pa/pa-hpux1131.h: New.
2035         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2036         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2037         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2038
2039 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2040
2041         PR debug/48853
2042         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2043         instead of mode as 3rd argument to recursive call.
2044         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2045         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2046         VOIDmode.
2047         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2048         don't give up if mode is Pmode and mem_mode is not VOIDmode.
2049         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2050         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2051
2052 2011-05-05  Julian Brown  <julian@codesourcery.com>
2053
2054         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2055         parenthesis in D-register case.
2056
2057 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2058
2059         * opt-functions.awk (var_type_struct): Handle Enum options.
2060         * optc-gen.awk: Don't check range of variables of character type.
2061         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2062         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2063         rs6000_sdata_name, rs6000_explicit_options): Remove.
2064         (rs6000_option_override_internal): Check for -malign-power here.
2065         Use global_options_set instead of rs6000_explicit_options.
2066         (rs6000_parse_fpu_option): Remove.
2067         (rs6000_handle_option): Access variables via opts and opts_set
2068         pointers.  Use error_at and warning_at.  Add fall-through
2069         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2070         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2071         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2072         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2073         here.  Don't use rs6000_parse_fpu_option.
2074         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2075         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2076         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2077         (mrecip=): Use Var.
2078         (mspe): Use Var and Save.
2079         (mtraceback=): Use Enum and Var.
2080         (rs6000_traceback_type): New Enum and EnumValue entries.
2081         (mfloat-gprs=): Use Enum, Var and Save.
2082         (rs6000_float_gprs): New Enum and EnumValue entries.
2083         (mlong-double-): use Var and Save.
2084         (msched-costly-dep=, minsert-sched-nops=): Use Var.
2085         (malign-): Use Enum and Var.
2086         (rs6000_alignment_flags): New Enum and EnumValue entries.
2087         (mfpu=): Use Enum.
2088         (fpu_type_t): New Enum and EnumValue entries.
2089         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2090         global_options_set instead of rs6000_explicit_options.
2091         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2092         global_options_set instead of rs6000_explicit_options.
2093         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2094         global_options_set instead of rs6000_explicit_options.
2095         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2096         global_options_set instead of rs6000_explicit_options.
2097         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2098         global_options_set instead of rs6000_explicit_options.
2099         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2100         global_options_set instead of rs6000_explicit_options.
2101         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2102         definition.
2103         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2104         global_options_set instead of rs6000_explicit_options.
2105         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2106         (rs6000_cmodel): New Enum and EnumValue entries.
2107         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2108         global_options_set instead of rs6000_explicit_options.
2109         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2110         (mtls-size=): Use Enum and Var.
2111         (rs6000_tls_size): New Enum and EnumValue entries.
2112
2113 2011-05-05  Michael Matz  <matz@suse.de>
2114
2115         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2116         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2117         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2118         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2119         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2120         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2121         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2122         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2123         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2124         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2125         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2126         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2127         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2128         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2129         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2130         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2131
2132 2011-05-05  Richard Guenther  <rguenther@suse.de>
2133
2134         * expmed.c (expand_variable_shift): Rename to ...
2135         (expand_shift_1): ... this.  Take an expanded shift amount.
2136         For rotates recurse directly not building trees for the shift amount.
2137         (expand_variable_shift): Wrap around expand_shift_1.
2138         (expand_shift): Adjust.
2139
2140 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
2141
2142         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2143
2144 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2145
2146         * tree.h (get_pending_sizes): Remove prototype.
2147         (put_pending_size): Likewise.
2148         (put_pending_sizes): Likewise.
2149         * stor-layout.c (pending_sizes): Delete.
2150         (get_pending_sizes): Likewise.
2151         (put_pending_size): Likewise.
2152         (put_pending_sizes): Likewise.
2153         (variable_size): Do not call put_pending_size and tidy up.
2154         * function.h (struct function): Remove dont_save_pending_sizes_p.
2155         * lto-streamer-in.c (input_function): Do not stream it.
2156         * lto-streamer-out.c (output_function): Likewise.
2157         * tree-inline.c (initialize_cfun): Do not copy it.
2158         * c-decl.c (store_parm_decls): Do not set it.
2159         * omp-low.c (create_task_copyfn): Likewise.
2160         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2161
2162 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
2163
2164         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2165         conditions.
2166         (*movdf_internal): Ditto.
2167         (*movdf_internal_nointeger): Ditto.
2168         (*movsf_internal): Ditto.
2169
2170 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
2171
2172         * c-decl.c (finish_decl): Don't call get_pending_sizes.
2173         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
2174         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
2175         (c_variable_size): Remove.
2176         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
2177         call put_pending_sizes.
2178         (get_parm_info): Add parameter expr.  Use it to set
2179         arg_info->pending_sizes.
2180         (store_parm_decls): Use arg_info->pending_sizes instead or calling
2181         get_pending_sizes.
2182         * c-parser.c (c_parser_parms_declarator): Update call to
2183         c_parser_parms_list_declarator.
2184         (c_parser_parms_list_declarator): Take parameter expr.  Update
2185         call to push_parm_decl.  Update recursive call.  Don't call
2186         get_pending_sizes.  Update calls to get_parm_info.
2187         (c_parser_objc_method_definition): Update calls to
2188         c_parser_objc_method_decl and objc_start_method_definition.
2189         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
2190         (c_parser_objc_method_decl): Add parameter expr.  Update call to
2191         grokparm.
2192         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
2193         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2194         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2195
2196 2011-05-05  Michael Hope  <michael.hope@linaro.org>
2197
2198         PR pch/45979
2199         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2200         __ARM_EABI__ hosts.
2201
2202 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2203
2204         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2205         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2206         (spu_output_mi_thunk): New function.
2207
2208 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2209
2210         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2211         targetm.asm_out.print_operand.
2212         * config/sol2.c: Include target.h.
2213
2214 2011-05-04  Jan Hubicka  <jh@suse.cz>
2215
2216         * ipa-inline.c (reset_edge_caches): New function.
2217         (update_caller_keys): Add check_inlinablity_for; do not
2218         reset edge caches; remove now unnecesary loop.
2219         (update_callee_keys): Add comments; reset node_growth_cache of callee.
2220         (update_all_callee_keys): Likewise.
2221         (inline_small_functions): Sanity check cache; update code
2222         recomputing it.
2223
2224 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
2225
2226         PR rtl-optimization/47612
2227         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2228         as the last insn of the sequence to be moved.
2229
2230 2011-05-04  Tobias Burnus  <burnus@net-b.de>
2231
2232         PR fortran/48864
2233         * doc/invoke.texi (Ofast): Document that it
2234         enables Fortran's -fno-protect-parens.
2235
2236 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2237
2238         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2239
2240 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2241
2242         * stor-layout.c (variable_size): Do not issue errors.
2243
2244 2011-05-04  Richard Guenther  <rguenther@suse.de>
2245
2246         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2247         for array-ref indices.
2248         (tree_coverage_counter_addr): Likewise.
2249         (build_fn_info_type): Use size_int for index types.
2250         (build_gcov_info): Likewise.
2251
2252 2011-05-04  Richard Guenther  <rguenther@suse.de>
2253
2254         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2255         to build_int_cst.
2256         * c-typeck.c (really_start_incremental_init): Use bitsize_int
2257         for constructor indices.
2258         (push_init_level): Likewise.
2259
2260 2011-05-04  Richard Guenther  <rguenther@suse.de>
2261
2262         * explow.c (promote_mode): Move variable declarations before code.
2263
2264 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2265
2266         * tree.h (build_function_type_array): Declare.
2267         (build_varargs_function_type_array): Declare.
2268         (build_function_type_vec, build_varargs_function_type_vec): Define.
2269         * tree.c (build_function_type_array_1): New function.
2270         (build_function_type_array): New function.
2271         (build_varargs_function_type_array): New function.
2272
2273 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
2274
2275         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2276         before setting STMT_VINFO_TYPE.
2277
2278 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2279
2280         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2281         instead of spu_pass_by_reference.
2282
2283 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2284
2285         * calls.c (emit_library_call_value_1): Invoke
2286         promote_function_mode hook on libcall arguments.
2287         * explow.c (promote_function_mode, promote_mode): Handle TYPE
2288         argument being NULL.
2289         * targhooks.c (default_promote_function_mode): Lisewise.
2290         * config/s390/s390.c (s390_promote_function_mode): Likewise.
2291         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2292
2293         * doc/tm.texi: Document that TYPE argument might be NULL.
2294
2295 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2296
2297         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2298
2299 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2300
2301         From Bernd Schmidt
2302         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2303
2304 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2305
2306         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2307         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2308         Move ...
2309         * mips-tfile.c: ... here.
2310         Don't include coretypes.h, tm.h, filenames.h.
2311         (saber_stop): Remove definition and all calls.
2312         [__SABER__]: Remove.
2313         (__LINE__): Remove default.
2314         (Size_t, Ptrdiff_t): Remove definitions.
2315         Replace by size_t, ptrdiff_t.
2316         [!MIPS_DEBUGGING_INFO]: Remove.
2317         (SHASH_SIZE, THASH_SIZE): Remove defaults.
2318         (progname): Add const.
2319         (STATIC): Remove.
2320         Replace all uses by static.
2321         (ALIGN_SYMTABLE_OFFSET): Remove default.
2322         * mips-tdump.c: Don't include coretypes.h, tm.h.
2323         Remove !MIPS_IS_STAB guard.
2324         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2325         $(TM_H), filenames.h dependencies.
2326         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2327
2328 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2329
2330         From Jie Zhang
2331         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2332         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2333
2334 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2335
2336         From Bernd Schmidt
2337         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2338         account and save/restore RETS.
2339         (PROFILE_BEFORE_PROLOGUE): Define.
2340         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
2341         the push insn to use predecrement.
2342
2343 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2344
2345         From Jie Zhang
2346         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2347
2348 2011-05-04  Nick Clifton  <nickc@redhat.com>
2349
2350         * config/mn10300/mn10300.c: Include cfgloop.h.
2351         (DUMP): New macro.
2352         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
2353         Lcc or a FLcc insn into the instruction stream.
2354         (mn10300_block_contains_call): New function.  Returns true if the
2355         given basic block contains a CALL insn.
2356         (mn10300_loop_contains_call_insn): New function.  Returns true if
2357         the given loop contains a CALL insn.
2358         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
2359         to use the SETLB and Lcc or FLcc insns.
2360         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2361         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2362         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
2363         disable the SETLB optimization.
2364         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2365         __SETLB__ or __NO_SETLB__.
2366         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2367         (movsf_internal): Handle MDR register.
2368         (cmpsi): Make visible.
2369         (setlb): New pattern.
2370         (Lcc): New pattern.
2371         (FLcc): New pattern.
2372
2373 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2374
2375         PR target/48860
2376         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2377         for reg<->xmm moves.
2378         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2379         (vec_concatv2di_rex64_sse): Ditto.
2380         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2381         (*vec_extractv2di_1_rex64): Ditto.
2382
2383         Revert:
2384         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2385
2386         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2387         reg<->xmm moves.
2388         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2389
2390 2011-05-04  Richard Guenther  <rguenther@suse.de>
2391
2392         * tree.h (int_const_binop): Remove notrunc argument.
2393         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
2394         create integer constants that are properly truncated.
2395         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2396         (const_binop): Remove zero notrunc argument to int_const_binop.
2397         (size_binop_loc): Likewise.
2398         (fold_div_compare): Likewise.
2399         (maybe_canonicalize_comparison_1): Likewise.
2400         (fold_comparison): Likewise.
2401         (fold_binary_loc): Likewise.
2402         (multiple_of_p): Likewise.
2403         * expr.c (store_constructor): Likewise.
2404         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2405         (maybe_fold_stmt_addition): Likewise.
2406         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2407         * stor-layout.c (layout_type): Likewise.
2408         * tree-data-ref.c (tree_fold_divides_p): Likewise.
2409         * tree-sra.c (build_ref_for_offset): Likewise.
2410         (build_user_friendly_ref_for_offset): Likewise.
2411         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2412         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2413         * tree-ssa-loop-niter.c (inverse): Likewise.
2414         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2415         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2416         * tree-switch-conversion.c (check_range): Likewise.
2417         (build_constructors): Likewise.
2418         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2419         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2420         (extract_range_from_assert): Likewise.
2421         (vrp_int_const_binop): Likewise.
2422         (extract_range_from_binary_expr): Likewise.
2423         (extract_range_from_unary_expr): Likewise.
2424         (check_array_ref): Likewise.
2425         (find_case_label_range): Likewise.
2426         (simplify_div_or_mod_using_ranges): Likewise.
2427         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2428         comparing case labels for merging.
2429
2430 2011-05-03  Mark Wielaard  <mjw@redhat.com>
2431
2432         * dwarf2out.c (debug_str_hash_forced): Removed.
2433         (gen_label_for_indirect_string): Removed.
2434         (get_debug_string_label): Removed.
2435         (AT_string_form): Generate label directly.
2436         (output_indirect_string): Test indirect_string_node for
2437         DW_FORM_strp instead of checking label and refcount.
2438         (prune_indirect_string): Removed.
2439         (prune_unused_types): Don't check debug_str_hash_forced or
2440         call prune_indirect_string.
2441
2442 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2443
2444         PR other/48093
2445         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2446
2447 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2448
2449         PR debug/47994
2450         PR debug/47919
2451         * combine.c (try_combine): Skip debug insns at m_split tests.
2452
2453 2011-04-26  Mark Wielaard  <mjw@redhat.com>
2454
2455         PR42288
2456         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2457         when info_section_emitted.
2458
2459 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
2460
2461         * config/mips/mips-opts.h: New.
2462         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2463         to mips-opts.h.
2464         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2465         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2466         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
2467         via opts pointer.
2468         * config/mips/mips.h (enum mips_code_readable_setting): Move to
2469         mips-opts.h.
2470         (mips_abi, mips_code_readable): Don't declare.
2471         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
2472         (mabi=): Use Enum and Var.
2473         (mips_abi): New Enum and EnumValue entries.
2474         (mcode-readable=): Use Enum and Var.
2475         (mips_code_readable_setting): New Enum and EnumValue entries.
2476         (mr10k-cache-barrier=): Use Enum and Var.
2477         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2478
2479 2011-05-03  Jan Hubicka  <jh@suse.cz>
2480
2481         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2482         replace hash by pointer map.
2483         (cgraph_node_set_element_def, cgraph_node_set_element,
2484         const_cgraph_node_set_element, varpool_node_set_element_def,
2485         varpool_node_set_element, const_varpool_node_set_element): Remove.
2486         (free_cgraph_node_set, free_varpool_node_set): New function.
2487         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2488         * tree-emutls.c: Free varpool node set.
2489         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2490         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2491         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2492         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2493         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2494         Move here from ipa.c; implement using pointer_map
2495         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2496         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2497         debug_cgraph_node_set, varpool_node_set_new,
2498         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2499         dump_varpool_node_set, debug_varpool_node_set):
2500         Move to ipa-uitls.c.
2501         * passes.c (ipa_write_summaries): Update.
2502
2503 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2504
2505         From Mike Frysinger:
2506         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2507         bf542/bf544/bf547/bf548/bf549.
2508
2509 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2510
2511         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2512
2513 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2514
2515         From Bernd Schmidt:
2516         * config/bfin/bfin.md (MOVCC): New mode_macro.
2517         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2518         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
2519         comments from generated assembly.
2520
2521 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2522
2523         From Bernd Schmidt
2524         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2525         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2526         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2527         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2528         * config/bfin/lib1funcs.asm (___muldi3): New function.
2529
2530 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2531
2532         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2533         build_function_type_list instead of build_function_type.
2534         Rearrange initialization of `args' to do so.
2535
2536 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2537
2538         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2539         instead of build_function_type.
2540
2541 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2542
2543         * config/rs6000/rs6000.c (spe_init_builtins): Call
2544         build_function_type_list instead of build_function_type.
2545         (paired_init_builtins, altivec_init_builtins): Likewise.
2546         (builtin_function_type): Likewise.
2547
2548 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2549
2550         * config/sh/sh.c (sh_media_init_builtins): Call
2551         build_function_type_list instead of build_function_type.
2552
2553 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2554
2555         * config/sparc/sparc.c (sparc_file_end): Call
2556         build_function_type_list instead of build_function_type.
2557
2558 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2559
2560         * config/alpha/alpha.c (alpha_init_builtins): Call
2561         build_function_type_list instead of build_function_type.
2562
2563 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2564
2565         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2566         build_function_type_list instead of build_function_type.
2567
2568 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2569
2570         * config/iq2000/i2000.c (iq2000_init_builtins): Call
2571         build_function_type_list instead of build_function_type.
2572         Delete `endlink' variable.
2573
2574 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2575
2576         * config/avr/avr.c (avr_init_builtins): Call
2577         build_function_type_list instead of build_function_type.
2578
2579 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2580
2581         * config/picochip/picochip.c (picochip_init_builtins): Call
2582         build_function_type_list instead of build_function_type.
2583         Delete `endlink' variable.
2584
2585 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2586
2587         * config/bfin/bfin.c (bfin_init_builtins): Call
2588         build_function_type_list instead of build_function_type.
2589
2590 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2591
2592         From Bernd Schmidt
2593         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2594         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
2595
2596 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2597
2598         From Jie Zhang:
2599         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2600         libbffastfp overrides libgcc when -mfast-fp.
2601
2602 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2603
2604         Originally from Bernd Schmidt
2605         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2606         * config/bfin/bfin.c (override_options): Test it and error if
2607         TARGET_FDPIC.
2608
2609 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2610
2611         Originally From Bernd Schmidt
2612         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2613         FD-PIC.
2614
2615 2011-05-03  Jeff Law  <law@redhat.com>
2616
2617         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2618         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2619         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
2620         than accessing AUX field directly.  Free the AUX field before
2621         clearing it.
2622         (thread_block, thread_through_loop_header): Likewise.
2623         (thread_single_edge, mark_threaded_blocks): Likewise.
2624         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
2625         (register_jump_thread): Do not attempt to thread to a NULL edge.
2626
2627 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2628
2629         * function.c (init_function_start): Call decide_function_section.
2630         * varasm.c (decide_function_section): New function.
2631         (assemble_start_function): When not using
2632         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2633         or first_function_block_is_cold.
2634         * rtl.h (decide_function_section): Declare.
2635
2636 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2637             Jakub Jelinek  <jakub@redhat.com>
2638
2639         PR target/48774
2640         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2641         only succeed if req_mode is the same as set_mode.
2642
2643 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2644
2645         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2646         * genemit.c (gen_exp): Handle RETURN.
2647         * emit-rtl.c (verify_rtx_sharing): Likewise.
2648         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2649         * rtl.c (copy_rtx): RETURN is shared.
2650         * rtl.h (enum global_rtl_index): Add GR_RETURN.
2651         (ret_rtx): New.
2652         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2653         * config/s390/s390.c (s390_emit_epilogue): Likewise.
2654         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2655         * config/cris/cris.c (cris_expand_return): Likewise.
2656         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2657         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2658         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2659         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2660         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2661         Likewise.
2662         * config/v850/v850.c (expand_epilogue): Likewise.
2663         * config/bfin/bfin.c (bfin_expand_call): Likewise.
2664         * config/arm/arm.md (epilogue): Likewise.
2665         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2666         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2667         variable to ret_reg.
2668
2669 2011-05-03  Richard Guenther  <rguenther@suse.de>
2670
2671         PR lto/48846
2672         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2673         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2674         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2675
2676 2011-05-03  Richard Guenther  <rguenther@suse.de>
2677
2678         * c-decl.c (grokdeclarator): Instead of looking at
2679         TREE_OVERFLOW check if the constant fits in the index type.
2680
2681 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2682
2683         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2684         (vec_store_lanes<mode><mode>): Likewise.
2685
2686 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2687
2688         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2689         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2690         convert_optab_index values.
2691         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2692         * genopinit.c (optabs): Initialize the new optabs.
2693         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2694         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2695         (expand_STORE_LANES): New functions.
2696         * tree.h (build_array_type_nelts): Declare.
2697         * tree.c (build_array_type_nelts): New function.
2698         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2699         (vect_model_load_cost): Likewise.
2700         (vect_store_lanes_supported, vect_load_lanes_supported)
2701         (vect_record_strided_load_vectors): Declare.
2702         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2703         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2704         (vect_transform_strided_load): Split out statement recording into...
2705         (vect_record_strided_load_vectors): ...this new function.
2706         * tree-vect-stmts.c (create_vector_array, read_vector_array)
2707         (write_vector_array, create_array_ref): New functions.
2708         (vect_model_store_cost): Add store_lanes_p argument.
2709         (vect_model_load_cost): Add load_lanes_p argument.
2710         (vectorizable_store): Try to use store-lanes functions for
2711         interleaved stores.
2712         (vectorizable_load): Likewise load-lanes and loads.
2713         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2714         to vect_model_store_cost.
2715         (vect_build_slp_tree): Likewise vect_model_load_cost.
2716
2717 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2718
2719         * hooks.h (hook_bool_mode_uhwi_false): Declare.
2720         * hooks.c (hook_bool_mode_uhwi_false): New function.
2721         * target.def (array_mode_supported_p): New hook.
2722         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2723         * doc/tm.texi: Regenerate.
2724         * stor-layout.c (mode_for_array): New function.
2725         (layout_type): Use it.
2726         * config/arm/arm.c (arm_array_mode_supported_p): New function.
2727         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2728
2729 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2730
2731         PR target/48723
2732         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2733         for -fstack-check if the size to allocate is negative.
2734
2735 2011-05-02  Lawrence Crowl  <crowl@google.com>
2736
2737         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2738         (timevar_cond_start): New for starting a timer only when it is not
2739         already running.
2740         (timevar_cond_stop): New for stopping a timer when it was not already
2741         running.
2742
2743         * timevar.c (timevar_stop): Enable start/stop timers to start again.
2744         (timevar_cond_start): New as above.
2745         (timevar_cond_stop): New as above.
2746
2747         * timevar.def: Add start/stop timers for compiler phases,
2748         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2749         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2750         and TV_PHASE_FINALIZE.
2751         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2752         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2753         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2754         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2755         Make unused TV_OVERLOAD into a start/stop timer.
2756
2757         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2758         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2759         to indicate that they are start/stop timers.
2760
2761         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2762         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2763         Move initialization to do_compile.
2764         (do_compile): Add initialization from above.
2765         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2766
2767         * c-decl.c (c_write_global_declarations): Add start/stop of
2768         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2769
2770         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2771         or TV_PARSE_INLINE, as appropriate.
2772         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2773         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2774
2775 2011-05-02  Jason Merrill  <jason@redhat.com>
2776
2777         PR c++/40975
2778         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2779
2780 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
2781
2782         PR c/35445
2783         * c-decl.c (finish_decl): Only create a composite if the types are
2784         compatible.
2785
2786 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2787
2788         * config/fr30/fr30-protos.h (Mmode): Don't define.
2789         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
2790         definition where used.
2791         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2792         define.  Expand definitions where used.
2793         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2794         Expand definitions where used.
2795         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2796         rx_function_arg, rx_function_arg_advance,
2797         rx_function_arg_boundary): Expand definitions of those macros.
2798         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
2799         definition where used.
2800
2801 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2802
2803         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2804         reg<->xmm moves.
2805         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2806         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
2807         with *movv2sf_internal_rex64_avx.
2808         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2809         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2810         Use %v prefix in insn mnemonic to handle TARGET_AVX.
2811         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
2812         "vex" in "prefix" attribute calculation.
2813         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
2814
2815 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
2816
2817         PR target/47951
2818         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2819         inputs match the output.
2820
2821 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
2822
2823         PR target/47955
2824         * config/m68k/m68k.c (m68k_expand_prologue): Set
2825         current_function_static_stack_size.
2826
2827 2011-05-02   Jan Hubicka  <jh@suse.cz>
2828
2829         * lto-streamer.c (lto_streamer_cache_insert_1,
2830         lto_streamer_cache_lookup, lto_streamer_cache_create,
2831         lto_streamer_cache_delete): Use pointer map instead of hashtable.
2832         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2833
2834 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2835
2836         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2837         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2838         config/m68k/t-opts: New files.
2839         * config/m68k/m68k-tables.opt: New file (generated).
2840         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2841         extra_options and m68k/t-opts to tmake_file.
2842         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2843         (all_isas): Initialize using m68k-isas.def.
2844         (all_microarchs): Initialize using m68k-microarchs.def.
2845         (m68k_find_selection): Remove.
2846         (m68k_handle_option): Don't assert that global structures are in
2847         use.  Use error_at.  Access variables via opts pointer.  Don't
2848         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
2849         directly for -m68020-40 and -m68020-60.
2850         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2851         m68k_tune_entry here.
2852         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2853         to m68k-opts.h.
2854         (m68k_library_id_string): Remove declaration.
2855         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
2856         (m68k_library_id_string): New Variable.
2857         (march=, mcpu=, mtune=): Use Enum and Var.
2858
2859 2011-05-02  Richard Guenther  <rguenther@suse.de>
2860
2861         * varasm.c (output_constructor_regular_field): Compute zero-based
2862         index with double-ints.  Make sure to ICE instead of producing
2863         wrong code.
2864         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2865         in asserts.  Properly use a signed type.
2866
2867 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2868
2869         * config/i386/sse.md (V): New mode iterator.
2870         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
2871         TARGET_SSE2.
2872         (V_256): Rename from AVX256MODE.
2873         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
2874         condition to all users.
2875         (VF1): Ditto.
2876         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
2877         condition to all users.
2878         (VF_128): Make V4SF mode unconditional.
2879         (VF_256): Rename from AVX256MODEF2P.
2880         (VI4F_128): Rename from SSEMODE4S.
2881         (VI8F_128): Rename from SSEMODE2D.
2882         (VI4F_256): Rename from AVX256MODE8P.
2883         (VI8F_256): Rename from AVX256MODE4P.
2884         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2885         (ssescalarmodesuffix): Remove SF and DF modes.
2886         (SSEMODE124): Remove.
2887         (SSEMODE1248): Ditto.
2888         (SSEMODEF2P): Ditto.
2889         (AVXMODEF2P): Ditto.
2890         (AVXMODEFDP): Ditto.
2891         (AVXMODEFSP): Ditto.
2892         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2893         unconditional.
2894         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
2895         unconditional.
2896         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2897         xop_pcmov_<mode>256.  Use V mode iterator.
2898
2899         Adjust RTX patterns globally for renamed mode attributes.
2900
2901 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2902
2903         * haifa-sched.c (sched_emit_insn): Emit insn before first
2904         non-scheduled insn.  Inform back-end about new insn.  Add
2905         new insn to scheduled_insns list.
2906
2907 2011-05-02  Richard Guenther  <rguenther@suse.de>
2908
2909         PR tree-optimization/48822
2910         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2911         (process_scc): Indicate which iteration we start.
2912
2913 2011-05-02  Jan Hubicka  <jh@suse.cz>
2914
2915         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2916         (lto_section_overrun): New.
2917         * lto-section-out.c (append_block): Rename to ...
2918         (lto_append_block): ... this one; export.
2919         (lto_output_1_stream): Move lto lto-streamer.h
2920         (lto_output_data_stream): Update.
2921         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2922         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2923         functions.
2924
2925 2011-05-02  Richard Guenther  <rguenther@suse.de>
2926
2927         * tree.c (tree_code_counts): New global array.
2928         (record_node_allocation_statistics): Count individual tree codes.
2929         (dump_tree_statistics): Dump individual code stats.
2930
2931 2011-05-01  Jan Hubicka  <jh@suse.cz>
2932
2933         * ipa-inline.c (caller_growth_limits): Fix thinko when
2934         looking for largest stack frame.
2935         * ipa-inline.h (dump_inline_summary): Declare.
2936         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2937         on stack usage.
2938         (dump_inline_summary): Export.
2939         (debug_inline_summary): Declare as DEBUG_FUNCTION.
2940
2941 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
2942
2943         * reginfo.c (memory_move_cost): Change rclass argument type form
2944         'enum reg_class' to reg_class_t.
2945         * reload.h (memory_move_cost): Update prototype.
2946         * postreload.c reload_cse_simplify_set): Change type dclass var to
2947         reg_class_t.
2948         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2949         Update prototype.
2950         (ira_allocate_and_set_costs): Change aclass argument type form
2951         'enum reg_class' to reg_class_t.
2952         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
2953         Change aclass argument type to reg_class_t.
2954         (update_conflict_hard_reg_costs): Change type aclass and pref vars
2955         to reg_class_t.
2956         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2957         memory_move_cost call.
2958
2959         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2960         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2961         Change type tmp var to reg_class_t.
2962
2963 2011-04-30  Jan Hubicka  <jh@suse.cz>
2964
2965         * ipa-inline.c (can_inline_edge_p): Disregard limits when
2966         inlining into function with flatten attribute.
2967         (want_inline_small_function_p): Be more realistic about inlining
2968         cold calls where callee size grows.
2969
2970 2011-04-30  Jan Hubicka  <jh@suse.cz>
2971
2972         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2973         flags.
2974
2975 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
2976
2977         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2978         PRINT_OPERAND_PUNCT_VALID_P): Remove.
2979         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2980         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2981         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2982         (print_operand): Rename to...
2983         (sparc_print_operand): ...this. Make static. Adjust
2984         sparc_print_operand function call.
2985         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2986         functions.
2987
2988 2011-04-30  Jan Hubicka  <jh@suse.cz>
2989
2990         PR middle-end/48752
2991         * ipa-inline.c (early_inliner): Disable when doing late
2992         addition of function.
2993
2994 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
2995
2996         * dwarf2out.c (get_address_mode): New inline.
2997         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2998         if not dwarf_strict emit
2999         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3000         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3001         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
3002         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3003         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3004         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3005         mem_loc_descriptor callers.
3006         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3007         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3008         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3009         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3010         (base_types): New variable.
3011         (get_base_type_offset, calc_base_type_die_sizes,
3012         base_type_for_mode, mark_base_types, base_type_cmp,
3013         move_marked_base_types): New functions.
3014         (calc_die_sizes): Assert that die_offset is 0 or equal to
3015         next_die_offset.
3016         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3017         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
3018         callers.  If not dwarf_strict, call mem_loc_descriptor even for
3019         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3020         (gen_subprogram_die): Don't give up on call site parameters
3021         with non-integral or large integral modes.  Adjust
3022         mem_loc_descriptor callers.
3023         (prune_unused_types): Call prune_unused_types_mark on base_types
3024         vector entries.
3025         (resolve_addr): Call mark_base_types.
3026         (dwarf2out_finish): Call move_marked_base_types.
3027
3028         PR tree-optimization/48809
3029         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3030         type.
3031         (gen_inbound_check): Don't compute index_expr - range_min in utype
3032         again, instead reuse SSA_NAME initialized in build_arrays.
3033         Remove two useless gsi_for_stmt calls.
3034
3035 2011-04-29  Jeff Law  <law@redhat.com>
3036
3037         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3038
3039 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3040
3041         * cgraph.h (cgraph_postorder): Remove declaration.
3042         * ipa-utils.h (ipa_free_postorder_info): Declare.
3043         (ipa_reverse_postorder): Likewise.
3044         * cgraphunit.c: Include ipa-utils.h.
3045         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3046         * ipa-inline.c: Include ipa-utils.h.
3047         (ipa_inline): Update call to ipa_reverse_postorder.
3048         * ipa-pure-const.c (propagate_pure_const): Update call to
3049         ipa_reduced_postorder and ipa_print_order.  Call
3050         ipa_free_postorder_info to clean up.
3051         (propagate_nothrow): Likewise.
3052         * ipa-reference.c (propagate): Removed a useless call to
3053         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3054         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
3055         * ipa.c: Include ipa-utils.h.
3056         (ipa_profile): Update call to ipa_reverse_postorder.
3057         (cgraph_postorder): Moved to...
3058         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3059         (ipa_utils_print_order): Renamed to ipa_print_order.
3060         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3061         comments.
3062         (ipa_free_postorder_info): New function.
3063         * passes.c: Include ipa-utils.h.
3064         (do_per_function_toporder): Update call to ipa_reverse_postorder.
3065         (ipa_write_summaries): Likewise.
3066         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3067         (cgraphunit.o): Likewise.
3068         (ipa.o): Likewise.
3069         (ipa-inline.o): Likewise.
3070
3071 2011-04-29  Jan Hubicka  <jh@suse.cz>
3072
3073         * gcc.dg/tree-ssa/inline-10.c: New testcase.
3074         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3075         * ipa-inline.h (clause_t): Turn into unsigned int.
3076         * ipa-inline-analysis.c (add_clause): Do more simplification.
3077         (and_predicates): Shortcut more cases.
3078         (predicates_equal_p): Move forward; check that clauses are properly
3079         ordered.
3080         (or_predicates): Shortcut more cases.
3081         (edge_execution_predicate): Rewrite as...
3082         (set_cond_stmt_execution_predicate): ... this function; handle
3083         __builtin_constant_p.
3084         (set_switch_stmt_execution_predicate): New .
3085         (compute_bb_predicates): New.
3086         (will_be_nonconstant_predicate): Update TODO.
3087         (estimate_function_body_sizes): Use compute_bb_predicates
3088         and free them later, always try to estimate if stmt is constant.
3089         (estimate_time_after_inlining, estimate_size_after_inlining):
3090         Gracefully handle optimized out edges.
3091         (read_predicate): Fix off by one error.
3092
3093 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
3094
3095         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3096
3097 2011-04-27  Xinliang David Li  <davidxl@google.com>
3098
3099         * tree-profile.c (init_ic_make_global_vars): Set
3100         tls attribute on ic vars.
3101         * coverage.c (coverage_end_function): Initialize
3102         function_list with zero.
3103
3104 2011-04-29  Richard Guenther  <rguenther@suse.de>
3105
3106         * builtins.c (fold_builtin_classify_type): Use integer_type_node
3107         for the type of the result.
3108         (fold_builtin_isascii): Likewise.
3109         (fold_builtin_toascii): Use integer_type_node where appropriate.
3110         (fold_builtin_logb): Likewise.
3111         (fold_builtin_frexp): Likewise.
3112         (fold_builtin_strstr): Likewise.
3113         (fold_builtin_strpbrk): Likewise.
3114         (fold_builtin_fputs): Likewise.
3115         (fold_builtin_sprintf): Likewise.
3116         (fold_builtin_snprintf): Likewise.
3117         (fold_builtin_printf): Likewise.
3118         (do_mpfr_remquo): Use a proper type for the assigned constant.
3119         (do_mpfr_lgamma_r): Likewise.
3120         * dwarf2out.c (resolve_one_addr): Use size_int.
3121         * except.c (init_eh): Likewise.
3122         (assign_filter_values): Use integer_type_node for filter values.
3123         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3124         indices.
3125         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3126         for EH region numbers.
3127         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3128         for the shift amount.
3129
3130 2011-04-29  Richard Guenther  <rguenther@suse.de>
3131
3132         * expr.h (expand_shift): Rename to ...
3133         (expand_variable_shift): ... this.
3134         (expand_shift): Take a constant shift amount.
3135         * expmed.c (expand_shift): Rename to ...
3136         (expand_variable_shift): ... this.
3137         (expand_shift): New wrapper around expand_variable_shift.
3138         * expr.c (convert_move, emit_group_load_1, emit_group_store,
3139         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3140         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3141         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3142         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3143         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3144         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3145         emit_store_flag_1, emit_store_flag): Likewise.
3146         * builtins.c (expand_builtin_signbit): Likewise.
3147         * calls.c (load_register_parameters): Likewise.
3148         * function.c (assign_parm_setup_block): Likewise.
3149         * lower-subreg.c (resolve_shift_zext): Likewise.
3150         * optabs.c (widen_bswap, expand_abs_nojump,
3151         expand_one_cmpl_abs_nojump, expand_float): Likewise.
3152         * spu/spu.c (spu_expand_extv): Likewise.
3153         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3154
3155 2011-04-29  Richard Guenther  <rguenther@suse.de>
3156
3157         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3158         for the remapped region number.
3159         * predict.c (build_predict_expr): Use integer_type_node for the
3160         predict kind.
3161         * fold-const.c (fold_binary_loc): Use integer_type_node for
3162         the shift amount.  Use a proper type for the PLUS_EXPR operand.
3163
3164 2011-04-29  Michael Matz  <matz@suse.de>
3165
3166         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3167         other trees that just builtins.
3168         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3169
3170 2011-04-29  Richard Guenther  <rguenther@suse.de>
3171
3172         * tree-nested.c (get_trampoline_type): Use size_int.
3173         (get_nl_goto_field): Likewise.
3174         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3175         for all indexes.
3176         (lower_eh_constructs_2): Likewise.
3177         (lower_resx): Likewise.
3178         (lower_eh_dispatch): Likewise.
3179         * tree-mudflap.c (mf_build_string): Use size_int.
3180         (mudflap_register_call): Use integer_type_node for the flag.
3181         (mudflap_enqueue_constant): Use size_int.
3182         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3183         instead of rebuilding it.
3184
3185 2011-04-29  Richard Guenther  <rguenther@suse.de>
3186
3187         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3188         Handle OBJ_TYPE_REF.
3189         (find_func_aliases_for_call): Use it more consistently.
3190
3191 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
3192
3193         * haifa-sched.c (last_nondebug_scheduled_insn): New.
3194         (rank_for_schedule): Use it.
3195         (schedule_block): Set it.
3196
3197 2011-04-28  David Li  <davidxl@google.com>
3198
3199         * tree.c (crc32_string): Use crc32_byte.
3200         (crc32_byte): New function.
3201         * tree.h (crc32_byte): New function.
3202         * gcov.c (read_graph_file): Handle new cfg_cksum.
3203         (read_count_file): Ditto.
3204         * profile.c (instrument_values): Ditto.
3205         (get_exec_counts): Ditto.
3206         (read_profile_edge_counts): Ditto.
3207         (compute_branch_probabilities): Ditto.
3208         (compute_value_histograms): Ditto.
3209         (branch_prob): Ditto.
3210         (end_branch_prob): Ditto.
3211         * coverage.c (read_counts_file): Ditto.
3212         (get_coverage_counts): Ditto.
3213         (tree_coverage_counter_addr): Ditto.
3214         (coverage_checksum_string): Ditto.
3215         (coverage_begin_output): Ditto.
3216         (coverage_end_function): Ditto.
3217         (build_fn_info_type): Ditto.
3218         (build_fn_info_value): Ditto.
3219         * libgcov.c (gcov_exit): Ditto.
3220         * gcov-dump.c (tag_function): Ditto.
3221         (compute_checksum): Remove.
3222
3223 2011-04-29  Alan Modra  <amodra@gmail.com>
3224
3225         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3226         unspec plus offset.  Tidy macho code.
3227
3228 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3229
3230         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3231         node instead of a decl.  Update all callers.
3232         * cgraph.h: Update declaration.
3233
3234 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
3235
3236         PR tree-optimization/48765
3237         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3238         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3239         to indicate if loop aware SLP is being used.  Scan the statements
3240         and update the vectorization factor according to the type of
3241         vectorization before statement analysis.
3242         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3243         pass it to vect_analyze_loop_operations.
3244         (vectorizable_reduction): Set number of copies to 1 in case of pure
3245         SLP statement.
3246         * tree-vect-stmts.c (vectorizable_conversion,
3247         vectorizable_assignment, vectorizable_shift,
3248         vectorizable_operation, vectorizable_type_demotion,
3249         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3250         Likewise.
3251         (vectorizable_condition): Move the check that it is not SLP
3252         vectorization before the number of copies check.
3253         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3254         to vectorize the loop using SLP.
3255
3256 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
3257
3258         PR middle-end/48597
3259         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3260         inline asm.
3261
3262 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
3263
3264         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3265         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3266         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3267         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3268         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3269         linux*.h headers.
3270         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
3271         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3272         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3273         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3274         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3275         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3276         REG_NAME.
3277         * config/i386/linux.h (REG_NAME): Don't define.
3278         * config/i386/linux64.h (REG_NAME): Don't define.
3279         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3280         Undefine before defining.
3281
3282 2011-04-28  Jan Hubicka  <jh@suse.cz>
3283
3284         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3285         nonconstant_names array.
3286         (estimate_function_body_sizes): Build nonconstant_names array; handle
3287         BUILT_IN_CONSTANT_P.
3288
3289 2011-04-28  Richard Guenther  <rguenther@suse.de>
3290
3291         PR bootstrap/48804
3292         Revert
3293         2011-04-28  Richard Guenther  <rguenther@suse.de>
3294
3295         * tree-ssa-structalias.c (solve_constraints): Build succ graph
3296         as late as possible.
3297
3298 2011-04-28  Richard Guenther  <rguenther@suse.de>
3299
3300         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3301         (debug_constraint): Do it here.
3302         (dump_constraints): And here.
3303         (rewrite_constraints): And here.
3304         (dump_constraint_edge): Remove.
3305         (dump_constraint_graph): Rewrite to produce DOT output.
3306         (solve_constraints): Build succ graph as late as possible.
3307         Dump constraint graphs before and after solving.
3308
3309 2011-04-28  Richard Guenther  <rguenther@suse.de>
3310
3311         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3312         New function split out from ...
3313         (find_func_aliases): ... here.  Call it.
3314         (find_func_aliases_for_call): Likewise.
3315
3316 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3317
3318         * internal-fn.h (internal_fn_name_array): Declare.
3319         (internal_fn_flags_array): Likewise.
3320
3321 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3322
3323         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
3324         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3325         Move from sse.md.
3326         (ssemodefsuffix): Remove.
3327         (ssevecmodesuffix): New mode attribute.
3328         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3329         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3330         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3331         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3332         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3333         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3334         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3335         ssemodesuffix mode attribute.
3336         (float splitters): Use ssevecmodesuffix mode attribute.
3337         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3338         (sseinsmode): Rename from avxvecmode.
3339         (avxsizesuffix): Rename from avxmodesuffix.
3340         (sseintvecmode): Rename from avxpermvecmode.
3341         (ssedoublevecmode): Rename from ssedoublesizemode.
3342         (ssehalfvecmode): Rename from avxhalfvecmode.
3343         (ssescalarmode): Rename from avxscalarmode.
3344         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3345         templates for ssemodesuffix mode attribute.
3346         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3347         mode attribute.
3348
3349         Adjust RTX patterns globally for renamed mode attributes.
3350
3351 2011-04-27  Jan Hubcika  <jh@suse.cz>
3352
3353         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3354         * ipa-inline-analysis.c: Include alloc-pool.h.
3355         (edge_predicate_pool): New.
3356         (trye_predicate_p): New function
3357         (false_predicate_p): New function.
3358         (add_clause): Sanity check that false clauses are "optimized";
3359         never add clauses to predicate that is already known to be false.
3360         (and_predicate): Use flase_predicate_p.
3361         (evaulate_predicate): Rename to ...
3362         (evaluate_predicate): ... this one; update all callers; assert
3363         that false is not listed among possible truths.
3364         (dump_predicate): Use true_predicate_p.
3365         (account_size_time): Use false_predicate_p.
3366         (evaulate_conditions_for_edge): Rename to ...
3367         (evaluate_conditions_for_edge) ... this one.
3368         (edge_set_predicate): New function.
3369         (inline_edge_duplication_hook): Duplicate edge predicates.
3370         (inline_edge_removal_hook): Free edge predicates.
3371         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
3372         (dump_inline_summary): Update.
3373         (estimate_function_body_sizes): Set edge predicates.
3374         (estimate_calls_size_and_time): Handle predicates.
3375         (estimate_callee_size_and_time): Update.
3376         (remap_predicate): Add toplev_predicate; update comment.
3377         (remap_edge_predicates): New function.
3378         (inline_merge_summary): Compute toplev predicate; update.
3379         (read_predicate): New function.
3380         (read_inline_edge_summary): Use it.
3381         (inline_read_section): Likewise.
3382         (write_predicate): New function.
3383         (write_inline_edge_summary): Use it.
3384         (inline_write_summary): Likewise.
3385         (inline_free_summary): Free alloc pool and edge summary vec.
3386
3387 2011-04-27  Richard Guenther  <rguenther@suse.de>
3388
3389         * tree-ssa-structalias.c (changed_count): Remove.
3390         (changed): Use a bitmap.
3391         (unify_nodes): Adjust.
3392         (do_sd_constraint): Likewise.
3393         (do_ds_constraint): Likewise.
3394         (do_complex_constraint): Likewise.
3395         (solve_graph): Likewise.
3396
3397 2011-04-27  Jan Hubicka  <jh@suse.cz>
3398
3399         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
3400
3401 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3402
3403         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
3404         (avx_vperm2f128_*_operand): Ditto.
3405         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
3406         Use avx_vpermilp_parallel in insn condition.
3407         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
3408         Use avx_vperm2f128_parallel in insn condition.
3409
3410 2011-04-27  Richard Guenther  <rguenther@suse.de>
3411
3412         * Makefile.in (tree-ssa-structalias.o): Remove
3413         gt-tree-ssa-structalias.h dependency.
3414         (GTFILES): Remove tree-ssa-structalias.c.
3415         * tree.c (allocate_decl_uid): New function.
3416         (make_node_stat): Use it.
3417         (copy_node_stat): Likewise.
3418         * tree.h (allocate_decl_uid): Declare.
3419         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
3420         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
3421         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
3422         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
3423         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
3424         (struct heapvar_map): Likewise.
3425         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
3426         heapvar_insert): Likewise.
3427         (make_heapvar_for): Rename to ...
3428         (make_heapvar): ... this.  Simplify.
3429         (fake_var_decl_obstack): New global var.
3430         (build_fake_var_decl): New function.
3431         (make_constraint_from_heapvar): Adjust.
3432         (handle_lhs_call): Likewise.
3433         (create_function_info_for): Likewise.
3434         (intra_create_variable_infos): Likewise.
3435         (init_alias_vars): Allocate fake_var_decl_obstack.
3436         (init_alias_heapvars, delete_alias_heapvars): Remove.
3437         (compute_points_to_sets): Do not call init_alias_heapvars.
3438         (ipa_pta_execute): Likewise.
3439         (delete_points_to_sets): Free fake_var_decl_obstack.
3440
3441 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3442
3443         * config/spu/divmovti4.c (union qword_UTItype): New data type.
3444         (si_from_UTItype, si_to_UTItype): New functions.
3445         (__udivmodti4): Use them to implement type-punning.
3446         * config/spu/multi3.c (union qword_TItype): New data type.
3447         (si_from_TItype, si_to_TItype): New functions.
3448         (__multi3): Use them to implement type-punning.
3449
3450 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3451
3452         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
3453
3454 2011-04-27  Jan Hubicka  <jh@suse.cz>
3455
3456         * ipa-prop.c (function_insertion_hook_holder): New holder.
3457         (ipa_add_new_function): New function.
3458         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
3459         Register/deregister holder.
3460
3461 2011-04-27  Richard Guenther  <rguenther@suse.de>
3462
3463         PR tree-optimization/48772
3464         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
3465
3466 2011-04-27  Richard Guenther  <rguenther@suse.de>
3467
3468         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3469         TARGET_MEM_REF handling.
3470
3471 2011-04-27  Nick Clifton  <nickc@redhat.com>
3472
3473         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3474         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3475         (REG_CLASS_NAMES): Likewise.
3476         (REG_CLASS_CONTENTS): Likewise.
3477         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3478         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3479         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
3480         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
3481         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
3482         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3483         duplicate register classes.
3484         (frv_class_likely_spilled_p): Likewise.
3485         (frv_register_move_cost): Likewise.
3486
3487         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3488         end of the regno_reg_class array.
3489
3490 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
3491
3492         PR c/48742
3493         * c-typeck.c (build_binary_op): Don't wrap arguments if
3494         int_operands is true.
3495
3496 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
3497
3498         PR target/48767
3499         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3500         targetm.calls.must_pass_in_stack for void type.
3501
3502 2011-04-26  Jan Hubicka  <jh@suse.cz>
3503
3504         * cgraphbuild.c (build_cgraph_edges): Update call
3505         of cgraph_create_edge and cgraph_create_indirect_edge.
3506         * cgraph.c (cgraph_create_edge_including_clones,
3507         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3508         cgraph_update_edges_for_call_stmt_node): Do not take nest
3509         argument; do not initialize call_stmt_size/time.
3510         (dump_cgraph_node): Do not dump nest.
3511         (cgraph_clone_edge): Do not take loop_nest argument;
3512         do not propagate it; do not clone call_stmt_size/time.
3513         (cgraph_clone_node): Likewise.
3514         (cgraph_create_virtual_clone): Update.
3515         * cgraph.h (struct cgraph_edge): Remove
3516         call_stmt_size/call_stmt_time/loop_nest.
3517         (cgraph_create_edge, cgraph_create_indirect_edge,
3518         cgraph_create_edge_including_clones, cgraph_clone_node): Update
3519         prototype.
3520         * tree-emutls.c (gen_emutls_addr): Update.
3521         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3522         loop_nest; handle indirect calls, too.
3523         (clone_inlined_nodes): Do not care about updating inline summaries.
3524         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3525         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3526         stream call_stmt_size/call_stmt_time/loop_nest.
3527         * ipa-inline.c (edge_badness): Update.
3528         (ipa_inline): dump summaries after inlining.
3529         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
3530         New.
3531         (inline_edge_summary): New function.
3532         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3533         (inline_edge_removal_hook): Handle edge summaries.
3534         (inline_edge_duplication_hook): New hook.
3535         (inline_summary_alloc): Alloc hooks.
3536         (initialize_growth_caches): Do not register removal hooks.
3537         (free_growth_caches); Do not free removal hook.
3538         (dump_inline_edge_summary): New function.
3539         (dump_inline_summary): Use it.
3540         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3541         (inline_update_callee_summaries): New function.
3542         (inline_merge_summary): Use it.
3543         (do_estimate_edge_time, do_estimate_edge_growth): Update.
3544         (read_inline_edge_summary): New function.
3545         (inline_read_section): Use it.
3546         (write_inline_edge_summary): New function.
3547         (inline_write_summary): Use it.
3548         (inline_free_summary): Free edge new holders.
3549         * tree-inline.c (copy_bb): Update.
3550
3551 2011-04-26  Jason Merrill  <jason@redhat.com>
3552
3553         * tree-eh.c (lower_try_finally_switch): Create the label along with
3554         the CASE_LABEL_EXPR.
3555
3556 2011-04-26  David S. Miller  <davem@davemloft.net>
3557             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3558
3559         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3560         * configure: Regenerate.
3561
3562 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3563
3564         PR target/48258
3565         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3566         reduction.
3567         (VEC_reduc): New code iterator and splitters for vector reduction.
3568         (VEC_reduc_name): Ditto.
3569         (VEC_reduc_rtx): Ditto.
3570         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3571         (reduc_<VEC_reduc_name>_v4sf): Ditto.
3572
3573         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3574         support for extracting SF on VSX.
3575
3576         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3577         generating xscvspdp.
3578         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3579         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3580         double add, minimum, maximum vector reduction.
3581         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3582         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3583         optimize double vector reduction.
3584         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3585
3586 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
3587
3588         * config/fr30/fr30.h (inhibit_libc): Don't define.
3589         * config/m32r/m32r-protos.h: Correct comment.
3590         * config/v850/v850.h (GHS_default_section_names,
3591         GHS_current_section_names): Use tree, not union tree_node *.
3592
3593 2011-04-26  Xinliang David Li  <davidxl@google.com>
3594
3595         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
3596         * c-family/c-opts.c (c_common_handle_option): Set
3597         warn_maybe_uninitialized.
3598         * opts.c (common_handle_option): Ditto.
3599         * common.opt:  New option.
3600         * tree-ssa.c (warn_uninit): Add one more parameter.
3601         (warn_uninitialized_var): Pass warning code.
3602         * tree-flow.h: Interface change.
3603
3604
3605 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3606
3607         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
3608         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3609         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3610
3611 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3612
3613         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3614         * config/mips/mips.opt (mmips-tfile): Remove.
3615
3616         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3617         mips-tdump reference to ...
3618         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
3619         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3620         reference by Tru64 UNIX.
3621
3622 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
3623
3624         PR debug/48768
3625         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3626         is error_mark_node, set value to NULL.
3627
3628         PR tree-optimization/48734
3629         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3630         if return value from maybe_fold_*_comparsions isn't something
3631         the code is prepared to handle.
3632
3633 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
3634
3635         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3636         mode check.
3637         (ext_QIreg_nomode_operands): Remove.
3638         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3639         (*andsi_1): Ditto.
3640         (*andhi_1): Ditto.
3641
3642 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
3643
3644         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3645
3646 2011-04-26  Richard Guenther  <rguenther@suse.de>
3647
3648         * c-typeck.c (build_unary_op): Do not expand array-refs via
3649         pointer arithmetic.  Only adjust qualifiers for function types.
3650
3651 2011-04-26  Richard Guenther  <rguenther@suse.de>
3652
3653         PR middle-end/48694
3654         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3655         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
3656         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
3657         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
3658
3659 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
3660
3661         * doc/extend.texi: Document __underlying_type.
3662
3663 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
3664
3665         * config/rs6000/titan.md (automata_option "progress"): Remove.
3666
3667 2011-04-25  Jeff Law  <law@redhat.com>
3668
3669         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3670
3671 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
3672
3673         * system.h (ENUM_BITFIELD): Remove.
3674
3675 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
3676             Eric Botcazou  <ebotcazou@adacore.com>
3677
3678         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3679         for STORE_FLAG_VALUE==-1 case.
3680
3681 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
3682
3683         PR target/43804
3684         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3685         LEGITIMATE_PIC_OPERAND_P.
3686
3687 2011-04-24  Jan Hubicka  <jh@suse.cz>
3688
3689         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3690         WPA hack.
3691         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3692         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3693         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
3694         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3695         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3696         Sanity check predicate length.
3697         (remap_predicate): Likewise; sanity check jump functions.
3698         (inline_read_section, inline_write_summary): Sanity check
3699         predicate length.
3700
3701 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
3702
3703         PR other/48748
3704         * doc/extend.texi (Type Traits): Document __is_standard_layout,
3705         __is_literal_type, and __is_trivial; update throughout about
3706         possibly cv-qualified void types.
3707
3708 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3709
3710         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3711         testsuite and make it version agnostic.
3712
3713 2011-04-22  Jan Hubicka  <jh@suse.cz>
3714
3715         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3716
3717 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
3718
3719         PR c/48685
3720         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3721         to VOID_TYPE even around MODIFY_EXPR.
3722
3723 2011-04-22  Mike Stump  <mikestump@comcast.net>
3724
3725         * gensupport.c (read_md_rtx): Fix typo in comment.
3726         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3727         comment.
3728
3729 2011-04-22  Jan Hubicka  <jh@suse.cz>
3730
3731         * gengtype.c (open_base_files): Add ipa-inline.h include.
3732         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3733         ipa-prop.c; update all uses.
3734         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
3735         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3736         merge summary of inlined function into former caller.
3737         * ipa-inline.c (max_benefit): Remove.
3738         (edge_badness): Compensate for removal of benefits.
3739         (update_caller_keys): Use
3740         reset_node_growth_cache/reset_edge_growth_cache.
3741         (update_callee_keys): Likewise.
3742         (update_all_callee_keys): Likewise.
3743         (inline_small_functions): Do not collect max_benefit; do not reset
3744         estimated_growth; call free_growth_caches and initialize_growth_caches.
3745         * ipa-inline.h (struct condition, type clause_t, struct predicate,
3746         struct size_time_entry): New structures.
3747         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
3748         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3749         and estimated_growth.
3750         (edge_growth_cache_entry): New structure.
3751         (node_growth_cache, edge_growth_cache): New global vars.
3752         (estimate_growth): Turn into inline.
3753         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3754         initialize_growth_caches, free_growth_caches): Declare.
3755         (estimate_edge_growth): Rewrite.
3756         (estimate_edge_time): Implement as inline cache lookup.
3757         (reset_node_growth_cache, reset_edge_growth_cache): New inline
3758         functions.
3759         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3760         (NUM_CONDITIONS): New constant.
3761         (predicate_conditions): New enum.
3762         (IS_NOT_CONSTANT): New constant.
3763         (edge_removal_hook_holder): New var.
3764         (node_growth_cache, edge_growth_cache): New global vars.
3765         (true_predicate, single_cond_predicate, false_predicate,
3766         not_inlined_predicate, add_condition, add_clause, and_predicates,
3767         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3768         dump_clause, dump_predicate, account_size_time,
3769         evaulate_conditions_for_edge): New functions.
3770         (inline_summary_alloc): Move to heap.
3771         (inline_node_removal_hook): Clear condition and entry vectors.
3772         (inline_edge_removal_hook): New function.
3773         (initialize_growth_caches, free_growth_caches): New function.
3774         (dump_inline_summary): Update.
3775         (edge_execution_predicate): New function.
3776         (will_be_nonconstant_predicate): New function.
3777         (estimate_function_body_sizes): Compute BB and constantness predicates.
3778         (compute_inline_parameters): Do not clear estimated_growth.
3779         (estimate_edge_size_and_time): New function.
3780         (estimate_calls_size_and_time): New function.
3781         (estimate_callee_size_and_time): New function.
3782         (remap_predicate): New function.
3783         (inline_merge_summary): New function.
3784         (do_estimate_edge_time): New function based on...
3785         (estimate_edge_time): ... this one.
3786         (do_estimate_edge_growth): New function.
3787         (do_estimate_growth): New function based on....
3788         (estimate_growth): ... this one.
3789         (inline_analyze_function): Analyze after deciding on jump functions.
3790         (inline_read_section): New function.
3791         (inline_read_summary): Use it.
3792         (inline_write_summary): Write all the new data.
3793         * ipa-prop.c (ipa_get_param_decl_index): Export.
3794         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
3795         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3796         Declare.
3797         (ipa_get_lattice): Move here from ipa-cp.c
3798         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3799         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3800         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3801         cgraph_edge_inlinable_p): Remove.
3802         * cgraphunit.c: Include ipainline.h
3803         (cgraph_process_new_functions): Update call of
3804         compute_inline_parameters.
3805
3806 2011-04-22  Richard Guenther  <rguenther@suse.de>
3807
3808         * tree.c (build_int_cst): Properly create canonicalized integer
3809         constants.
3810         (build_int_cst_type): Remove scary comments.
3811
3812 2011-04-22  Xinliang David Li  <davidxl@google.com>
3813
3814         * toplev.c (process_options): Enable -Werror=coverage-mismatch
3815         by default when -Wno-error is not specified.
3816         * opts-global.c (decode_options): Remove call to
3817         control_warning_options.
3818
3819 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3820
3821         PR tree-optimization/48717
3822         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3823         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3824
3825 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
3826
3827         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
3828         definition where used.
3829
3830 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3831
3832         PR c/48716
3833         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3834         TREE_STATIC variables declared inside of some OpenMP construct.
3835
3836 2011-04-22  Martin Jambor  <mjambor@suse.cz>
3837
3838         PR middle-end/48585
3839         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
3840
3841 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
3842
3843         PR c/36750
3844         * c-typeck.c (pop_init_level): Do not warn about initializing
3845         with ` = {0}'.
3846
3847 2011-04-22  Alan Modra  <amodra@gmail.com>
3848
3849         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3850         when returning call_cookie.
3851         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3852         pointers, to functions with no more vector args than the current
3853         function, and some non-local calls for ABI_V4.
3854         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3855         sibcall_nonlocal_aix64): Combine to ..
3856         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
3857         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3858         (sibcall_value_nonlocal_aix<mode>): ..likewise.
3859         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3860         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
3861         operand.
3862         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3863         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3864         sibcall_value_symbolic_64): Delete.
3865
3866 2011-04-21  Xinliang David Li  <davidxl@google.com>
3867
3868         * cgraph.h: Remove pid.
3869         * cgraph.c: Remove pid.
3870         * value-prof.c (init_node_map): New function.
3871         (del_node_map): New function.
3872         (find_func_by_funcdef_no): New function.
3873         (gimple_ic_transform): Call new function.
3874         * cgraphunit.c (cgraph_finalize_function): Remove pid.
3875         * function.c (get_last_funcdef_no): New function.
3876         * function.h (get_last_funcdef_no): New function.
3877         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3878         to libgcov function.
3879         (tree-profiling): Call node map init and delete function.
3880
3881 2011-04-21  Ian Lance Taylor  <iant@google.com>
3882
3883         * godump.c (go_format_type): Use exported Go name for anonymous
3884         field name.
3885
3886 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3887
3888         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3889         Call builtin_function_type_list instead of builtin_function_type.
3890         (UNARY, BINARY, TRINARY, QUAD): Likewise.
3891
3892 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3893
3894         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3895         build_function_type_list instead of build_function_type.
3896         Delete variable `endlink'.
3897
3898 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3899
3900         * config/s390/s390.c (s390_init_builtins): Call
3901         build_function_type_list instead of build_function_type.
3902
3903 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3904
3905         * config/ia64/ia64.c (ia64_init_builtins): Call
3906         build_function_type_list instead of builtin_function_type.
3907
3908 2011-04-21  Easwaran Raman  <eraman@google.com>
3909
3910         * cfgexpand.c (stack_var): Remove OFFSET...
3911         (add_stack_var): ...and its reference here...
3912         (expand_stack_vars): ...and here.
3913         (stack_var_cmp): Sort by descending order of size.
3914         (partition_stack_vars): Change heuristic.
3915         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
3916         (dump_stack_var_partition): Add newline after each partition.
3917
3918 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
3919             Jeff Law  <law@redhat.com>
3920
3921         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
3922         * gengtype.c (matching_file_name_substitute): Likewise.
3923
3924 2011-04-21  Richard Guenther  <rguenther@suse.de>
3925
3926         PR lto/48703
3927         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
3928
3929 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3930
3931         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3932
3933 2011-04-21  Richard Guenther  <rguenther@suse.de>
3934
3935         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3936         file name.
3937
3938 2011-04-21  Richard Guenther  <rguenther@suse.de>
3939
3940         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3941         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3942         Use DECL_P, not SSA_VAR_P.
3943         (ptr_derefs_may_alias_p): Likewise.
3944         (ptr_deref_may_alias_ref_p_1): Likewise.
3945         (decl_refs_may_alias_p): Likewise.
3946         (refs_may_alias_p_1): Likewise.
3947         (ref_maybe_used_by_call_p_1): Likewise.
3948         (call_may_clobber_ref_p_1): Likewise.
3949         (indirect_ref_may_alias_decl_p): Assume indirect refrences
3950         are either MEM_REF or TARGET_MEM_REF.
3951         (indirect_refs_may_alias_p): Likewise.
3952         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3953         for MEM_EXPR of indirect calls.
3954
3955 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3956
3957         * vmsdbgout.c (write_srccorr): Compute file length from the string.
3958         (dst_file_info_struct): Remove flen field.
3959         (lookup_filename): Remove code that set flen field.
3960
3961 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3962
3963         * config/ia64/ia64.c (ia64_start_function): Add a guard.
3964
3965 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
3966
3967         PR target/48708
3968         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3969         vec_extract and vec_concat for non-SSE4_1 targets.
3970
3971 2011-04-21  Richard Guenther  <rguenther@suse.de>
3972
3973         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3974         return statements.
3975
3976 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3977
3978         * config/i386/cygming.h (union tree_node, TREE): Don't define or
3979         undefine.
3980         (FILE): Don't undefine.
3981
3982 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3983
3984         * config/alpha/alpha.c (struct machine_function): Use rtx, not
3985         struct rtx_def *.
3986         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3987         struct rtx_def *.
3988         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
3989         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
3990         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3991         rtx_def *.
3992         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
3993         definitions where used.
3994         * config/microblaze/microblaze.h (struct microblaze_args): Use
3995         rtx, not struct rtx_def *.
3996         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3997         rtx_def *.
3998         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3999         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
4000         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4001         not struct rtx_def *.
4002         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4003         struct rtx_def *.
4004         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4005         rtx_def *.
4006         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
4007
4008 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4009
4010         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4011         operand_equal_p to compare DR_BASE_ADDRESSes.
4012         (vect_check_interleaving): Likewise.
4013
4014 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4015
4016         PR target/46329
4017         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4018         for all Neon struct constants.
4019
4020 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4021
4022         * target.def (legitimate_constant_p): New hook.
4023         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4024         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4025         * doc/tm.texi: Regenerate.
4026         * hooks.h (hook_bool_mode_rtx_true): Declare.
4027         * hooks.c (hook_bool_mode_rtx_true): Define.
4028         * system.h (LEGITIMATE_CONSTANT_P): Poison.
4029         * calls.c (precompute_register_parameters): Replace uses of
4030         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4031         (emit_library_call_value_1): Likewise.
4032         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4033         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4034         * ira-costs.c (scan_one_insn): Likewise.
4035         * recog.c (general_operand, immediate_operand): Likewise.
4036         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4037         * reload1.c (init_eliminable_invariants): Likewise.
4038
4039         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4040         mode argument.
4041         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4042         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4043         argument.
4044         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4045         * config/alpha/predicates.md (input_operand): Update call to
4046         alpha_legitimate_constant_p.
4047
4048         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4049         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4050         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4051         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4052         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4053         (arm_legitimate_constant_p): New functions.
4054         (arm_cannot_force_const_mem): Make static.
4055
4056         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4057
4058         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4059         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4060         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4061         instead of bfin_legitimate_constant_p.
4062         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
4063         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4064
4065         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4066
4067         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4068
4069         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4070         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4071         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4072         (frv_legitimate_constant_p): Make static.  Add a mode argument.
4073
4074         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4075         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4076         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4077
4078         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4079         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4080         * config/i386/i386.c (legitimate_constant_p): Rename to...
4081         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
4082         argument.
4083         (ix86_cannot_force_const_mem): Update accordingly.
4084         (ix86_legitimate_address_p): Likewise.
4085         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4086         * config/i386/i386.md: Update commentary.
4087
4088         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4089         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4090         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4091         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
4092
4093         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4094
4095         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4096         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4097         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4098         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
4099
4100         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4101         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4102         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4103
4104         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
4105         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4106         (m32r_legitimate_constant_p): New function.
4107
4108         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
4109         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
4110         LEGITIMATE_CONSTANT_P.
4111         (LEGITIMATE_CONSTANT_P): Delete.
4112         * config/m68k/m68k.c (m68k_expand_prologue): Call
4113         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
4114         (m68k_legitimate_constant_p): New function.
4115         * config/m68k/m68k.md: Update comments.
4116
4117         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
4118         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4119         (mcore_legitimate_constant_p): New function.
4120
4121         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
4122         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
4123         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
4124         Add a mode argument.
4125         (mep_legitimate_address): Update accordingly.
4126         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4127
4128         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
4129         Delete.
4130         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
4131         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
4132         static.  Check OP's mode for VOIDmode.
4133         (microblaze_legitimate_constant_p): New function.
4134         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4135
4136         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
4137         * config/mips/mips.c (mips_legitimate_constant_p): New function.
4138         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
4139         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4140         * config/mips/predicates.md: Update comments.
4141
4142         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
4143         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
4144         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4145         (mmix_legitimate_constant_p): Make static, return a bool, and take
4146         a mode argument.
4147         (mmix_print_operand_address): Update accordingly.
4148
4149         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
4150         Delete.
4151         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
4152         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
4153         static.  Add a mode argument.
4154         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4155
4156         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
4157
4158         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
4159         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4160         (pa_legitimate_constant_p): New function.
4161
4162         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
4163
4164         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
4165         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4166         (pdp11_legitimate_constant_p): New function.
4167
4168         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
4169         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4170         (rs6000_legitimate_constant_p): New function.
4171
4172         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
4173         (rx_legitimate_constant_p): ...this.
4174         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
4175         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
4176         (rx_legitimate_constant_p): ...this.
4177         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4178         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
4179
4180         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
4181         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
4182         * config/s390/s390.c (legitimate_constant_p): Rename to...
4183         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
4184         and add a mode argument.
4185         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4186
4187         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
4188
4189         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
4190         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4191         (sh_legitimate_constant_p): New function.
4192
4193         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
4194         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
4195         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4196         (legitimate_constant_p): Rename to...
4197         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
4198         argument.
4199         (constant_address_p): Update accordingly.
4200
4201         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
4202         argument and return a bool.
4203         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
4204         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4205         (spu_legitimate_constant_p): Add a mode argument and return a bool.
4206         (spu_rtx_costs): Update accordingly.
4207         * config/spu/predicates.md (vec_imm_operand): Likewise.
4208
4209         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
4210
4211         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
4212         * config/v850/v850.c (v850_legitimate_constant_p): New function.
4213         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4214
4215         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4216         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4217         * config/vax/vax.c (legitimate_constant_p): Likewise.
4218
4219         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4220         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4221         (xtensa_legitimate_constant_p): New function.
4222
4223 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4224
4225         * target.def (cannot_force_const_mem): Add a mode argument.
4226         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4227         * doc/tm.texi: Regenerate.
4228         * hooks.h (hook_bool_mode_rtx_false): Declare.
4229         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4230         (hook_bool_mode_const_rtx_true): Likewise.
4231         (hook_bool_mode_rtx_false): New function.
4232         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4233         to be non-VOID.  Update call to cannot_force_const_mem.
4234         (find_reloads): Update accordingly.
4235         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4236         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4237         argument.
4238         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4239         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4240         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4241         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4242         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4243         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4244         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4245         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4246         (m68k_cannot_force_const_mem): ...this new function.
4247         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4248         argument.
4249         (mips_const_insns, mips_legitimize_const_move): Update calls.
4250         (mips_secondary_reload_class): Likewise.
4251         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4252         (pa_cannot_force_const_mem): ...this new function.
4253         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
4254         (rs6000_cannot_force_const_mem): ...this new function.
4255         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4256         argument.
4257         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4258         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4259         to...
4260         (xtensa_cannot_force_const_mem): ...this new function.
4261
4262 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4263
4264         * config/mips/mips.c (mips16_build_function_stub): Call
4265         build_function_type_list instead of build_function_type.
4266         (mips16_build_call_stub): Likewise.
4267
4268 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4269
4270         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4271         instead of build_function_type.
4272
4273 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4274
4275         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4276         instead of build_function_type.
4277
4278 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
4279
4280         PR target/48678
4281         * config/i386/i386.md (insv): Change operand 0 constraint to
4282         "register_operand".  Change operand 1 and 2 constraint to
4283         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
4284         * config/i386/sse.md (sse4_1_pinsrb): Export.
4285         (sse2_pinsrw): Ditto.
4286         (sse4_1_pinsrd): Ditto.
4287         (sse4_1_pinsrq): Ditto.
4288         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4289         * config/i386/i386.c (ix86_expand_pinsr): New.
4290
4291 2011-04-20  Easwaran Raman  <eraman@google.com>
4292
4293         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4294         containing union type only with -fstrict-aliasing.
4295
4296 2011-04-20  Jim Meyering  <meyering@redhat.com>
4297
4298         Remove useless if-before-free tests.
4299         * calls.c (expand_call, save_area): Likewise.
4300         * cfgcleanup.c (try_forward_edges): Likewise.
4301         * collect2.c (collect_execute): Likewise.
4302         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4303         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4304         * coverage.c (coverage_checksum_string): Likewise.
4305         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4306         * cselib.c (cselib_init): Likewise.
4307         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4308         (df_set_clean_cfg): Likewise.
4309         * function.c (free_after_compilation): Likewise.
4310         * gcc.c (do_spec_1, main): Likewise.
4311         * gcov.c (create_file_names): Likewise.
4312         * gensupport.c (identify_predicable_attribute): Likewise.
4313         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4314         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4315         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4316         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4317         * ipa-pure-const.c (local_pure_const): Likewise.
4318         * ipa-reference.c (propagate): Likewise.
4319         * ira-costs.c (free_ira_costs): Likewise.
4320         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4321         * matrix-reorg.c (mat_free): Likewise.
4322         * prefix.c (get_key_value): Likewise.
4323         * profile.c (compute_value_histograms): Likewise.
4324         * reload1.c (free_reg_equiv): Likewise.
4325         * sched-deps.c (free_deps): Likewise.
4326         * sel-sched-ir.c (fence_clear): Likewise.
4327         * sese.c (set_rename, if_region_set_false_region): Likewise.
4328         * tree-data-ref.c (free_rdg): Likewise.
4329         * tree-eh.c (lower_try_finally): Likewise.
4330         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4331         * tree-ssa-live.c (delete_var_map): Likewise.
4332         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
4333         * tree-ssa-pre.c (phi_trans_add): Likewise.
4334
4335 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
4336
4337         PR tree-optimization/48611
4338         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
4339         beyond ERT_MUST_NOT_THROW region.
4340
4341 2011-04-20  Catherine Moore  <clm@codesourcery.com>
4342
4343         * config/mips/mips.opt (mfix-24k): New.
4344         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
4345         * config/mips/mips.md (length): Increase by 4 for stores if
4346         fixing 24K errata.
4347         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
4348         all noreorder if fixing 24K errata.
4349         * doc/invoke.texi: Document mfix-24k.
4350
4351 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
4352
4353         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
4354         quad-word modes, reduce to 9-bit index range when above 1016 limit.
4355
4356 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
4357
4358         * config/arm/arm.c (arm_gen_constant): Move movw support ....
4359         (const_ok_for_op): ... to here.
4360
4361 2011-04-20  Kai Tietz  <ktietz@redhat.com>
4362
4363         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
4364         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
4365
4366 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
4367
4368         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
4369
4370 2011-04-20  Richard Guenther  <rguenther@suse.de>
4371
4372         PR tree-optimization/47892
4373         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
4374         are if-convertible.
4375
4376 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4377
4378         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
4379
4380 2011-04-20  Tristan Gingold  <gingold@adacore.com>
4381
4382         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
4383
4384 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
4385
4386         PR target/18145
4387
4388         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
4389         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
4390         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
4391         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
4392         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
4393
4394         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
4395         New prototype.
4396
4397         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
4398         (avr_asm_named_section, avr_asm_output_aligned_common,
4399         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
4400         New functions to update...
4401         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
4402         (avr_asm_init_sections): Overwrite section callbacks for
4403         data_section, bss_section.
4404         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
4405         from here to...
4406         (avr_file_end): ...here.
4407
4408 2011-04-20  Richard Guenther  <rguenther@suse.de>
4409
4410         PR middle-end/48695
4411         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
4412         objects and types here.  Adjust for their offset before comparing.
4413
4414 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
4415
4416         * tree-vect-stmts.c (vectorizable_store): Only chain one related
4417         statement per copy.
4418
4419 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
4420
4421         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
4422         (GIMPLE_H): Include $(INTERNAL_FN_H).
4423         (OBJS-common): Add internal-fn.o.
4424         (internal-fn.o): New rule.
4425         * internal-fn.def: New file.
4426         * internal-fn.h: Likewise.
4427         * internal-fn.c: Likewise.
4428         * gimple.h: Include internal-fn.h.
4429         (GF_CALL_INTERNAL): New gf_mask.
4430         (gimple_statement_call): Put fntype into a union with a new
4431         internal_fn field.
4432         (gimple_build_call_internal): Declare.
4433         (gimple_build_call_internal_vec): Likewise.
4434         (gimple_call_same_target_p): Likewise.
4435         (gimple_call_internal_p): New function.
4436         (gimple_call_internal_fn): Likewise.
4437         (gimple_call_fntype): Return null for internal calls.
4438         (gimple_call_set_fntype): Assert that the function is not internal.
4439         (gimple_call_set_fn): Likewise.
4440         (gimple_call_set_fndecl): Likewise.
4441         (gimple_call_set_internal_fn): New function.
4442         (gimple_call_addr_fndecl): Handle null functions.
4443         (gimple_call_return_type): Likewise null types.
4444         * gimple.c (gimple_build_call_internal_1): New function.
4445         (gimple_build_call_internal): Likewise.
4446         (gimple_build_call_internal_vec): Likewise.
4447         (gimple_call_same_target_p): Likewise.
4448         (gimple_call_flags): Handle calls to internal functions.
4449         (gimple_call_fnspec): New function.
4450         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
4451         (gimple_has_side_effects): Handle null functions.
4452         (gimple_rhs_has_side_effects): Likewise.
4453         (gimple_call_copy_skip_args): Handle calls to internal functions.
4454         * cfgexpand.c (expand_call_stmt): Likewise.
4455         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
4456         * gimple-fold.c (gimple_fold_call): Handle null functions.
4457         (gimple_fold_stmt_to_constant_1): Don't fold
4458         calls to internal functions.
4459         * gimple-low.c (gimple_check_call_args): Handle calls to internal
4460         functions.
4461         * gimple-pretty-print.c (dump_gimple_call): Likewise.
4462         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
4463         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
4464         (do_warn_unused_result): Likewise.
4465         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
4466         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
4467         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
4468         the target of a call.
4469         (initialize_hash_element): Update accordingly.
4470         (hashable_expr_equal_p): Use gimple_call_same_target_p.
4471         (iterative_hash_hashable_expr): Handle calls to internal functions.
4472         (print_expr_hash_elt): Likewise.
4473         * tree-ssa-pre.c (can_value_number_call): Likewise.
4474         (eliminate): Handle null functions.
4475         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
4476         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
4477         (find_func_aliases): Likewise.
4478         * value-prof.c (gimple_ic_transform): Likewise.
4479         (gimple_indirect_call_to_profile): Likewise.
4480         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4481         * lto-streamer-out.c (output_gimple_stmt): Likewise.
4482
4483 2011-04-19  Jan Hubicka  <jh@suse.cz>
4484
4485         * ipa-inline-transform.c (save_inline_function_body): Add comments.
4486         * ipa-inline.c (inline_small_functions): Compute summaries first,
4487         populate heap later.
4488
4489 2011-04-19  Jan Hubicka  <jh@suse.cz>
4490
4491         * cgraph.h (save_inline_function_body): Remove.
4492         * ipa-inline-transform.c: New file, broke out of...
4493         * ipa-inline.c: ... this one; Update toplevel comment.
4494         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
4495         make global.
4496         (update_noncloned_frequencies): Move to ipa-inline-transform.c
4497         (cgraph_mark_inline_edge): Rename to inline_call; move to
4498         ipa-inline-transform.c.
4499         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
4500         move to ipa-inline-transform.c
4501         (recursive_inlining, inline_small_functions, flatten_function,
4502         ipa_inline, inline_always_inline_functions,
4503         early_inline_small_functions): Update.
4504         (inline_transform): Move to ipa-inline-transform.c.
4505         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4506         Declare.
4507         * Makefile.in (ipa-inline-transform.o): New file.
4508         * cgraphunit.c (save_inline_function_body): Move to
4509         ipa-inline-transform.c
4510
4511 2011-04-19  DJ Delorie  <dj@redhat.com>
4512
4513         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4514         registers if we already know there aren't any.
4515         (m32c_emit_epilogue): Don't emit a barrier here.
4516         (m32c_emit_eh_epilogue): Likewise.
4517         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4518         operands at expand time.
4519         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4520         int" wchar type.
4521         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4522         duplicates.  Provide aliases instead.
4523         * config/m32c/prologue.md (eh_return): Emit a barrier here.
4524         (eh_epilogue): Add a "(return)" here as a hint to other parts of
4525         the compiler.
4526
4527 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
4528
4529         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4530         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4531         (general_or_i64_p, sparc_register_move_cost): New function.
4532
4533 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4534
4535         * doc/install.texi (Configuration, --enable-threads): Remove mach.
4536         Add lynx, mipssde.  Sort table.
4537
4538 2011-04-19  Xinliang David Li  <davidxl@google.com>
4539
4540         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4541         not negative.
4542
4543 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
4544
4545         PR target/48678
4546         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4547         is a SUBREG with non-MODE_INT mode inside of it.
4548
4549 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4550
4551         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4552         also according to actual contants.
4553         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4554         (gimple_fold_call): Use it.
4555         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4556
4557 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4558
4559         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4560         non-pointer assignments.
4561
4562 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4563
4564         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4565         account anc_offset and otr_type from the indirect edge info.
4566         * ipa-prop.c (get_ancestor_addr_info): New function.
4567         (compute_complex_ancestor_jump_func): Assignment analysis moved to
4568         get_ancestor_addr_info, call it.
4569         (ipa_note_param_call): Do not initialize information about polymorphic
4570         calls, return the indirect call graph edge.  Remove the last
4571         parameter, adjust all callers.
4572         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4573         parameters.  Initialize polymorphic information in the indirect edge.
4574
4575 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4576
4577         PR lto/48148
4578         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4579         the types if they have different enumeration identifiers.
4580
4581 2011-04-19  Jan Hubicka  <jh@suse.cz>
4582
4583         * cgraph.h (cgraph_optimize_for_size_p): Declare.
4584         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4585         * predict.c (cgraph_optimize_for_size_p): Break out from ...
4586         (optimize_function_for_size_p) ... here.
4587
4588 2011-04-19  Richard Guenther  <rguenther@suse.de>
4589
4590         PR lto/48207
4591         * tree.c (free_lang_data): Do not reset the decl-assembler-name
4592         langhook.
4593
4594 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4595
4596         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4597         if DECL_NO_INLINE_WARNING_P is set on the function.
4598
4599 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
4600
4601         PR fortran/47976
4602         * reload1.c (inc_for_reload): Return void. All callers changed.
4603         (emit_input_reload_insns): Don't try to delete previous output
4604         reloads to a register, or record spill_reg_store for autoincs.
4605
4606 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
4607
4608         * gengtype.h: Updated copyright year.
4609         (struct input_file_st): Add inpisplugin field.
4610         (type_fileloc): New function.
4611         * gengtype.c
4612         (write_typed_struct_alloc_def): Add gcc_assert.
4613         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4614         (write_typed_alloc_defns): Don't output for plugin files.
4615         (input_file_by_name): Clear inpisplugin field.
4616         (main): Set inpisplugin field for plugin files.
4617
4618 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
4619
4620         * gengtype-state.c (string_eq): New.
4621         (read_state): Use string_eq instead of strcmp when creating the
4622         state_ident_tab.
4623
4624 2011-04-19  Wei Guozhi  <carrot@google.com>
4625
4626         PR target/47855
4627         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4628         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4629         linkage.
4630         * config/arm/constraints.md (Uu): New constraint.
4631         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4632
4633 2011-04-19  Tristan Gingold  <gingold@adacore.com>
4634
4635         * config.gcc (-*-*-*vms): Added.
4636         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4637         definitions moved.
4638         * config/vms/vms-ld.c: New file.
4639         * config/vms/vms-ar.c: New file.
4640         * config/vms/t-vmsnative: New file.
4641
4642 2011-04-18  Xinliang David Li  <davidxl@google.com>
4643
4644         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4645
4646 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4647
4648         PR middle-end/48661
4649         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4650         if TREE_TYPE (v) is non-NULL.
4651
4652         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4653         gimple_get_virt_mehtod_for_binfo.
4654         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4655         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4656         callers.
4657         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4658
4659 2011-04-18  Michael Matz  <matz@suse.de>
4660             Steve Ellcey  <sje@cup.hp.com>
4661
4662         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4663         use its mode as source mode if it isn't VOIDmode.
4664
4665 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
4666
4667         * doc/passes.texi: Fill crossref nodes.
4668
4669 2011-04-18  Jim Meyering  <meyering@redhat.com>
4670
4671         Fix doubled-word typos in comments and strings
4672         * config/alpha/vms-unwind.h: s/for for/for/
4673         * config/arm/unwind-arm.h: Likewise.
4674         * config/microblaze/microblaze.c: Likewise.
4675         * config/sh/constraints.md: s/in in/in/
4676         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4677
4678 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
4679
4680         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4681         (AVX_FLOAT_MODE_P): Ditto.
4682         (AVX128_VEC_FLOAT_MODE_P): Ditto.
4683         (AVX256_VEC_FLOAT_MODE_P): Ditto.
4684         (AVX_VEC_FLOAT_MODE_P): Ditto.
4685         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4686         (UNSPEC_MASKSTORE): Ditto.
4687         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4688         Merge from <sse>_movmsk<ssemodesuffix> and
4689         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
4690         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
4691         iterator.
4692         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4693         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4694         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4695
4696 2011-04-18  Jan Hubicka  <jh@suse.cz>
4697
4698         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4699
4700         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4701         (want_inline_function_called_once_p): Break out the logic from
4702         ipa_inline.
4703         (edge_badness): Ensure that profile is not misupdated.
4704         (lookup_recursive_calls): Prioritize by call frequencies.
4705         (inline_small_functions): Move program size estimates here;
4706         actually process whole queue even when unit growth has been
4707         met. (to properly compute inline_failed reasons and for the
4708         case unit size decrease.) Revisit comments on recursive inlining.
4709         (ipa_inline): Remove unit summary code; first inline hot calls
4710         of functions called once, cold calls next.
4711         (order, nnodes): Remove unused variables.
4712         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4713         (GTFILES): Remove ipa-inline.c
4714         * sel-sched.c (fill_insns): Silence uninitialized var warning.
4715
4716 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4717
4718         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4719
4720 2011-04-18  Jie Zhang  <jie@codesourcery.com>
4721             Richard Earnshaw  <rearnsha@arm.com>
4722
4723         * arm.c (neon_builtin_type_bits): Remove.
4724         (typedef enum neon_builtin_mode): New.
4725         (T_MAX): Don't define.
4726         (typedef enum neon_builtin_datum): Remove bits, codes[],
4727         num_vars and base_fcode.  Add mode, code and fcode.
4728         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4729         VAR10): Change accordingly.
4730         (neon_builtin_data[]): Change accordingly
4731         (arm_init_neon_builtins): Change accordingly.
4732         (neon_builtin_compare): Remove.
4733         (locate_neon_builtin_icode): Remove.
4734         (arm_expand_neon_builtin): Change accordingly.
4735
4736         * arm.h (enum arm_builtins): Move to ...
4737         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4738
4739         * arm.c (arm_builtin_decl): Declare.
4740         (TARGET_BUILTIN_DECL): Define.
4741         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4742         (arm_builtin_decls[]): New.
4743         (arm_init_neon_builtins): Store builtin declarations in
4744         arm_builtin_decls[].
4745         (arm_init_tls_builtins): Likewise.
4746         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
4747         (arm_builtin_decl): New.
4748
4749 2011-04-18  Richard Guenther  <rguenther@suse.de>
4750
4751         * tree.c (upper_bound_in_type): Build properly canonicalized
4752         INTEGER_CSTs.
4753         (lower_bound_in_type): Likewise.
4754
4755 2011-04-18  Richard Guenther  <rguenther@suse.de>
4756
4757         * gimple.h (gimple_call_addr_fndecl): New function.
4758         (gimple_call_fndecl): Use it.
4759         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4760         for direct calls.
4761         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4762         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4763
4764 2011-04-18  Richard Guenther  <rguenther@suse.de>
4765
4766         PR middle-end/48650
4767         * tree.c (build_string): STRING_CST is now derived from tree_typed.
4768
4769 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4770
4771         PR lto/48492
4772         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4773         DECL_IN_CONSTANT_POOL without RTL.
4774
4775 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
4776             Ira Rosen  <ira.rosen@linaro.org>
4777
4778         PR target/48252
4779         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4780         to match neon_vzip/vuzp/vtrn_internal.
4781         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4782         outputs explicitly dependent on both inputs.
4783         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4784
4785 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4786
4787         PR tree-optimization/48616
4788         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4789         whether the shift is by scalar or vector based on whether all SLP
4790         scalar stmts have the same rhs.
4791
4792 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
4793
4794         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4795         memory operands.
4796
4797 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
4798
4799         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4800         registers.
4801
4802 2011-04-17  Jan Hubicka  <jh@suse.cz>
4803
4804         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
4805         * cgrpahunit.c (cgraph_finalize_function): Do not set
4806         finalized_by_frontend.
4807         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4808         finalized_by_frontend.
4809
4810 2011-04-17  Jan Hubicka  <jh@suse.cz>
4811
4812         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4813         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4814         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
4815         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4816         method.
4817         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4818         gimple-fold.c
4819         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4820
4821 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4822
4823         PR lto/48538
4824         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4825         is non-null before accessing it.
4826         (input_cgraph): Remove trailing spaces.
4827
4828 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4829
4830         * params.def (sms-min-sc): New param flag.
4831         * modulo-sched.c (sms_schedule): Use it.
4832         * doc/invoke.texi (sms-min-sc): Document it.
4833
4834 2011-04-17  Jan Hubicka  <jh@suse.cz>
4835
4836         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4837         present, also set gimple_call_set_cannot_inline.
4838         * ipa-inline.c: Update toplevel comment.
4839         (MAX_TIME): Remove.
4840         (cgraph_clone_inlined_nodes): Fix linebreaks.
4841         (cgraph_check_inline_limits): Restructure to ...
4842         (caller_growth_limits): ... this one; be more tolerant
4843         on growth in nested inline chains; add explanatory comment;
4844         fix stack accounting thinko introduced by previous patch.
4845         (cgraph_default_inline_p): Remove.
4846         (report_inline_failed_reason): New function.
4847         (can_inline_edge_p): New function.
4848         (can_early_inline_edge_p): New function.
4849         (leaf_node_p): Move upwards in file.
4850         (want_early_inline_function_p): New function.
4851         (want_inline_small_function_p): New function.
4852         (want_inline_self_recursive_call_p): New function.
4853         (cgraph_edge_badness): Rename to ...
4854         (edge_badness) ... this one; fix linebreaks.
4855         (update_edge_key): Update call of edge_baddness; add
4856         detailed dump about queue updates.
4857         (update_caller_keys): Use can_inline_edge_p and
4858         want_inline_small_function_p.
4859         (cgraph_decide_recursive_inlining): Rename to...
4860         (recursive_inlining): Use can_inline_edge_p and
4861         want_inline_self_recursive_call_p; simplify and remove no longer
4862         valid FIXME.
4863         (cgraph_set_inline_failed): Remove.
4864         (add_new_edges_to_heap): Use can_inline_edge_p and
4865         want_inline_small_function_p.
4866         (cgraph_decide_inlining_of_small_functions): Rename to ...
4867         (inline_small_functions): ... this one; cleanup; use
4868         can/want predicates; cleanup debug ouput; work edges till fibheap
4869         is exhausted and do not stop once unit growth is reached; remove
4870         later loop processing remaining edges.
4871         (cgraph_flatten): Rename to ...
4872         (flatten_function): ... this one; use can_inline_edge_p
4873         and can_early_inline_edge_p predicates.
4874         (cgraph_decide_inlining): Rename to ...
4875         (ipa_inline): ... this one; remove unreachable nodes before
4876         inlining functions called once; simplify the pass.
4877         (cgraph_perform_always_inlining): Rename to ...
4878         (inline_always_inline_functions): ... this one; use
4879         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4880         (cgraph_decide_inlining_incrementally): Rename to ...
4881         (early_inline_small_functions): ... this one; simplify
4882         using new predicates; cleanup; make dumps prettier.
4883         (cgraph_early_inlining): Rename to ...
4884         (early_inliner): newer inline regular functions into always-inlines;
4885         fix updating of call stmt summaries.
4886         (pass_early_inline): Update for new names.
4887         (inline_transform): Fix formating.
4888         (gate_cgraph_decide_inlining): Rename to ...
4889         (pass_ipa_inline): ... this one.
4890         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4891         * ipa-inline-analysis.c (dump_inline_summary): Update.
4892         (compute_inline_parameters): Do not compute disregard_inline_limits;
4893         look for mismatching arguments.
4894         (estimate_growth): Fix handlig of non-trivial self recursion.
4895         (inline_read_summary): Do not read info->disregard_inline_limits.
4896         (inline_write_summary): Do not write info->disregard_inline_limits.
4897         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4898         and move all checks into can_inline_edge_p predicate; re-enable code
4899         comparing optimization levels.
4900         (expand_call_inline): Do not test inline_forbidden_into_p.
4901         * Makefile.in (ipa-inline.o): Update arguments.
4902
4903 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4904
4905         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4906
4907 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4908
4909         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4910
4911 2011-04-17  Michael Matz  <matz@suse.de>
4912
4913         PR tree-optimization/48622
4914         PR lto/48645
4915         * ipa-inline-analysis.c (inline_read_summary): Read size/time
4916         in same order as they're written.
4917
4918 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4919
4920         * config/pa/predicates.md: Reorganize and simplify predicates.
4921         Eliminate duplicate code checks.
4922         (arith_operand): Rename to arith14_operand
4923         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4924         * config/pa/pa.md: Use renamed operands.
4925         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4926         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4927         arith11_operand, adddi3_operand, indexed_memory_operand,
4928         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4929         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4930         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4931         move_dest_operand, move_src_operand, prefetch_cc_operand,
4932         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4933         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4934         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4935         div_operand, int5_operand, movb_comparison_operator,
4936         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4937         arith_double_operand, ireg_operand, lhs_lshift_operand,
4938         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4939         integer_store_memory_operand): Likewise.
4940         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4941         (integer_store_memory_operand, read_only_operand,
4942         function_label_operand, borx_reg_operand,
4943         non_hard_reg_operand): Likewise.
4944         (eq_neq_comparison_operator): Delete unused operator.
4945         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4946         function_label_operand.
4947         (emit_move_sequence): Likewise.
4948
4949 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4950
4951         * config/i386/sse.md (sseunpackmode): New mode attribute.
4952         (ssepackmode): Ditto.
4953         (vec_pack_trunc_<mode>): Macroize expander from
4954         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4955         (vec_unpacks_lo_<mode>): Macroize expander from
4956         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4957         (vec_unpacks_hi_<mode>): Macroize expander from
4958         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4959         (vec_unpacku_lo_<mode>): Macroize expander from
4960         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4961         (vec_unpacku_hi_<mode>): Macroize expander from
4962         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4963         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4964         ix86_expand_sse4_unpack.
4965         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4966
4967 2011-04-16  Jan Hubicka  <jh@suse.cz>
4968
4969         * cgraphbuild.c: Include ipa-inline.h.
4970         (reset_inline_failed): Use initialize_inline_failed.
4971         * cgraph.c: Include ipa-inline.h.
4972         (cgraph_create_node_1): Do not initialize estimated_growth.
4973         (initialize_inline_failed): More to ipa-inline-analysis.c
4974         (dump_cgraph_node): Do not dump inline flags.
4975         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4976         and disregard_inline_limits flags.
4977         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4978         time, size, estimated_growth.
4979         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4980         Update.
4981         * cgraphunit.c (cgraph_decide_is_function_needed): Use
4982         DECL_DISREGARD_INLINE_LIMITS.
4983         (cgraph_analyze_function): Do not initialize
4984         node->local.disregard_inline_limits.
4985         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4986         inlinable, versionable and disregard_inline_limits.
4987         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4988         cgraph_check_inline_limits, cgraph_default_inline_p,
4989         cgraph_edge_badness, update_caller_keys, update_callee_keys,
4990         add_new_edges_to_heap): Update.
4991         (cgraph_decide_inlining_of_small_function): Update; set
4992         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
4993         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4994         cgraph_decide_inlining_incrementally): Update.
4995         * ipa-inline.h (inline_summary): Add inlinable, versionable,
4996         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4997         time, size and estimated_growth parameters.
4998         (estimate_edge_growth): Update.
4999         (initialize_inline_failed): Declare.
5000         * ipa-split.c: Include ipa-inline.h
5001         (execute_split_functions): Update.
5002         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5003         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5004         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5005         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5006         estimated_growth to INT_MIN.
5007         (inline_node_duplication_hook): Likewise.
5008         (dump_inline_summary): Dump new fields.
5009         (compute_inline_parameters): Update.
5010         (estimate_edge_time, estimate_time_after_inlining,
5011         estimate_size_after_inlining, estimate_growth, inline_read_summary,
5012         inline_write_summary):
5013         (initialize_inline_failed): Move here from cgraph.c.
5014         * tree-sra.c: Include ipa-inline.h.
5015         (ipa_sra_preliminary_function_checks): Update.
5016         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5017         ipa-inline.h.
5018
5019 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
5020
5021         * config/i386/sse.md (V16): New mode iterator.
5022         (VI1, VI8): Ditto.
5023         (AVXMODEQI, AVXMODEDI): Remove.
5024         (sse2, sse3): New mode attribute.
5025         (mov<mode>): Use V16 mode iterator.
5026         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5027         (push<mode>1): Use V16 mode iterator.
5028         (movmisalign<mode>): Ditto.
5029         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5030         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5031         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5032         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5033         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5034         avx_movdqu<avxmodesuffix>.
5035         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5036         *avx_movdqu<avxmodesuffix>.
5037         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5038         avx_lddqu<avxmodesuffix>.
5039         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5040         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5041         avx_movnt<AVXMODEDI:mode>.
5042         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5043         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5044
5045 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5046
5047         PR target/48629
5048         * haifa-sched.c (prune_ready_list, schedule_block): Use
5049         sched_pressure_p rather than flag_sched_pressure.
5050
5051 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5052
5053         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5054         cgraph_get_node instead of cgraph_get_create_node.
5055
5056 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
5057
5058         * cfgexpand.c (expand_debug_expr): Use
5059         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5060
5061 2011-04-15  Michael Matz  <matz@suse.de>
5062
5063         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5064         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5065         * function.c (gimplify_parameters): Ditto.
5066         * gimplify.c (gimplify_vla_decl): Ditto.
5067
5068         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5069         (gimple_call_set_alloca_for_var): New inline function.
5070         (gimple_call_alloca_for_var_p): Ditto.
5071         * gimple.c (gimple_build_call_from_tree): Remember
5072         CALL_ALLOCA_FOR_VAR_P state.
5073         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5074
5075         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5076         calls if they were for VLA objects.
5077
5078 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5079
5080         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5081         of ADR_EXPRs.
5082
5083 2011-04-15  Martin Jambor  <mjambor@suse.cz>
5084
5085         PR middle-end/48601
5086         * tree-emutls.c (lower_emutls_function_body): Call
5087         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
5088         result is non-NULL.
5089
5090 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
5091
5092         * c-decl.c (detect_field_duplicates): Call
5093         objc_detect_field_duplicates instead of objc_get_interface_ivars.
5094
5095 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
5096
5097         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5098         * gimple.c (gimple_asm_clobbers_memory_p): Define.
5099         * ipa-pure-const.c (check_stmt): Call it.
5100         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5101
5102 2011-04-15  Richard Guenther  <rguenther@suse.de>
5103
5104         PR tree-optimization/48290
5105         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
5106         Properly decide inhibiting propagation based on the valueized
5107         operand.  Do loop-closed SSA form preserving here ...
5108         (init_copy_prop): ... not here.
5109
5110 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5111
5112         PR target/48612
5113         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5114         (*ieee_smax<mode>3): Likewise.
5115
5116 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5117
5118         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
5119         Replace match_operand with match_dup for the third operand in
5120         these expanders.
5121
5122 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5123
5124         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
5125         to track processing of conditionals.  Update all callers.
5126         (try_combine, simplify_if_then_else): Update.
5127
5128 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
5129
5130         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
5131         -fsched-pressure.
5132
5133 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
5134
5135         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
5136         instead of match_operand for operand 3.
5137
5138 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
5139
5140         * recog.h (insn_operand_data): Add an "allows_mem" field.
5141         * genoutput.c (output_operand_data): Initialize it.
5142         * optabs.c (maybe_legitimize_operand_same_code): New function.
5143         (maybe_legitimize_operand): Use it when matching the original
5144         op->value.
5145
5146 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5147
5148         * gimplify.c: Fix issues in comments throughout.
5149         (voidify_wrapper_expr): Fix long line.
5150         (build_stack_save_restore): Likewise.
5151         (gimplify_loop_expr): Likewise.
5152         (gimplify_compound_lval): Likewise.
5153         (gimplify_init_ctor_eval): Likewise.
5154         (gimplify_modify_expr_rhs): Likewise.
5155         (omp_notice_threadprivate_variable): Likewise.
5156
5157 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5158
5159         * cfgexpand.c (expand_call_stmt): Convert the function type to the
5160         original one if this is not a builtin function.
5161
5162 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
5163
5164         PR target/48605
5165         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
5166         offset it as needed based on top 2 bits in operands[3], change
5167         MEM mode to SFmode and mask those 2 bits away from operands[3].
5168
5169 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5170
5171         * c-parser.c (c_parser_objc_protocol_definition): Updated for
5172         change from objc_declare_protocols() to objc_declare_protocol().
5173
5174 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
5175
5176         * config/i386/sse.md (sse4_1): New mode attribute.
5177         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
5178         avx_blend<ssemodesuffix><avxmodesuffix> and
5179         sse4_1_blend<ssemodesuffix> using VF mode iterator.
5180         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
5181         avx_blendv<ssemodesuffix><avxmodesuffix> and
5182         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
5183         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
5184         avx_dp<ssemodesuffix><avxmodesuffix> and
5185         sse4_1_dp<ssemodesuffix> using VF mode iterator.
5186         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
5187         (sse4_1_packusdw): Merge with *avx_packusdw.
5188         (sse4_1_pblendvb): Merge with *avx_pblendvb.
5189         (sse4_1_pblendw): Merge with *avx_pblendw.
5190         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
5191         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
5192         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
5193         VF mode iterator.
5194         (sse4_1_round<ssescalarmodesuffix>): Merge with
5195         *avx_round<ssescalarmodesuffix>.
5196         (aesenc): Merge with *avx_aesenc.
5197         (aesenclast): Merge with *avx_aesenclast.
5198         (aesdec): Merge with *avx_aesdec.
5199         (aesdeclast): Merge with *avx_aesdeclast.
5200         (pclmulqdq): Merge with *pclmulqdq.
5201         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
5202         New predicate.
5203         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
5204
5205 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
5206
5207         PR middle-end/48608
5208         * cfgexpand.c (get_decl_align_unit): Renamed to ...
5209         (align_local_variable): This.  Update DECL_ALIGN.
5210         (add_stack_var): Updated.
5211         (expand_one_stack_var): Likewise.
5212
5213 2011-04-14  Richard Guenther  <rguenther@suse.de>
5214
5215         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5216         Remove.
5217         (dse_initialize_block_local_data, dse_leave_block,
5218         record_voperand_set, get_stmt_uid): Likewise.
5219         (dse_possible_dead_store_p): Allow any kind of killing stmt.
5220         (dse_optimize_stmt): Remove voperand set handling code.
5221         Simplify and improve to handle any kind of killing stmt.
5222         (dse_record_phi): Remove.
5223         (dse_enter_block): Simplify.
5224         (tree_ssa_dse): Likewise.
5225         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5226
5227 2011-04-14  Jan Hubicka  <jh@suse.cz>
5228
5229         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5230         * cgraph.h (struct inline_summary): Move to ipa-inline.h
5231         (cgraph_local_info): Remove inline_summary.
5232         * ipa-cp.c: Include ipa-inline.h.
5233         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5234         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5235         accesor.
5236         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5237         (input_overwrite_node): Do not set inline summary.
5238         (input_node): Do not stream inline summary.
5239         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5240         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5241         growth; we do not have inline parameters computed for that anyway.
5242         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5243         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5244         (inline_summary_t): New type and VECtor.
5245         (debug_inline_summary, dump_inline_summaries): Declare.
5246         (inline_summary): Use VOCtor.
5247         (estimate_edge_growth): Kill hack computing call stmt size directly.
5248         * lto-section-in.c (lto_section_name): Add inline section.
5249         * ipa-inline-analysis.c: Include lto-streamer.h
5250         (node_removal_hook_holder, node_duplication_hook_holder): New holders
5251         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5252         (inline_summary_vec): Define.
5253         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5254         dump_inline_summaries): New functions.
5255         (estimate_function_body_sizes): Properly compute size/time of outgoing
5256         calls.
5257         (compute_inline_parameters): Alloc inline_summary; do not compute
5258         size/time of incomming calls.
5259         (estimate_edge_time): Avoid missing time summary hack.
5260         (inline_read_summary): Read inline summary info.
5261         (inline_write_summary): Write inline summary info.
5262         (inline_free_summary): Free all hooks and inline summary vector.
5263         * lto-streamer.h: Add LTO_section_inline_summary section.
5264         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5265         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5266
5267 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5268
5269         * tree-vectorizer.h (vect_strided_store_supported): Add a
5270         HOST_WIDE_INT argument.
5271         (vect_strided_load_supported): Likewise.
5272         (vect_permute_store_chain): Return void.
5273         (vect_transform_strided_load): Likewise.
5274         (vect_permute_load_chain): Delete.
5275         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5276         count argument.  Check that the count is a power of two.
5277         (vect_strided_load_supported): Likewise.
5278         (vect_permute_store_chain): Return void.  Update after above changes.
5279         Assert that the access is supported.
5280         (vect_permute_load_chain): Likewise.
5281         (vect_transform_strided_load): Return void.
5282         * tree-vect-stmts.c (vectorizable_store): Update calls after
5283         above interface changes.
5284         (vectorizable_load): Likewise.
5285         (vect_analyze_stmt): Don't check for strided powers of two here.
5286
5287 2011-04-14  Richard Guenther  <rguenther@suse.de>
5288
5289         PR tree-optimization/48590
5290         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5291         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5292         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5293         BUILT_IN_STACK_SAVE.
5294         * tree-ssa-dce.c (propagate_necessity): Handle
5295         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5296
5297 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5298
5299         * c-parser.c (c_parser_objc_class_declaration): Updated call to
5300         objc_declare_class.
5301
5302 2011-04-14  Richard Guenther  <rguenther@suse.de>
5303
5304         * tree.h (get_object_alignment_1): Declare.
5305         * builtins.c (get_object_alignment_1): Split out worker from ...
5306         (get_object_alignment): ... here.
5307         * fold-const.c (get_pointer_modulus_and_residue): Use
5308         get_object_alignment_1.
5309
5310 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5311
5312         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5313         type parameter.
5314         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5315         parameter.  Generalise code to handle arrays as well as vectors.
5316         (vect_setup_realignment): Update accordingly.
5317         * tree-vect-stmts.c (vectorizable_store): Likewise.
5318         (vectorizable_load): Likewise.
5319
5320 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5321
5322         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5323         within the per-copy loop.
5324
5325 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5326
5327         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5328         in the dump file.
5329
5330 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5331
5332         * doc/options.texi (Negative): Explicitly mention that the
5333         Negative chain must be circular.
5334
5335 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
5336
5337         * function.h (block_chainon): Declare.
5338         * function.c (block_chainon): Define.
5339
5340 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
5341             Eric Weddington  <eric.weddington@atmel.com>
5342             Georg-Johann Lay  <avr@gjlay.de>
5343
5344         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
5345         New Includes
5346         (avr_init_builtins, avr_expand_builtin,
5347         avr_expand_delay_cycles, avr_expand_unop_builtin,
5348         avr_expand_binop_builtin ): New functions.
5349         (avr_builtin_id): New enum
5350         (struct avr_builtin_description): New struct
5351         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
5352         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5353
5354         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5355         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
5356         UNSPECV_DELAY_CYCLES): new enumeration values
5357         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
5358         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
5359         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
5360         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
5361         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
5362         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
5363         "fmulsu"): New insns
5364
5365         * config/avr/avr-c.c: fix line endings
5366         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
5367         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
5368         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
5369         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
5370         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5371
5372         * doc/extend.texi (AVR Built-in Functions): New node
5373         (Target Builtins): Add documentation of AVR
5374         built-in functions.
5375
5376 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
5377
5378         PR target/44643
5379         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
5380         alone. Error if non-const data has attribute progmem.
5381
5382 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5383
5384         * tree.h (struct tree_constructor): Include tree_typed instead of
5385         tree_common.
5386         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
5387         TS_TYPED instead of TS_COMMON.
5388
5389 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
5390
5391         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
5392         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
5393         (sse2_psadbw): Merge with *avx_psadbw.
5394         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
5395         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
5396         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
5397         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
5398         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
5399         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
5400         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
5401         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
5402         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
5403         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
5404         (ssse3_palignrti): Merge with *avx_palignrti.
5405
5406 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5407
5408         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
5409         * tree-ssanames.c (fini_ssanames): VEC_free it.
5410         (make_ssa_name_fn): Update for VECness of free_ssanames.
5411         (release_ssa_name, release_dead_ssa_names): Likewise.
5412         * tree.h (struct tree_ssa_name): Include tree_typed instead of
5413         tree_common.
5414         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
5415         TS_TYPED instead of TS_COMMON.
5416
5417 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5418
5419         * postreload-gcse.c (gcse_after_reload_main): Add calls to
5420         statistics_counter_event.
5421         * tree-ssa-copyrename.c (stats): Define.
5422         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
5423         statistics_counter_event.
5424         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
5425         (bswap_stats, widen_mul_stats): Define.
5426         (insert_reciprocals): Increment rdivs_inserted.
5427         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
5428         rfuncs_inserted.  Add calls to statistics_counter_event.
5429         (execute_cse_sincos_1): Increment inserted.
5430         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
5431         statistics_counter_event.
5432         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
5433         of bswap_stats.  Add calls to statistics_counter_event.
5434         (convert_mult_to_widen): Increment widen_mults_inserted.
5435         (convert_plusminus_to_widen): Increment maccs_inserted.
5436         (convert_mult_to_fma): Increment fmas_inserted.
5437         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
5438         calls to statistics_counter_event.
5439
5440 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5441
5442         PR rtl-optimization/48455
5443         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
5444         `temp_costs->mem_cost'.
5445
5446 2011-04-13  Jan Hubicka  <jh@suse.cz>
5447
5448         * ipa-inline.h: New file.
5449         * ipa-inline-analysis.c: New file. Broken out of ...
5450         * ipa-inline.c: ... this file; update toplevel comment;
5451         include ipa-inline.h
5452         (inline_summary): Move to ipa-inline.h
5453         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
5454         ipa-inline-analysis.c.
5455         (cgraph_estimate_time_after_inlining): Rename to
5456         estiamte_time_after_inlining; move to ipa-inline-analysis.c
5457         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
5458         to estimate_edge_growth.
5459         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
5460         rename to estimate_size_after_inlining.
5461         (cgraph_mark_inline_edge): Update for new naming convention.
5462         (cgraph_check_inline_limits): Likewise.
5463         (cgraph_edge_badness): Likewise.
5464         (cgraph_decide_recursive_inlining): Likewise.
5465         (cgraph_decide_inlining_of_small_functions): Likewise.
5466         (cgraph_decide_inlining_incrementally): Likewise.
5467         (cgraph_estimate_growth): Rename to estimate_growth; move to
5468         ipa-inline-analysis.c.
5469         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
5470         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
5471         (compute_inline_parameters): Likewise.
5472         (compute_inline_parameters_for_current): Likewise.
5473         (pass_inline_parameters): Likewise.
5474         (inline_indirect_intraprocedural_analysis): Likewise.
5475         (analyze_function): Rename to inline_analyze_function; likewise.
5476         (add_new_function): Move to ipa-inline-analysis.c.
5477         (inline_generate_summary): Likewise.
5478         (inline_read_summary): Likewise.
5479         (inline_write_summary): Likewise.
5480         * Makefile.in (ipa-inline-analysis.c): New file.
5481
5482 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5483
5484         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
5485         * configure: Regenerate.
5486
5487 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5488
5489         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
5490         instead of tree_common.
5491         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
5492         Likewise.
5493         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
5494         TS_TYPED rather than TS_COMMON.
5495         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
5496
5497 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
5498
5499         PR target/45263
5500         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
5501         r20 around calls of __tablejump_elpm__
5502
5503 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
5504
5505         PR middle-end/48591
5506         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5507         NULL.
5508         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5509
5510 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
5511
5512         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5513         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5514         (cfi_vec): New typedef.
5515         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5516         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5517         (cie_cfi_vec): New static variable.
5518         (cie_cfi_head): Delete.
5519         (add_cfi): Accept a cfi_vec * as first argument. All callers and
5520         declaration changed. Use vector rather than list operations.
5521         (new_cfi): Don't initialize the dw_cfi_next field.
5522         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5523         rather than list operations.
5524         (lookup_cfa): Use vector rather than list operations.
5525         (output_cfis): New argument upto. Accept a cfi_vec rather than
5526         a dw_cfi_ref list head as argument. All callers changed.
5527         Iterate over the vector using upto as a maximum index.
5528         (output_all_cfis): New static function.
5529         (output_fde): Use vector rather than list operations. Use the
5530         new upto argument for output_cfis rather than manipulating a
5531         list.
5532         (dwarf2out_begin_prologue): Change initializations to match
5533         new struct members.
5534         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5535         from the vector length rather than searching for the end of a list.
5536         Use output_all_cfis.
5537         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5538
5539 2011-04-13  Nick Clifton  <nickc@redhat.com>
5540
5541         * config/rx/rx.md (movmemsi): Do not use this pattern when
5542         volatile pointers are involved.
5543
5544 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
5545
5546         * config/i386/sse.md (pinsrbits): Remove.
5547         (sse2_packsswb): Merge with *avx_packsswb.
5548         (sse2_packssdw): Merge with *avx_packssdw.
5549         (sse2_packuswb): Merge with *avx_packuswb.
5550         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5551         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5552         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5553         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5554         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5555         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5556         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5557         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5558         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5559         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5560         (sse2_loadld): Merge with *avx_loadld.
5561         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5562         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5563         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5564         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5565         (vec_concatv2di): Merge with *vec_concatv2di_avx.
5566
5567 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
5568
5569         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5570         calling TREE_CHAIN.
5571         * print-tree.c (print_node): Likewise.
5572         * tree-inline.c (copy_tree_r): Likewise.
5573         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5574         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5575         instead of TS_COMMON.
5576         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5577         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5578         (copy_node_stat): Zero TREE_CHAIN only if necessary.
5579         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5580         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5581         ...and these...
5582         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5583         * tree.h: ...here.
5584         (TREE_CHAIN): Check for a TS_COMMON structure.
5585         (TREE_TYPE): Check for a TS_TYPED structure.
5586
5587 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
5588
5589         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5590         cgraph_get_create_node instead of cgraph_node.
5591
5592 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5593
5594         * c-parser.c (c_parser_initelt): Updated call to
5595         objc_build_message_expr.
5596         (c_parser_postfix_expression): Likewise.
5597
5598 2011-04-12  Kai Tietz  <ktietz@redhat.com>
5599
5600         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5601         MASK_MS_BITFIELD_LAYOUT bit.
5602
5603 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5604
5605         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5606         assert it is always true.
5607         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5608         moves.
5609
5610 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5611
5612         * c-parser.c (c_lex_one_token): Rewritten conditional used when
5613         compiling Objective-C to be more efficient.
5614
5615 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
5616
5617         * opts-common.c (decode_cmdline_options_to_array): Remove variable
5618         argv_copied.
5619
5620 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5621
5622         * recog.h, genoutput.c, optabs.c: Revert last patch.
5623
5624 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5625
5626         PR target/48090
5627         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
5628
5629 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5630
5631         * recog.h (insn_operand_data): Add an "allows_mem" field.
5632         * genoutput.c (output_operand_data): Initialize it.
5633         * optabs.c (maybe_legitimize_operand_same_code): New function.
5634         (maybe_legitimize_operand): Use it when matching the original
5635         op->value.
5636
5637 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5638
5639         * genpreds.c (process_define_predicate): Move most processing
5640         to gensupport.c.  Continue to validate the expression.
5641         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5642         (process_define_predicate): Move processing to gensupport.c.
5643         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5644         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5645         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
5646         argument.
5647         (valid_predicate_name_p): New function, split out from old
5648         genpreds.c:process_define_predicate.
5649         (process_define_predicate): New function, combining code from
5650         old genpreds.c and genrecog.c functions.
5651         (process_rtx): Call it for DEFINE_PREDICATE and
5652         DEFINE_SPECIAL_PREDICATE.
5653
5654 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5655
5656         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5657         size of a '%A' memory reference.
5658         (T_DREG, T_QREG): New neon_builtin_type_bits.
5659         (arm_init_neon_builtins): Assert that the load and store operands
5660         are neon_struct_operands.
5661         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5662         (NEON_ARG_MEMORY): New builtin_arg.
5663         (neon_dereference_pointer): New function.
5664         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5665         Handle NEON_ARG_MEMORY.
5666         (arm_expand_neon_builtin): Update after above interface changes.
5667         Use NEON_ARG_MEMORY for loads and stores.
5668         * config/arm/predicates.md (neon_struct_operand): New predicate.
5669         * config/arm/iterators.md (V_two_elem): Tweak formatting.
5670         (V_three_elem): Use BLKmode for accesses that have no associated mode.
5671         (V_four_elem): Tweak formatting.
5672         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5673         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5674         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5675         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5676         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5677         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5678         (neon_vst4<mode>): Replace pointer operand with a memory operand.
5679         Use %A in the output template.
5680         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5681         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5682         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5683         the width of the memory access.  Remove post-increment.
5684         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5685
5686 2011-04-12  Nick Clifton  <nickc@redhat.com>
5687
5688         * config/v850/v850.c (expand_prologue): Do not use the CALLT
5689         instruction for interrupt handlers if the target is the basic V850
5690         architecture.
5691         (expand_epilogue): Likewise.
5692
5693 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5694
5695         PR rtl-optimization/48549
5696         * combine.c (propagate_for_debug): Also stop after BB_END of
5697         this_basic_block.  Process LAST and just stop processing after it.
5698         (combine_instructions): If last_combined_insn has been deleted,
5699         set last_combined_insn to its PREV_INSN.
5700
5701 2011-04-12  Richard Guenther  <rguenther@suse.de>
5702
5703         PR tree-optimization/46076
5704         * gimple.h (struct gimple_statement_call): Add fntype field.
5705         (gimple_call_fntype): Adjust.
5706         (gimple_call_set_fntype): New function.
5707         * gimple.c (gimple_build_call_1): Set the call function type.
5708         * gimplify.c (gimplify_call_expr): Preserve the function
5709         type the frontend used for the call.
5710         (gimplify_modify_expr): Likewise.
5711         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5712         function type.
5713         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5714         function type.
5715         * tree-ssa.c (useless_type_conversion_p): Function pointer
5716         conversions are useless.
5717
5718 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5719
5720         * cgraph.h (cgraph_node): Remove function declaration.
5721         (cgraph_create_node): Declare.
5722         (cgraph_get_create_node): Likewise.
5723         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5724         Updated all callers.
5725         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5726         the decl does not already exist.  Call cgraph_get_create_node instead
5727         of cgraph_node.
5728         (cgraph_get_create_node): New function.
5729         (cgraph_same_body_alias): Update comment.
5730         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5731         assert it does not return NULL.
5732         (cgraph_update_edges_for_call_stmt): Likewise.
5733         (cgraph_clone_edge): Likewise.
5734         (cgraph_create_virtual_clone): Likewise.
5735         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5736         instead of cgraph_node.
5737         (cgraph_add_new_function): Call cgraph_create_node or
5738         cgraph_get_create_node instead of cgraph_node.
5739         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5740         instead of cgraph_node.
5741         (record_eh_tables): Likewise.
5742         (mark_address): Likewise.
5743         (mark_load): Likewise.
5744         (build_cgraph_edges): Call cgraph_get_create_node instead
5745         of cgraph_node.
5746         (rebuild_cgraph_edges): Likewise.
5747         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5748         instead of cgraph_node.
5749         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5750         cgraph_node.
5751         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5752         cgraph_create_node instead of cgraph_node.
5753         * c-decl.c (finish_function): Call cgraph_get_create_node instead
5754         of cgraph_node.
5755         * lto-cgraph.c (input_node): Likewise.
5756         * lto-streamer-in.c (input_function): Likewise.
5757         * varasm.c (mark_decl_referenced): Likewise.
5758         (assemble_alias): Likewise.
5759
5760 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5761
5762         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5763         instead of cgraph_node and assert it does not return NULL.
5764         * lto-streamer-in.c (lto_read_body): Likewise.
5765         * omp-low.c (new_omp_context): Likewise.
5766         (create_task_copyfn): Likewise.
5767         * tree-emutls.c (lower_emutls_function_body): Likewise.
5768         * matrix-reorg.c (transform_allocation_sites): Likewise.
5769
5770 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5771
5772         PR c/48552
5773         * c-typeck.c (build_asm_expr): Error out on attempts to use
5774         void type outputs or inputs for constraints that allow reg or
5775         don't allow memory.
5776
5777 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
5778             Richard Earnshaw  <rearnsha@arm.com>
5779
5780         PR target/48250
5781         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5782         to use sign-magnitude offsets. Reject unsupported unaligned
5783         cases. Add detailed description in comments.
5784         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5785         condition from TARGET_32BIT to TARGET_ARM.
5786
5787 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
5788
5789         * tree.h (struct typed_tree): New.
5790         (struct tree_common): Include it instead of tree_base.
5791         (TREE_TYPE): Update for new location of type field.
5792         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5793         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5794         (union tree_node): Add typed field.
5795         * treestruct.def (TS_TYPED): New.
5796         * lto-streamer.c (check_handled_ts_structures): Handle it.
5797         * tree.c (MARK_TS_TYPED): New macro.
5798         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5799
5800 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
5801
5802         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5803         (force_nonfallthru): Do not alter the loop nest if no basic block
5804         was created.
5805
5806 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5807
5808         * config/i386/sse.md (VI): New mode iterator.
5809         (SSEMODEI): Remove.
5810         (AVX256MODEI): Ditto.
5811         (AVXMODEF4P): Ditto.
5812         (avxvecpsmode): Ditto.
5813         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
5814         (sse2_andnot<mode>3): New expander.
5815         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5816         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
5817         (<any_logic:code><mode>3): Use VI mode iterator.
5818         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5819         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
5820         (*andnottf3): Handle AVX three-operand constraints.
5821         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5822
5823 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5824             Robert Millan  <rmh@gnu.org>
5825
5826         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5827         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5828         GNU_USER_DYNAMIC_LINKER64): Define.
5829         (REG_NAME): Don't undefine.
5830         (MD_UNWIND_SUPPORT): Undefine.
5831         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5832         (REG_NAME): Don't undefine.
5833         (MD_UNWIND_SUPPORT): Undefine.
5834         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
5835
5836 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5837
5838         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5839         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5840
5841 2011-04-11  Xinliang David Li  <davidxl@google.com>
5842
5843         * value-profile.c (check_ic_target): New function.
5844         (gimple_ic_transform): Sanity check indirect call target.
5845         * gimple-low.c (gimple_check_call_args): Interface change.
5846         (gimple_check_call_matching_types): New function.
5847         * tree-inline.c (tree_can_inline_p): Call new function.
5848
5849 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
5850
5851         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5852         tree-pretty-print.h & realmpfr.h.
5853
5854 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
5855
5856         PR middle-end/48464
5857         * ira.c (setup_pressure_classes): Fix typo in loop condition.
5858         (setup_allocno_and_important_classes): Ditto.
5859
5860 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5861
5862         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5863         GNU_USER_DYNAMIC_LINKER.
5864         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5865         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5866         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5867         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5868         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5869         GNU_USER_TARGET_OS_CPP_BUILTINS.
5870         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5871         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5872         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5873         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5874         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5875         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5876         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5877         GNU_USER_TARGET_OS_CPP_BUILTINS.
5878         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5879         GNU_USER_DYNAMIC_LINKER.
5880         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5881         GNU_USER_TARGET_OS_CPP_BUILTINS.
5882         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5883         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5884         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5885         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5886         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5887         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5888         GNU_USER_DYNAMIC_LINKER64): Remove.
5889         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5890         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5891         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5892         GNU_USER_DYNAMIC_LINKER.
5893         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5894         GNU_USER_TARGET_OS_CPP_BUILTINS.
5895         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5896         GNU_USER_TARGET_OS_CPP_BUILTINS.
5897         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5898         to GNU_USER_TARGET_OS_CPP_BUILTINS.
5899         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5900         GNU_USER_TARGET_OS_CPP_BUILTINS.
5901         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5902         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5903         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5904         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5905         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5906         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5907         GNU_USER_DYNAMIC_LINKER.
5908         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5909         GNU_USER_TARGET_OS_CPP_BUILTINS.
5910         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5911         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5912         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5913         GNU_USER_DYNAMIC_LINKER.
5914         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5915         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5916         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5917         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5918         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5919         GNU_USER_DYNAMIC_LINKER.
5920         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5921         GNU_USER_DYNAMIC_LINKERN32.
5922         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5923         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
5924         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
5925         GNU_USER_DYNAMIC_LINKER32.
5926         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5927         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5928         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5929         GNU_USER_DYNAMIC_LINKER.
5930         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5931         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5932         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5933         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5934         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5935         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5936         GNU_USER_DYNAMIC_LINKER32.
5937         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5938         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5939         GNU_USER_DYNAMIC_LINKER.
5940         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5941         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5942         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5943         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
5944         GNU_USER_DYNAMIC_LINKER64.
5945         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5946         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5947         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5948         GNU_USER_DYNAMIC_LINKER.
5949         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5950         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5951         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5952         GNU_USER_DYNAMIC_LINKER.
5953         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5954         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5955         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5956         GNU_USER_DYNAMIC_LINKER32.
5957         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5958         GNU_USER_DYNAMIC_LINKER64.
5959         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5960         GNU_USER_DYNAMIC_LINKER64.
5961         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5962         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5963         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5964         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5965         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5966
5967 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5968
5969         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
5970         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5971         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5972         GNU_USER_DYNAMIC_LINKER.
5973         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5974         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
5975         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5976         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5977         GNU_USER_DYNAMIC_LINKER64.
5978         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5979         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5980         GNU_USER_LINK_EMULATION.
5981         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5982         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5983         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5984         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5985         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5986         CPP_SPEC, CC1_SPEC): Remove.
5987         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5988         (GNU_USER_DYNAMIC_LINKER): Define.
5989         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5990         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5991         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5992         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5993         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5994         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5995         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5996         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5997         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5998         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5999         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6000         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6001         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6002         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6003         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6004         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6005         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6006         GNU_USER_DYNAMIC_LINKER.
6007         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6008         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6009         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6010         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6011         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6012         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
6013         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6014         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6015         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
6016         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
6017
6018 2011-04-11  Kai Tietz  <ktietz@redhat.com>
6019
6020         PR target/9601
6021         PR target/11772
6022         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6023         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6024         comment.
6025         (ix86_is_msabi_thiscall): Removed.
6026         (ix86_is_type_thiscall): Likewise.
6027         (ix86_get_callcvt): New function.
6028         (ix86_comp_type_attributes): Simplify check.
6029         (ix86_function_regparm): Use ix86_get_callcvt for calling
6030         convention attribute checks.
6031         (ix86_return_pops_args): Likewise.
6032         (ix86_static_chain): Likewise.
6033         (x86_this_parameter): Likewise.
6034         (x86_output_mi_thunk): Likewise.
6035         (ix86_function_type_abi): Optimize check for types without attributes.
6036         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6037         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6038         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6039         by flag-values.
6040         (IX86_BASE_CALLCVT): Helper macro.
6041         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6042         Use ix86_get_callcvt for calling convention attribute checks and avoid
6043         symbol-decoration for stdcall in TARGET_RTD case.
6044         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6045         Likewise.
6046         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6047         for declaration.
6048
6049 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
6050
6051         * config/i386/sse.md (VI_128): New mode iterator.
6052         (VI12_128): Rename from SSEMODE12.
6053         (VI14_128): Rename from SSEMODE14.
6054         (VI124_128): New mode iterator.
6055         (VI24_128): Rename from SSEMODE248.
6056         (VI248_128): Rename from SSEMODE248.
6057         (SSEMODE124C8): Remove.
6058         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6059         (*sse2_<plusminus_insn><mode>3): Merge with
6060         *avx_<plusminus_insn><mode>3.
6061         (*mulv8hi3): Merge with *avx_mulv8hi3.
6062         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6063         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6064         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6065         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6066         (ashr<mode>3): Merge with *avx_ashr<mode>3.
6067         (lshr<mode>3): Merge with *avx_lshr<mode>3.
6068         (ashl<mode>3): Merge with *avx_ashl<mode>3.
6069         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6070         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6071         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6072         (*<smaxmin:code>v8hi3): Ditto.
6073         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6074         (*<smaxmin:code>v16qi3): Ditto.
6075         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6076         (*sse2_eq<mode>3): Ditto.
6077         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6078         (*sse2_gt<mode>3): Ditto.
6079         (vcondv2di): Split out of vcond<mode>.
6080         (vconduv2di): Split out of vcondu<mode>.
6081
6082 2011-04-11  Richard Guenther  <rguenther@suse.de>
6083
6084         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6085         before calling tree_low_cst.
6086
6087 2011-04-11  Richard Guenther  <rguenther@suse.de>
6088
6089         * stor-layout.c (layout_type): Compute all array index size operations
6090         in the original type.
6091         (initialize_sizetypes): Add comment.
6092         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6093
6094 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
6095
6096         * common.opt (Tbss=, Tdata=, Ttext=): New options.
6097
6098 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6099
6100         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6101         of cgraph_node, handle NULL return value.
6102         (cgraph_global_info): Likewise.
6103         (cgraph_rtl_info): Likewise.
6104         * tree-inline.c (estimate_num_insns): Likewise.
6105         * gimplify.c (unshare_body): Likewise.
6106         (unvisit_body): Likewise.
6107         (gimplify_body): Likewise.
6108         * predict.c (optimize_function_for_size_p): Likewise.
6109         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6110         (call_may_clobber_ref_p_1): Likewise.
6111         * varasm.c (function_section_1): Likewise.
6112         (assemble_start_function): Likewise.
6113
6114 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6115
6116         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
6117         of cgraph_node.
6118         * final.c (rest_of_clean_state): Likewise.
6119         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
6120         * passes.c (pass_init_dump_file): Likewise.
6121         (execute_all_ipa_transforms): Likewise.
6122         (function_called_by_processed_nodes_p): Likewise.
6123         * predict.c (maybe_hot_frequency_p): Likewise.
6124         (probably_never_executed_bb_p): Likewise.
6125         (compute_function_frequency): Likewise.
6126         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
6127         (unnest_nesting_tree_1): Likewise.
6128         (lower_nested_functions): Likewise.
6129         * tree-optimize.c (execute_fixup_cfg): Likewise.
6130         (tree_rest_of_compilation): Likewise.
6131         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
6132         * tree-sra.c (ipa_early_sra): Likewise.
6133         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
6134         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
6135         * ipa.c (record_cdtor_fn): Likewise.
6136         * ipa-inline.c (cgraph_early_inlining): Likewise.
6137         (compute_inline_parameters_for_current): Likewise.
6138         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6139         * ipa-pure-const.c (local_pure_const): Likewise.
6140         * ipa-split.c (split_function): Likewise.
6141         (execute_split_functions): Likewise.
6142         * cgraphbuild.c (build_cgraph_edges): Likewise.
6143         (rebuild_cgraph_edges): Likewise.
6144         (cgraph_rebuild_references): Likewise.
6145         (remove_cgraph_callee_edges): Likewise.
6146         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
6147         (verify_cgraph_node): Likewise.
6148         (cgraph_analyze_functions): Likewise.
6149         (cgraph_preserve_function_body_p): Likewise.
6150         (save_inline_function_body): Likewise.
6151         (save_inline_function_body): Likewise.
6152         * tree-inline.c (copy_bb): Likewise.
6153         (optimize_inline_calls): Likewise.
6154
6155 2011-04-11  Martin Jambor  <mjambor@suse.cz>
6156
6157         PR tree-optimization/48195
6158         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
6159         ipa_check_create_edge_args.
6160         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
6161         ipa_check_create_edge_args.
6162         * ipa-inline.c (inline_generate_summary): Do not call
6163         ipa_check_create_node_params and ipa_check_create_edge_args.
6164         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
6165         ipa_check_create_edge_args.
6166
6167 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
6168
6169         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
6170         instead of loop.
6171         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
6172         * function.c (record_hard_reg_sets): Likewise.
6173         * ira.c (compute_regs_asm_clobbered): Likewise.
6174         * sched-deps.c (sched_analyze_1): Likewise.
6175         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
6176
6177 2011-04-09  Xinliang David Li  <davidxl@google.com>
6178
6179         PR tree-optimization/PR48484
6180         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
6181         has_valid_pred lazily
6182
6183 2011-04-09  Duncan Sands  <baldrick@free.fr>
6184
6185         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
6186
6187 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6188
6189         * combine.c (combine_validate_cost): Adjust comments.  Set registered
6190         cost of I0 to zero at the end, if any.
6191
6192 2011-04-08  Xinliang David Li  <davidxl@google.com>
6193
6194         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
6195         to insane profile data.
6196
6197 2011-04-08  Xinliang David Li  <davidxl@google.com>
6198
6199         * ipa-cp.c (ipcp_update_profiling): Correct
6200          negative scale factor due to insane profile data.
6201
6202 2011-04-08  Xinliang David Li  <davidxl@google.com>
6203
6204         * final.c (dump_basic_block_info): New function.
6205         (final): Dump basic block.
6206         (final_scan_insn): Remove old dump.
6207
6208 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
6209
6210         PR target/47829
6211         * config.gcc (i386-*-freebsd): Disable unwind table generation for
6212         crtbegin/crtend.
6213
6214 2011-04-08  Michael Matz  <matz@suse.de>
6215
6216         PR middle-end/48389
6217         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6218         functions.
6219         (rebuild_jump_labels): Call rebuild_jump_labels_1.
6220         * rtl.h (rebuild_jump_labels_chain): Declare.
6221         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6222         insns inserted on edges.
6223
6224 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
6225
6226         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6227         * config/arm/arm-arches.def: New.
6228         * config/arm/arm-opts.h: New.
6229         * config/arm/genopt.sh: New.
6230         * config/arm/arm-tables.opt: New (generated).
6231         * config/arm/arm.c (arm_handle_option, arm_target_help,
6232         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6233         (all_architectures): Get most table contents from arm-arches.def.
6234         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6235         arm_selected_tune here.
6236         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6237         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6238         (march=, mcpu=, mtune=): Use Enum and Var.
6239         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6240         (arm.o): Update dependencies.
6241
6242 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
6243
6244         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6245         of header_file.
6246         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6247         (write_typed_alloc_defns): Likewise.
6248         (main): Calls write_typed_alloc_defns with output_header.
6249
6250 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
6251
6252         PR inline-asm/48435
6253         * ira-color.c (setup_profitable_hard_regs): Add comments.
6254         Don't take prohibited hard regs into account.
6255         (setup_conflict_profitable_regs): Rename to
6256         get_conflict_profitable_regs.
6257         (check_hard_reg_p): Check prohibited hard regs.
6258
6259 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
6260
6261         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6262         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6263         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6264
6265 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6266
6267         PR target/48366
6268         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
6269         move from floating point to shift amount register.
6270         (emit_move_sequence): Remove secondary reload support for floating
6271         point to shift amount amount register copies.
6272         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6273         amount register copies.
6274         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6275         register, return false if mode isn't a scalar integer mode.
6276         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6277
6278 2011-04-08  Richard Guenther  <rguenther@suse.de>
6279
6280         * gimple.c (gimple_call_flags): Remove kludge.
6281
6282 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6283
6284         * sel-sched.c (sel_region_init): Move call to
6285         sel_setup_region_sched_flags after setup_current_loop_nest.
6286
6287 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
6288
6289         PR rtl-optimization/48272
6290         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6291         init_insn_reg_pressure_info.  Adjust a caller.
6292         * sched-int.h (init_insn_reg_pressure_info): Declare.
6293         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6294         when sched-pressure is enabled.
6295
6296 2011-04-08  Richard Guenther  <rguenther@suse.de>
6297
6298         * gimple.c (gimple_set_modified): Do not queue calls to
6299         MODIFIED_NORETURN_CALLS here ...
6300         * tree-ssa-operands.c (update_stmt_operands): ... but here.
6301
6302 2011-04-08  Richard Guenther  <rguenther@suse.de>
6303
6304         PR lto/48467
6305         * toplev.c (lang_dependent_init): Do not open asm_out_file
6306         in WPA mode, nor perform debug machinery initialization.
6307         (finalize): Do not unlink asm_out_file in WPA mode.
6308
6309 2011-04-08  Richard Guenther  <rguenther@suse.de>
6310
6311         * gimple.h (gimple_call_fntype): New function.
6312         (gimple_call_return_type): Use it.
6313         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6314         * gimple-low.c (gimple_check_call_args): Likewise.
6315         * gimple.c (gimple_call_flags): Likewise.
6316         (gimple_call_arg_flags): Likewise.
6317         (gimple_call_return_flags): Likewise.
6318         * tree-cfg.c (verify_gimple_call): Likewise.
6319         (do_warn_unused_result): Likewise.
6320         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6321         * value-prof.c (gimple_ic_transform): Fix fndecl check.
6322
6323 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
6324
6325         PR rtl-optimization/48235
6326         * sel-sched.c (code_motion_process_successors): Recompute the last
6327         insn in basic block if control flow changed.
6328         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
6329         Update condition for ilist_remove.
6330
6331 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6332
6333         PR rtl-optimization/48302
6334         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
6335         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
6336         it to record added preheader blocks.
6337         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
6338         on to sel_add_loop_preheaders.
6339         (sel_region_init): Move call to setup_current_loop_nest after
6340         sel_init_bbs.
6341
6342 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6343
6344         PR target/48273
6345         * cfgloop.h (loop_has_exit_edges): New helper.
6346         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
6347         non-clonable.
6348         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
6349         that have no exit edges.
6350
6351 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6352
6353         PR rtl-optimization/48442
6354         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
6355         all callers.  Adjust assert.
6356
6357 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
6358
6359         PR tree-optimization/48377
6360         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
6361         is_packed to true even for types with smaller TYPE_ALIGN than
6362         TYPE_SIZE.
6363
6364 2011-04-08  Richard Guenther  <rguenther@suse.de>
6365
6366         PR bootstrap/48513
6367         * doc/tm.texi: Re-generate.
6368
6369 2011-04-08  Wei Guozhi  <carrot@google.com>
6370
6371         PR target/47855
6372         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
6373         * config/arm/arm.c (arm_attr_length_push_multi): New function.
6374         * config/arm/arm.md (*push_multi): Change the length computation to
6375         call a C function.
6376
6377 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
6378
6379         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
6380         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
6381         * doc/tm.texi: Regenerate.
6382         * system.h (ASM_OUTPUT_BSS): Poison.
6383         * varasm.c (asm_output_bss): Remove function.
6384         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
6385
6386         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
6387         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
6388         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
6389         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6390         Likewise.
6391         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6392         Likewise.
6393         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6394         Likewise.
6395         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
6396
6397 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
6398
6399         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
6400         EnumValue lines.
6401
6402 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
6403
6404         * config/m68k/m68k.c (m68k_handle_option): Don't handle
6405         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
6406         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
6407         OPT_mcpu32.
6408         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6409         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
6410         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
6411         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
6412         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
6413         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
6414         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
6415         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
6416         options.  Don't map other m68k options manually.  Don't handle
6417         old-style options as canonical.
6418         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
6419         * doc/install.texi (m68k-*-*): Document binutils version requirement.
6420
6421 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6422
6423         * basic-block.h (force_nonfallthru): Move to...
6424         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
6425         (force_nonfallthru): ...here.
6426         * cfghooks.c (force_nonfallthru): New function.
6427         * cfgrtl.c (force_nonfallthru): Rename into...
6428         (rtl_force_nonfallthru): ...this.
6429         (commit_one_edge_insertion): Do not set AUX field.
6430         (commit_edge_insertions): Do not discover new basic blocks.
6431         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
6432         (cfg_layout_rtl_cfg_hooks): Likewise.
6433         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
6434         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
6435         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
6436
6437 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
6438
6439         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6440         Remove macros.
6441
6442 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
6443
6444         * config/i386/sse.md: Update copyright year.
6445         (avxcvtvecmode): Remove.
6446         (sse_movhlps): Merge with *avx_movhlps.
6447         (sse_movlhps): Merge with *avx_movlhps.
6448         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
6449         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
6450         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
6451         (sse_loadhps): Merge with *avx_loadhps.
6452         (sse_storelps): Merge with *avx_storelps.
6453         (sse_loadlps): Merge with *avx_loadlps.
6454         (sse_movss): Merge with *avx_movss.
6455         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
6456         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
6457         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
6458         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
6459         (vec_set<mode>_0): Ditto.
6460         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
6461         (sse4_1_insertps): Merge with *avx_insertps.
6462         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
6463         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
6464         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
6465         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
6466         (sse2_storehpd): Merge with *avx_storehpd.
6467         (sse2_loadhpd): Merge with *avx_loadhpd.
6468         (sse2_loadlpd): Merge with *avx_loadlpd.
6469         (sse2_movsd): Merge with *avx_movsd.
6470         (*vec_concatv2df): Merge with *vec_concatv2df.
6471
6472 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
6473
6474         PR debug/48343
6475         * combine.c (combine_instructions): Add last_combined_insn,
6476         update it if insn is after it, pass it to all try_combine calls.
6477         (try_combine): Add last_combined_insn parameter, pass it instead of
6478         i3 to propagate_for_debug.
6479
6480 2011-04-07  Nick Clifton  <nickc@redhat.com>
6481
6482         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
6483         to handle MDR <-> data register transfers.
6484         (movhi_internal): Likewise.
6485
6486 2011-04-07  Alan Modra  <amodra@gmail.com>
6487
6488         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
6489         previous stack info.
6490
6491 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6492
6493         PR target/43920
6494         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
6495         flow_find_cross_jump.  Swap variables to implement backward replacement.
6496         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
6497
6498 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6499
6500         PR target/43920
6501         * cfgcleanup.c (walk_to_nondebug_insn): New function.
6502         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
6503         and bb2.
6504         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6505         src1 or src2.  Redirect edges to the last basic block.  Update
6506         frequency and count on multiple basic blocks in case of fallthru.
6507
6508 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6509
6510         PR target/43920
6511         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6512         function.
6513         (old_insns_match_p): Change return type.  Replace return false/true
6514         with return dir_none/dir_both.  Use can_replace_by.
6515         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
6516         direction from dir_p.  Register replacement direction in dir, last_dir
6517         and afterlast_dir.  Handle new return type of old_insns_match_p using
6518         merge_dir.  Return replacement direction in dir_p.
6519         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6520         return type of old_insns_match_p.
6521         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6522         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6523         flow_find_cross_jump.
6524         * basic-block.h (enum replace_direction): New type.
6525         (flow_find_cross_jump): Add parameter to declaration.
6526
6527 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6528
6529         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6530         (AVXMODEDCVTPS2DQ): Ditto.
6531         (VEC_FLOAT_MODE): Ditto.
6532         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
6533         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6534         (<any_logic:code><mode>3): Use VF mode iterator.
6535         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6536         Use VF mode iterator.
6537         (copysign<mode>3): Use VF mode iterator.
6538         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
6539         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6540         (*<any_logic:code><MODEF:mode>3): Merge with
6541         *avx_<any_logic:code><MODEF:mode>3.
6542         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6543         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6544         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6545         (avx_cvtdq2ps<avxmodesuffix>): Remove.
6546         (sse2_cvtdq2ps): Use %v modifier.
6547         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6548         (avx_cvtps2dq<avxmodesuffix>): Remove.
6549         (sse2_cvtps2dq): Use %v modifier.
6550         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6551         (avx_cvttps2dq<avxmodesuffix>): Remove.
6552         (sse2_cvttps2dq): Use %v modifier.
6553         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6554         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6555         (sse2_cvtsd2siq): Fix insn template.
6556         (sse2_cvtsd2siq_2): Ditto.
6557         (sse2_cvttsd2siq): Ditto.
6558         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6559         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6560
6561 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6562
6563         * gcov-io.c: Use GCC Runtime Library Exception.
6564
6565 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
6566
6567         PR debug/48466
6568         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6569         as base_reg whatever register reg has been eliminated to, instead
6570         of hardcoding STACK_POINTER_REGNUM.
6571
6572 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6573
6574         * doc/tm.texi.in: Document C target hooks as separate from general
6575         target hooks.
6576         * doc/tm.texi: Regenerate.
6577         * genhooks.c (struct hook_desc): Add docname field.
6578         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
6579         docname field.
6580         (hook_array): Include c-target.def.
6581         (emit_documentation): Use docname field in output.
6582         (emit_init_macros): Take docname argument.  Only emit definitions
6583         for hooks matching docname.
6584         (main): Expect additional arguments in all cases.  Pass argument
6585         to emit_init_macros.
6586         * target.def: Move initial macro definitions and comments to
6587         target-hooks-macros.h.
6588         (gcc_targetcm): Move to c-family/c-target.def.
6589         * target.h (targetcm): Move declaration to c-family/c-target.h.
6590         * targhooks.c (default_handle_c_option): Move to
6591         c-family/c-opts.c.
6592         * targhooks.h (default_handle_c_option): Move declaration to
6593         c-family/c-common.h.
6594         * target-hooks-macros.h: New file.
6595         * config.gcc (target_has_targetcm): Define and use to add to
6596         c_target_objs and cxx_target_objs.
6597         * config/default-c.c: New file.
6598         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6599         of target.h and target-def.h.
6600         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6601         (darwin_objc_construct_string, darwin_cfstring_ref_p,
6602         darwin_check_cfstring_format_arg): Make static.
6603         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6604         TARGET_STRING_OBJECT_REF_TYPE_P,
6605         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6606         * config/darwin-protos.h (darwin_objc_construct_string,
6607         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6608         declare.
6609         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6610         TARGET_STRING_OBJECT_REF_TYPE_P,
6611         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
6612         * config/t-darwin (darwin-c.o): Update dependencies.
6613         * system.h (TARGET_HAS_TARGETCM): Poison.
6614         * Makefile.in (TARGET_H): Update.
6615         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6616         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6617         (default-c.o): New target.
6618         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
6619         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
6620         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
6621         c-target.def.
6622         (build/genhooks.o): Update dependencies.
6623
6624 2011-04-06  Richard Guenther  <rguenther@suse.de>
6625
6626         * ipa-inline.c (enum inlining_mode): Remove.
6627         (cgraph_flatten): Use some other token.
6628         (cgraph_edge_early_inlinable_p): New function, split out from ...
6629         (cgraph_perform_always_inlining): New function, split out from ...
6630         (cgraph_decide_inlining_incrementally): ... here.
6631         (cgraph_mark_inline_edge): Adjust.
6632         (cgraph_early_inlining): Re-structure.
6633         (pass_early_inline): Require SSA form.
6634
6635 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
6636             Julian Brown  <julian@codesourcery.com>
6637             Mark Shinwell  <shinwell@codesourcery.com>
6638
6639         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6640         LO_REGS only for Thumb-1.
6641         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6642         be used in short instructions when optimising for size on Thumb-2.
6643
6644 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6645
6646         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6647         associated with user returns to be preserved.
6648
6649 2011-04-06  Tristan Gingold  <gingold@adacore.com>
6650
6651         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6652         symbol_queue_size, DBXOUT_DECR_NESTING,
6653         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6654         if XCOFF_DEBUGGING_INFO.
6655
6656 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6657
6658         * config/i386/i386.md (attribute isa): New.
6659         (attribute enabled): New.
6660         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6661         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6662         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6663         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6664         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6665         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6666         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6667         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6668
6669         * config/i386/sse.md (VF): New mode iterator.
6670         (VF1): Ditto.
6671         (VF2): Ditto.
6672         (VF_128): Ditto.
6673         (SSEMODEF4): Remove.
6674         (attribute sse): Handle V8SF and V4DF modes.
6675         (<absneg:code><mode>2): Use VF mode iterator.
6676         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
6677         mode iterator.
6678         (<plusminus_insn><mode>3): Use VF mode iterator.
6679         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6680         Use VF mode iterator.
6681         (<sse>_vm<plusminus_insn><mode>3): Merge with
6682         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
6683         (mul<mode>3): Use VF mode iterator.
6684         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
6685         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
6686         mode iterator.
6687         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6688         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6689         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
6690         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
6691         mode iterator.
6692         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6693         Use VF1 mode iterator.
6694         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6695         (sqrt<VF2:mode>2): New expander.
6696         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6697         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6698         and sqrtv2df2.  Use VF mode iterator.
6699         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
6700         mode iterator.
6701         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6702         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6703         Use VF1 mode iterator.
6704         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6705         (<smaxmin:code><mode>3): Use VF mode iterator.
6706         (*<smaxmin:code><mode>3_finite): Merge with
6707         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
6708         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6709         (<sse>_vm<smaxmin:code><mode>2): Merge with
6710         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
6711         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
6712         mode iterator.
6713         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
6714         mode iterator.
6715         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6716         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6717         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6718         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6719         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
6720         VF mode iterator.
6721         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6722         Use VF_128 mode iterator.
6723         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
6724         mode iterator.
6725         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
6726         VF_128 mode iterator.
6727         (vcond<mode>): Use VF mode iterator.
6728         * config/i386/predicates.md (sse_comparison_operator): Merge with
6729         avx_comparison_float_operator.  Do not declare as special_predicate.
6730         * config/i386/i386.c (struct builtin_description): Update for renamed
6731         compare patterns.
6732         (ix86_expand_args_builtin): Ditto.
6733         (ix86_expand_sse_compare_mask): Ditto.
6734
6735 2011-04-06  Richard Guenther  <rguenther@suse.de>
6736
6737         * tree-inline.c (estimate_num_insns): For calls simply account
6738         for all passed arguments and a used return value.
6739
6740 2011-04-06  Richard Guenther  <rguenther@suse.de>
6741
6742         PR tree-optimization/47663
6743         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6744         call_stmt_time fields.
6745         (cgraph_edge_inlinable_p): Declare.
6746         (cgraph_edge_recursive_p): New inline function.
6747         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6748         (cgraph_clone_edge): Copy it.
6749         * ipa-inline.c (cgraph_estimate_edge_time): New function.
6750         Account for call stmt time.
6751         (cgraph_estimate_time_after_inlining): Take edge argument.
6752         (cgraph_estimate_edge_growth): Account call stmt size.
6753         (cgraph_estimate_size_after_inlining): Take edge argument.
6754         (cgraph_mark_inline_edge): Adjust.
6755         (cgraph_check_inline_limits): Likewise.
6756         (cgraph_recursive_inlining_p): Remove.
6757         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6758         (cgraph_decide_recursive_inlining): Take edge argument and
6759         adjust.
6760         (cgraph_decide_inlining_of_small_functions): Do not avoid
6761         diags for recursive inlining here.
6762         (cgraph_flatten): Adjust.
6763         (cgraph_decide_inlining_incrementally): Likewise.
6764         (estimate_function_body_sizes): Remove call cost handling.
6765         (compute_inline_parameters): Initialize caller edge call costs.
6766         (cgraph_estimate_edge_growth): New function.
6767         (cgraph_estimate_growth): Use it.
6768         (cgraph_edge_badness): Likewise.
6769         (cgraph_check_inline_limits): Take an edge argument.
6770         (cgraph_decide_inlining_of_small_functions): Adjust.
6771         (cgraph_decide_inlining): Likewise.
6772         * tree-inline.c (estimate_num_insns): Only account for call
6773         return value if it is used.
6774         (expand_call_inline): Avoid diagnostics on recursive inline
6775         functions here.
6776         * lto-cgraph.c (lto_output_edge): Output edge call costs.
6777         (input_edge): Input edge call costs.
6778
6779 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6780
6781         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6782
6783 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
6784
6785         * doc/invoke.texi (Spec Files): Fix typo.
6786
6787 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6788
6789         * profile.c (branch_prob): Move declaration of local variable.  Remove
6790         obsolete ??? comment.  Expand the location explicitly instead of using
6791         the LOCATION_FILE and LOCATION_LINE macros.
6792
6793 2011-04-06  Wei Guozhi  <carrot@google.com>
6794
6795         PR target/47855
6796         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6797         (arm_cond_branch): Likewise.
6798         (arm_cond_branch_reversed): Likewise.
6799         (arm_jump): Likewise.
6800         (push_multi): Likewise.
6801         * config/arm/constraints.md (Py): New constraint.
6802
6803 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6804
6805         PR bootstrap/48471
6806         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6807         Move these...
6808         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6809         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6810         #ifdef DBX_DEBUGGING_INFO.
6811
6812 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
6813
6814         PR bootstrap/48403
6815         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6816         if old and new states differ.
6817
6818 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6819
6820         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6821         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6822         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6823         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6824         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6825         mcfv4e): Use Alias.
6826         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6827         ColdFire options to -mcpu= options.
6828
6829 2011-04-05  Jeff Law  <law@redhat.com>
6830
6831         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6832         check if BB is a successor of LOOP->header and return
6833         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6834
6835 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6836
6837         * cprop.c (struct reg_use): Remove.
6838         (reg_use_table): Make an array of RTX.
6839         (find_used_regs, constprop_register, local_cprop_pass,
6840         bypass_block): Simplify users of reg_use_table.
6841         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
6842         on one of the uses found by find_used_regs.
6843
6844 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6845
6846         PR bootstrap/48469
6847         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6848         declaration.
6849
6850 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6851
6852         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6853         as an rtx.
6854         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6855
6856 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6857
6858         PR middle-end/48441
6859         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6860
6861 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6862
6863         * combine.c: Include obstack.h.
6864         (struct insn_link): Define.
6865         (uid_log_links): Adjust type.
6866         (FOR_EACH_LOG_LINK): New macro.
6867         (insn_link_obstack): Declare.
6868         (alloc_insn_link): Define.
6869         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
6870         type of link variables.
6871         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6872         (try_combine, record_promoted_values, distribute_notes): Likewise.
6873         (distribute_links): Likewise.  Tweak prototype.
6874         (clear_log_links): Delete.
6875         (adjust_for_new_dest): Call alloc_insn_link.
6876         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6877
6878 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6879
6880         * gcse.c (modify_mem_list): Convert to an array of VECs.
6881         (canon_modify_mem_list, compute_transp): Tweak formatting.
6882         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
6883         (load_killed_in_block_p): Likewise.
6884         (record_last_mem_set_info): Likewise.
6885         (clear_modify_mem_tables): Likewise.
6886
6887 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6888
6889         PR middle-end/48461
6890         * function.c (emit_use_return_register_into_block): Only define if
6891         HAVE_return.
6892
6893 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
6894
6895         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6896
6897 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6898
6899         * config/rx/rx-opts.h: New.
6900         * config/rx/rx.c (rx_cpu_type): Remove.
6901         (rx_handle_option): Don't assert that global structures are in
6902         use.  Access variables via opts pointer.  Defer most handling of
6903         OPT_mint_register_.  Use error_at.
6904         (rx_option_override): Handle deferred OPT_mint_register_ here.
6905         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6906         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6907         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6908         (rx_cpu_types): New Enum and EnumValue entries.
6909         (mint-register=): Use Defer and use Var accordingly.
6910
6911 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6912
6913         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6914         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6915         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6916         Move these...
6917         (debug_free_queue, debug_nesting, symbol_queue_index):
6918         ...and these...
6919         * dbxout.c: ...to here.  Make static.
6920
6921 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6922
6923         * gcse.c (modify_pair): Define.  Define a VEC of it.
6924         (canon_modify_mem_list): Convert to an array of VECs.
6925         (free_insn_expr_list_list): Delete.
6926         (clear_modify_mem_tables): Call VEC_free instead.
6927         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6928         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6929         (canon_list_insert, compute_transp): Likewise.
6930
6931 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6932
6933         PR target/43920
6934         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6935         for size.
6936
6937 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6938
6939         PR target/43920
6940         * function.c (emit_use_return_register_into_block): New function.
6941         (thread_prologue_and_epilogue_insns): Use
6942         emit_use_return_register_into_block.
6943
6944 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6945
6946         PR target/43920
6947         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6948         insn.
6949
6950 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6951
6952         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6953
6954 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
6955
6956         * config/arm/arm.md (define_constants for unspec): Replace with
6957         define_c_enum.
6958         (define_constants for unspecv): Replace with define_c_enum.
6959         * config/arm/neon.md (define_constants for unspec): Replace with
6960         define_c_enum.
6961
6962 2011-04-04  Richard Henderson  <rth@redhat.com>
6963
6964         PR bootstrap/48400
6965         * dwarf2out.c (output_line_info): Always emit line info from
6966         at least one section.
6967         (dwarf2out_init): Create text_section_line_info here ...
6968         (set_cur_line_info_table): ... not here.
6969
6970 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
6971
6972         PR target/48380
6973         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
6974         not called.
6975
6976         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
6977
6978 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
6979
6980         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6981         (expr_equiv_p): Remove.
6982         (insert_set_in_table): Look at <dest, src> pair instead of expr.
6983         (hash_scan_set): Update call to insert_set_in_table.
6984         (dump_hash_table): Dump <dest, src> pair.
6985         (lookup_set): Simplify.  Lookup <dest, src> pair.
6986         (compute_transp): Remove, fold heavily simplified code into...
6987         (compute_local_properties): ...here.  Expect COMP and TRANSP
6988         unconditionally.
6989         (find_avail_set): Take set directly from struct expr.
6990         (find_bypass-set): Likewise.
6991         (bypass_block): Likewise.
6992         (cprop_insn): Likewise.  Remove redundant INSN_P test.
6993
6994         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6995         checks on form of COND from find_implicit_sets to here.
6996         (find_implicit_sets): Cleanup control flow. Split critical edges
6997         if it exposes implicit sets.  Allocate/resize implicit_sets as
6998         necessary.
6999         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7000         changed something.  Run df_analyze after find_implicit_sets if any
7001         edges were split.  Do not allocate implicit_sets here.
7002
7003         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7004         (gcse_obstack): Renamed to cprop_obstack.
7005         (GNEW, GNEWVEC, GNEWVAR): Remove.
7006         (gmalloc): Remove.
7007         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7008         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7009         (gcse_alloc): Likewise, and rename to cprop_alloc.
7010         (alloc_gcse_men, free_gcse_mem): Remove.
7011         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7012         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7013         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7014
7015         * cprop.c (oprs_not_set_p): Remove.
7016         (mark_set, mark_clobber): Remove.
7017         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7018         (reg_not_set_p): New function.
7019         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7020         (cprop_insn): Likewise.
7021         (cprop_jump): Use FOR_EACH_EDGE.
7022
7023 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
7024
7025         PR bootstrap/48403
7026         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7027         (rank_for_schedule): Use scheduled_insns vector instead of
7028         last_scheduled_insn.
7029         (ok_for_early_queue_removal): Likewise.
7030         (queue_to_ready): Search forward in nonscheduled_insns_begin if
7031         we have a dbg_cnt.
7032         (choose_ready): Likewise.
7033         (commit_schedule): Use VEC_iterate.
7034         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
7035         a dbg_cnt, use it and ensure the first insn is in the ready list.
7036         (haifa_sched_init): Allocate scheduled_insns.
7037         (sched_extend_ready_list): Don't allocate it; reserve space.
7038         (haifa_sched_finish): Free it.
7039
7040 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7041
7042         * optc-gen.awk: Always remove type from Variable entry before
7043         recording in var_seen.
7044
7045 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
7046
7047         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7048         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7049         call to tidy_fallthru_edges.
7050
7051 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
7052
7053         * doc/options.texi (ToLower): Document.
7054         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
7055         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7056         * opts.h (cl_option): Add cl_tolower field.
7057         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7058         arguments with lowercase strings.
7059         * config/rx/rx.opt (mcpu=): Add ToLower.
7060         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7061         argument.
7062
7063 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7064
7065         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7066
7067 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
7068
7069         * config/vax/vax.c: Include reload.h.
7070
7071 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
7072
7073         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7074         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7075         (sparc_preferred_reload_class): New function.
7076
7077 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
7078
7079         PR debug/48401
7080         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7081         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7082
7083 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
7084
7085         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7086         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7087
7088 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
7089
7090         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7091         (ASM_OUTPUT_ALIGNED_BSS): Define.
7092
7093 2011-04-03  Michael Matz  <matz@suse.de>
7094
7095         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7096         and next_slot members.
7097         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7098         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7099         (lto_streamer_cache_append): Declare.
7100         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7101         unsigned index, remove offset parameter, ensure that we append
7102         or update existing entries.
7103         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
7104         parameter, update next_slot for append.
7105         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
7106         parameter.
7107         (lto_streamer_cache_insert_at): Likewise.
7108         (lto_streamer_cache_append): New function.
7109         (lto_streamer_cache_lookup): Use unsigned index.
7110         (lto_streamer_cache_get): Likewise.
7111         (lto_record_common_node): Don't test tree_node_can_be_shared.
7112         (preload_common_node): Adjust call to lto_streamer_cache_insert.
7113         (lto_streamer_cache_delete): Don't free offsets member.
7114         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
7115         (lto_output_string_with_length): Use lto_output_data_stream.
7116         (lto_output_tree_header): Remove ix parameter, don't write it.
7117         (lto_output_builtin_tree): Likewise.
7118         (lto_write_tree): Adjust callers to above, don't track and write
7119         offset, write unsigned index.
7120         (output_unreferenced_globals): Don't emit all global vars.
7121         (write_global_references): Use unsigned indices.
7122         (lto_output_decl_state_refs): Likewise.
7123         (write_symbol): Likewise.
7124         * lto-streamer-in.c (lto_input_chain): Move earlier.
7125         (input_function): Use unsigned index.
7126         (input_alias_pairs): Don't read and then ignore all global vars.
7127         (lto_materialize_tree): Remove ix_p parameter, don't read index,
7128         don't pass it back, use lto_streamer_cache_append.
7129         (lto_register_var_decl_in_symtab): Use unsigned index.
7130         (lto_register_function_decl_in_symtab): Likewise.
7131         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
7132         index.
7133         (lto_get_builtin_tree): Don't read index, use
7134         lto_streamer_cache_append.
7135         (lto_read_tree): Adjust call to lto_materialize_tree.
7136
7137         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
7138         don't use function calls in arguments to MIN.
7139
7140         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
7141         twice.
7142
7143         * gimple.c (gimple_type_leader_entry): Mark deletable.
7144
7145 2011-04-03  Alan Modra  <amodra@gmail.com>
7146
7147         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
7148
7149 2011-04-03  Michael Matz  <matz@suse.de>
7150
7151         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
7152         an integer.
7153         * tree.h (tree_decl_non_common.vindex): Adjust comment.
7154
7155 2011-04-03  Michael Matz  <matz@suse.de>
7156
7157         * cgraphbuild.c (record_reference): Canonicalize constructor values.
7158         * gimple-fold.c (canonicalize_constructor_val): Accept being called
7159         without function context.
7160         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
7161         current_function_decl and cfun.
7162
7163 2011-04-03  Michael Matz  <matz@suse.de>
7164
7165         * tree.c (decl_init_priority_insert): Don't create entry for
7166         default priority.
7167         (decl_fini_priority_insert): Ditto.
7168         (fields_compatible_p, find_compatible_field): Remove.
7169         * tree.h (fields_compatible_p, find_compatible_field): Remove.
7170         * gimple.c (gimple_compare_field_offset): Adjust block comment.
7171
7172 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
7173
7174         * combine.c (try_combine): Remove useless local variable.
7175
7176 2011-04-03  Richard Guenther  <rguenther@suse.de>
7177             Ira Rosen  <ira.rosen@linaro.org>
7178
7179         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
7180         non-variable offsets and compare the remaining bases of the two
7181         accesses instead of looking for exact same data-ref.
7182
7183 2011-04-02  Kai Tietz  <ktietz@redhat.com>
7184
7185         PR target/48416
7186         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
7187
7188         * i386.c (ix86_is_msabi_thiscall): New helper function.
7189         (ix86_is_type_thiscall): New helper function.
7190         (ix86_comp_type_attributes): Handle thiscall for method-functions
7191         special.
7192         (init_cumulative_args): Likewise.
7193         (find_drap_reg): Likewise.
7194         (ix86_static_chain): Likewise.
7195         (x86_this_parameter): Likewise.
7196         (x86_output_mi_thunk): Likewise.
7197
7198 2011-04-01  Olivier Hainque  <hainque@adacore.com>
7199             Nicolas Setton  <setton@adacore.com>
7200             Eric Botcazou  <ebotcazou@adacore.com>
7201
7202         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
7203         (add_gnat_descriptive_type_attribute): New function.
7204         (gen_array_type_die): Call it.
7205         (gen_enumeration_type_die): Likewise.
7206         (gen_struct_or_union_type_die): Likewise.
7207         (modified_type_die): Likewise.
7208         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
7209         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
7210         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
7211
7212 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7213
7214         PR bootstrap/48148
7215         * dwarf2out.c (resolve_addr): Don't call force_decl_die
7216         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7217
7218         Revert:
7219         2011-03-17  Richard Guenther  <rguenther@suse.de>
7220
7221         PR bootstrap/48148
7222         * lto-cgraph.c (input_overwrite_node): Clear the abstract
7223         origin for decls in other ltrans units.
7224         (input_varpool_node): Likewise.
7225
7226 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7227
7228         PR middle-end/48335
7229         * expr.c (expand_assignment): Handle all possibilities
7230         if TO_RTX is CONCAT.
7231         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
7232         (store_split_bit_field): If SUBREG_REG (op0) or
7233         op0 itself has smaller mode than word, return it
7234         for offset 0 and const0_rtx for out-of-bounds stores.
7235         If word is const0_rtx, skip it.
7236
7237 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
7238
7239         * config/h8300/h8300.c (print_operand_address): Rename to...
7240         (h8300_print_operand_address): ...this. Make static. Adjust comments.
7241         Call h8300_print_operand and h8300_print_operand_address instead of
7242         print_operand and print_operand_address. Declare.
7243         (print_operand): Renake to...
7244         (h8300_print_operand): ...this. Make static. Adjust comments.
7245         Call h8300_print_operand instead of print_operand. Declare.
7246         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7247         (h8300_register_move_cost): Likewise.
7248         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7249         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7250         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7251         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7252         * config/h8300/h8300-protos.h (print_operand): Delete.
7253         (print_operand_address): Delete.
7254
7255 2011-04-01  Richard Henderson  <rth@redhat.com>
7256
7257         PR 48400
7258         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7259         in strict mode before dwarf4.  Re-order tests to early out
7260         before switching sections.
7261
7262 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
7263
7264         * config/h8300/constraints.md: New file.
7265         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
7266         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7267         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7268         * config/h8300/predicates.md (bit_operand): Likewise.
7269         (incdec_operand): Use satisfies_constraint_M and
7270         satisfies_constraint_O.  Don't use C code block.
7271         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7272         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7273         (compute_mov_length): Use satisfies_constraint_G.
7274         (fix_bit_operand): Use satisfies_constraint_U.
7275         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7276         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7277         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7278         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7279         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7280         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7281         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7282         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7283         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7284         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7285         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7286         (EXTRA_MEMORY_CONSTRAINT): Delete.
7287
7288 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
7289             Michael Meissner  <meissner@linux.vnet.ibm.com>
7290
7291         PR target/48262
7292         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7293         operands, as per the specifications.
7294
7295         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7296         (vec_extract_evenv4sf): Ditto.
7297         (vec_extract_evenv8hi): Ditto.
7298         (vec_extract_evenv16qi): Ditto.
7299         (vec_extract_oddv4si): Ditto.
7300
7301 2011-03-31  Mark Wielaard  <mjw@redhat.com>
7302
7303         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7304         high_pc attribute if the CU has no associated code. Only output
7305         DW_AT_entry_pc for CU if not generating strict dwarf and
7306         dwarf_version < 4.
7307
7308 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
7309
7310         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7311         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7312         out of ...
7313         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7314         * final.c (final_start_function): Call the new function rather
7315         than using a NULL argument for dwarf2out_frame_debug.
7316
7317         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7318         that contains the prologue.
7319
7320         * haifa-sched.c (queue_insn): New arg REASON.  All callers
7321         changed.  Print it in debugging output.
7322
7323         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7324
7325         * sched-ebb.c (begin_schedule_ready): Remove second argument.
7326         Split most of the code into...
7327         (begin_move_insn): ... here.  New function.
7328         (ebb_sched_info): Add a pointer to it.
7329         * haifa-sched.c (scheduled_insns): New static variable.
7330         (sched_extend_ready_list): Allocate it.
7331         (schedule_block): Use it to record the order of scheduled insns.
7332         Perform RTL changes to move insns only after all scheduling
7333         decisions have been made.
7334         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
7335         begin_move_insn field.
7336         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7337         * sched-int.h (struct haifa_sched_info): Remove second argument
7338         from begin_schedule_ready hook.  Add new member begin_move_insn.
7339         * sched-rgn.c (begin_schedule_ready): Remove second argument.
7340         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
7341
7342         * haifa-sched.c (prune_ready_list): New function, broken out of
7343         schedule_block.
7344         (schedule_block): Use it.
7345
7346 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7347
7348         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
7349
7350 2011-04-01  Kai Tietz  <ktietz@redhat.com>
7351
7352         * config.gcc (*-*-mingw*): Allow as option the
7353         posix threading model.
7354         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
7355         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
7356         definition.
7357         (CPP_SPEC): Add pthread/no-pthread handling.
7358         (LIB_SPEC): Likewise.
7359         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
7360         (LIB_SPEC): Likewise.
7361         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
7362         flag to pass -pthread option for shared libgcc build.
7363         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
7364         for shared libgcc build.
7365         * config/i386/t-mingw-pthread: New file.
7366         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
7367         New define to enable use of library pthread by default.
7368         * config/i386/mingw.opt (pthread): New driver option.
7369         (no-pthread): New driver option.
7370         * config/i386/cygming.opt: Make sure trailing empty line is retained.
7371         * config/i386/mingw-w64.opt: Likewise.
7372
7373 2011-04-01  Gary Funck  <gary@intrepid.com>
7374
7375         * c-decl.c (grokdeclarator): Fix formatting.
7376
7377 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
7378
7379         * expr.c (emit_block_move_via_movmem): Use n_generator_args
7380         instead of n_operands.
7381         (set_storage_via_setmem): Likewise.
7382         * optabs.c (maybe_gen_insn): Likewise.
7383         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
7384         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
7385         (mips_expand_builtin_direct): Likewise.
7386         * config/spu/spu.c (expand_builtin_args): Likewise.
7387
7388 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
7389
7390         * recog.h (insn_data_d): Add n_generator_args.
7391         * genoutput.c (data): Likewise.
7392         (output_insn_data): Print it.
7393         (max_opno, num_dups): Delete.
7394         (scan_operands): Just fill in "d->operand[...]".
7395         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
7396
7397 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
7398
7399         * gensupport.h (pattern_stats): New structure.
7400         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
7401         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
7402         (max_operand_1, max_operand_vec): Delete.
7403         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
7404
7405 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
7406
7407         * emit-rtl.c (emit_pattern_after_setloc): New function.
7408         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
7409         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
7410         (emit_pattern_after): New function.
7411         (emit_insn_after, emit_jump_insn_after): Call it.
7412         (emit_call_insn_after, emit_debug_insn_after): Likewise.
7413         (emit_pattern_before_setloc): New function.
7414         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
7415         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
7416         Likewise.
7417         (emit_pattern_before): New function.
7418         (emit_insn_before, emit_jump_insn_before): Call it.
7419         (emit_call_insn_before, emit_debug_insn_before): Likewise.
7420
7421 2011-03-31  Richard Henderson  <rth@redhat.com>
7422
7423         * dwarf2out.c (dw_separate_line_info_ref): Remove.
7424         (dw_separate_line_info_entry): Remove.
7425         (enum dw_line_info_opcode): New.
7426         (dw_line_info_entry): Use it.
7427         (dw_line_info_table, dw_line_info_table_p): New.
7428         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
7429         (line_info_table, line_info_label_num): Remove.
7430         (line_info_table_in_use): Remove.
7431         (separate_line_info_table): Remove.
7432         (separate_line_info_table_allocated): Remove.
7433         (separate_line_info_table_in_use): Remove.
7434         (LINE_INFO_TABLE_INCREMENT): Remove.
7435         (line_info_label_num): New.
7436         (cur_line_info_table): New.
7437         (text_section_line_info, cold_text_section_line_info): New.
7438         (separate_line_info): New.
7439         (SEPARATE_LINE_CODE_LABEL): Remove.
7440         (print_dwarf_line_table): Remove.
7441         (debug_dwarf): Don't dump it.
7442         (output_one_line_info_table): New.
7443         (output_line_info): Use it.
7444         (new_line_info_table): New.
7445         (set_cur_line_info_table): New.
7446         (dwarf2out_switch_text_section): Use it.
7447         (dwarf2out_begin_function): Likewise.
7448         (push_dw_line_info_entry): New.
7449         (dwarf2out_source_line): Rewrite for new line info tables.
7450         (dwarf2out_init): Remove dead initailizations.
7451
7452 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7453
7454         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
7455         various flags.
7456         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
7457         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
7458         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
7459         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
7460         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
7461         * opt-functions.awk (flag_init, switch_bit_fields): New.
7462         (switch_flags): Don't handle flags moved to bit-fields.  Don't
7463         generate CL_MISSING_OK or CL_SAVE.
7464         * optc-gen.awk: Update to generate bit-field output as well as
7465         flags field.
7466         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
7467         bit-field instead of CL_REJECT_DRIVER flag.
7468         * opts-common.c (generate_canonical_option,
7469         decode_cmdline_option): Use bit-fields instead of CL_* flags.
7470         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
7471         instead of CL_REJECT_NEGATIVE flag.
7472         * toplev.c (print_switch_values): Use cl_report bit-field instead
7473         of CL_REPORT flag.
7474
7475 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7476
7477         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
7478         a zero minimum index only if it is redundant.
7479
7480 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
7481
7482         PR rtl-optimization/48381
7483         * ira-color.c (assign_hard_reg): Use hard reg set intersection
7484         instead of ira_class_hard_reg_index for calculating conflicting
7485         hard registers.
7486
7487 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
7488
7489         * cprop.c: Clean up hash table building.
7490         (reg_avail_info): Remove.
7491         (oprs_available_p): Remove.
7492         (record_last_reg_set_info): Remove.
7493         (record_last_set_info): Remove.
7494         (reg_available_p): New function.
7495         (gcse_constant_p): Do not treat unfolded conditions as constants.
7496         (make_set_regs_unavailable): New function.
7497         (hash_scan_set): Simplify with new reg_available_p.
7498         (compute_hash_table_work): Traverse insns stream only once.
7499         Do not compute reg_avail_info. Traverse insns in reverse order.
7500         Record implicit sets after recording explicit sets from the block.
7501
7502 2011-03-31  Michael Matz  <matz@suse.de>
7503
7504         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
7505
7506 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
7507
7508         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7509         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7510         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7511         (h8300_mode_dependent_address_p): New function.
7512         (h8300_get_index): Make static.
7513
7514 2011-03-31  Jeff Law  <law@redhat.com>
7515
7516         * reload1.c (elimination_effects): Fix typo in recent change.
7517
7518         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
7519         typo potentially leading to null pointer dereference.
7520
7521         * caller-save.c (new_saved_hard_reg): Eliminate return value.
7522         (setup_save_areas): Corresponding changes to avoid useless
7523         assignments.
7524
7525         * jump.c (reversed_comparison_code_parts): Avoid successive return
7526         statements when REVERSE_CONDITION is defined.
7527
7528         * expr.c (expand_assignment): Avoid useless assignments.
7529         (expand_expr_real_1): Likewise.
7530         (expand_expr_real_2): Avoid useless statements.
7531
7532         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7533
7534         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7535
7536         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7537         statements.
7538
7539         * stmt.c (expand_expr_stmt): Avoid useless assignment.
7540
7541 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7542
7543         PR target/47109
7544         * doc/tm.texi.in (TARGET_VERSION): Remove.
7545         * doc/tm.texi: Regenerate.
7546         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7547         * collect2.c (main): Don't use TARGET_VERSION.
7548         * mips-tdump.c (main): Don't use TARGET_VERSION.
7549         * mips-tfile.c (main): Don't use TARGET_VERSION.
7550         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
7551         * config/rs6000/vxworksae.h: Remove.
7552         * config/alpha/alpha.h (TARGET_VERSION): Remove.
7553         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7554         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7555         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7556         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7557         * config/arm/arm.h (TARGET_VERSION): Remove.
7558         * config/arm/coff.h (TARGET_VERSION): Remove.
7559         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7560         * config/arm/elf.h (TARGET_VERSION): Remove.
7561         * config/arm/freebsd.h (TARGET_VERSION): Remove.
7562         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7563         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7564         * config/arm/pe.h (TARGET_VERSION): Remove.
7565         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7566         * config/arm/semi.h (TARGET_VERSION): Remove.
7567         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7568         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7569         * config/arm/vxworks.h (TARGET_VERSION): Remove.
7570         * config/avr/avr.h (TARGET_VERSION): Remove.
7571         * config/bfin/bfin.h (TARGET_VERSION): Remove.
7572         * config/fr30/fr30.h (TARGET_VERSION): Remove.
7573         * config/frv/frv.h (TARGET_VERSION): Remove.
7574         * config/h8300/h8300.h (TARGET_VERSION): Remove.
7575         * config/i386/cygwin.h (TARGET_VERSION): Remove.
7576         * config/i386/darwin.h (TARGET_VERSION): Remove.
7577         * config/i386/darwin64.h (TARGET_VERSION): Remove.
7578         * config/i386/djgpp.h (TARGET_VERSION): Remove.
7579         * config/i386/freebsd.h (TARGET_VERSION): Remove.
7580         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7581         * config/i386/gnu.h (TARGET_VERSION): Remove.
7582         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7583         * config/i386/i386elf.h (TARGET_VERSION): Remove.
7584         * config/i386/linux.h (TARGET_VERSION): Remove.
7585         * config/i386/linux64.h (TARGET_VERSION): Remove.
7586         * config/i386/lynx.h (TARGET_VERSION): Remove.
7587         * config/i386/mingw32.h (TARGET_VERSION): Remove.
7588         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7589         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7590         * config/i386/netware.h (TARGET_VERSION): Remove.
7591         * config/i386/nto.h (TARGET_VERSION): Remove.
7592         * config/i386/openbsd.h (TARGET_VERSION): Remove.
7593         * config/i386/vxworks.h (TARGET_VERSION): Remove.
7594         * config/ia64/elf.h (TARGET_VERSION): Remove.
7595         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7596         * config/ia64/hpux.h (TARGET_VERSION): Remove.
7597         * config/ia64/linux.h (TARGET_VERSION): Remove.
7598         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7599         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7600         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7601         * config/lm32/lm32.h (TARGET_VERSION): Remove.
7602         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7603         * config/m32c/m32c.h (TARGET_VERSION): Remove.
7604         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7605         * config/m32r/m32r.h (TARGET_VERSION): Remove.
7606         * config/m68k/linux.h (TARGET_VERSION): Remove.
7607         * config/m68k/m68k.h (TARGET_VERSION): Remove.
7608         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7609         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7610         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7611         * config/mep/mep.h (TARGET_VERSION): Remove.
7612         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7613         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7614         * config/mips/iris6.h (MACHINE_TYPE): Remove.
7615         * config/mips/linux.h (TARGET_VERSION): Remove.
7616         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7617         * config/mips/vxworks.h (TARGET_VERSION): Remove.
7618         * config/mmix/mmix.h (TARGET_VERSION): Remove.
7619         * config/mn10300/linux.h (TARGET_VERSION): Remove.
7620         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7621         * config/pa/pa.h (TARGET_VERSION): Remove.
7622         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7623         * config/picochip/picochip.h (TARGET_VERSION): Remove.
7624         * config/rs6000/aix.h (TARGET_VERSION): Remove.
7625         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7626         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7627         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7628         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7629         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7630         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7631         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7632         * config/rs6000/linux.h (TARGET_VERSION): Remove.
7633         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7634         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7635         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7636         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7637         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7638         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7639         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7640         * config/s390/linux.h (TARGET_VERSION): Remove.
7641         * config/s390/s390.h (TARGET_VERSION): Remove.
7642         * config/s390/tpf.h (TARGET_VERSION): Remove.
7643         * config/score/score.h (TARGET_VERSION): Remove.
7644         * config/sh/linux.h (TARGET_VERSION): Remove.
7645         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7646         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7647         * config/sh/sh.h (TARGET_VERSION): Remove.
7648         * config/sh/sh64.h (TARGET_VERSION): Remove.
7649         * config/sh/superh.h (TARGET_VERSION): Remove.
7650         * config/sh/vxworks.h (TARGET_VERSION): Remove.
7651         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7652         * config/sparc/linux.h (TARGET_VERSION): Remove.
7653         * config/sparc/linux64.h (TARGET_VERSION): Remove.
7654         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7655         TARGET_NAME32, TARGET_NAME): Remove.
7656         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7657         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7658         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7659         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7660         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7661         * config/spu/spu.h (TARGET_VERSION): Remove.
7662         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7663         * config/v850/v850.h (TARGET_VERSION): Remove.
7664         * config/vax/linux.h (TARGET_VERSION): Remove.
7665         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7666         * config/xtensa/elf.h (TARGET_VERSION): Remove.
7667         * config/xtensa/linux.h (TARGET_VERSION): Remove.
7668
7669 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7670
7671         PR target/48142
7672         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7673         frame-related from frame-unrelated adjustments to the stack pointer.
7674
7675 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
7676
7677         * common.opt (fdebug-types-section): Move earlier.
7678         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7679
7680 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
7681
7682         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7683         var.
7684
7685 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
7686
7687         * tree.h (CASE_CHAIN): Define.
7688         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7689         (gimple_redirect_edge_and_branch): Likewise.
7690
7691 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7692
7693         PR middle-end/48367
7694         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7695         calculation.
7696
7697 2011-03-30  Jeff Law  <law@redhat.com>
7698
7699         * PR bootstrap/48371
7700         * reload1.c (reload): Fix botch in last change.
7701
7702         * reload.h (struct reload): Fix typo introduced in last change.
7703
7704 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7705
7706         * config/arm/arm.opt (mhard-float, msoft-float): Mark
7707         Undocumented.  Remove help text.
7708         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7709         -mhard-float.
7710
7711 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7712
7713         * doc/options.texi (NegativeAlias): Document.
7714         (Alias): Mention NegativeAlias.
7715         * opt-functions.awk: Handle NegativeAlias.
7716         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
7717         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7718         * opts.h (CL_NEGATIVE_ALIAS): Define.
7719         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7720         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7721         OPT_mspe_.
7722         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7723         Alias entries.
7724         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7725         mno-spe and mno-isel instead of mspe=no and -misel=no.
7726
7727 2011-03-29  Mark Wielaard  <mjw@redhat.com>
7728
7729         * common.opt (fdebug-types-section): New flag.
7730         * doc/invoke.texi: Document new -fno-debug-types-section flag.
7731         * dwarf2out.c (use_debug_types): New define.
7732         (struct die_struct): Mark die_id with GTY desc use_debug_types.
7733         (print_die): Guard output of type unit signatures using
7734         use_debug_types.
7735         (build_abbrev_table): Replace assert of dwarf_version >= 4
7736         with assert on use_debug_types.
7737         (size_of_die): Likewise.
7738         (unmark_dies): Likewise.
7739         (value_format): Decide AT_ref_external form on use_debug_types.
7740         (output_die): Replace dwarf_version version check guard with
7741         use_debug_types where appropriate.
7742         (modified_type_die): Likewise.
7743         (gen_reference_type_die): Likewise.
7744         (dwarf2out_start_source_file): Likewise.
7745         (dwarf2out_end_source_file): Likewise.
7746         (prune_unused_types_walk_attribs): Likewise.
7747         (dwarf2out_finish): Likewise.
7748
7749 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7750
7751         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7752
7753 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7754
7755         PR rtl-optimization/48332
7756         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7757         mode of input operand N and modeN to its actual mode.
7758
7759 2011-03-30  Jeff Law  <law@redhat.com>
7760
7761         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7762         define accessor macro.
7763         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7764         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7765         (reg_equiv_init): Likewise.
7766         (reg_equivs_size): New variable.
7767         (reg_equiv_init_size): Remove.
7768         (allocate_initial_values): Move prototype to here from....
7769         * integrate.h (allocate_initial_values): Remove prototype.
7770         * integrate.c: Include reload.h.
7771         (allocate_initial_values): Corresponding changes.
7772         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7773         (fix_reg_equiv_init, no_equiv): Corresponding changes.
7774         (update_equiv_regs): Corresponding changes.
7775         (ira): Corresponding changes.
7776         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7777         (push_secondary_reload): Corresponding changes.
7778         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7779         (make_memloc, find_reloads_address): Corresponding changes.
7780         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7781         (find_reloads_address_1): Corresponding changes.
7782         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7783         (refers_to_regno_for_reload_p): Corresponding changes.
7784         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7785         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7786         * reload1.c: Include ggc.h.
7787         (grow_reg_equivs): New function.
7788         (replace_pseudos_in, reload): Corresponding changes.
7789         (calculate_needs_all_insns, alter_regs): Corresponding changes.
7790         (eliminate_regs_1, elimination_effects): Corresponding changes.
7791         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7792         (delete_output_reload): Likewise.
7793         * caller-save.c (mark_referenced_regs): Corresponding changes.
7794         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7795         * frv/predicates.md (frv_load_operand): Corresponding changes.
7796         * microblaze/microblaze.c (double_memory_operand): Corresponding
7797         changes.
7798         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7799         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
7800         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
7801         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7802         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7803         changes.
7804         * pa/pa.c (emit_move_sequence): Corresponding changes.
7805         * vax/vax.c (nonindexed_address_p): Corresponding changes.
7806
7807 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7808
7809         PR target/47551
7810         * config/arm/arm.c (coproc_secondary_reload_class): Handle
7811         structure modes.  Don't check neon_vector_mem_operand for
7812         vector or structure modes.
7813
7814 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7815             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7816
7817         PR target/43590
7818         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7819         operand 1 and reshuffle the operands to match.
7820         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7821
7822 2011-03-30  Christian Schüler  <cschueler@gmx.de>
7823
7824         PR driver/48208
7825         * config/c.opt (F): Added 'Driver' to -F option.
7826
7827         PR driver/48260
7828         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7829           handler function.
7830         * config/darwin.opt: Added '-arch' option.
7831
7832 2011-03-30  Nick Clifton  <nickc@redhat.com>
7833
7834         * config/rx/rx.md: Add peepholes and patterns to combine
7835         extending loads and simple arithmetic instructions.
7836         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
7837         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7838         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
7839         modes to use pre-decrement and post-increment addressing.
7840         (rx_is_restricted_memory_address): Add range checking of REG+INT
7841         addresses.
7842         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
7843         (rx_memory_move_cost): Adjust cost of stores.
7844         (rx_adjust_insn_length): New function.
7845
7846 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
7847
7848         PR c/48305
7849         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7850         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7851         matching arg00/arg01 types.
7852
7853 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7854
7855         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7856         last_location to UNKNOWN_LOCATION.
7857
7858 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7859
7860         PR target/48349
7861         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7862         FLOAT_SSE_REGS.
7863
7864 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7865             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7866
7867         PR bootstrap/48337
7868         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7869         Init(PROCESSOR_V7).
7870         (sparc_cpu): Likewise.
7871         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7872         PROCESSOR_V7.
7873
7874 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7875
7876         PR target/48336
7877         PR middle-end/48342
7878         PR rtl-optimization/48345
7879         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7880         hard regs for given mode from profitable regs when doing secondary
7881         allocation.
7882
7883 2011-03-29  Jeff Law  <law@redhat.com>
7884
7885         PR bootstrap/48327
7886         * tree-ssa-threadupdate.c (struct redirection_data): Remove
7887         do_not_duplicate field.
7888         (lookup_redirection_data): Corresponding changes.
7889         (create_duplicates): Always create a template block.
7890         (redirect_edges): Remove code which reused the original block
7891         when it was going to become unreachable code.
7892         (thread_block): Don't set do_not_duplicate field.
7893
7894 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
7895
7896         * lto-opts.c (register_user_option_p, lto_register_user_option):
7897         Make type argument unsigned.
7898         * lto-streamer.h (lto_register_user_option): Make type argument
7899         unsigned.
7900         * opth-gen.awk: Make CL_* macros unsigned.
7901         * opts-common.c (find_opt): Make lang_mask argument unsigned.
7902         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7903         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7904         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7905         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7906         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7907         (find_opt): Make lang_mask argument unsigned.
7908
7909 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7910
7911         PR rtl-optimization/48331
7912         PR rtl-optimization/48334
7913         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7914         for any used algorithm.
7915
7916 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7917
7918         * ira-conflicts.c (build_object_conflicts): Add unused attribute
7919         to parent_max.
7920
7921 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
7922
7923         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7924         (alpha_option_override): Don't set alpha_sr_alias_set.
7925         (emit_frame_store_1): Use gen_frame_mem rather than calling
7926         set_mem_alias_set.
7927         (alpha_expand_epilogue): Ditto.
7928
7929 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
7930
7931         PR tree-optimization/48290
7932         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7933         vectorization, check that relevant phis in the basic block after
7934         the inner loop are really inner loop's exit phis.
7935
7936 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
7937
7938         PR debug/48190
7939         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7940         (cached_dw_loc_list_def): New structure.
7941         (cached_dw_loc_list): New typedef.
7942         (cached_dw_loc_list_table): New variable.
7943         (cached_dw_loc_list_table_hash): New function.
7944         (cached_dw_loc_list_table_eq): Likewise.
7945         (add_location_or_const_value_attribute): Take a bool cache_p.
7946         Cache the list when the parameter is true.
7947         (gen_formal_parameter_die): Update caller.
7948         (gen_variable_die): Likewise.
7949         (dwarf2out_finish): Likewise.
7950         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7951         while generating debug info for the decl.
7952         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7953         (dwarf2out_init): Initialize cached_dw_loc_list_table.
7954         (resolve_addr): Cache the result of resolving a chain of
7955         location lists.
7956
7957 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7958
7959         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7960         conflict object hard regset nodes have intersecting hard reg sets.
7961
7962         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7963         after regstat_init_n_sets_and_refs.
7964
7965         * ira.c: Add more comments at the top.
7966         (setup_stack_reg_pressure_class, setup_pressure_classes):
7967         Add comments how we compute the register pressure classes.
7968         (setup_allocno_and_important_classes): Add more comments.
7969         (setup_class_translate_array, reorder_important_classes)
7970         (setup_reg_class_relations): Add comments.
7971
7972         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
7973         start of the file.
7974
7975         * ira-color.c: Add 2011 to the Copyright line.
7976         (assign_hard_reg):  Add more comments.
7977         (improve_allocation): Ditto.
7978
7979         * ira-costs.c: Add 2011 to the Copyright line.
7980         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7981         comments.
7982         (setup_regno_cost_classes_by_mode): Ditto.
7983
7984         Initial patches from ira-improv branch:
7985
7986         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7987
7988         * ira-build.c (ira_create_object): Remove initialization of
7989         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
7990         (ira_create_allocno): Remove initialization of
7991         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7992         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7993         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7994         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7995         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7996         Initialize ALLOCNO_ADD_DATA.
7997         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7998         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7999         ALLOCNO_REG.
8000         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
8001         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8002
8003         * ira.c (ira_reallocate): Remove.
8004         (setup_pressure_classes): Call
8005         ira_init_register_move_cost_if_necessary.  Use
8006         ira_register_move_cost instead of ira_get_register_move_cost.
8007         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8008         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8009
8010         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8011         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8012         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8013         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8014         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8015         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8016         Fix formatting.
8017         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
8018         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8019         (struct allocno_color_data): New.
8020         (allocno_color_data_t): New typedef.
8021         (allocno_color_data): New definition.
8022         (ALLOCNO_COLOR_DATA): New macro.
8023         (struct object_color_data): New.
8024         (object_color_data_t): New typedef.
8025         (object_color_data): New definition.
8026         (OBJECT_COLOR_DATA): New macro.
8027         (update_copy_costs, calculate_allocno_spill_cost): Call
8028         ira_init_register_move_cost_if_necessary.  Use
8029         ira_register_move_cost instead of ira_get_register_move_cost.
8030         (move_spill_restore, update_curr_costs): Ditto.
8031         (allocno_spill_priority): Make it inline.
8032         (color_pass): Allocate and free allocno_color_dat and object_color_data.
8033         (struct coalesce_data, coalesce_data_t): New.
8034         (allocno_coalesce_data): New definition.
8035         (ALLOCNO_COALESCE_DATA): New macro.
8036         (merge_allocnos, coalesced_allocno_conflict_p): Use
8037         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8038         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8039         (coalesce_allocnos): Ditto.
8040         (setup_coalesced_allocno_costs_and_nums): Ditto.
8041         (collect_spilled_coalesced_allocnos): Ditto.
8042         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8043         (setup_slot_coalesced_allocno_live_ranges): Ditto.
8044         (coalesce_spill_slots): Ditto.
8045         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
8046         free allocno_coalesce_data.
8047
8048         * ira-conflicts.c: Fix formatting.
8049         (process_regs_for_copy): Call
8050         ira_init_register_move_cost_if_necessary.  Use
8051         ira_register_move_cost instead of ira_get_register_move_cost.
8052         (build_object_conflicts): Optimize.
8053
8054         * ira-costs.c (record_reg_classes): Optimize.  Call
8055         ira_init_register_move_cost_if_necessary.  Use
8056         ira_register_move_cost, ira_may_move_in_cost, and
8057         ira_may_move_out_cost instead of ira_get_register_move_cost and
8058         ira_get_may_move_cost.
8059         (record_address_regs): Ditto.
8060         (scan_one_insn): Optimize.
8061         (find_costs_and_classes): Optimize.
8062         (process_bb_node_for_hard_reg_moves): Call
8063         ira_init_register_move_cost_if_necessary.  Use
8064         ira_register_move_cost instead of ira_get_register_move_cost.
8065
8066         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8067         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8068         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8069         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8070         definitions.
8071         (ira_initiate_emit_data, ira_finish_emit_data)
8072         (create_new_allocno): New functions.
8073         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
8074         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8075         Use ira_register_move_cost instead of ira_get_register_move_cost.
8076
8077         * ira-int.h: Fix some comments.
8078         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8079         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8080         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8081         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
8082         add_data.
8083         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
8084         bitfield after mode.  Make hard_regno a short int.  Make
8085         hard_regno short.  Remove first_coalesced_allocno and
8086         next_coalesced_allocno.  Move mem_optimized_dest_p,
8087         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8088         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
8089         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8090         temp, colorable_p.  Add new member add_data.
8091         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8092         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8093         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8094         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8095         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8096         (ALLOCNO_ADD_DATA): New macro.
8097         (ira_emit_data_t): New typedef.
8098         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
8099         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8100         from struct ira_allocno.
8101         (ALLOCNO_EMIT_DATA): New macro.
8102         (ira_allocno_emit_data, allocno_emit_reg): New.
8103         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
8104         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
8105         (OBJECT_ADD_DATA): New macro.
8106         (ira_reallocate): Remove.
8107         (ira_initiate_emit_data, ira_finish_emit_data): New.
8108         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
8109         (ira_init_register_move_cost_if_necessary): New.
8110         (ira_object_conflict_iter_next): Merge into
8111         ira_object_conflict_iter_cond.
8112         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
8113
8114         * ira-live.c (process_single_reg_class_operands): Call
8115         ira_init_register_move_cost_if_necessary.  Use
8116         ira_register_move_cost instead of ira_get_register_move_cost.
8117
8118         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
8119
8120         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
8121
8122         * ira-costs.c: Fix formatting.
8123         (cost_classes, cost_classes_num): Remove.
8124         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
8125         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
8126         (cost_classes_del, cost_classes_htab): New.
8127         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
8128         (initiate_regno_cost_classes, setup_cost_classes): New.
8129         (setup_regno_cost_classes_by_aclass): New.
8130         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
8131         (record_reg_classes): Use regno_cost_classes instead of
8132         cost_classes.  Move checking opposite operand up.
8133         (record_address_regs): Use regno_cost_classes
8134         instead of cost_classes.
8135         (scan_one_insn): Ditto.  Use always general register.
8136         (print_allocno_costs): Use regno_cost_classes instead of
8137         cost_classes.
8138         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
8139         (find_costs_and_classes): Set up cost classes for each registers.
8140         Use also their mode for this.  Use regno_cost_classes instead of
8141         cost_classes.
8142         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
8143         cost_classes.
8144         (free_ira_costs, ira_init_costs): Don't use cost_classes.
8145         (ira_costs, ira_set_pseudo_classes): Call
8146         initiate_regno_cost_classes and finish_regno_cost_classes.
8147
8148         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
8149
8150         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
8151
8152         * target.def (ira_cover_classes): Remove.
8153
8154         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
8155
8156         * doc/tm.texi.in: Ditto.
8157
8158         * ira-conflicts.c: Remove mentioning cover classes from the file.
8159         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
8160         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
8161
8162         * targhooks.c (default_ira_cover_classes): Remove.
8163
8164         * targhooks.h (default_ira_cover_classes): Ditto.
8165
8166         * haifa-sched.c: Remove mentioning cover classes from the file.
8167         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
8168         ira_pressure_classes and ira_pressure_classes_num instead of
8169         ira_reg_class_cover_size and ira_reg_class_cover.  Use
8170         sched_regno_pressure_class instead of sched_regno_cover_class.
8171         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
8172         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8173
8174         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
8175         classes from the file.
8176         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
8177         (struct object_hard_regs, struct object_hard_regs_node): New.
8178         (struct ira_object): New members profitable_hard_regs,
8179         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
8180         (struct ira_allocno): Rename cover_class to aclass.  Rename
8181         cover_class_cost and updated_cover_class_cost to class_cost and
8182         updated_class_cost.  Remove splay_removed_p and
8183         left_conflict_size.  Add new members colorable_p.
8184         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
8185         (ALLOCNO_COLORABLE_P): New macro.
8186         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
8187         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
8188         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
8189         (OBJECT_...): Rename parameter C to O.
8190         (OBJECT_PROFITABLE_HARD_REGS): New macro.
8191         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
8192         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
8193         (struct target_ira_int): New members x_ira_max_memory_move_cost,
8194         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
8195         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
8196         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
8197         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
8198         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
8199         x_ira_reg_class_subunion.
8200         (ira_max_memory_move_cost, ira_max_register_move_cost)
8201         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
8202         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
8203         (ira_important_class_nums, ira_reg_class_superunion): New macros.
8204         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
8205         (ira_reg_class_union): Rename to ira_reg_class_subunion.
8206         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8207         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8208         (ira_tune_allocno_costs_and_cover_classes): Rename to
8209         ira_tune_allocno_costs.
8210         (ira_debug_hard_regs_forest): New.
8211         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
8212         (ira_object_conflict_iter_next): Fix comments.
8213         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
8214         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8215         cover_class to aclass.
8216         (ira_allocate_and_accumulate_costs): Ditto.
8217         (ira_allocate_and_set_or_copy_costs): Ditto.
8218
8219         * opts.c (decode_options): Remove ira_cover_class check.
8220
8221         * ira-color.c: Remove mentioning cover classes from the file.  Use
8222         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8223         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8224         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8225         (splay-tree.h): Remove include.
8226         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8227         before copy_freq_compare_func.
8228         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8229         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8230         New definitions.
8231         (hard_regs_roots, hard_regs_node_vec): Ditto.
8232         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8233         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8234         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8235         (create_new_object_hard_regs_node): Ditto.
8236         (add_new_object_hard_regs_node_to_forest): Ditto.
8237         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
8238         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8239         Ditto.
8240         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8241         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8242         (remove_unused_object_hard_regs_nodes): Ditto.
8243         (enumerate_object_hard_regs_nodes): Ditto.
8244         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8245         (object_hard_regs_subnode_t): Ditto.
8246         (struct object_hard_regs_subnode): Ditto.
8247         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8248         (setup_object_hard_regs_subnode_index): Ditto.
8249         (get_object_hard_regs_subnodes_num): Ditto.
8250         (form_object_hard_regs_nodes_forest): Ditto.
8251         (finish_object_hard_regs_nodes_tree): Ditto.
8252         (finish_object_hard_regs_nodes_forest): Ditto.
8253         (allocnos_have_intersected_live_ranges_p): Rename to
8254         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8255         (pseudos_have_intersected_live_ranges_p): Rename to
8256         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8257         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8258         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8259         (update_copy_costs): Remove assert.  Skip cost update if the hard
8260         reg does not belong the class.
8261         (assign_hard_reg): Process only profitable hard regs.
8262         (uncolorable_allocnos_num): Make it scalar.
8263         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8264         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8265         and ira_reg_class_max_nregs.
8266         (bucket_allocno_compare_func): Check frequency first.
8267         (sort_bucket): Add compare function as a parameter.
8268         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8269         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8270         (push_allocno_to_stack): Rewrite for checking new allocno
8271         colorability.
8272         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
8273         (push_only_colorable): Pass new parameter to sort_bucket.
8274         (push_allocno_to_spill): Remove.
8275         (allocno_spill_priority_compare): Make it inline and rewrite.
8276         (splay_tree_allocate, splay_tree_free): Remove.
8277         (allocno_spill_sort_compare): New function.
8278         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
8279         build and use splay tree.  Choose first allocno in uncolorable
8280         allocno bucket to spill.  Remove setting spill cost.
8281         (all_conflicting_hard_regs): Remove.
8282         (setup_allocno_available_regs_num): Check only profitable hard
8283         regs.  Print info about hard regs nodes.
8284         (setup_allocno_left_conflicts_size): Remove.
8285         (put_allocno_into_bucket): Don't call
8286         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
8287         (improve_allocation): New.
8288         (color_allocnos): Call setup_profitable_hard_regs,
8289         form_object_hard_regs_nodes_forest, improve_allocation,
8290         finish_object_hard_regs_nodes_forest.  Setup spill cost.
8291         (print_loop_title): Use pressure classes.
8292         (color_allocnso): Ditto.
8293         (do_coloring): Remove allocation and freeing splay_tree_node_pool
8294         and allocnos_for_spilling.
8295         (ira_sort_regnos_for_alter_reg): Don't setup members
8296         {first,next}_coalesced_allocno.
8297         (color): Remove allocating and freeing removed_splay_allocno_vec.
8298         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8299         prohibited_class_mode_regs.
8300
8301         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
8302         formatting.
8303         (update_allocno_pressure_excess_length): Use pressure classes.
8304         (inc_register_pressure, dec_register_pressure): Check for pressure
8305         class.
8306         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8307         pressure class.  Use ira_reg_class_nregs instead of
8308         ira_reg_class_max_nregs.
8309         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8310         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8311         (single_reg_class): Use ira_reg_class_nregs instead of
8312         ira_reg_class_max_nregs.
8313         (process_bb_node_lives): Use pressure classes.
8314
8315         * ira-emit.c: Remove mentioning cover classes from the file.  Use
8316         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8317         (change_loop): Use pressure classes.
8318         (modify_move_list): Call ira_set_allocno_class instead of
8319         ira_set_allocno_cover_class.
8320
8321         * ira-build.c: Remove mentioning cover classes from the file.  Use
8322         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8323         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
8324         ALLOCNO_UPDATED_CLASS_COST instead of
8325         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8326         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8327         (ira_create_allocno): Remove initialization of
8328         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
8329         ALLOCNO_COLORABLE_P.
8330         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8331         Update conflict regs for the objects.
8332         (create_cap_allocno): Remove assert.  Don't propagate
8333         ALLOCNO_AVAILABLE_REGS_NUM.
8334         (ira_free_allocno_costs): New function.
8335         (finish_allocno): Change a part of code into call of
8336         ira_free_allocno_costs.
8337         (low_pressure_loop_node_p): Use pressure classes.
8338         (object_range_compare_func): Don't compare classes.
8339         (setup_min_max_conflict_allocno_ids): Ditto.
8340
8341         * loop-invariant.c: Remove mentioning cover classes from the file.
8342         Use ira_pressure_classes and ira_pressure_classes_num instead of
8343         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
8344         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
8345         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8346         Use reg_allocno_class instead of reg_cover_class.
8347         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
8348         STACK_REG_COVER_CLASS.
8349         (get_regno_cover_class): Rename to get_regno_pressure_class.
8350         (move_loop_invariants): Initialize and finalize regstat.
8351
8352         * ira.c: Remove mentioning cover classes from the file.  Add
8353         comments about coloring without cover classes.  Use ALLOCNO_CLASS
8354         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8355         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
8356         setup_class_subset_and_memory_move_costs.
8357         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
8358         (setup_cover_and_important_classes): Rename to
8359         setup_allocno_and_important_classes.
8360         (setup_class_translate_array): New.
8361         (setup_class_translate): Call it for allocno and pressure classes.
8362         (cover_class_order): Rename to allocno_class_order.
8363         (comp_reg_classes_func): Use ira_allocno_class_translate instead
8364         of ira_class_translate.
8365         (reorder_important_classes): Set up ira_important_class_nums.
8366         (setup_reg_class_relations): Set up ira_reg_class_superunion.
8367         (print_class_cover): Rename to print_classes.  Add parameter.
8368         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8369         Print pressure classes too.
8370         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
8371         setup_reg_subclasses.
8372         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
8373         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8374         (setup_prohibited_class_mode_regs): Use
8375         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
8376         (clarify_prohibited_class_mode_regs): New function.
8377         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
8378         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
8379         (ira_init_once): Initialize them.
8380         (free_register_move_costs): Process them.
8381         (ira_init): Move calls of find_reg_classes and
8382         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
8383         Call clarify_prohibited_class_mode_regs.
8384         (ira_no_alloc_reg): Remove.
8385         (too_high_register_pressure_p): Use pressure classes.
8386
8387         * sched-deps.c: Remove mentioning cover classes from the file.
8388         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
8389         ira_pressure_classes and ira_pressure_classes_num instead of
8390         ira_reg_class_cover_size and ira_reg_class_cover.
8391         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
8392         sched_regno_pressure_class instead of sched_regno_cover_class.
8393         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
8394         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8395
8396         * ira.h: Add 2010 to Copyright.
8397         (ira_no_alloc_reg): Remove external.
8398         (struct target_ira): Rename x_ira_hard_regno_cover_class,
8399         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
8400         x_ira_class_translate to x_ira_hard_regno_allocno_class,
8401         x_ira_allocno_classes_num, x_ira_allocno_classes, and
8402         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
8403         x_ira_pressure_classes, x_ira_pressure_class_translate, and
8404         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
8405         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
8406         x_ira_no_alloc_regs.
8407         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
8408         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
8409         ira_allocno_classes_num and ira_allocno_classes.
8410         (ira_class_translate): Rename to ira_allocno_class_translate.
8411         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
8412         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
8413         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8414         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
8415         (ira_no_alloc_regs): New.
8416
8417         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
8418         classes from the file.  Use ALLOCNO_CLASS instead of
8419         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
8420         ALLOCNO_COVER_CLASS_COST.
8421         (regno_cover_class): Rename to regno_aclass.
8422         (record_reg_classes): Use ira_reg_class_subunion instead of
8423         ira_reg_class_union.
8424         (record_address_regs): Check overflow.
8425         (scan_one_insn): Ditto.
8426         (print_allocno_costs): Print total mem cost fore regional allocation.
8427         (print_pseudo_costs): Use REG_N_REFS.
8428         (find_costs_and_classes): Use classes intersected with them on the
8429         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
8430         ira_reg_class_union.  Use ira_allocno_class_translate and
8431         regno_aclass instead of ira_class_translate and regno_cover_class.
8432         Modify code for finding regno_aclass.  Setup preferred classes for
8433         the next pass.
8434         (setup_allocno_cover_class_and_costs): Rename to
8435         setup_allocno_class_and_costs.  Use regno_aclass instead of
8436         regno_cover_class.  Use ira_set_allocno_class instead of
8437         ira_set_allocno_cover_class.
8438         (init_costs, finish_costs): Use regno_aclass instead of
8439         regno_cover_class.
8440         (ira_costs): Use setup_allocno_class_and_costs instead of
8441         setup_allocno_cover_class_and_costs.
8442         (ira_tune_allocno_costs_and_cover_classes): Rename to
8443         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
8444         by processing objects.  Use ira_reg_class_max_nregs instead of
8445         ira_reg_class_nregs.
8446
8447         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
8448
8449         * sched-int.h: Remove mentioning cover classes from the file.
8450         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
8451
8452         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
8453         classes from the file.
8454         (struct reg_pref): Rename coverclass into allocnoclass.
8455         (reg_cover_class): Rename to reg_allocno_class.
8456
8457         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
8458
8459         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
8460
8461         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8462
8463         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
8464
8465         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
8466
8467         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
8468
8469         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
8470
8471         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
8472
8473         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
8474
8475         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
8476
8477         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
8478         (i386_ira_cover_classes): Ditto.
8479
8480         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8481
8482         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
8483
8484         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
8485
8486         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
8487
8488         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
8489
8490         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
8491
8492         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
8493         (mips_ira_cover_classes): Ditto.
8494
8495         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
8496
8497         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
8498
8499         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
8500
8501         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
8502
8503         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8504
8505         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8506         (IRA_COVER_CLASSES_VSX): Ditto.
8507
8508         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8509         (rs6000_ira_cover_classes): Ditto.
8510
8511         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8512
8513         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8514
8515         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8516
8517         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8518
8519         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8520
8521         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8522
8523         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8524
8525         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8526
8527         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8528
8529         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8530
8531 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
8532
8533         PR debug/48253
8534         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8535         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8536         dw_fde_unlikely_section_end_label, cold_in_std_section,
8537         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8538         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8539         fields.
8540         (output_fde): Use dw_fde_second_{begin,end} if second is
8541         true, otherwise dw_fde_{begin,end}.
8542         (output_call_frame_info): Test dw_fde_second_begin != NULL
8543         instead of dw_fde_switched_sections.
8544         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8545         fields, initialize new fields.  Initialize in_std_section
8546         unconditionally from the first partition.
8547         (dwarf2out_end_epilogue): Don't override dw_fde_end when
8548         dw_fde_second_begin is non-NULL.
8549         (dwarf2out_switch_text_section): Stop initializing removed
8550         dw_fde_struct fields, initialize new fields, initialize
8551         also dw_fde_end here.  Set dw_fde_switch_cfi even when
8552         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
8553         (struct var_loc_list_def): Add last_before_switch field.
8554         (arange_table, arange_table_allocated, arange_table_in_use,
8555         ARANGE_TABLE_INCREMENT, add_arange): Removed.
8556         (size_of_aranges): Count !in_std_section and !second_in_std_section
8557         hunks in fdes, instead of looking at arange_table_in_use.
8558         (output_aranges): Add aranges_length argument, don't call
8559         size_of_aranges here.  Instead of using aranges_table*
8560         emit ranges for fdes when !in_std_section resp.
8561         !second_in_std_section.
8562         (dw_loc_list): Break ranges crossing section switch.
8563         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
8564         use dw_fde_second_end instead of dw_fde_end as end of last range.
8565         (gen_subprogram_die): Don't call add_arange.  Use
8566         dw_fde_{begin,end} for first partition and if switched
8567         section dw_fde_second_{begin,end} for the second.
8568         (var_location_switch_text_section_1,
8569         var_location_switch_text_section): New functions.
8570         (dwarf2out_begin_function): Initialize cold_text_section even
8571         when function_section () isn't text_section.
8572         (prune_unused_types): Don't walk arange_table.
8573         (dwarf2out_finish): Don't needlessly test
8574         flag_reorder_blocks_and_partition when testing cold_text_section_used.
8575         If info_section_emitted, call size_of_aranges and if it indicates
8576         non-empty .debug_aranges, call output_aranges with the computed
8577         size.  Stop using removed dw_fde_struct fields, use
8578         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8579         for second.
8580
8581         PR debug/48203
8582         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8583         create ENTRY_VALUE if incoming or address of incoming's MEM
8584         is a hard REG.
8585         * dwarf2out.c (mem_loc_descriptor): Don't emit
8586         DW_OP_GNU_entry_value of DW_OP_fbreg.
8587         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8588         on ENTRY_VALUE is able to find the canonical parameter VALUE.
8589         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8590         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8591         ENTRY_VALUE_EXPs.
8592         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8593         is a REG_P or MEM_P with REG_P address, compute hash directly
8594         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8595         (preserve_only_constants): Don't clear VALUES forwaring
8596         ENTRY_VALUE to some other VALUE.
8597
8598 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
8599
8600         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8601         instead of GEN_INT.
8602
8603 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8604
8605         * cfgexpand.c (expand_gimple_cond): Always set the source location and
8606         block before expanding the statement.
8607         (expand_gimple_stmt_1): Likewise.  Set them here...
8608         (expand_gimple_stmt): ...and not here.  Tidy.
8609         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8610         unknown.
8611
8612 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8613
8614         * Makefile.in: New rule for cprop.o.
8615         * gcse.c: Move constant/copy propagation to cprop.c.
8616         (compute_local_properties): Only handle expression tables.
8617         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8618         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8619         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8620         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
8621         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
8622         compute_cprop_data, find_used_regs, try_replace_reg,
8623         find_avail_set, cprop_jump, constprop_register, cprop_insn,
8624         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8625         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8626         find_bypass_set, reg_killed_on_edge, bypass_block,
8627         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8628         execute_rtl_cprop, pass_rtl_cprop): Move to...
8629         * cprop.c: ...here.  New file, constant/copy propagation for RTL
8630         moved from gcse.c to here with minor cleanups in duplicated code.
8631
8632 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8633
8634         * config/i386/i386.c (flag_opts): Fix a typo in
8635         -mavx256-split-unaligned-store.
8636
8637 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8638
8639         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8640         LIBCALL_VALUE): Remove macros.
8641         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8642         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8643         (h8300_function_value, h8300_libcall_value,
8644         h8300_function_value_regno_p): New functions.
8645
8646 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8647
8648         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8649
8650 2011-03-28  Jeff Law  <law@redhat.com>
8651
8652         * tree-ssa-threadupdate.c (redirect_edges): Call
8653         create_edge_and_update_destination_phis as needed.
8654         (create_edge_and_update_destination_phis): Accept new BB argument.
8655         All callers updated.
8656         (thread_block): Do not update the profile when threading around
8657         intermediate blocks.
8658         (thread_single_edge): Likewise.
8659         (determine_bb_domination_status): If BB is not a successor of the
8660         loop header, return NONDOMINATING.
8661         (register_jump_thread): Note when we register a jump thread around
8662         an intermediate block.
8663         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8664         (thread_across_edge): Use it.
8665
8666 2011-03-28  Tristan Gingold  <gingold@adacore.com>
8667
8668         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8669         when for_return is 2.
8670
8671 2011-03-28  Jeff Law  <law@redhat.com>
8672
8673         * var-tracking.c (canonicalize_values_mark): Delete unused
8674         lhs assignment.
8675         (canonicalize_values_star, set_variable_part): Likewise.
8676         (clobber_variable_part, delete_variable_part): Likewise.
8677
8678 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8679
8680         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8681
8682 2011-03-28  Martin Jambor  <mjambor@suse.cz>
8683
8684         * tree-inline.c (expand_call_inline): Do not check that destination
8685         node is analyzed.
8686         (optimize_inline_calls): Assert that destination node is analyzed.
8687         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8688         not call tree_lowering_passes.
8689         * cgraph.h (cgraph_analyze_function): Declare.
8690         * cgraphunit.c (cgraph_analyze_function): Make public.
8691
8692 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
8693
8694         * config/sparc/sparc-opts.h: New.
8695         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8696         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8697         (sparc_option_override): Store processor_type enumeration rather
8698         than string in cpu_default.  Remove name and enumeration from
8699         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
8700         without using sparc_select.  Use target_flags_explicit instead of
8701         fpu_option_set.
8702         * config/sparc/sparc.h (enum processor_type): Move to
8703         sparc-opts.h.
8704         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8705         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8706         HeaderInclude entry.
8707         (mcpu=, mtune=): Use Var and Enum.
8708         (sparc_processor_type): New Enum and EnumValue entries.
8709
8710 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8711             Iain Sandoe  <iains@gcc.gnu.org>
8712
8713         PR target/48245
8714         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8715
8716 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8717
8718         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8719         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8720         Insert new statements at it in lieu of STMT.
8721         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8722         * tree-vect-stmts.c (vectorizable_store): Likewise.
8723         (vectorizable_load): Likewise.
8724
8725 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
8726
8727         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8728         (divtf3): Ditto.
8729         (multf3): Ditto.
8730         (subtf3): Ditto.
8731
8732 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8733
8734         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8735         unaligned 256bit load/store.
8736         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8737         (*avx_movdqu<avxmodesuffix>): Likewise.
8738
8739 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8740
8741         PR target/48288
8742         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8743         * config/pa/pa.md (iordi3): Use new predicate in expander.
8744         (iorsi3): Likewise.
8745
8746 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
8747
8748         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
8749         FUNCTION_VALUE_REGNO_P): Remove macros.
8750         * config/mips/mips-protos.h (mips_function_value): Remove.
8751         * config/mips/mips.c (mips_function_value): Rename to...
8752         (mips_function_value_1): ... this. Make static.  Handle receiving
8753         the function type in 'fn_decl_or_type' argument.
8754         (mips_function_value, mips_libcall_value,
8755         mips_function_value_regno_p): New function.
8756         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8757         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8758
8759 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8760
8761         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8762         and -mavx256-split-unaligned-store.
8763         (ix86_option_override_internal): Split 32-byte AVX unaligned
8764         load/store by default.
8765         (ix86_avx256_split_vector_move_misalign): New.
8766         (ix86_expand_vector_move_misalign): Use it.
8767
8768         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8769         -mavx256-split-unaligned-store.
8770
8771         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8772         256bit load/store.  Generate unaligned store on misaligned memory
8773         operand.
8774         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8775         256bit load/store.
8776         (*avx_movdqu<avxmodesuffix>): Likewise.
8777
8778         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8779         -mavx256-split-unaligned-store.
8780
8781 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8782
8783         PR target/38598
8784         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8785         Update commentary.
8786
8787 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8788
8789         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8790         opno arguments with an expand_operand.  Use create_input_operand.
8791         (mips_prepare_builtin_target): Delete.
8792         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8793         functions.
8794         (mips_expand_builtin_direct): Use create_output_operand and
8795         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
8796         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
8797         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8798
8799 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
8800
8801         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8802         function.
8803         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8804
8805 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8806
8807         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8808         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
8809         basic blocks and call commit_edge_insertions directly.
8810         (fixup_abnormal_edges): Move from here to...
8811         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
8812         on the edges and return whether some have actually been inserted.
8813         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8814         compensation code.
8815
8816 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
8817
8818         PR rtl-optimization/48144
8819         * sel-sched-ir.c (merge_history_vect): Factor out from ...
8820         (merge_expr_data): ... here.
8821         (av_set_intersect): Rename to av_set_code_motion_filter.
8822         Update all callers.  Call merge_history_vect when an expression
8823         is found in both sets.
8824         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8825
8826 2011-03-26  Alan Modra  <amodra@gmail.com>
8827
8828         * config/rs6000/predicates.md (word_offset_memref_op): Handle
8829         cmodel medium addresses.
8830         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8831         64-bit gpr loads and stores.
8832         (rs6000_secondary_reload_ppc64): New function.
8833         * config/rs6000/rs6000-protos.h: Declare it.
8834         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8835
8836 2011-03-26  Alan Modra  <amodra@gmail.com>
8837
8838         PR target/47487
8839         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8840         GNU Go in traceback table.
8841
8842 2011-03-25  Richard Henderson  <rth@redhat.com>
8843
8844         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8845         if there are exactly 6 operands.
8846         (set_storage_via_setmem): Similarly.
8847
8848 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8849
8850         * collect2.c (write_c_file_stat): Handle backslash
8851         as right-hand directory separator.
8852         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8853         checking just for slash.
8854         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8855         instead of checking for trailing slash.
8856         * gcc.c (record_temp_file): Use filename_cmp instead
8857         of strcmp.
8858         (do_spec_1): Likewise.
8859         (replace_outfile_spec_function): Likewise.
8860         (is_directory): Use filename_ncmp instead of strncmp.
8861         (print_multilib_info): Likewise.
8862         * gcov.c (find_source): Use filename_cmp instead
8863         instead of strcmp.
8864         (make_gcov_file_name): Fix order of slash/backslash
8865         checks.
8866         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8867         (add_standard_paths): Likewise.
8868         * mips-tfile.c (saber_stop): Handle backslash.
8869         * prefix.c (update_path): Use filename_ncmp instead of
8870         strncmp.
8871         * profile.c (output_location): Use filename_cmp instead
8872         of strcmp.
8873         * read-md.c (handle_toplevel_file): Handle backslash.
8874         * tlink.c (frob_extension):  Likewise.
8875         * tree-cfg.c (same_line_p): Use filename_cmp instead of
8876         strcmp.
8877         * tree-dump.c (dequeue_and_dump): Handle backslash.
8878         * tree.c (get_file_function_name): Likewise.
8879         * gengtype.c (read_input_list): Likewise.
8880         (get_file_realbasename): Likewise.
8881         (get_output_file_with_visibility): Use filename_cmp
8882         instead of strcmp.
8883
8884 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
8885
8886         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8887         case to VFPv1.
8888
8889 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8890
8891         * fold-const.c (expr_location_or): New function.
8892         (fold_truth_not_expr): Call it.
8893
8894 2011-03-25  Jeff Law  <law@redhat.com>
8895
8896         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8897         va_end.
8898         * c-family/c-common.c (def_fn_type): Likewise.
8899         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8900         * emit-rtl.c (gen_rtvec): Likewise.
8901         * lto/lto-lang.c (def_fn_type): Likewise.
8902
8903 2011-03-25  Richard Guenther  <rguenther@suse.de>
8904
8905         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8906         also generate copies.
8907         (fini_copy_prop): Handle constant values properly.
8908
8909 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
8910
8911         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8912         mode size instead of bitsize with DWARF2_ADDR_SIZE.
8913         (hash_loc_operands, compare_loc_operands): Handle
8914         DW_OP_GNU_entry_value.
8915
8916 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8917
8918         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8919         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8920         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8921         comment and use macro TARGET_64BIT_MS_ABI instead.
8922         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8923         and change default behavior for 32-bit MS_ABI.
8924         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8925         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8926         32-bit, too.
8927         (ix86_cfun_abi): Likewise.
8928         (ix86_maybe_switch_abi): Adjust comment.
8929         (init_cumulative_args): Check for bit-ness in MS_ABI case.
8930         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8931         instead of checking for SYSV_ABI.
8932         (ix86_nsaved_sseregs): Likewise.
8933         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8934         to 16 bytes.
8935         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8936         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8937         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8938         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8939         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8940
8941 2011-03-25  Richard Guenther  <rguenther@suse.de>
8942
8943         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8944         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8945         (verify_gimple): Remove.
8946         * tree-cfg.c (verify_gimple_call): Merge verification
8947         from verify_stmts.
8948         (verify_gimple_phi): Merge verification from verify_stmts.
8949         (verify_gimple_label): New function.
8950         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8951         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8952         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8953         (verify_stmts): Rename to verify_gimple_in_cfg.
8954         (verify_gimple_in_cfg): New function.
8955         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8956         * tree-ssa.c (verify_ssa): Likewise.
8957         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8958
8959 2011-03-25  Richard Guenther  <rguenther@suse.de>
8960
8961         * passes.c (init_optimization_passes): Add FRE pass after
8962         early SRA.
8963
8964 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
8965             Andrew Stubbs  <ams@codesourcery.com>
8966
8967         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8968         for Cortex-A8.
8969         (arm_movdi_vfp_cortexa8): New pattern.
8970         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8971         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8972         instructions when tuning for Cortex-A8.  Set attribute "arch".
8973         * config/arm/arm.md: Move include arm-tune.md up a bit.
8974         (define_attr "arch"): Add "onlya8" and "nota8" values.
8975         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8976
8977 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8978
8979         PR bootstrap/48282
8980         Revert:
8981         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8982
8983         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8984         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8985         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8986         * passes.c (init_optimization_passes): Move
8987         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8988
8989 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8990
8991         * c-typeck.c (comptypes_internal): Replace target
8992         hook call of comp_type_attributes by version in tree.c file.
8993         * gimple.c (gimple_types_compatible_p_1): Likewise.
8994         * tree-ssa.c (useless_type_conversion_p): Likewise.
8995         * tree.c (build_type_attribute_qual_variant): Likewise.
8996         (attribute_value_equal): New static helper function.
8997         (comp_type_attributes): New function.
8998         (merge_attributes): Use attribute_value_equal for comparison.
8999         (attribute_list_contained): Likewise.
9000         * tree.h (comp_type_attributes): New prototype.
9001
9002 2011-03-25  Richard Guenther  <rguenther@suse.de>
9003
9004         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9005         of complex types at -O0.
9006         (verify_gimple_assign_binary): Likewise.
9007         (verify_gimple_assign_ternary): Likewise.
9008
9009 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9010
9011         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9012         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9013
9014 2011-03-24  Mark Wielaard  <mjw@redhat.com>
9015
9016         PR debug/48041
9017         * dwarf2out.c (output_abbrev_section): Only write table when
9018         abbrev_die_table_in_use > 1.
9019
9020 2011-02-24  Richard Henderson  <rth@redhat.com>
9021
9022         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9023         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9024         (alpha_expand_unaligned_load_words): Use extql.
9025         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9026         (emit_insxl): Handle all modes for consistency.
9027
9028 2011-02-24  Richard Henderson  <rth@redhat.com>
9029
9030         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9031         (alpha_expand_unaligned_load): Likewise.
9032         (alpha_expand_unaligned_store): Likewise.
9033         (alpha_expand_unaligned_load_words): Likewise.
9034         (alpha_expand_unaligned_store_words): Likewise.
9035         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9036         (alpha_split_lock_test_and_set_12): Likewise.
9037         (print_operand, alpha_fold_builtin_extxx): Likewise.
9038         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9039         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9040         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9041         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9042         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9043         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9044         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9045         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9046         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9047         (extwl, extll, extql): Similarly.
9048         (inswh, inslh, insqh): Similarly.
9049         (mskbl, mskwl, mskll, mskql): Similarly.
9050         (mskwh, msklh, mskqh): Similarly.
9051
9052 2011-02-24  Richard Henderson  <rth@redhat.com>
9053
9054         * config/alpha/alpha.md (attribute isa): Add er, ner.
9055         (attribute enabled): Handle them.
9056         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9057
9058 2011-02-24  Richard Henderson  <rth@redhat.com>
9059
9060         * config/alpha/alpha.md (attribute isa): Add vms.
9061         (attribute enabled): Handle it.
9062         (*movsf): Merge *movsf_{nofix,fix,nofp}.
9063         (*movdf): Merge *movdf_{nofix,fix,nofp}.
9064         (*movtf): Rename from *movtf_internal for consistency.
9065         (*movsi): Merge with *movsi_nt_vms.
9066         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9067         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9068         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9069         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9070
9071 2011-02-24  Richard Henderson  <rth@redhat.com>
9072
9073         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9074         (extendqisi2, extendhisi2): Likewise.
9075         (extendqidi2): Simplify BWX/non-BWX expansions.
9076         (extendhidi2): Similarly.
9077
9078 2011-02-24  Richard Henderson  <rth@redhat.com>
9079
9080         * config/alpha/alpha.md (attribute isa): New.
9081         (attribute enabled): New.
9082         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9083         (zero_extendqisi2, zero_extendqidi2): Similarly.
9084         (zero_extendhisi2, zero_extendhidi2): Similarly.
9085         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9086
9087 2011-02-24  Richard Henderson  <rth@redhat.com>
9088
9089         * config/alpha/predicates.md (input_operand): Revert last change;
9090         update comment to mention 32-bit VMS rather than Windows.
9091
9092 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9093
9094         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9095         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
9096         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9097         * passes.c (init_optimization_passes): Move
9098         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9099
9100 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9101
9102         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
9103
9104 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9105
9106         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
9107         correctly.
9108
9109 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
9110
9111         PR debug/48204
9112         * simplify-rtx.c (simplify_const_unary_operation): Call
9113         real_convert when changing mode class with FLOAT_EXTEND.
9114
9115 2011-03-24  Nick Clifton  <nickc@redhat.com>
9116
9117         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
9118         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9119         * config/rx/rx.c (rx_option_override): Set align_jumps,
9120         align_loops and align_labels if not set by the user.
9121         (rx_align_for_label): New function.
9122         (rx_max_skip_for_label): New function.
9123         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
9124         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
9125         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
9126         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
9127         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
9128
9129 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9130
9131         PR rtl-optimization/48263
9132         * optabs.c (expand_binop_directly): Reinstate convert_modes code
9133         and original commutative_p handling.  Use maybe_gen_insn.
9134
9135 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9136
9137         * reload.c (find_reloads_subreg_address): Add address_reloaded
9138         parameter and return true there if the full address has been
9139         reloaded.
9140         (find_reloads_toplev): Pass address_reloaded flag.
9141         (find_reloads_address_1): Don't use address_reloaded parameter.
9142
9143 2011-03-24  Jeff Law  <law@redhat.com>
9144
9145         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
9146         unused variable "ann".
9147         (remove_unused_locals): Likewise.
9148
9149         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
9150         statement.
9151
9152         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
9153         after it is freed.
9154
9155 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9156
9157         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
9158         for invalid symbolic addresses.
9159         (s390_secondary_reload): Don't use s390_check_symref_alignment for
9160         larl operands.
9161
9162 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9163
9164         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
9165         the argument in calls to fold_truth_not_expr.
9166
9167 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9168
9169         * tree.c (record_node_allocation_statistics): New function.
9170         (make_node_stat, copy_node_stat, build_string): Call it.
9171         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
9172         (build1_stat, build_omp_clause): Likewise.
9173
9174 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9175
9176         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
9177         last commit.
9178
9179 2011-03-24  Richard Guenther  <rguenther@suse.de>
9180
9181         PR tree-optimization/48271
9182         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
9183         blocks that still exist.
9184
9185 2011-03-24  Richard Guenther  <rguenther@suse.de>
9186
9187         PR tree-optimization/48270
9188         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
9189         not free datarefs before ddrs.
9190
9191 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
9192
9193         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
9194         from the address built for a reference with variable offset.
9195
9196 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
9197
9198         PR target/48237
9199         * config/i386/i386.md (*movdf_internal_rex64): Do not split
9200         alternatives that can be handled with movq or movabsq insn.
9201         (*movdf_internal): Disable for !TARGET_64BIT.
9202         (*movdf_internal_nointeger): Ditto.
9203         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
9204
9205 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
9206
9207         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9208         (FUNCTION_ARG_ADVANCE): Likewise.
9209         * tm.texi.in: Change references to them to hook references.
9210         * tm.texi: Regenerate.
9211         * targhooks.c (default_function_arg): Eliminate check for target macro.
9212         (default_function_incoming_arg): Likewise.
9213         (default_function_arg_advance): Likewise.
9214         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9215         (function_arg_advance): Likewise.
9216         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9217
9218 2011-03-24  Richard Guenther  <rguenther@suse.de>
9219
9220         PR middle-end/48269
9221         * tree-object-size.c (addr_object_size): Do not double-account
9222         for MEM_REF offsets.
9223
9224 2011-03-24  Diego Novillo  <dnovillo@google.com>
9225
9226         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
9227         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
9228         (lto_input_data_block): Move from lto-opts.c.  Make extern.
9229         Update all users.
9230         (lto_input_string): Rename from input_string.  Make extern.
9231         Update all users.
9232         * lto-streamer-out.c (lto_output_string_with_length): Rename from
9233         output_string_with_length.
9234         Output 0 to indicate a non-NULL string.  Update all callers to
9235         not emit 0.
9236         (lto_output_string): Rename from output_string.  Make extern.
9237         Update all users.
9238         (lto_output_decl_state_streams): Make extern.
9239         (lto_output_decl_state_refs): Make extern.
9240         * lto-streamer.h (lto_input_string): Declare.
9241         (lto_input_data_block): Declare.
9242         (lto_output_string): Declare.
9243         (lto_output_string_with_length): Declare.
9244         (lto_output_decl_state_streams): Declare.
9245         (lto_output_decl_state_refs): Declare.
9246
9247 2011-03-24  Richard Guenther  <rguenther@suse.de>
9248
9249         PR tree-optimization/46562
9250         * tree.c (build_invariant_address): New function.
9251         * tree.h (build_invariant_address): Declare.
9252         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9253         a renamed function moved ...
9254         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9255         Take valueization callback parameter.
9256         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9257         * gimple-fold.h: New file.
9258         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9259         (ccp_fold, fold_const_aggregate_ref,
9260         fold_ctor_reference, fold_nonarray_ctor_reference,
9261         fold_array_ctor_reference, fold_string_cst_ctor_reference,
9262         get_base_constructor): Move ...
9263         * gimple-fold.c: ... here.
9264         (gimple_fold_stmt_to_constant_1): New function
9265         split out from ccp_fold.  Take a valueization callback parameter.
9266         Valueize all operands.
9267         (gimple_fold_stmt_to_constant): New wrapper function.
9268         (fold_const_aggregate_ref_1): New function split out from
9269         fold_const_aggregate_ref.  Take a valueization callback parameter.
9270         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9271         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9272         invariant POINTER_PLUS_EXPRs to invariant form.
9273         (vn_valueize): New function.
9274         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9275         * tree-vrp.c (vrp_valueize): New function.
9276         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9277         to fold statements to constants.
9278         * tree-ssa-pre.c (eliminate): Properly guard propagation of
9279         function declarations.
9280         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9281         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9282
9283 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9284
9285         * config/h8300/predicates.md (jump_address_operand): Fix register
9286         mode check.
9287
9288 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
9289
9290         * doc/invoke.texi (max-stores-to-sink): Document.
9291         * params.h (MAX_STORES_TO_SINK): Define.
9292         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9293         if either vectorization or if-conversion is disabled.
9294         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9295         tree-vect-data-refs.c vect_equal_offsets.
9296         (dr_equal_offsets_p): New function.
9297         (find_data_references_in_bb): Remove static.
9298         * tree-data-ref.h (find_data_references_in_bb): Declare.
9299         (dr_equal_offsets_p): Likewise.
9300         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9301         (vect_drs_dependent_in_basic_block): Update calls to
9302         vect_equal_offsets.
9303         (vect_check_interleaving): Likewise.
9304         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9305         (cond_if_else_store_replacement): Rename to...
9306         (cond_if_else_store_replacement_1): ... this.  Change arguments and
9307         documentation.
9308         (cond_if_else_store_replacement): New function.
9309         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9310         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9311
9312 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
9313
9314         PR target/46934
9315         * config/arm/arm.md (casesi): Use the gen_int_mode() function
9316         to subtract lower bound instead of GEN_INT().
9317
9318 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
9319
9320         PR other/48179
9321         PR other/48221
9322         PR other/48234
9323         * doc/extend.texi (Alignment): Move section to match order in TOC.
9324         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9325         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9326
9327 2011-03-23  Jeff Law  <law@redhat.com>
9328
9329         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9330         before removing the edge.
9331
9332         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
9333         it may have been freed by redirect_branch_edge or
9334         redirect_edge_succ_nodup.
9335
9336 2011-03-23  Richard Guenther  <rguenther@suse.de>
9337
9338         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
9339         (check_va_list_escapes): Likewise.
9340         (check_all_va_list_escapes): Likewise.
9341
9342 2011-03-23  Richard Guenther  <rguenther@suse.de>
9343
9344         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
9345         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
9346         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
9347         (alias.o): Likewise.
9348         (ipa-type-escape.o): Remove.
9349         (ipa-struct-reorg.o): Likewise.
9350         (GTFILES): Remove ipa-struct-reorg.c.
9351         * alias.c: Do not include ipa-type-escape.h.
9352         * tree-ssa-alias.c: Likewise.
9353         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
9354         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
9355         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
9356         and ipa-type-escape passes.
9357         * tree-pass.h (pass_ipa_type_escape): Remove.
9358         (pass_ipa_struct_reorg): Likewise.
9359         * ipa-struct-reorg.h: Remove.
9360         * ipa-struct-reorg.c: Likewise.
9361         * ipa-type-escape.h: Likewise.
9362         * ipa-type-escape.c: Likewise.
9363         * doc/invoke.texi (-fipa-struct-reorg): Remove.
9364         (--param struct-reorg-cold-struct-ratio): Likewise.
9365         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9366         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9367         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
9368
9369 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9370
9371         * config/s390/2084.md: Enable all insn reservations also for z9_ec
9372         cpu attribute value.
9373         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
9374         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
9375         * config/s390/s390.c (processor_flags_table): New constant array.
9376         (s390_handle_arch_option): Remove.
9377         (s390_handle_option): Remove s390_handle_arch_option invocations
9378         and OPT_mwarn_framesize_ handling.
9379         (s390_option_override): Remove s390_handle_arch_option invocation.
9380         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
9381         warnings.
9382         * config/s390/s390.md (cpu attribute): Add z9_ec value.
9383         * config/s390/s390.opt (s390_tune, s390_arch)
9384         (march=): Replace s390_arch_option enum and values with
9385         processor_type.  Set variable name to s390_arch.  Set
9386         initialization value.
9387         (mtune=): Replace s390_arch_option with processor_type.  Set
9388         variable name to s390_tune.  Set initialization value.
9389
9390 2011-03-23  Julian Brown  <julian@codesourcery.com>
9391
9392         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
9393         accesses which are not naturally aligned.
9394
9395 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
9396
9397         PR target/47553
9398         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
9399
9400 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
9401
9402         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
9403         parameter from "int" to "enum insn_code".
9404         (expand_operand_type): New enum.
9405         (expand_operand): New structure.
9406         (create_expand_operand): New function.
9407         (create_fixed_operand, create_output_operand): Likewise
9408         (create_input_operand, create_convert_operand_to): Likewise.
9409         (create_convert_operand_from, create_address_operand): Likewise.
9410         (create_integer_operand): Likewise.
9411         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
9412         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9413         (expand_insn, expand_jump_insn): Likewise.
9414         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
9415         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
9416         (expand_movstr, expand_builtin___clear_cache): Likewise.
9417         (expand_builtin_lock_release): Likewise.
9418         * explow.c (allocate_dynamic_stack_space): Likewise.
9419         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
9420         and use the default handling in that case.
9421         * expmed.c (check_predicate_volatile_ok): Delete.
9422         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
9423         (emit_cstore): Likewise.
9424         * expr.c (emit_block_move_via_movmem): Likewise.
9425         (set_storage_via_setmem, expand_assignment): Likewise.
9426         (emit_storent_insn, try_casesi): Likewise.
9427         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
9428         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
9429         (expand_vec_shift_expr, expand_binop_directly): Likewise.
9430         (expand_twoval_unop, expand_twoval_binop): Likewise.
9431         (expand_unop_direct, emit_indirect_jump): Likewise.
9432         (emit_conditional_move, vector_compare_rtx): Likewise.
9433         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
9434         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
9435         (expand_sync_lock_test_and_set): Likewise.
9436         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
9437         (emit_unop_insn): Likewise.
9438         (expand_copysign_absneg): Change icode to an insn_code.
9439         (create_convert_operand_from_type): New function.
9440         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
9441         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9442         (expand_insn, expand_jump_insn): Likewise.
9443         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
9444         than const_int_operand for operand 2.
9445
9446 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9447
9448         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
9449         if possible.
9450
9451 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9452
9453         * emit-rtl.c (emit_pattern_before_noloc): New function.
9454         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
9455         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
9456         (emit_pattern_after_noloc): New function.
9457         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
9458         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
9459
9460 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9461
9462         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
9463         (__ffsDI2): Likewise.
9464
9465 2011-03-22  Richard Henderson  <rth@redhat.com>
9466
9467         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
9468         of !TARGET_ABI_OPEN_VMS.
9469         (alpha_trampoline_init, alpha_start_function): Likewise.
9470         (alpha_expand_epilogue, alpha_file_start): Likewise.
9471         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
9472         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
9473         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
9474         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
9475         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
9476
9477 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9478
9479         * config/s390/s390-opts.h: New.
9480         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
9481         s390_arch_flags, s390_warn_framesize, s390_stack_size,
9482         s390_stack_guard): Remove.
9483         (s390_handle_arch_option): Return void.  Take enum
9484         s390_arch_option value instead of string and searching array.
9485         (s390_handle_option): Don't assert that global structures are in
9486         use.  Access variables via opts pointer.  Use error_at.  Don't use
9487         sscanf for -mstack-guard= or -mstack-size=.  Update call to
9488         s390_handle_arch_option.
9489         (s390_option_override): Update call to s390_handle_arch_option.
9490         (s390_emit_prologue): Use %d format for s390_stack_size in
9491         diagnostic.  Use %wd for HOST_WIDE_INT.
9492         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
9493         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
9494         * config/s390/s390.opt (config/s390/s390-opts.h): New
9495         HeaderInclude entry.
9496         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
9497         s390_arch_flags, s390_warn_framesize): New Variable entries.
9498         (s390_arch_option): New Enum and EnumValue entries.
9499         (march=): Use Enum instead of Var.
9500         (mstack-guard=, mstack-size=): Use UInteger and Var.
9501         (mtune=): Use Enum.
9502
9503 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9504
9505         * config/score/score.c (score_handle_option): Don't assert that
9506         global structures are in use.  Access target_flags via opts
9507         pointer.  Use value of -march= option to determine target_flags
9508         settings.
9509         * config/score/score.opt (march=): Use Enum.
9510         (score_arch): New Enum and EnumValue entries.
9511
9512 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9513
9514         * config/mep/mep.c (option_mtiny_specified): Remove.
9515         (mep_option_override): Move register handling for -mivc2 from
9516         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
9517         instead of option_mtiny_specified.
9518         (mep_handle_option): Access target_flags via opts pointer.  Don't
9519         assert that global structures are in use.  Defer part of -mivc2
9520         handling and move it to mep_option_override.
9521         * config/mep/mep.opt (IVC2): New Mask entry.
9522         (mivc2): Use Var and Defer instead of Mask.
9523
9524 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9525
9526         * config/v850/v850-opts.h: New.
9527         * config/v850/v850.c (small_memory): Replace with
9528         small_memory_physical_max array.  Make that array static const.
9529         (v850_handle_memory_option): Take integer value of argument.  Take
9530         gcc_options pointer, option text and location.  Return void.
9531         Update for changes to small memory structures.
9532         (v850_handle_option): Access target_flags via opts pointer.  Don't
9533         assert that global structures are in use.  Update calls to
9534         v850_handle_memory_option.
9535         (v850_encode_data_area): Update references to small memory settings.
9536         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
9537         (enum small_memory_type): Move to v850-opts.h.
9538         * config/v850/v850.opt (config/v850/v850-opts.h): New
9539         HeaderInclude entry.
9540         (small_memory_max): New Variable entry.
9541         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
9542         (mtda, mzda): Likewise.
9543
9544 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9545
9546         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9547         pointer.  Don't assert that global structures are in use.
9548
9549 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9550
9551         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9552         via opts pointer.  Don't assert that global structures are in use.
9553
9554 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9555
9556         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9557         (munix=93): Use Var.
9558         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9559         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9560         * config/pa/pa-opts.h: New.
9561         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9562         (pa_handle_option): Don't assert that global structures are in
9563         use.  Access target_flags via opts pointer.  Don't handle
9564         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9565         OPT_munix_98 here.
9566         (pa_option_override): Handle deferred OPT_mfixed_range_.
9567
9568 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9569
9570         * config/mn10300/mn10300-opts.h: New.
9571         * config/mn10300/mn10300.c (mn10300_processor,
9572         mn10300_tune_string): Remove.
9573         (mn10300_handle_option): Don't assert that global structures are
9574         in use.  Access mn10300_processor via opts pointer.  Don't handle
9575         OPT_mtune_ here.
9576         * config/mn10300/mn10300.h (enum processor_type): Move to
9577         mn10300-opts.h.
9578         (mn10300_processor): Remove.
9579         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9580         HeaderInclude entry.
9581         (mn10300_processor): New Variable entry.
9582         (mtune=): Use Var.
9583
9584 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9585
9586         * config/microblaze/microblaze.c: Don't include opts.h.
9587         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9588         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9589         (mno-clearbss): Use Var and Warn.
9590
9591 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9592
9593         * config/m32r/m32r-opts.h: New.
9594         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9595         (m32r_handle_option): Don't assert that global structures are in
9596         use.  Access target_flags and m32r_cache_flush_func via opts
9597         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
9598         OPT_mno_flush_trap here.
9599         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9600         include of m32r-opts.h.
9601         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9602         HeaderInclude entry.
9603         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9604         (mmodel=): Use Enum and Var.
9605         (m32r_model): New Enum and EnumValue entries.
9606         (mno-flush-trap): Use Var.
9607         (msdata=): Use Enum and Var.
9608         (m32r_sdata): New Enum and EnumValue entries.
9609
9610 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9611
9612         * config/m32c/m32c.c: Don't include opts.h.
9613         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9614         m32c_handle_option): Remove.
9615         (m32c_option_override): Check global_options_set.x_target_memregs
9616         instead of target_memregs_set.
9617         * config/m32c/m32c.h (target_memregs): Remove.
9618         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9619         variable.
9620
9621 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9622
9623         * config/iq2000/iq2000-opts.h: New.
9624         * config/iq2000/iq2000.c: Don't include opts.h.
9625         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
9626         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
9627         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9628         HeaderInclude entry.
9629         (iq2000_tune): New Variable entry.
9630         (march=): Add comment.  Use Enum.
9631         (iq2000_arch): New Enum and EnumValue entries.
9632         (mcpu=): Use Enum and Var.
9633         (iq2000_tune): New Enum and EnumValue entries.
9634
9635 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9636
9637         * config/ia64/ia64-opts.h: New.
9638         * config/ia64/ia64.c (ia64_tune): Remove.
9639         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9640         here.  Use error_at.
9641         (ia64_option_override): Handle deferred OPT_mfixed_range_.
9642         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9643         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9644         HeaderInclude entry.
9645         (ia64_tune): New Variable entry.
9646         (mfixed-range=): Use Defer and Var.
9647         (mtune=): Use Enum and Var.
9648         (ia64_tune): New Enum and EnumValue entries.
9649
9650 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9651
9652         * config/frv/frv-opts.h: New.
9653         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9654         frv-opts.h.
9655         (frv_cpu_type): Remove.
9656         * config/frv/frv.c: Don't include opts.h.
9657         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
9658         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
9659         (frv_cpu_type): New Variable entry.
9660         (frv_cpu): New Enum and EnumValue entries.
9661
9662 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9663
9664         * config/cris/cris.c (cris_handle_option): Access target_flags via
9665         opts pointer.  Don't assert that global structures are in use.
9666         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9667         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9668
9669 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9670
9671         * config/bfin/bfin-opts.h: New.
9672         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9673         bfin_si_revision, bfin_workarounds): Remove.
9674         (bfin_cpus): Make static const.
9675         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9676         not bfin_lib_id_given.
9677         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
9678         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
9679         pointer. Use error_at.  Don't assert that global structures are in use.
9680         * config/bfin/bfin.h: Include bfin-opts.h.
9681         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9682         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9683         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9684         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9685         entries.
9686
9687 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9688
9689         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9690         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9691         or -msoft-float here.
9692         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9693         -msoft-float and -mhard-float.
9694         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
9695         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9696         msoft-float.
9697         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9698         -msoft-float.
9699         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9700         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9701         not mhard-float.
9702         (LIBGCC_SPEC): Don't handle -msoft-float.
9703         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9704         -mhard-float.
9705         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9706         msoft-float.
9707         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9708         -mfloat-abi=*, not -msoft-float and -mhard-float.
9709         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9710         -msoft-float.
9711         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9712         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9713         mhard-float and msoft-float.
9714         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9715         mfloat-abi=soft in comments, not mhard-float and msoft-float.
9716         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9717         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9718         mhard-float.
9719         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9720         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9721         msoft-float.
9722         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9723         not mhard-float.
9724         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9725         not msoft-float.
9726
9727 2011-03-22  Richard Henderson  <rth@redhat.com>
9728
9729         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9730         TARGET_ABI_WINDOWS_NT.
9731         (alpha_output_function_end_prologue): Likewise.
9732         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9733         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9734         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9735         (trap, *movsi_nt_vms): Likewise.
9736         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9737         (*tablejump_osf_nt_internal): Remove.
9738         * config/alpha/predicates.md (input_operand): Only test Pmode.
9739
9740 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9741
9742         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9743         via opts pointer.  Use error_at.  Don't assert that global
9744         structures are in use.
9745
9746 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9747
9748         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9749         (ix86_handle_option): Access ix86_isa_flags and
9750         ix86_isa_flags_explicit via opts pointer.  Don't assert that
9751         global structures are in use.
9752         (ix86_function_specific_save, ix86_function_specific_restore):
9753         Update ix86_isa_flags_explicit field name.
9754         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
9755         (ix86_isa_flags_explicit): Rename TargetSave entry to
9756         x_ix86_isa_flags_explicit.
9757
9758 2011-03-22  Richard Henderson  <rth@redhat.com>
9759
9760         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9761         (alpha_option_override, direct_return): Likewise.
9762         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9763         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9764         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9765         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9766         (alpha_expand_epilogue, alpha_end_function): Likewise.
9767         (alpha_init_libfuncs): Likewise.
9768         (struct machine_function): Remove unicosmk members.
9769         (print_operand) ['t']: Remove.
9770         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9771         unicosmk_output_module_name, unicosmk_output_common,
9772         current_section_align, unicosmk_output_text_section_asm_op,
9773         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9774         unicosmk_section_type_flags, unicosmk_unique_section,
9775         unicosmk_asm_named_section, unicosmk_insert_attributes,
9776         unicosmk_output_align, unicosmk_defer_case_vector,
9777         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9778         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9779         unicosmk_output_ssib, unicosmk_add_call_info_word,
9780         unicosmk_extern_head, unicosmk_output_default_externs,
9781         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9782         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9783         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9784         * config/alpha/alpha-protos.h: Update.
9785         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9786         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9787         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9788         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9789         (*mulsi_se, mulvsi3): Likewise.
9790         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9791         (*divmodsi_internal, call, call_value, realign): Likewise.
9792         (moddi3, umoddi3): Likewise; remove duplicate expander.
9793         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9794         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9795         (*movdi_nofix): Remove r/U alternative.
9796         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9797         * config/alpha/constraints.md ("U"): Remove.
9798         * config/alpha/predicates.md (call_operand"): Don't test
9799         TARGET_ABI_UNICOSMK.
9800
9801 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9802
9803         * target.def (handle_option): Take gcc_options and
9804         cl_decoded_option pointers and location_t.
9805         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9806         * doc/tm.texi: Regenerate.
9807         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9808         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9809         * lto-opts.c (lto_reissue_options): Generate option structure for
9810         targetm.handle_option call.
9811         * opts.c (target_handle_option): Update call to
9812         targetm.handle_option.  Remove assertions about values now passed
9813         down to hook.
9814         * targhooks.c (default_target_handle_option): New.
9815         * targhooks.h (default_target_handle_option): Declare.
9816         * config/alpha/alpha.c: Include opts.h.
9817         (alpha_handle_option): Update to new hook interface.
9818         * config/arm/arm.c: Include opts.h.
9819         (arm_handle_option): Update to new hook interface.
9820         * config/arm/t-arm (arm.o): Update dependencies.
9821         * config/bfin/bfin.c: Include opts.h.
9822         (bfin_handle_option): Update to new hook interface.
9823         * config/cris/cris.c: Include opts.h.
9824         (cris_handle_option): Update to new hook interface.
9825         * config/frv/frv.c: Include opts.h.
9826         (frv_handle_option): Update to new hook interface.
9827         * config/i386/i386.c: Include opts.h.
9828         (ix86_handle_option): Update to new hook interface.
9829         (ix86_valid_target_attribute_inner_p): Generate option structure
9830         for call to ix86_handle_option.
9831         * config/i386/t-i386 (i386.o): Update dependencies.
9832         * config/ia64/ia64.c: Include opts.h.
9833         (ia64_handle_option): Update to new hook interface.
9834         * config/ia64/t-ia64 (ia64.o): Update dependencies.
9835         * config/iq2000/iq2000.c: Include opts.h.
9836         (iq2000_handle_option): Update to new hook interface.
9837         * config/m32c/m32c.c: Include opts.h.
9838         (m32c_handle_option): Update to new hook interface.
9839         * config/m32r/m32r.c: Include opts.h.
9840         (m32r_handle_option): Update to new hook interface.
9841         * config/m68k/m68k.c: Include opts.h.
9842         (m68k_handle_option): Update to new hook interface.
9843         * config/mep/mep.c: Include opts.h.
9844         (mep_handle_option): Update to new hook interface.
9845         * config/microblaze/microblaze.c: Include opts.h.
9846         (microblaze_handle_option): Update to new hook interface.
9847         * config/mips/mips.c: Include opts.h.
9848         (mips_handle_option): Update to new hook interface.
9849         * config/mn10300/mn10300.c: Include opts.h.
9850         (mn10300_handle_option): Update to new hook interface.
9851         * config/pa/pa.c: Include opts.h.
9852         (pa_handle_option): Update to new hook interface.
9853         * config/pdp11/pdp11.c: Include opts.h.
9854         (pdp11_handle_option): Update to new hook interface.
9855         * config/rs6000/rs6000.c: Include opts.h.
9856         (rs6000_handle_option): Update to new hook interface.
9857         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9858         * config/rx/rx.c: Include opts.h.
9859         (rx_handle_option): Update to new hook interface.
9860         * config/s390/s390.c: Include opts.h.
9861         (s390_handle_option): Update to new hook interface.
9862         * config/score/score.c: Include opts.h.
9863         (score_handle_option): Update to new hook interface.
9864         * config/sh/sh.c: Include opts.h.
9865         (sh_handle_option): Update to new hook interface.
9866         * config/sparc/sparc.c: Include opts.h.
9867         (sparc_handle_option): Update to new hook interface.
9868         * config/v850/v850.c: Include opts.h.
9869         (v850_handle_option): Update to new hook interface.
9870
9871 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9872
9873         * gcc.c (driver_unknown_option_callback): Only permit and save
9874         unknown -Wno- options.
9875         (driver_wrong_lang_callback): Save options directly instead of via
9876         driver_unknown_option_callback.
9877
9878 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9879
9880         * combine.c (simplify_set): Try harder to find the best CC mode when
9881         simplifying a nested COMPARE on the RHS.
9882
9883 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9884
9885         * config/alpha/gnu.h: Remove.
9886         * config/arc: Remove directory.
9887         * config/arm/netbsd.h: Remove.
9888         * config/arm/t-pe: Remove.
9889         * config/crx: Remove directory.
9890         * config/i386/netbsd.h: Remove.
9891         * config/m68hc11: Remove directory.
9892         * config/m68k/uclinux-oldabi.h: Remove.
9893         * config/mcore/mcore-pe.h: Remove.
9894         * config/mcore/t-mcore-pe: Remove.
9895         * config/netbsd-aout.h: Remove.
9896         * config/rs6000/gnu.h: Remove.
9897         * config/sh/sh-symbian.h: Remove.
9898         * config/sh/symbian-base.c: Remove.
9899         * config/sh/symbian-c.c: Remove.
9900         * config/sh/symbian-cxx.c: Remove.
9901         * config/sh/symbian-post.h: Remove.
9902         * config/sh/symbian-pre.h: Remove.
9903         * config/sh/t-symbian: Remove.
9904         * config/svr3.h: Remove.
9905         * config/vax/netbsd.h: Remove.
9906         * config.build: Don't handle i[34567]86-*-pe.
9907         * config.gcc: Remove handling of deprecations for most deprecated
9908         targets.
9909         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9910         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9911         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9912         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9913         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9914         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9915         Remove cases.
9916         * config.host: Don't handle i[34567]86-*-pe.
9917         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9918         (ASM_SPEC32): Don't handle -mcall-gnu.
9919         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9920         -mcall-gnu.
9921         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9922         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9923         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9924         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9925         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9926         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9927         conditional on SYMBIAN.
9928         * configure.ac: Don't handle powerpc*-*-gnu*.
9929         * configure: Regenerate.
9930         * doc/extend.texi (interrupt attribute): Don't mention CRX.
9931         * doc/install-old.texi (m6811, m6812): Don't mention.
9932         * doc/install.texi (arc-*-elf*): Don't document multilib option.
9933         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9934         (m68k-uclinuxoldabi): Don't mention.
9935         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9936         Remove.
9937         (-mcall-gnu): Remove.
9938         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9939         families): Remove constraint documentation.
9940
9941 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
9942
9943         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9944         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9945         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9946
9947 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9948
9949         PR target/48226
9950         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9951         vector when peeking at the next token for vector, don't expand the
9952         keywords.
9953
9954 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
9955
9956         * config/avr/avr-protos.h (expand_epilogue): Change prototype
9957         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9958         * config/avr/avr.c (init_cumulative_args)
9959         (avr_function_arg_advance): Use it.
9960         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9961         sibcall epilogues.
9962         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9963         (avr_function_ok_for_sibcall): ...this new function.
9964         (avr_lookup_function_attribute1): New static Function.
9965         (avr_naked_function_p, interrupt_function_p)
9966         (signal_function_p, avr_OS_task_function_p)
9967         (avr_OS_main_function_p): Use it.
9968         * config/avr/avr.md ("sibcall", "sibcall_value")
9969         ("sibcall_epilogue"): New expander.
9970         ("*call_insn", "*call_value_insn"): New insn.
9971         ("call_insn", "call_value_insn"): Remove
9972         ("call", "call_value", "epilogue"): Change expander to handle
9973         sibling calls.
9974
9975 2011-03-21  Nick Clifton  <nickc@redhat.com>
9976
9977         * doc/invoke.texi (Overall Options): Move closing brace to end of
9978         options list.
9979         (Optimization Options): Add missing @gol.
9980         (Directory Options): Likewise.
9981         (i386 and x86-64 Options): Likewise.
9982         (RS6000 and PowerPC Options): Likewise.
9983         (i386 and x86-64 Windows Options): Likewise.
9984         (V850 Options): Add text missing from descriptions.
9985
9986 2011-03-22  Richard Henderson  <rth@redhat.com>
9987
9988         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9989         (avr_incoming_return_addr_rtx): New.
9990         (emit_push_byte): New.
9991         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
9992         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
9993         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
9994         (emit_pop_byte): New.
9995         (expand_epilogue): Use it.  Pop frame pointer by bytes.
9996         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9997         (INCOMING_RETURN_ADDR_RTX): New.
9998         (INCOMING_FRAME_SP_OFFSET): New.
9999         (ARG_POINTER_CFA_OFFSET): New.
10000         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10001         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10002         (pophi): Remove.
10003
10004         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10005
10006 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10007
10008         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10009         (FUNCTION_ARG_ADVANCE): Likewise.
10010         * tm.texi.in: Change references to them to hook references.
10011         * tm.texi: Regenerate.
10012         * targhooks.c (default_function_arg): Eliminate check for target
10013         macro.
10014         (default_function_incoming_arg): Likewise.
10015         (default_function_arg_advance): Likewise.
10016         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
10017         (function_arg_advance): Likewise.
10018         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10019
10020 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
10021
10022         * tree.c (build_call_1): New function.
10023         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10024
10025 2011-03-22  Richard Guenther  <rguenther@suse.de>
10026
10027         PR tree-optimization/48228
10028         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10029         for single-arg PHIs.
10030
10031 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
10032
10033         PR rtl-optimization/48143
10034         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10035         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10036         sse2_cvtps2pd): Likewise.
10037
10038 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10039
10040         * recog.c (canonicalize_change_group): Use validate_unshare_change.
10041
10042 2011-03-22  Richard Guenther  <rguenther@suse.de>
10043
10044         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10045         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10046         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10047         and REALIGN_LOAD_EXPR.
10048         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10049         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10050         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10051         DOT_PROD_EXPR case ...
10052         (expand_expr_real_2): ... here.
10053         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10054         and REALIGN_LOAD_EXPR.
10055         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10056         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10057         (vect_create_epilog_for_reduction): Likewise.
10058         (vectorizable_reduction): Likewise.
10059         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10060         * tree-vect-stmts.c (vectorizable_load): Likewise.
10061
10062 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
10063
10064         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10065
10066 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10067
10068         * config/s390/s390.c (s390_delegitimize_address): Fix offset
10069         handling for PLTOFF/GOTOFF.
10070
10071 2011-03-22  Nick Clifton  <nickc@redhat.com>
10072
10073         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10074         trailing backslash from the end of the macro definition.
10075
10076 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10077
10078         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10079         and PLT unspecs.
10080
10081 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
10082
10083         * expr.h (prepare_operand): Move to...
10084         * optabs.h (prepare_operand): ...here and change the insn code
10085         parameter from "int" to "enum insn_code".
10086         (insn_operand_matches): Declare.
10087         * expr.c (init_expr_target): Use insn_operand_matches.
10088         (compress_float_constant): Likewise.
10089         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10090         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10091         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
10092         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10093         Likewise.
10094         (gen_cond_trap): Likewise.
10095         (prepare_operand): Likewise.  Change icode to an insn_code.
10096         (insn_operand_matches): New function.
10097         * reload.c (find_reloads_address_1): Use insn_operand_matches.
10098         * reload1.c (gen_reload): Likewise.
10099         * targhooks.c (default_secondary_reload): Likewise.
10100
10101 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10102
10103         * config/alpha/alpha.md (unspec): New define_c_enum.
10104         (unspecv): Ditto.
10105
10106 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
10107
10108         PR debug/48214
10109         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
10110         between a call and its CALL_ARG_LOCATION note.
10111
10112 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
10113
10114         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
10115
10116 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10117
10118         PR c/42544
10119         PR c/48197
10120         * c-common.c (shorten_compare): If primopN is first sign-extended
10121         to opN and then zero-extended to result type, set primopN to opN.
10122
10123 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
10124
10125         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
10126         for barrier handlers.
10127
10128 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10129
10130         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
10131         UNSPEC constants to be in the unspec enumeration, and redefine
10132         all UNSPECV constants to be in the unspecv enumeration, so that
10133         dumps print which unspec/unspec_volatile this is.
10134         * config/rs6000/vector.md (UNSPEC_*): Ditto.
10135         * config/rs6000/paired.md (UNSPEC_*): Ditto.
10136         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
10137         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
10138         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
10139
10140         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
10141         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
10142         UNSPECV_LWSYNC, since these are used as unspec_volatile.
10143         * config/rs6000/sync.md (isync, lwsync): Ditto.
10144
10145 2011-03-21  Richard Guenther  <rguenther@suse.de>
10146
10147         * params.def (lto-min-partition): Fix typo.
10148
10149 2011-03-21  Richard Guenther  <rguenther@suse.de>
10150
10151         PR c/47939
10152         * c-decl.c (grokdeclarator): Drop to the main variant only
10153         for array types.  Drop flag_gen_aux_info check.
10154
10155 2011-03-21  Richard Guenther  <rguenther@suse.de>
10156
10157         PR translation/47911
10158         * params.def (lto-partitions): Fix typo.
10159         (lto-min-partition): Fix wording.
10160
10161 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
10162
10163         * config/rs6000/t-freebsd: Remove duplication from file.
10164
10165 2011-03-21  Richard Guenther  <rguenther@suse.de>
10166
10167         PR middle-end/47661
10168         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
10169
10170 2011-03-21  Richard Guenther  <rguenther@suse.de>
10171
10172         PR lto/48210
10173         * params.def (lto-partitions): Require at least 1 partition.
10174
10175 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10176
10177         * gthr-solaris.h: Remove.
10178         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
10179         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
10180         (LIB_SPEC): Likewise.
10181         * config/sol2.opt (threads): Remove.
10182         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
10183         (sparc*-*-solaris2*): Likewise.
10184         * configure.ac (enable_threads): Enable solaris support.
10185         * configure: Regenerate.
10186         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
10187         * doc/install.texi (Configuration, --enable-threads=lib): Remove
10188         solaris.
10189
10190 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10191
10192         * config.gcc: Obsolete *-*-solaris2.8*.
10193         * doc/install.texi (Specific, *-*-solaris2*): Document it.
10194
10195 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10196
10197         PR bootstrap/48135
10198         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
10199         reference.  Solaris 8 perl works.
10200
10201 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10202
10203         PR bootstrap/48135
10204         * doc/install.texi (Prerequisites): Move jar etc. up.
10205         Explain support library version requirements.
10206
10207 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10208
10209         PR bootstrap/48135
10210         * doc/install.texi (Prerequisites): Move Perl to build
10211         requirements.  Always necessary on Solaris 2 with Sun ld.
10212
10213 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10214
10215         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10216         binutils 2.21.
10217         (Specific, i?86-*-solaris2.[89]): Likewise.
10218         (Specific, i?86-*-solaris2.10): Likewise.
10219         (Specific, mips-sgi-irix6): Likewise.
10220         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10221         Update for binutils 2.21.
10222
10223 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10224
10225         * configure.ac (gcc_cv_lto_plugin): Fix typo.
10226         Allow -fuse-linker-plugin for non-default plugin linker.
10227         * configure: Regenerate.
10228
10229 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10230
10231         PR bootstrap/48167
10232         * gengtype.c (files_rules): Added rule for cp/parser.h.
10233
10234 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10235
10236         PR target/48213
10237         * config/s390/s390.c (s390_delegitimize_address): Don't call
10238         lowpart_subreg if orig_x has BLKmode.
10239
10240 2011-03-21  Kai Tietz  <ktietz@redhat.com>
10241
10242         PR target/12171
10243         * doc/plugins.texi: Adjust documentation for plugin register_callback.
10244         * tree.h (attribute_spec): Add new member affects_type_identity.
10245         * attribs.c (empty_attribute_table): Adjust attribute_spec
10246         initializers.
10247         * config/alpha/alpha.c: Likewise.
10248         * config/arc/arc.c: Likewise.
10249         * config/arm/arm.c: Likewise.
10250         * config/avr/avr.c: Likewise.
10251         * config/bfin/bfin.c: Likewise.
10252         * config/crx/crx.c: Likewise.
10253         * config/darwin.h: Likewise.
10254         * config/h8300/h8300.c: Likewise.
10255         * config/i386/cygming.h: Likewise.
10256         * config/i386/i386.c: Likewise.
10257         * config/ia64/ia64.c: Likewise.
10258         * config/m32c/m32c.c: Likewise.
10259         * config/m32r/m32r.c: Likewise.
10260         * config/m68hc11/m68hc11.c: Likewise.
10261         * config/m68k/m68k.c: Likewise.
10262         * config/mcore/mcore.c: Likewise.
10263         * config/mep/mep.c: Likewise.
10264         * config/microblaze/microblaze.c: Likewise.
10265         * config/mips/mips.c: Likewise.
10266         * config/rs6000/rs6000.c: Likewise.
10267         * config/rx/rx.c: Likewise.
10268         * config/sh/sh.c: Likewise.
10269         * config/sol2.h: Likewise.
10270         * config/sparc/sparc.c: Likewise.
10271         * config/spu/spu.c: Likewise.
10272         * config/stormy16/stormy16.c: Likewise.
10273         * config/v850/v850.c: Likewise.
10274
10275 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
10276
10277         * simplify-rtx.c (simplify_binary_operation_1): Handle
10278         (xor (and A B) C) case when B and C are both constants.
10279
10280 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
10281
10282         * tree-dfa.c (add_referenced_var): Fix typo in comment.
10283
10284 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
10285
10286         PR bootstrap/48168
10287         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10288
10289 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
10290
10291         PR rtl-optimization/48156
10292         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10293         assume df and df_lr are not NULL.
10294
10295 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10296
10297         PR debug/48023
10298         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10299         between a call and its CALL_ARG_LOCATION note.
10300
10301 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
10302
10303         PR debug/48178
10304         * config/sh/sh.c (find_barrier): Don't emit a constant pool
10305         between a call and its corresponding CALL_ARG_LOCATION note.
10306
10307 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
10308
10309         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10310         instead of loop. Use HARD_REGISTER_NUM_P predicate.
10311         * haifa-sched.c (setup_ref_regs): Ditto.
10312         * caller-save.c (add_used_regs_1): Ditto.
10313         * dse.c (look_for_hardregs): Ditto.
10314         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10315         * sched-rgn.c (check_live_1): Ditto.
10316
10317 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10318
10319         * c-decl.c (diagnose_mismatched_decls): Give an error for
10320         redefining a typedef with variably modified type.
10321
10322 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10323
10324         * c-decl.c (grokfield): Don't allow typedefs for structures or
10325         unions with no tag by default.
10326         * doc/extend.texi (Unnamed Fields): Update.
10327
10328 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
10329
10330         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10331         Rewrite using indirect functions.
10332         (lwp_slwpcb): Ditto.
10333         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
10334         (avx_vinsertf128<mode>): Ditto.
10335
10336 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10337
10338         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
10339         unspecs.
10340
10341 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10342
10343         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
10344         splitting between a call and its corresponding CALL_ARG_LOCATION note.
10345
10346 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
10347
10348         PR rtl-optimization/48170
10349         * gcse.c (hoist_code): Remove bogus asserts.
10350
10351 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
10352
10353         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
10354         computation for prologue/epilogue.
10355
10356 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10357
10358         * Makefile.in (check-consistency): Remove.
10359
10360 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
10361
10362         PR debug/48176
10363         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
10364         arange_table_in_use is 0, but either text_section_used or
10365         cold_text_section_used is true.  Don't call it if
10366         !info_section_emitted.
10367
10368 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
10369
10370         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
10371         FUNCTION_VALUE_REGNO_P): Remove.
10372         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
10373         Remove.
10374         * config/avr/avr.c (avr_ret_register): Make static inline.
10375         (avr_function_value_regno_p): New function.
10376         (avr_libcall_value): Make static. Add 'func' argument.
10377         (avr_function_value): Make static. Rename 'func' argument to
10378         'fn_decl_or_type', forward it to avr_libcall_value. Call
10379         avr_ret_register function instead of RET_REGISTER macro.
10380         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
10381
10382 2011-03-18  Jason Merrill  <jason@redhat.com>
10383
10384         PR c++/23372
10385         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
10386
10387 2011-03-18  Richard Guenther  <rguenther@suse.de>
10388
10389         * doc/install.texi (--enable-gold): Remove.
10390         (--with-plugin-ld): Document.
10391         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
10392
10393 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
10394
10395         PR middle-end/47790
10396         * expr.c (optimize_bitfield_assignment_op): Revamp to work
10397         again after expansion changes.
10398
10399 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
10400
10401         * combine.c (try_combine): Do simplification only call of
10402         subst() on i2 even when i1 is present. Update comments.
10403
10404 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
10405
10406         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
10407         and UNSPEC_PCREL_SYMOFF.
10408
10409 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10410
10411         * config/s390/s390.md: Use define_c_enum for the unspec constant
10412         definitions.
10413
10414 2011-03-18  Richard Henderson  <rth@redhat.com>
10415             Jakub Jelinek  <jakub@redhat.com>
10416
10417         PR bootstrap/48161
10418         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
10419         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
10420
10421 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10422
10423         PR middle-end/47725
10424         * combine.c (cant_combine_insn_p): Don't check zero/sign
10425         extended hard registers.
10426
10427 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10428
10429         PR middle-end/47725
10430         * combine.c (cant_combine_insn_p): Check zero/sign extended
10431         hard registers.
10432
10433 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
10434
10435         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10436         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
10437         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
10438         Change return type to bool.
10439         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10440
10441 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10442
10443         PR debug/48163
10444         * var-tracking.c (prepare_call_arguments): If CALL target
10445         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
10446         pc instead of looking it up using cselib_lookup and use
10447         Pmode for it if x has VOIDmode.
10448         * dwarf2out.c (gen_subprogram_die): If also both first and
10449         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
10450
10451         PR debug/48163
10452         * function.c (assign_parms): For data.passed_pointer parms
10453         use MEM of data.entry_parm instead of data.entry_parm itself
10454         as DECL_INCOMING_RTL.
10455         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
10456         also when passed and declared mode is the same, DECL_RTL
10457         is a MEM with pseudo as address and DECL_INCOMING_RTL is
10458         a MEM too.
10459
10460 2011-03-16  Jeff Law  <law@redhat.com>
10461
10462         PR rtl-optimization/37273
10463         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10464         handle them like argument loads from stack slots.  Do not double
10465         count memory for memory constants and argument loads from stack slots.
10466
10467 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10468
10469         PR debug/48160
10470         * var-tracking.c (prepare_call_arguments): Check SUBREG.
10471
10472 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10473
10474         PR target/48171
10475         * config/i386/i386.opt: Add Save to -mavx and -mfma.
10476
10477 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10478
10479         PR bootstrap/48153
10480         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
10481         if dwarf_strict.
10482         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
10483         Clear call_arg_locations and call_arg_loc_last always.
10484
10485         PR middle-end/48152
10486         * var-tracking.c (prepare_call_arguments): If argument needs to be
10487         passed by reference, adjust argtype and mode.
10488
10489 2011-03-17  Richard Guenther  <rguenther@suse.de>
10490
10491         PR middle-end/48134
10492         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
10493         a value make sure to fold the statement.
10494
10495 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
10496
10497         PR target/43872
10498         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
10499         return condition with !cfun->calls_alloca.
10500
10501 2011-03-17  Richard Guenther  <rguenther@suse.de>
10502
10503         PR bootstrap/48148
10504         * lto-cgraph.c (input_overwrite_node): Clear the abstract
10505         origin for decls in other ltrans units.
10506         (input_varpool_node): Likewise.
10507
10508 2011-03-17  Richard Guenther  <rguenther@suse.de>
10509
10510         PR middle-end/48165
10511         * tree-object-size.c (compute_object_offset): Properly return
10512         the offset operand of MEM_REFs as sizetype.
10513
10514 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10515
10516         PR rtl-optimization/48141
10517         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10518         * dse.c: Include params.h.
10519         (active_local_stores_len): New variable.
10520         (add_wild_read, dse_step1): Clear it when setting active_local_stores
10521         to NULL.
10522         (record_store, check_mem_read_rtx): Decrease it when removing
10523         from the chain.
10524         (scan_insn): Likewise.  Increase it when adding to chain, if it
10525         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10526         set active_local_stores to NULL before the addition.
10527         * Makefile.in (dse.o): Depend on $(PARAMS_H).
10528
10529         PR rtl-optimization/48141
10530         * dse.c (record_store): If no positions are needed in an insn
10531         that cannot be deleted, at least unchain it from active_local_stores.
10532
10533 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
10534
10535         PR debug/47510
10536         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10537         (lookup_type_die_strip_naming_typedef): ... here.
10538         (get_context_die): Use it.
10539         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10540         the anonymous struct named by the naming typedef.
10541
10542 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
10543
10544         PR target/48154
10545         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10546         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10547
10548 2011-03-16  Jeff Law  <law@redhat.com>
10549
10550         * tree-vrp.c (identify_jump_threads): Slightly simplify type
10551         check for operands of conditional.  Allow type to be a pointer.
10552
10553 2011-03-16  Richard Guenther  <rguenther@suse.de>
10554
10555         PR tree-optimization/48149
10556         * fold-const.c (fold_binary_loc): Fold
10557         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10558
10559 2011-03-16  Richard Guenther  <rguenther@suse.de>
10560
10561         PR tree-optimization/26134
10562         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10563         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10564         (non_rewritable_mem_ref_base): Handle complex type component
10565         accesses, constrain offsets for vector and complex extracts
10566         more properly.
10567
10568 2011-03-16  Richard Guenther  <rguenther@suse.de>
10569
10570         PR tree-optimization/48146
10571         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10572         operands avoiding the need for renaming.
10573
10574 2011-03-16  Richard Guenther  <rguenther@suse.de>
10575
10576         * gimple-fold.c (maybe_fold_reference): Open-code relevant
10577         constant folding.  Move MEM_REF canonicalization first.
10578         Rely on fold_const_aggregate_ref for initializer folding.
10579         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10580
10581 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10582
10583         PR middle-end/48136
10584         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10585         arg0/arg1 or their arguments are always fold converted to matching
10586         types.
10587
10588         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10589         to nargs.
10590
10591 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10592
10593         PR lto/46944
10594         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10595         Handle in-tree gold.
10596         (ld_vers): Extract binutils version for gold.
10597         (gcc_cv_ld_hidden): Handle gold here.
10598         (gcc_cv_lto_plugin): Determine level of linker plugin support.
10599         * configure: Regenerate.
10600         * config.in: Regenerate.
10601         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10602         -fuse-linker-plugin otherwise.
10603         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
10604         (LINK_COMMAND_SPEC): Use it.
10605         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10606
10607 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10608
10609         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10610         * calls.c: Remove debug.h include.
10611         (emit_call_1): Don't call virtual_call_token debug hook.
10612         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10613         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10614         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10615         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10616         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10617         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10618         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10619         dwarf2out_virtual_call): Remove.
10620         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10621         copy_call_info and virtual_call hooks.
10622         (dwarf2out_init): Don't initialize vcall_insn_table,
10623         debug_dcall_section and debug_vcall_section.
10624         (prune_unused_types): Don't mark nodes from dcall_table.
10625         (dwarf2out_finish): Don't output dcall or vcall tables.
10626         * final.c (final_scan_insn): Don't call direct_call or
10627         virtual_call debug hooks.
10628         * debug.h (struct gcc_debug_hooks): Remove direct_call,
10629         virtual_call_token, copy_call_info and virtual_call hooks.
10630         (debug_nothing_uid): Remove prototype.
10631         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10632         copy_call_info and virtual_call hooks.
10633         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10634         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10635         * debug.c (do_nothing_debug_hooks): Likewise.
10636         (debug_nothing_uid): Remove.
10637         * doc/invoke.texi (-fenable-icf-debug): Remove.
10638         * common.opt (-fenable-icf-debug): Likewise.
10639
10640         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10641         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10642         call's MEM.  Handle functions returning aggregate through a hidden
10643         first pointer.  For virtual calls add clobbered pc to call arguments
10644         chain.
10645         * dwarf2out.c (gen_subprogram_die): Emit
10646         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10647         can't be emitted.
10648
10649         PR debug/45882
10650         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10651         * rtl.h (ENTRY_VALUE_EXP): Define.
10652         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10653         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10654         * print-rtl.c (print_rtx): Likewise.
10655         * gengtype.c (adjust_field_rtx_def): Likewise.
10656         * var-tracking.c (vt_add_function_parameter): Adjust
10657         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10658         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10659         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10660         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10661         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10662
10663         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10664         Call var_location debug hook even on CALL_INSNs.
10665         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10666         * rtl.def (ENTRY_VALUE): New.
10667         * dwarf2out.c: Include cfglayout.h.
10668         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10669         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10670         (struct call_arg_loc_node): New type.
10671         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10672         tail_call_site_count): New variables.
10673         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10674         DW_TAG_GNU_call_site_parameter.
10675         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10676         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10677         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10678         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10679         and DW_AT_GNU_all_source_call_sites.
10680         (mem_loc_descriptor): Handle ENTRY_VALUE.
10681         (add_src_coords_attributes): Don't add enything if
10682         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10683         (dwarf2out_abstract_function): Save and clear call_arg_location,
10684         call_site_count and tail_call_site_count around dwarf2out_decl call.
10685         (gen_call_site_die): New function.
10686         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10687         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10688         (dwarf2out_function_decl): Clear call_arg_locations,
10689         call_arg_loc_last, set call_site_count and tail_call_site_count
10690         to -1 and free block_map.
10691         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10692         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
10693         followed by any real instructions.
10694         (dwarf2out_begin_function): Set call_site_count and
10695         tail_call_site_count to 0.
10696         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10697         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10698         attempt to force a DIE for it and worst case remove the attribute.
10699         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10700         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10701         the decl itself.
10702         * var-tracking.c: Include tm_p.h.
10703         (vt_stack_adjustments): For calls call note_register_arguments.
10704         (argument_reg_set): New variable.
10705         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10706         ensure the VALUE is resolved.
10707         (call_arguments): New variable.
10708         (prepare_call_arguments): New function.
10709         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10710         (struct expand_loc_callback_data): Add ignore_cur_loc field.
10711         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10712         always use the best expression.
10713         (vt_expand_loc): Add ignore_cur_loc argument.
10714         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10715         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10716         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10717         note for all calls.
10718         (vt_add_function_parameter): Use cselib_lookup_from_insn.
10719         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10720         argument.  Don't call cselib_preserve_only_values and
10721         cselib_reset_table.
10722         (note_register_arguments): New function.
10723         (vt_initialize): Compute argument_reg_set.  Call
10724         vt_add_function_parameters before processing basic blocks instead of
10725         afterwards.  For calls call prepare_call_arguments before calling
10726         cselib_process_insn.
10727         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10728         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10729         (var-tracking.o): Depend on $(TM_P_H).
10730         * cfglayout.h (insn_scope): New prototype.
10731         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10732         * cfglayout.c (insn_scope): No longer static.
10733         * insn-notes.def (CALL_ARG_LOCATION): New.
10734         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10735         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10736         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10737         nothing for DECL_EXTERNAL BLOCK_VARS.
10738
10739 2011-03-16  Alan Modra  <amodra@gmail.com>
10740
10741         PR target/45844
10742         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10743         create invalid offset address for vsx splat insn.
10744         * config/rs6000/predicates.md (splat_input_operand): New.
10745         * config/rs6000/vsx.md (vsx_splat_*): Use it.
10746
10747 2011-03-15  Xinliang David Li  <davidxl@google.com>
10748
10749         PR c/47837
10750         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10751         (normalize_preds): New function.
10752         (is_use_properly_guarded): Normalize def predicates.
10753
10754 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10755
10756         PR target/46788
10757         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10758         in the output template.
10759
10760 2011-03-15  Richard Guenther  <rguenther@suse.de>
10761
10762         PR middle-end/47650
10763         * tree-pretty-print.c (dump_function_declaration): Properly
10764         dump unprototyped and varargs function types.
10765
10766 2011-03-15  Richard Guenther  <rguenther@suse.de>
10767
10768         PR tree-optimization/13954
10769         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10770         and friends.
10771
10772 2011-03-15  Richard Guenther  <rguenther@suse.de>
10773
10774         PR tree-optimization/48037
10775         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10776         selects into BIT_FIELD_REFs.
10777         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10778         vector select.
10779
10780 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
10781
10782         PR tree-optimization/48129
10783         * builtins.c (fold_builtin_snprintf): Convert to type of
10784         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10785         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10786
10787 2011-03-15  Richard Guenther  <rguenther@suse.de>
10788
10789         PR tree-optimization/41490
10790         * tree-ssa-dce.c (propagate_necessity): Handle returns without
10791         value but with VUSE.
10792         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10793         return statements.
10794         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10795         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10796         * tree-tailcall.c (find_tail_calls): Ignore returns.
10797
10798 2011-03-15  Richard Guenther  <rguenther@suse.de>
10799
10800         PR middle-end/48031
10801         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10802         or variable-indexed array accesses when in gimple form.
10803
10804 2011-03-15  Richard Guenther  <rguenther@suse.de>
10805
10806         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
10807
10808 2011-03-15  Alan Modra  <amodra@gmail.com>
10809
10810         PR target/48032
10811         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10812         presume symbol_refs without a symbol_ref_decl are suitably
10813         aligned, nor other trees we may see here.  Handle anchor symbols.
10814         (legitimate_constant_pool_address_p): Comment.  Add mode param.
10815         Check cmodel=medium addresses.  Adjust all calls.
10816         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10817         creating cmodel=medium optimized access to locals.
10818         * config/rs6000/constraints.md (R): Pass QImode to
10819         legitimate_constant_pool_address_p.
10820         * config/rs6000/predicates.md (input_operand): Pass mode to
10821         legitimate_constant_pool_address_p.
10822         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10823         Update prototype.
10824
10825 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10826
10827         PR target/48053
10828         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10829         64-bit constants being loaded into registers other than GPRs such
10830         as loading 0 into a VSX register.
10831
10832 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10833
10834         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
10835
10836 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10837
10838         PR middle-end/47917
10839         * builtins.c (fold_builtin_snprintf): New function.
10840         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10841         (fold_builtin_4): Likewise.
10842
10843         PR middle-end/38878
10844         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10845         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
10846         and C - X == X also strip nops from +/-/p+ operand.
10847         When optimizing -X == C, fold C to arg0's type.
10848
10849         PR debug/47946
10850         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10851         emit it as add_AT_int instead of add_AT_unsigned.
10852
10853 2011-03-14  Tom Tromey  <tromey@redhat.com>
10854
10855         * unwind-dw2.c: Include sys/sdt.h if it exists.
10856         (_Unwind_DebugHook): Use STAP_PROBE2.
10857         * config.in, configure: Rebuild.
10858         * configure.ac: Check for sys/sdt.h.
10859
10860 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
10861
10862         * config/i386/i386.md (ROUND_FLOOR): New constant.
10863         (ROUND_CEIL): Ditto.
10864         (ROUND_TRUNC): Ditto.
10865         (ROUND_MXCSR): Ditto.
10866         (ROUND_NO_EXC): Ditto.
10867         (rint<mode>2): Use new defines instead of numerical constants.
10868         (floor<mode>2): Ditto.
10869         (ceil<mode>2): Ditto.
10870         (btrunc<mode>2): Ditto.
10871         * config/i386/i386-builtin-types.def: Define ROUND function type
10872         aliases.
10873         * config/i386/i386.c (enum ix86_builtins): Add
10874         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10875         (struct builtin_description): Add
10876         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10877         (ix86_expand_sse_round): New static function.
10878         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10879         function types.
10880         (ix86_builtin_vectorized_function): Handle
10881         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10882
10883 2011-03-14  Tom Tromey  <tromey@redhat.com>
10884
10885         * c-parser.c (c_parser_asm_string_literal): Clear
10886         warn_overlength_strings.
10887
10888 2011-03-14  Tom Tromey  <tromey@redhat.com>
10889
10890         * c-parser.c (disable_extension_diagnostics): Save
10891         warn_overlength_strings.
10892         (restore_extension_diagnostics): Restore warn_overlength_strings.
10893
10894 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10895
10896         * BASE-VER: Change to 4.7.0.
10897
10898 2011-03-14  Richard Guenther  <rguenther@suse.de>
10899
10900         PR middle-end/48098
10901         * tree.c (build_vector_from_val): Adjust assert to requirements
10902         and reality.
10903
10904 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10905
10906         PR bootstrap/48102
10907         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
10908
10909 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
10910
10911         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
10912         terms of target_flags_explicit. Adjust copyright year.
10913
10914         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10915         * config/rs6000/t-freebsd: New file. Add override for
10916         LIB2FUNCS_EXTRA.
10917
10918 2011-03-13  Chris Demetriou  <cgd@google.com>
10919
10920         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10921         (-fno-diagnostics-show-option): this, to reflect current default.
10922         (-Werror=): Update text about -fno-diagnostics-show-option.
10923
10924 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
10925
10926         PR target/48053
10927         * config/rs6000/predicates.md (easy_vector_constant_add_self,
10928         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10929         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10930         mode is not V2DImode or V2DFmode.
10931         (vspltis_constant): Do not handle V2DImode and V2DFmode.
10932         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10933         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10934         registers to 0.
10935         (movdi_internal64): Likewise.
10936
10937 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
10938
10939         PR tree-optimization/47127
10940         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10941         parameter.
10942         (set_cloog_options): Same.
10943         (scop_to_clast): Same.
10944         (print_clast_stmt): Do not call cloog_state_malloc and
10945         cloog_state_free.
10946         (print_generated_program): Same.
10947         (gloog): Same.
10948         * graphite-clast-to-gimple.h (cloog_state): Declared.
10949         (scop_to_clast): Adjust declaration.
10950         * graphite.c (cloog_state): Defined here.
10951         (graphite_initialize): Call cloog_state_malloc.
10952         (graphite_finalize): Call cloog_state_free.
10953
10954 2011-03-11  Jason Merrill  <jason@redhat.com>
10955
10956         * attribs.c (lookup_attribute_spec): Take const_tree.
10957         * tree.h: Adjust.
10958
10959 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
10960
10961         * config/sparc/sparc.c (sparc_option_override): Use
10962         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10963
10964 2011-03-11  Richard Guenther  <rguenther@suse.de>
10965
10966         PR tree-optimization/48067
10967         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10968         multiplication result will be only used once on the target
10969         stmt.
10970
10971 2011-03-11  Richard Guenther  <rguenther@suse.de>
10972
10973         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10974
10975 2011-03-11  Richard Guenther  <rguenther@suse.de>
10976
10977         PR lto/48073
10978         * tree.c (find_decls_types_r): Do not walk types only reachable
10979         from IDENTIFIER_NODEs.
10980
10981 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10982
10983         PR middle-end/48044
10984         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10985         all vnode->force_output nodes as needed.
10986
10987 2011-03-11  Jason Merrill  <jason@redhat.com>
10988
10989         PR c++/48069
10990         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10991         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10992
10993 2011-03-11  Martin Jambor  <mjambor@suse.cz>
10994
10995         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10996         cgraph_node.
10997
10998 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10999
11000         PR tree-optimization/48063
11001         * ipa-inline.c (cgraph_decide_inlining): Don't try to
11002         inline functions called once if !tree_can_inline_p (node->callers).
11003
11004 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
11005
11006         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11007         extra_objs.
11008         * config/score/score3.c: Delete.
11009         * config/score/score3.h: Delete.
11010         * config/score/mul-div.S: Delete.
11011         * config/score/sfp-machine.h: Add new file.
11012         * config/score/constraints.md: Add new file.
11013         * config/score/t-score-softfp: Add new file.
11014         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
11015         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11016         (score7_extra_constraint): Delete.
11017         (score7_option_override): Remove unused code.
11018         * config/score/score.c: Remove score3 and score5 define and code.
11019         * config/score/score.h: Remove score3 and score5 define and code.
11020         * config/score/score.md: Remove score3 template and unusual insn.
11021         * config/score/score.opt: Remove score3 and score5 options.
11022
11023 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11024
11025         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11026         when _HPUX_SOURCE is defined.
11027         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11028
11029 2011-03-10  Jason Merrill  <jason@redhat.com>
11030
11031         PR c++/48029
11032         * stor-layout.c (layout_type): Don't set structural equality
11033         on arrays of incomplete type.
11034         * tree.c (type_hash_eq): Handle comparing them properly.
11035
11036 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
11037
11038         PR debug/48043
11039         * config/s390/s390.c (s390_delegitimize_address): Make sure the
11040         result mode matches original rtl mode.
11041
11042 2011-03-10  Nick Clifton  <nickc@redhat.com>
11043
11044         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
11045         (andsi3, andsi3_flags): Fix timings for three operand alternative.
11046
11047 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
11048
11049         PR rtl-optimization/47866
11050         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11051         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11052         if target wasn't scalar.
11053         * function.c (assign_stack_temp_for_type): Assert that neither
11054         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11055         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11056         macro.
11057         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11058
11059 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11060
11061         * config/s390/s390-protos.h (s390_label_align): New prototype.
11062         * config/s390/s390.c (s390_label_align): New function.
11063         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11064
11065 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
11066
11067         PR target/47755
11068         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11069         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
11070         (output_vec_const_move): Ditto.
11071
11072 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
11073
11074         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11075         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11076         * config/mips/mips.c (mips_preferred_reload_class): Make static.
11077         Change 'rclass' argument and result type to reg_class_t.
11078         (TARGET_PREFERRED_RELOAD_CLASS): Define.
11079
11080 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
11081
11082         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11083         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11084         (TARGET_MEMORY_MOVE_COST): Define.
11085         (avr_register_move_cost, avr_memory_move_cost): New Functions.
11086
11087 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
11088
11089         PR debug/47881
11090         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11091         removed anything.
11092
11093         PR tree-optimization/48022
11094         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11095         for EQ/NE_EXPR.
11096
11097 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
11098
11099         PR debug/47991
11100         * var-tracking.c (find_use_val): Return NULL for
11101         cui->sets && cui->store_p BLKmode MEMs.
11102
11103 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
11104
11105         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
11106         Remove.
11107         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
11108         xstormy16_print_operand_address): Remove.
11109         * config/stormy16/stormy16.c (xstormy16_print_operand,
11110         xstormy16_print_operand_address): Make static.
11111         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11112
11113 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
11114
11115         PR target/47862
11116         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11117         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
11118         before definition.
11119
11120 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
11121
11122         PR bootstrap/48000
11123         * cfgloopmanip.c (fix_bb_placements): Return immediately
11124         if FROM is BASE_LOOP's header.
11125
11126 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
11127
11128         * gimplify.c (gimplify_function_tree): Fix building calls
11129         to __builtin_return_address.
11130
11131 2011-03-07  Alan Modra  <amodra@gmail.com>
11132
11133         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
11134         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
11135         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
11136         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
11137         return_mode args.
11138         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
11139         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
11140         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
11141         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
11142         * config/rs6000/rs6000.c
11143         (rs6000_elf_end_indicate_exec_stack): Rename to..
11144         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
11145         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
11146         (rs6000_file_start): ..here.
11147         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
11148         file scope variables.
11149         (call_ABI_of_interest): New function.
11150         (init_cumulative_args): Set above vars when function return value
11151         is a float, vector, or small struct.
11152         (rs6000_function_arg_advance_1): Likewise for function args.
11153         (rs6000_va_start): Set rs6000_passes_float if variable arg function
11154         references float args.
11155
11156 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
11157
11158         * doc/cfg.texi: Remove "See" before @ref.
11159         * doc/invoke.texi: Likewise.
11160
11161 2011-03-05  Jason Merrill  <jason@redhat.com>
11162
11163         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
11164
11165 2011-03-05  Anthony Green  <green@moxielogic.com>
11166
11167         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
11168
11169 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
11170
11171         PR rtl-optimization/47899
11172         * cfgloopmanip.c (fix_bb_placements): Fix first argument
11173         to flow_loop_nested_p when moving the loop upward.
11174
11175 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
11176
11177         PR target/47719
11178         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
11179
11180 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
11181
11182         PR tree-optimization/47967
11183         * ipa-cp.c (build_const_val): Return NULL instead of creating
11184         VIEW_CONVERT_EXPR for mismatching sizes.
11185         (ipcp_create_replace_map): Return NULL if build_const_val failed.
11186         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
11187         give up on versioning.
11188
11189 2011-03-05  Alan Modra  <amodra@gmail.com>
11190
11191         PR target/47986
11192         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11193         full cmodel medium/large lo_sum + high addresses.
11194
11195 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11196
11197         * config/s390/s390.c (s390_decompose_address): Reject non-literal
11198         pool references in UNSPEC_LTREL_OFFSET.
11199
11200 2011-03-04  Jan Hubicka  <jh@suse.cz>
11201
11202         PR lto/47497
11203         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
11204         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
11205         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
11206         Add node pointers.
11207         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
11208         cgraph_add_thunk): Add node pointers.
11209         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
11210         associated to right node.
11211         (input_node): Update use of cgraph_same_body_alias
11212         and cgraph_add_thunk.
11213
11214 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
11215
11216         * config/i386/i386.opt (mprefer-avx128): New flag.
11217         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11218         modes when the flag -mprefer-avx128 is on.
11219
11220 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
11221
11222         * dwarf2out.c (compare_loc_operands): Fix address handling.
11223
11224 2011-03-04  Alan Modra  <amodra@gmail.com>
11225
11226         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11227
11228 2011-03-04  Richard Guenther  <rguenther@suse.de>
11229
11230         PR middle-end/47968
11231         * expmed.c (extract_bit_field_1): Prefer vector modes that
11232         vec_extract patterns can handle.
11233
11234 2011-03-04  Richard Guenther  <rguenther@suse.de>
11235
11236         PR middle-end/47975
11237         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11238
11239 2011-03-04  Richard Henderson  <rth@redhat.com>
11240
11241         * explow.c (emit_stack_save): Remove 'after' parameter.
11242         (emit_stack_restore): Likewise.
11243         * expr.h: Update to match.
11244         * builtins.c, calls.c, stmt.c: Likewise.
11245         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11246         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11247         * function.c (expand_function_end): Insert the emit_stack_save
11248         sequence before parm_birth_insn instead of after.
11249
11250 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
11251
11252         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11253         (ssse3_pmaddubsw128): Ditto.
11254         (ssse3_pmaddubsw): Ditto.
11255
11256 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
11257
11258         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11259
11260 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
11261
11262         PR c/47963
11263         * gimplify.c (omp_add_variable): Only call omp_notice_variable
11264         on TYPE_SIZE_UNIT if it is a DECL.
11265
11266         PR debug/47283
11267         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11268         first operand is not is_gimple_mem_ref_addr, try to fold it.
11269         If the operand still isn't is_gimple_mem_ref_addr, clear
11270         MEM_EXPR on op0.
11271
11272 2011-03-03  Richard Guenther  <rguenther@suse.de>
11273
11274         PR middle-end/47283
11275         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11276         match comment.
11277         (refs_may_alias_p_1): For release branches return true if
11278         we are confused by our input.
11279
11280 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11281
11282         * config/s390/s390.c (s390_function_value): Rename to ...
11283         (s390_function_and_libcall_value): ... this.
11284         (s390_function_value): New function.
11285         (s390_libcall_value): New function.
11286         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
11287         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11288         target macro definitions.
11289         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11290
11291 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
11292
11293         * config/i386/freebsd64.h (CC1_SPEC): Define.
11294         * config/i386/linux64.h (CC1_SPEC): Define.
11295         * config/i386/x86-64.h (CC1_SPEC): Don't define.
11296
11297 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
11298
11299         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11300         Remove.
11301         * config/stormy16/stormy16.c: Include reload.h.
11302         (xstormy16_memory_move_cost): New function.
11303         (TARGET_MEMORY_MOVE_COST): Define.
11304
11305 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
11306
11307         PR rtl-optimization/47925
11308         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11309         with side effects.  Remove the more-specific check for volatile asms.
11310
11311 2011-03-02  Alan Modra  <amodra@gmail.com>
11312
11313         PR target/47935
11314         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11315         toc relative addresses for valid offsets.
11316
11317 2011-03-01  Richard Guenther  <rguenther@suse.de>
11318
11319         PR tree-optimization/47890
11320         * tree-vect-loop.c (get_initial_def_for_induction): Set
11321         related stmt properly.
11322
11323 2011-03-01  Richard Guenther  <rguenther@suse.de>
11324
11325         PR lto/47924
11326         * lto-streamer.c (lto_record_common_node): Also register
11327         the canonical type.
11328
11329 2011-03-01  Richard Guenther  <rguenther@suse.de>
11330
11331         PR lto/46911
11332         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11333         Do not stream DECL_ABSTRACT_ORIGIN.
11334         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11335         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11336         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11337         Do not stream DECL_ABSTRACT_ORIGIN.
11338         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11339         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11340
11341 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
11342
11343         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
11344         FUNCTION_VALUE_REGNO_P): Remove.
11345         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
11346         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
11347         Add 'outgoing' argument.
11348         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
11349         function.
11350         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11351         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11352
11353 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
11354
11355         PR debug/28047
11356         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
11357         (lookup_filename): Likewise.
11358         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
11359
11360 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
11361             Jakub Jelinek  <jakub@redhat.com>
11362
11363         PR middle-end/47893
11364         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
11365         (assign_stack_local_1): Change last argument type to int.
11366         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
11367         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
11368         don't record padding space into frame_space_list nor use those areas.
11369         (assign_stack_local): Adjust caller.
11370         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
11371         of assign_stack_local, pass 0 as last argument.
11372         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
11373         callers.
11374
11375 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
11376
11377         PR debug/47283
11378         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
11379         Use target address_mode and pointer_mode hooks instead of hardcoded
11380         Pmode and ptr_mode.  Handle some simple cases of extending if
11381         POINTERS_EXTEND_UNSIGNED < 0.
11382         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
11383         Call convert_debug_memory_address.
11384         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
11385         convert_debug_memory_address.
11386
11387         PR middle-end/46790
11388         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
11389         * configure: Regenerated.
11390         * config.in: Regenerated.
11391         * varasm.c (default_function_section): Return NULL
11392         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
11393
11394 2011-02-28  Martin Jambor  <mjambor@suse.cz>
11395
11396         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
11397         the description to match the printed values.
11398
11399 2011-02-28  Richard Guenther  <rguenther@suse.de>
11400
11401         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
11402         of the copied scope tree.
11403
11404 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11405
11406         * doc/extend.texi (Function Attributes): Avoid deeply (and
11407         wrongly) nested tables.
11408
11409 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
11410
11411         PR middle-end/47903
11412         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
11413         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
11414         r isn't op0 nor op1.
11415
11416 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
11417
11418         * config/avr/avr.md: Remove magic comment for emacs.
11419
11420 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
11421
11422         PR target/45261
11423         * config/avr/avr.c (avr_option_override): Use error on bad options.
11424         (avr_help): New function.
11425         (TARGET_HELP): Define.
11426
11427 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
11428
11429         PR target/42240
11430         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
11431         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
11432
11433 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
11434
11435         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
11436         (ARM Options): Ditto.
11437         (i386 and x86-64 Options): Ditto.
11438         (RX Options): Ditto.
11439         (SPARC Options): Ditto.
11440
11441 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
11442
11443         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
11444         FreeBSD 6 and later.  Generally use cpu generic.
11445
11446 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
11447
11448         * doc/cpp.texi: Update copyright years.
11449
11450 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
11451
11452         PR target/46898
11453         * config/lm32/lm32.md (ashrsi3): Added needed variable.
11454
11455 2011-02-25  Jon Beniston  <jon@beniston.com>
11456
11457         PR target/46898
11458         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
11459         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
11460         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
11461         (lm32_block_move_inline): Add type cast to remove warning.
11462         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
11463         (gen_int_relational): Move declarations to start of function.
11464
11465 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11466
11467         PR tree-optimization/45470
11468         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11469         can throw internally only.
11470         * tree-vect-stmts.c (vectorizable_call): Likewise.
11471
11472 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
11473
11474         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
11475         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11476         * config/stormy16/stormy16-protos.h
11477         (xstormy16_preferred_reload_class): Remove.
11478         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
11479         static. Change 'rclass' argument and return type to reg_class_t.
11480         (TARGET_PREFERRED_RELOAD_CLASS,
11481         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11482
11483 2011-02-24  Richard Guenther  <rguenther@suse.de>
11484
11485         * lto-streamer-in.c (input_bb): Do not find referenced vars
11486         in debug statements.
11487
11488 2011-02-23  Jason Merrill  <jason@redhat.com>
11489
11490         * common.opt (fabi-version): Document v5 and v6.
11491
11492 2011-02-23  Richard Guenther  <rguenther@suse.de>
11493
11494         PR tree-optimization/47849
11495         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
11496
11497 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11498
11499         * opts-common.c (decode_cmdline_option): Print empty string
11500         argument as "" in decoded->orig_option_with_args_text.
11501         * gcc.c (execute): Print empty string argument as ""
11502         in the verbose output.
11503         (do_spec_1): Keep empty string argument.
11504
11505 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
11506
11507         * config.gcc: Declare score-* and crx-* obsolete.
11508
11509 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11510
11511         PR rtl-optimization/47763
11512         * web.c (web_main): Ignore naked clobber when replacing register.
11513
11514 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
11515
11516         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11517         Remove.
11518
11519 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11520
11521         PR doc/47848
11522         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11523
11524 2011-02-22  Mike Stump  <mikestump@comcast.net>
11525
11526         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11527         assembler.
11528         * configure: Regenerate.
11529
11530 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
11531
11532         PR rtl-optimization/46002
11533         * ira-color.c (update_copy_costs): Change class intersection
11534         test to reg_class_contents[] test of 'hard_regno'.
11535
11536 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
11537
11538         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11539         than Driver option.
11540         * config/hpux11.opt (mt): Likewise.
11541         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11542         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11543         * config/vax/elf.opt (mno-asm-pic): Likewise.
11544         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11545
11546 2011-02-21  Mike Stump  <mikestump@comcast.net>
11547
11548         PR target/47822
11549         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11550         tree so we can get save the type.
11551         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11552         for CFString instead of trying to use past the end of the builtins.
11553         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11554         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11555         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11556         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11557         Rename to darwin_builtin_cfstring.
11558         (darwin_init_cfstring_builtins): Return the built type.
11559
11560 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
11561
11562         PR target/47840
11563         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11564         (_mm256_insert_epi64): Use _mm_insert_epi64.
11565
11566 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
11567
11568         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11569         * config/stormy16/stormy16-protos.h
11570         (xstormy16_mode_dependent_address_p): Remove.
11571         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11572         Make static. Change return type to bool. Change argument type to
11573         const_rtx. Remove dead code.
11574         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11575
11576 2011-02-21  Richard Guenther  <rguenther@suse.de>
11577
11578         PR lto/47820
11579         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11580         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11581         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11582         TUs context.
11583         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11584         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11585
11586 2011-02-20  Richard Guenther  <rguenther@suse.de>
11587
11588         PR lto/47822
11589         * tree.c (free_lang_data_in_decl): Clean builtins from
11590         the TU decl BLOCK_VARS.
11591
11592 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
11593
11594         PR debug/47620
11595         PR debug/47630
11596         * haifa-sched.c (fix_tick_ready): Skip tick computation
11597         for debug insns.
11598
11599 2011-02-19  Richard Guenther  <rguenther@suse.de>
11600
11601         PR lto/47647
11602         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11603         Remove lazy BLOCK_VARS streaming.
11604         (lto_input_ts_block_tree_pointers): Likewise.
11605         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11606
11607 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11608
11609         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11610
11611 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11612
11613         * config/i386/biarch32.h, config/i386/mach.h,
11614         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11615
11616 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
11617
11618         PR target/47800
11619         * config/i386/i386.md (peephole2 for shift and plus): Use
11620         operands[1] original mode in the first insn.
11621
11622 2011-02-18  Mike Stump  <mikestump@comcast.net>
11623
11624         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
11625
11626 2011-02-18  Jan Hubicka  <jh@suse.cz>
11627
11628         PR middle-end/47788
11629         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11630         to zero when the function is not inlinable at all.
11631
11632 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11633
11634         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11635         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11636         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11637         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11638         * config/pa/t-pa64: Likewise.
11639         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11640
11641 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11642
11643         PR driver/47787
11644         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11645
11646 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11647
11648         PR target/47792
11649         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11650
11651 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
11652
11653         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11654         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11655         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11656         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11657         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11658         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11659         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11660         m32r_load_postinc_p, m32r_store_preinc_predec_p,
11661         m32r_legitimate_address_p): New functions.
11662         * config/m32r/constraints.md (constraint "S"): Don't use
11663         STORE_PREINC_PREDEC_P.
11664         (constraint "U"): Don't use LOAD_POSTINC_P.
11665
11666 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
11667
11668         PR rtl-optimization/46178
11669         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11670         compute ira_hard_regno_cover_class[].
11671
11672 2011-02-18  Richard Guenther  <rguenther@suse.de>
11673
11674         PR lto/47798
11675         * lto-streamer.h (lto_global_var_decls): Declare.
11676         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11677         statics for global var processing.
11678
11679 2011-02-18  Richard Guenther  <rguenther@suse.de>
11680
11681         PR tree-optimization/47737
11682         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11683         edge dominance check.
11684
11685 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11686
11687         PR debug/47780
11688         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11689         avoid invalid rtx sharing.
11690
11691 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
11692
11693         * doc/cpp.texi (Obsolete Features): Add background on the
11694         origin of assertions.
11695
11696 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
11697
11698         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
11699         objc_abi == 2.
11700         * config/darwin.c (output_objc_section_asm_op): Added support for
11701         ABI v1 and v2.
11702         (is_objc_metadata): New.
11703         (darwin_objc2_section): New.
11704         (darwin_objc1_section): New.
11705         (machopic_select_section): Added support for ABI v1 and v2.
11706         (darwin_emit_objc_zeroed): New.
11707         (darwin_output_aligned_bss): Detect objc metadata and treat it
11708         appropriately.
11709         (darwin_asm_output_aligned_decl_common): Same.
11710         (darwin_asm_output_aligned_decl_local): Same.
11711         * config/darwin-sections.def: Updated for ABI v1 and v2.
11712         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11713         compiling Objective-C code for the NeXT runtime, default to using
11714         ABI version 0 for 32-bit, and version 2 for 64-bit.
11715
11716 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11717
11718         * common.opt (optimize_fast): New Variable.
11719         * opts.c (default_options_optimization): Use opts->x_optimize_fast
11720         instead of local variable ofast.
11721
11722 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
11723
11724         * doc/invoke.texi (fobjc-abi-version): Documented.
11725         (fobjc-nilcheck): Documented.
11726         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11727         version.
11728
11729 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11730
11731         PR driver/47390
11732         * common.opt (export-dynamic): New Driver option.
11733         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11734
11735 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11736
11737         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11738
11739 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
11740             Jan Hubicka  <jh@suse.cz>
11741
11742         PR debug/47106
11743         PR debug/47402
11744         * cfgexpand.c (account_used_vars_for_block): Remove.
11745         (estimated_stack_frame_size): Use referenced vars.
11746         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11747         that were referenced in the original function.  Test src_fn
11748         rather than cfun.  Drop redundant get_var_ann.
11749         (setup_one_parameter): Drop redundant get_var_ann.
11750         (declare_return_variable): Likewise.
11751         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11752         (copy_arguments_for_versioning): Drop redundant get_var_ann.
11753         * ipa-inline.c (compute_inline_parameters): Do not compute
11754         disregard_inline_limits here.
11755         (compute_inlinable_for_current, pass_inlinable): New.
11756         (pass_inline_parameters): Require PROP_referenced_vars.
11757         * cgraphunit.c (cgraph_process_new_functions): Don't run
11758         compute_inline_parameters explicitly unless function is in SSA form.
11759         (cgraph_analyze_function): Set .disregard_inline_limits.
11760         * tree-sra.c (convert_callers): Compute inliner parameters
11761         only for functions already in SSA form.
11762
11763 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11764
11765         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11766         -mlittle-endian-data.
11767
11768 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11769
11770         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11771         -mno-fpu, not -fpu and -no-fpu.
11772         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11773         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11774
11775 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
11776
11777         PR target/43653
11778         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11779         input reload with PLUS RTX.
11780
11781 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11782
11783         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11784         of InverseVar(MDMX).
11785
11786 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11787
11788         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11789         --m4-340.
11790
11791 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11792
11793         * config/mn10300/mn10300.opt (mno-crt0): New.
11794
11795 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11796
11797         * config/m68k/uclinux.opt (static-libc): New Driver option.
11798
11799 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11800
11801         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11802
11803 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11804
11805         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11806         %{muser-extend-enabled}.
11807
11808 2011-02-16  Richard Guenther  <rguenther@suse.de>
11809
11810         PR tree-optimization/47738
11811         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11812         the TODO from tree_predictive_commoning.
11813
11814 2011-02-15  Jeff Law  <law@redhat.com>
11815
11816         Revert
11817         2011-01-25  Jeff Law  <law@redhat.com>
11818
11819         PR rtl-optimization/37273
11820         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11821         handle them like argument loads from stack slots.  Do not double
11822         count memory for memory constants and argument loads from stack slots.
11823
11824 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11825
11826         PR middle-end/47725
11827         * combine.c (cant_combine_insn_p): Revert the last change.
11828
11829 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
11830
11831         PR target/47755
11832         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11833         mode for vector constants.  Remove code that checks for TImode.
11834
11835 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11836
11837         PR debug/47106
11838         PR debug/47402
11839         * cgraph.h (compute_inline_parameters): Return void.
11840         * ipa-inline.c (compute_inline_parameters): Adjust.
11841
11842 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11843
11844         PR debug/47106
11845         PR debug/47402
11846         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11847         rather than decl.
11848         * cfgexpand.c (estimated_stack_frame_size): Likewise.
11849         * ipa-inline.c (compute_inline_parameters): Adjust.
11850
11851 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11852
11853         PR debug/47106
11854         PR debug/47402
11855         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11856         Adjust all users.  Pass FN to...
11857         * tree-flow-inline.h (first_referenced_var): ... this.  Add
11858         fn argument.
11859         * ipa-struct-reorg.c: Adjust.
11860         * tree-dfa.c: Adjust.
11861         * tree-into-ssa.c: Adjust.
11862         * tree-sra.c: Adjust.
11863         * tree-ssa-alias.c: Adjust.
11864         * tree-ssa-live.c: Adjust.
11865         * tree-ssa.c: Adjust.
11866         * tree-ssanames.c: Adjust.
11867         * tree-tailcall.c: Adjust.
11868
11869 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11870
11871         PR debug/47106
11872         PR debug/47402
11873         * tree-flow.h (referenced_var_lookup): Add fn parameter.
11874         Adjust all callers.
11875         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11876         * tree-flow-inline.h: Adjust.
11877         * gimple-pretty-print.c: Adjust.
11878         * tree-into-ssa.c: Adjust.
11879         * tree-ssa.c: Adjust.
11880         * cfgexpand.c: Adjust.
11881
11882 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11883
11884         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11885         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11886         (EXTRA_CONSTRAINT): Delete.
11887         * config/iq2000/constraints.md: New file.
11888         * config/iq2000/iq2000.md: Include it.
11889         (define_insn ""): Delete.
11890         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11891         unsupported constraint letters from patterns.
11892         (call_value, call_value_internal1): Likewise.
11893         (call_value_multiple_internal1): Likewise.
11894
11895 2011-02-15  Nick Clifton  <nickc@redhat.com>
11896
11897         * config/mn10300/mn10300.c: Include tm-constrs.h.
11898         (struct liw_data): New data structure describing an LIW candidate
11899         instruction.
11900         (extract_bundle): Use struct liw_data.  Allow small integer
11901         operands for some instructions.
11902         (check_liw_constraints): Use struct liw_data.  Remove swapped
11903         parameter.  Add comments describing the checks.  Fix bug when
11904         assigning the source of liw1 to the source of liw2.
11905         (liw_candidate): Delete.  Code moved into extract_bundle.
11906         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
11907         before swapping.
11908         * config/mn10300/predicates.md (liw_operand): New predicate.
11909         Allows registers and small integer constants.
11910         * config/mn10300/constraints.md (O): New constraint.  Accetps
11911         integers in the range -8 to +7 inclusive.
11912         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11913         for moving a small integer into a register.  Give this alternative
11914         LIW attributes.
11915         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11916         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11917         using the J,K,L and M constraints,
11918         (liw): Remove SI mode on second operands to allow for HI and QI
11919         mode values.
11920         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
11921         instruction.
11922
11923 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11924
11925         PR middle-end/47725
11926         * combine.c (cant_combine_insn_p): Check zero/sign extended
11927         hard registers.
11928
11929 2011-02-15  Richard Guenther  <rguenther@suse.de>
11930
11931         PR tree-optimization/47743
11932         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11933         for a non-type-compatible VN lookup bail out.
11934
11935 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11936
11937         * config/fr30/constraints.md: New file.
11938         * config/fr30/fr30.md: Include it.
11939         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11940         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11941         (EXTRA_CONSTRAINT): Delete.
11942
11943 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11944
11945         * config/frv/constraints.md: New file.
11946         * config/frv/predicates.md: Include it.
11947         * config/frv/frv.c (reg_class_from_letter): Delete.
11948         (frv_option_override): Don't initialize it.
11949         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11950         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11951         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11952         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11953         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11954         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11955         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11956         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11957         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11958         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11959         (REG_CLASS_FROM_CONSTRAINT): Delete.
11960
11961 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
11962
11963         PR middle-end/47581
11964         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11965         if frame size is 0 in a leaf function.
11966
11967 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11968
11969         PR pch/14940
11970         * config/alpha/host-osf.c: New file.
11971         * config/alpha/x-osf: New file.
11972         * config.host (alpha*-dec-osf*): Use it.
11973
11974 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11975
11976         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11977         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11978         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11979         (rx_mode_dependent_address_p): ...this. Make static. Change argument
11980         type to const_rtx.
11981         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11982
11983 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11984
11985         * config/stormy16/constraints.md: New file.
11986         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11987         Use satisfies_constraint_Q and satisfies_constraint_R.
11988         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11989         Delete.
11990         (xstormy16_legitiamte_address_p): Declare.
11991         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11992         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11993         (EXTRA_CONSTRAINT): Delete.
11994         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
11995         Un-staticize.
11996         (xstormy16_extra_constraint_p): Delete.
11997
11998 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11999
12000         PR tree-optimization/46494
12001         * loop-unroll.c (split_edge_and_insert): Adjust comment.
12002         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12003         (pass_rtl_loop_done): Add TODO_verify_flow.
12004         * fwprop.c (pass_rtl_fwprop): Likewise.
12005         * modulo-sched.c (pass_sms): Likewise.
12006         * tree-ssa-dom.c (pass_dominator): Likewise.
12007         * tree-ssa-loop-ch.c (pass_ch): Likewise.
12008         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12009         (pass_tree_loop_done): Likewise.
12010         * tree-ssa-pre.c (execute_pre): Likewise.
12011         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12012         * tree-ssa-sink.c (pass_sink_code): Likewise.
12013         * tree-vrp.c (pass_vrp): Likewise.
12014
12015 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12016
12017         * config/v850/constraints.md: New file.
12018         * config/v850/v850.md: Include it.
12019         * config/v850/predicates.md (reg_or_0_operand): Use
12020         satisfies_constraint_G.
12021         (special_symbolref_operand): Use satisfies_constraint_K.
12022         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12023         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12024         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12025         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12026         (EXTRA_CONSTRAINT): Delete.
12027         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12028         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12029         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
12030
12031 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
12032
12033         PR target/47696
12034         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12035         description.
12036
12037 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
12038
12039         * config/mcore/constraints.md: New file.
12040         * config/mcore/mcore.md: Include it.
12041         * config/mcore/mcore.c (reg_class_from_letter): Delete.
12042         * config/mcore/mcore.h (reg_class_from_letter): Delete.
12043         (REG_CLASS_FROM_LETTER): Delete.
12044         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12045         insn_const_int_ok_for_constraint.
12046         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12047         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12048         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12049         (EXTRA_CONSTRAINT): Delete.
12050
12051 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12052
12053         PR ada/41929
12054         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12055         (IS_SIGHANDLER): Define.
12056         (sparc64_is_sighandler): New function, split off from
12057         sparc64_fallback_frame_state.
12058         (sparc_is_sighandler): New function, split off from
12059         sparc_fallback_frame_state.
12060         (sparc64_fallback_frame_state): Merge with ...
12061         (sparc_fallback_frame_state): ... this into ...
12062         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
12063         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
12064         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
12065         stack instead of hardcoded offsets.
12066
12067 2011-02-14  Andriy Gapon  <avg@freebsd.org>
12068
12069         PR target/45808
12070         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12071
12072 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12073
12074         * configure: Regenerate.
12075
12076 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
12077
12078         PR driver/45731
12079         * gcc.c (asm_options): Correct spec matching --target-help.
12080
12081 2011-02-12  Martin Jambor  <mjambor@suse.cz>
12082
12083         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12084         to gimple call error.
12085
12086 2011-02-12  Mike Stump  <mikestump@comcast.net>
12087
12088         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12089         comments in backslash regions.
12090
12091 2011-02-12  Mike Stump  <mikestump@comcast.net>
12092             Jakub Jelinek  <jakub@redhat.com>
12093             Iain Sandoe  <iains@gcc.gnu.org>
12094
12095         PR target/47324
12096         * dwarf2out.c (output_cfa_loc): When required, apply the
12097         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12098         (output_loc_sequence): Likewise.
12099         (output_loc_operands_raw): Likewise.
12100         (output_loc_sequence_raw): Likewise.
12101         (output_cfa_loc): Likewise.
12102         (output_loc_list): Suppress register number adjustment when
12103         calling output_loc_sequence()
12104         (output_die): Likewise.
12105
12106 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
12107
12108         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12109         Remove macros.
12110         * config/xtensa/xtensa.c (xtensa_register_move_cost,
12111         xtensa_memory_move_cost): New functions.
12112         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
12113
12114 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
12115
12116         PR lto/47225
12117         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
12118         in the current directory.
12119         * configure: Rebuilt.
12120
12121 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12122
12123         * config/darwin.c (darwin_override_options): Add a hunk missed
12124         from the commit of r168571.  Trim comment line lengths and
12125         correct indents of the preceding block.
12126
12127 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
12128
12129         * gcc.c (driver_handle_option): Concatenate the argument to -F with
12130         the switch.
12131
12132 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12133
12134         * common.opt (nostartfiles): New Driver option.
12135
12136 2011-02-11  Xinliang David Li  <davidxl@google.com>
12137
12138         PR tree-optimization/47707
12139         * tree-chrec.c (convert_affine_scev): Keep type precision.
12140
12141 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
12142
12143         PR tree-optimization/47420
12144         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
12145
12146 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
12147
12148         PR rtl-optimization/47614
12149         * rtl.h (check_for_inc_dec): Declare.
12150         * dse.c (check_for_inc_dec): Externalize...
12151         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
12152         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
12153
12154 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
12155
12156         PR driver/47678
12157         * gcc.c (main): Do not compile inputs if there were errors in
12158         option handling.
12159         * opts-common.c (read_cmdline_option): Check for wrong language
12160         after other error checks.
12161
12162 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
12163
12164         * cgraph.c: Fix comment typos.
12165         * cgraph.h: Likewise.
12166         * cgraphunit.c: Likewise.
12167         * ipa-cp.c: Likewise.
12168         * ipa-inline.c: Likewise.
12169         * ipa-prop.c: Likewise.
12170         * ipa-pure-const.c: Likewise.
12171         * ipa-ref.c: Likewise.
12172         * ipa-reference.c: Likewise.
12173
12174 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
12175
12176         PR debug/47684
12177         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
12178
12179 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12180
12181         PR testsuite/47400
12182         * doc/sourcebuild.texi (Require Support): Document
12183         dg-require-ascii-locale.
12184
12185 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
12186
12187         * doc/lto.texi (Write summary): Fix missing parentheses.
12188
12189 2011-02-10  DJ Delorie  <dj@redhat.com>
12190
12191         * config/m32c/m32c.c (m32c_option_override): Disable
12192         -fcombine-stack-adjustments until flag value tracking and compare
12193         optimization can be rewritten.
12194
12195 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
12196
12197         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
12198         PROCESSOR_POWER7.
12199         (PROCESSOR_DEFAULT64): Likewise.
12200
12201 2011-02-10  Richard Henderson  <rth@redhat.com>
12202
12203         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
12204         change from 2011-02-03.
12205         * config/rx/rx.c (flags_from_code): Likewise.
12206         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
12207         is valid, n/pz otherwise.
12208         (rx_select_cc_mode): Return CCmode if Y is not zero.
12209
12210 2011-02-10  Richard Guenther  <rguenther@suse.de>
12211
12212         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
12213
12214 2011-02-10  Richard Guenther  <rguenther@suse.de>
12215
12216         PR tree-optimization/47677
12217         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12218
12219 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
12220
12221         PR target/47665
12222         * combine.c (make_compound_operation): Only change shifts into
12223         multiplication for SCALAR_INT_MODE_P.
12224
12225 2011-02-10  Jie Zhang  <jie@codesourcery.com>
12226
12227         PR testsuite/47622
12228         Revert
12229         2011-02-05  Jie Zhang  <jie@codesourcery.com>
12230         PR debug/42631
12231         * web.c (entry_register): Don't clobber the number of the
12232         first uninitialized reference in used[].
12233
12234 2011-02-09  Richard Guenther  <rguenther@suse.de>
12235
12236         PR tree-optimization/47664
12237         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12238         all edges again.
12239
12240 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
12241
12242         PR target/46481
12243         PR target/47032
12244         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12245         PROCESSOR_POWER7.
12246         (PROCESSOR_DEFAULT64): Same.
12247         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12248
12249 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12250
12251         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12252
12253 2011-02-09  Martin Jambor  <mjambor@suse.cz>
12254
12255         PR middle-end/45505
12256         * tree-sra.c (struct access): New flags grp_scalar_read and
12257         grp_scalar_write.  Changed description of assignment read and write
12258         flags.
12259         (dump_access): Dump new flags, reorder all of them.
12260         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12261         to detect multiple scalar reads.
12262         (analyze_access_subtree): Use the new scalar read write flags instead
12263         of the old flags.  Adjusted comments.
12264
12265 2011-02-08  DJ Delorie  <dj@redhat.com>
12266
12267         PR target/47548
12268         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12269         patterns.
12270
12271 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12272
12273         * config/m68k/uclinux.opt: New.
12274         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12275
12276 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12277
12278         * config/cris/elf.opt (sim): New Driver option.
12279
12280 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12281
12282         * config/xtensa/elf.opt: New.
12283         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12284
12285 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12286
12287         * config/vax/elf.opt: New.
12288         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12289
12290 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12291
12292         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12293
12294 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12295
12296         * config/gnu-user.opt: New.
12297         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12298         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12299         *-*-uclinux*): Use gnu-user.opt.
12300
12301 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
12302
12303         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12304         * config/i386/gnu.h (CPP_SPEC): Likewise.
12305
12306 2011-02-08  Ian Lance Taylor  <iant@google.com>
12307
12308         * common.opt (fcx-limited-range): Add SetByCombined flag.
12309         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12310         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12311         (fassociative-math, freciprocal-math): Likewise.
12312         (funsafe-math-optimizations): Likewise.
12313         * opth-gen.awk: Handle SetByCombined.
12314         * optc-gen.awk: Likewise.
12315         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
12316         (set_unsafe_math_optimizations_flags): Likewise.
12317         * doc/options.texi (Option properties): Document SetByCombined.
12318
12319 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12320
12321         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12322         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12323         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12324         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12325         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12326
12327 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
12328
12329         PR tree-optimization/46834
12330         PR tree-optimization/46994
12331         PR tree-optimization/46995
12332         * graphite-sese-to-poly.c (used_outside_reduction): New.
12333         (detect_commutative_reduction): Call used_outside_reduction.
12334         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
12335         translate_scalar_reduction_to_array only when at least one
12336         loop-phi/close-phi tuple has been detected.
12337
12338 2011-02-08  Richard Guenther  <rguenther@suse.de>
12339
12340         PR middle-end/47639
12341         * tree-vect-generic.c (expand_vector_operations_1): Update
12342         stmts here ...
12343         (expand_vector_operations): ... not here.  Cleanup EH info
12344         and the CFG if required.
12345
12346 2011-02-08  Richard Guenther  <rguenther@suse.de>
12347
12348         PR tree-optimization/47641
12349         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
12350         require type compatibility.
12351
12352 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12353
12354         * gimple-low.c (lower_function_body): Don't remove the location of
12355         the return statement here.
12356         (lower_gimple_return): Do it here instead but only if the return
12357         statement is actually used twice.
12358
12359 2011-02-08  Richard Guenther  <rguenther@suse.de>
12360
12361         PR tree-optimization/47632
12362         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
12363         unused up_to_stmt parameter, return whether cfg-cleanup is
12364         necessary, remove EH info properly.
12365         (forward_propagate_into_gimple_cond): Adjust caller.
12366         (forward_propagate_into_cond): Likewise.
12367         (forward_propagate_comparison): Likewise.
12368         (tree_ssa_forward_propagate_single_use_vars): Make
12369         forward_propagate_comparison case similar to the two others.
12370
12371 2011-02-08  Nick Clifton  <nickc@redhat.com>
12372
12373         * config/mn10300/mn10300.opt (mliw): New command line option.
12374         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
12375         (liw_bundling): New automaton.
12376         (liw): New attribute.
12377         (liw_op): New attribute.
12378         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
12379         (movsi_internal): Add LIW attributes.
12380         (andsi3): Likewise.
12381         (iorsi3): Likewise.
12382         (xorsi3): Likewise.
12383         (addsi3): Separate register and immediate alternatives.
12384         Add LIW attributes.
12385         (subsi3): Likewise.
12386         (cmpsi): Likewise.
12387         (aslsi3): Likewise.
12388         (lshrsi3): Likewise.
12389         (ashrsi3): Likewise.
12390         (liw): New pattern.
12391         * config/mn10300/mn10300.c (liw_op_names): New
12392         (mn10300_print_operand): Handle 'W' operand descriptor.
12393         (extract_bundle): New function.
12394         (check_liw_constraints): New function.
12395         (liw_candidate): New function.
12396         (mn10300_bundle_liw): New function.
12397         (mn10300_reorg): New function.
12398         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12399         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
12400         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
12401         __LIW__ or __NO_LIW__.
12402         * doc/invoke.texi: Describe the -mliw command line option.
12403
12404 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12405
12406         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
12407         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12408         pthread_mutex_unlock): Remove.
12409         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
12410         * config/pa/t-pa64: Likewise.
12411         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
12412         shared libc if not linking against libpthread.
12413         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
12414
12415 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
12416
12417         PR target/47558
12418         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
12419         on 10.6 and later to ensure that we always use the unwinder from
12420         the system.  Only add -no_compact_unwind when tarteting darwin
12421         10.6 or later.
12422
12423 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
12424
12425         PR target/46997
12426         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
12427         (vec_interleave_lowv2sf): Ditto.
12428         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
12429         (vec_extract_oddv2sf): Ditto.
12430
12431 2011-02-07  Mike Stump  <mikestump@comcast.net>
12432
12433         PR target/42333
12434         Add __ieee_divdc3 entry point.
12435         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
12436         entry point.
12437         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
12438         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
12439         * config/darwin.c (darwin_rename_builtins): Add.
12440         * config/darwin-protos.h (darwin_rename_builtins): Add.
12441
12442 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
12443
12444         PR target/47636
12445         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
12446         for the condition.
12447
12448 2011-02-07  Mike Stump  <mikestump@comcast.net>
12449
12450         * config/darwin.opt (mmacosx-version-min): Update default OS version.
12451
12452 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
12453
12454         PR target/47534
12455         * config/avr/libgcc.S (exit): Move .endfunc
12456
12457 2011-02-07  Richard Guenther  <rguenther@suse.de>
12458
12459         PR tree-optimization/47615
12460         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
12461         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
12462         (run_scc_vn): Initialize it.
12463         (visit_reference_op_load): Use it.
12464         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
12465
12466 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12467
12468         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
12469         DImode trapping arithmetic libfuncs.
12470
12471 2011-02-07  Richard Guenther  <rguenther@suse.de>
12472
12473         PR tree-optimization/47621
12474         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
12475         two duplicates ...
12476         (execute_update_addresses_taken): ... here.  Make it more
12477         conservative in what we accept.
12478
12479 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12480
12481         * config/sparc/freebsd.h (ASM_SPEC): Define.
12482         * config/sparc/vxworks.h (ASM_SPEC): Define.
12483
12484 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12485
12486         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12487
12488 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
12489
12490         * doc/invoke.texi: Remove reference to compiler internals from
12491         user documentation.
12492
12493         * reg-notes.def: Remove REG_VALUE_PROFILE.
12494         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
12495
12496 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
12497
12498         PR middle-end/47610
12499         * varasm.c (default_section_type_flags): If decl is NULL,
12500         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
12501
12502 2011-02-05  Jie Zhang  <jie@codesourcery.com>
12503
12504         PR debug/42631
12505         * web.c (entry_register): Don't clobber the number of the
12506         first uninitialized reference in used[].
12507
12508 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
12509
12510         PR tree-optimization/46194
12511         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12512         (build_classic_dist_vector_1): Do not represent classic distance
12513         vectors when the access functions are variating in different loops.
12514
12515 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12516
12517         * config/mips/iris6.opt: New.
12518         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12519
12520 2011-02-04  Richard Henderson  <rth@redhat.com>
12521             Steve Ellcey  <sje@cup.hp.com>
12522
12523         PR target/46997
12524         * config/ia64/predicates.md (mux1_brcst_element): New.
12525         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12526         * config/ia64/ia64.c (ia64_unpack_assemble): New.
12527         (ia64_unpack_sign): New.
12528         (ia64_expand_unpack): Rewrite using new routines.
12529         (ia64_expand_widen_sum): Ditto.
12530         (ia64_expand_dot_prod_v8qi): Ditto.
12531         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12532         routines, add endian check.
12533         (pmpy2_even): Rename from pmpy2_r, add endian check.
12534         (pmpy2_odd): Rename from pmpy2_l, add endian check.
12535         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12536         (vec_widen_smult_hi_v4hi): Ditto.
12537         (vec_widen_umult_lo_v4hi): Ditto.
12538         (vec_widen_umult_hi_v4hi): Ditto.
12539         (mulv2si3): Change endian checks.
12540         (sdot_prodv4hi): Rewrite with new calls.
12541         (udot_prodv4hi): New.
12542         (vec_pack_ssat_v4hi): Add endian check.
12543         (vec_pack_usat_v4hi): Ditto.
12544         (vec_pack_ssat_v2si): Ditto.
12545         (max1_even): Rename from max1_r, add endian check.
12546         (max1_odd): Rename from max1_l, add endian check.
12547         (*mux1_rev): Format change.
12548         (*mux1_mix): Ditto.
12549         (*mux1_shuf): Ditto.
12550         (*mux1_alt): Ditto.
12551         (*mux1_brcst_v8qi): Use new predicate.
12552         (vec_extract_evenv8qi): Remove endian check.
12553         (vec_extract_oddv8qi): Ditto.
12554         (vec_interleave_lowv4hi): Format change.
12555         (vec_interleave_highv4hi): Ditto.
12556         (mix2_even): Rename from mix2_r, add endian check.
12557         (mix2_odd): Rename from mux2_l, add endian check.
12558         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12559         (vec_extract_evenodd_helper): Format change.
12560         (vec_extract_evenv4hi): Remove endian check.
12561         (vec_extract_oddv4hi): Remove endian check.
12562         (vec_interleave_lowv2si): Format change.
12563         (vec_interleave_highv2si): Format change.
12564         (vec_initv2si): Remove endian check.
12565         (vecinit_v2si): Add endian check.
12566         (reduc_splus_v2sf): Add endian check.
12567         (reduc_smax_v2sf): Ditto.
12568         (reduc_smin_v2sf): Ditto.
12569         (vec_initv2sf): Remove endian check.
12570         (fpack): Add endian check.
12571         (fswap): Add endian check.
12572         (vec_interleave_highv2sf): Add endian check.
12573         (vec_interleave_lowv2sf): Add endian check.
12574         (fmix_lr): Add endian check.
12575         (vec_setv2sf): Format change.
12576         (*vec_extractv2sf_0_be): Use shift to extract operand.
12577         (*vec_extractv2sf_1_be): New.
12578         (vec_pack_trunc_v4hi): Add endian check.
12579         (vec_pack_trunc_v2si): Format change.
12580
12581 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
12582
12583         PR inline-asm/23200
12584         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
12585         do bb, locus and block comparison and disallow loads if it is not set.
12586         (stmt_is_replaceable_p): New function.
12587         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12588         callers.
12589         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12590         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12591         SSA_NAME_DEF_STMT.
12592         * tree-flow.h (stmt_is_replaceable_p): New prototype.
12593
12594 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12595
12596         * config/rs6000/xilinx.opt: New.
12597         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12598
12599 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12600
12601         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12602
12603 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
12604
12605         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12606         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12607         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12608         secondary_reload_info, xtensa_secondary_reload): Remove.
12609         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12610         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12611         (xtensa_preferred_reload_class): Make static. Change return and
12612         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12613         Use CONST_DOUBLE_P predicate.
12614         (xtensa_preferred_output_reload_class): New function.
12615         (xtensa_secondary_reload): Make static.
12616
12617 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
12618
12619         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12620         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12621         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12622
12623 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12624
12625         PR middle-end/31490
12626         * output.h (SECTION_RELRO): Define.
12627         (SECTION_MACH_DEP): Adjust.
12628         (get_variable_section): New prototype.
12629         * varpool.c (varpool_finalize_named_section_flags): New function.
12630         (varpool_assemble_pending_decls): Call it.
12631         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12632         * cgraphunit.c (cgraph_output_in_order): Call
12633         varpool_finalize_named_section_flags.
12634         * varasm.c (get_section): Allow section flags conflicts between
12635         relro and read-only sections if the section hasn't been declared yet.
12636         Set SECTION_OVERRIDE after diagnosing section type conflict.
12637         (get_variable_section): No longer static.
12638         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12639         readonly sections that need relocations.
12640         (decl_readonly_section_1): New function.
12641         (decl_readonly_section): Use it.
12642
12643         Revert:
12644         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
12645                     Steve Ellcey  <sje@cup.hp.com>
12646
12647         PR middle-end/31490
12648         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12649         if section attribute used.
12650
12651 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12652
12653         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12654         * config/darwin.c (SECTION_NO_ANCHOR): Define.
12655         (darwin_init_sections): Remove assertion.
12656
12657 2011-02-03  Nick Clifton  <nickc@redhat.com>
12658
12659         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12660         lt and ge.
12661         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
12662         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12663         instead of "n" and "pz".
12664         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12665         CC_FLAG_S.
12666
12667 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12668
12669         PR target/47312
12670         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12671         fma, expand FMA_EXPR as fma{,f,l} call.
12672
12673         PR lto/47274
12674         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12675         copy them into a unsigned char variable and pass address of it to
12676         lto_output_data_stream.
12677
12678         PR target/47564
12679         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12680         around backend_init_target and lang_dependent_init_target calls.
12681         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12682         (verify_cgraph_node): Don't call set_cfun here.  Use
12683         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12684         Set error_found for incorrectly represented calls to thunks.
12685
12686 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12687
12688         PR debug/43092
12689         PR rtl-optimization/43494
12690         * rtl.h (for_each_inc_dec_fn): New type.
12691         (for_each_inc_dec): Declare.
12692         * rtlanal.c (struct for_each_inc_dec_ops): New type.
12693         (for_each_inc_dec_find_inc_dec): New fn.
12694         (for_each_inc_dec_find_mem): New fn.
12695         (for_each_inc_dec): New fn.
12696         * dse.c (struct insn_size): Remove.
12697         (replace_inc_dec, replace_inc_dec_mem): Remove.
12698         (emit_inc_dec_insn_before): New fn.
12699         (check_for_inc_dec): Use it, along with for_each_inc_dec.
12700         (canon_address): Pass mem modes to cselib_lookup.
12701         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
12702         (cselib_lookup_from_insn): Likewise.
12703         (cselib_subst_to_values): Likewise.
12704         * cselib.c (find_slot_memmode): New var.
12705         (cselib_find_slot): New fn.  Use it instead of
12706         htab_find_slot_with_hash everywhere.
12707         (entry_and_rtx_equal_p): Use find_slot_memmode.
12708         (autoinc_split): New fn.
12709         (rtx_equal_for_cselib_p): Rename and implement in terms of...
12710         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
12711         Deal with autoinc.  Special-case recursion into MEMs.
12712         (cselib_hash_rtx): Likewise.
12713         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
12714         address and MEM modes.
12715         (cselib_subst_to_values): Add memmode, pass it on.
12716         Deal with autoinc.
12717         (cselib_lookup): Add memmode argument, pass it on.
12718         (cselib_lookup_from_insn): Add memmode.
12719         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12720         (struct cselib_record_autoinc_data): New.
12721         (cselib_record_autoinc_cb): New fn.
12722         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
12723         mode to cselib_lookup.  Reset autoinced REGs here instead of...
12724         (cselib_process_insn): ... here.
12725         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12726         to cselib_lookup.
12727         (add_uses): Likewise, also to cselib_subst_to_values.
12728         (add_stores): Likewise.
12729         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
12730         cselib_subst_to_values.
12731         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
12732         * gcse.c (do_local_cprop): Adjusted.
12733         * postreload.c (reload_cse_simplify_set): Adjusted.
12734         (reload_cse_simplify_operands): Adjusted.
12735         * sel-sched-dump (debug_mem_addr_value): Pass mode.
12736
12737 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12738
12739         PR tree-optimization/45122
12740         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12741         unsafe assumptions when there's more than one loop exit.
12742
12743 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12744
12745         PR target/47272
12746         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12747         Document using vector double with the load/store builtins, and
12748         that the load/store builtins always use Altivec instructions.
12749
12750         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12751         to use altivec memory instructions, even on VSX.
12752         (vector_altivec_store_<mode>): Ditto.
12753
12754         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12755         function.
12756
12757         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12758         V2DF, V2DI support to load/store overloaded builtins.
12759
12760         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12761         altivec load/store builtins for V2DF/V2DI types.
12762
12763         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12764         set avoid indexed addresses on power6 if -maltivec.
12765         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12766         vector_altivec_load/vector_altivec_store builtins.
12767         (altivec_expand_st_builtin): Ditto.
12768         (altivec_expand_builtin): Add VSX memory builtins.
12769         (rs6000_init_builtins): Add V2DI types to internal types.
12770         (altivec_init_builtins): Add support for V2DF/V2DI altivec
12771         load/store builtins.
12772         (rs6000_address_for_altivec): Insure memory address is appropriate
12773         for Altivec.
12774
12775         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12776         vec_vsx_ld and vec_vsx_st.
12777         (vsx_store_<mode>): Ditto.
12778
12779         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12780         variables to hold long long types for VSX vector memory builtins.
12781         (RS6000_BTI_unsigned_long_long): Ditto.
12782         (long_long_integer_type_internal_node): Ditti.
12783         (long_long_unsigned_type_internal_node): Ditti.
12784
12785         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12786         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12787         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12788
12789         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12790         short cuts.
12791         (vec_vsx_st): Ditto.
12792
12793 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12794
12795         * config/pa/pa-hpux10.opt: New.
12796         * config/hpux11.opt (pthread): New Driver option.
12797         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12798         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12799
12800 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12801
12802         * config/ia64/vms.opt: New.
12803         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12804
12805 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
12806
12807         PR target/47580
12808         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12809         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12810         generator functions.
12811         (vsx_floatuns<VSi><mode>2): Ditto.
12812         (vsx_fix_trunc<mode><VSi>2): Ditto.
12813         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12814
12815 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12816
12817         * config/i386/djgpp.opt (posix): New Driver option.
12818
12819 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12820
12821         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12822         Move to the unsupported targets list.
12823
12824 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
12825
12826         PR rtl-optimization/47525
12827         * df-scan.c: Update copyright years.
12828         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12829         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12830
12831 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12832
12833         * config/i386/sysv4.h (TARGET_VERSION): Remove.
12834         (SUBTARGET_RETURN_IN_MEMORY): Remove.
12835         (ASM_OUTPUT_ASCII): Remove.
12836         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12837
12838 2011-02-02  Jeff Law  <law@redhat.com>
12839
12840         PR middle-end/47543
12841         * reload.c (find_reloads_address): Handle reg+d address where both
12842         components are invalid by reloading the entire address.
12843
12844 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12845             Richard Guenther  <rguenther@suse.de>
12846
12847         PR tree-optimization/40979
12848         PR bootstrap/47044
12849         * passes.c (init_optimization_passes): After LIM call copy_prop
12850         and DCE to clean up.
12851         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12852
12853 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12854
12855         PR tree-optimization/47576
12856         PR tree-optimization/47555
12857         * doc/invoke.texi (scev-max-expr-complexity): Documented.
12858         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12859         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12860         * tree-scalar-evolution.c (follow_ssa_edge): Use
12861         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12862
12863 2011-02-02  Richard Guenther  <rguenther@suse.de>
12864
12865         PR tree-optimization/47566
12866         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12867
12868 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12869
12870         PR debug/47106
12871         PR debug/47402
12872         * tree-inline.c (declare_return_variable): Remove unused caller
12873         variable.
12874
12875         PR debug/47106
12876         PR debug/47402
12877         * tree-flow-inline.h (clear_is_used, is_used_p): New.
12878         * cfgexpand.c (account_used_vars_for_block): Use them.
12879         * tree-nrv.c (tree_nrv): Likewise.
12880         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12881         (dump_scope_block): Likewise.
12882         (remove_unused_locals): Likewise.
12883
12884         PR debug/47106
12885         PR debug/47402
12886         * tree-inline.c (declare_return_variable): Add result decl to
12887         local decls only once.
12888         * gimple-low.c (record_vars_into): Mark newly-created variables
12889         as referenced.
12890
12891 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12892
12893         PR debug/47498
12894         PR debug/47501
12895         PR debug/45136
12896         PR debug/45130
12897         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12898         debug insns.
12899         (no_real_insns_p, schedule_block, set_priorities): Drop special
12900         treatment of boundary debug insns.
12901         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12902         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12903         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12904         (BOUNDARY_DEBUG_INSN_P): Likewise.
12905         (SCHEDULE_DEBUG_INSN_P): Likewise.
12906         * sched-rgn.c (init_ready_list): Drop special treatment of
12907         boundary debug insns.
12908         * final.c (rest_of_clean_state): Clear notes' BB.
12909
12910 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12911
12912         * config/openbsd.opt (assert=): New Driver option.
12913
12914 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12915
12916         * config/i386/nto.opt: New.
12917         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12918
12919 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12920
12921         * config/i386/netware.opt: New.
12922         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12923
12924 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12925
12926         * config/interix.opt (posix): New Driver option.
12927
12928 2011-02-01  DJ Delorie  <dj@redhat.com>
12929
12930         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12931
12932         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12933         class for A0/A1.
12934
12935 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
12936
12937         PR tree-optimization/47561
12938         * toplev.c (process_options): Print the Graphite flags.  Add
12939         flag_loop_flatten to the list of options requiring Graphite.
12940
12941 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12942
12943         * config/i386/cygming.opt (posix): New Driver option.
12944
12945 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12946
12947         * config/arm/vxworks.opt: New.
12948         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12949
12950 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12951
12952         * config/alpha/elf.opt: New.
12953         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12954         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12955
12956 2011-02-01  Richard Guenther  <rguenther@suse.de>
12957
12958         PR tree-optimization/47559
12959         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12960         store-motion on references that can throw.
12961
12962 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
12963
12964         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12965         * tree-pass.h (TDF_CSELIB): New macro.
12966         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12967         cselib_lookup): Check for it rather than for TDF_DETAILS.
12968
12969 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
12970
12971         PR driver/47547
12972         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12973         is HOST_BIT_BUCKET.
12974
12975         * opts.c (finish_options): Don't add x_aux_base_name if it is
12976         HOST_BIT_BUCKET.
12977
12978 2011-02-01  Richard Guenther  <rguenther@suse.de>
12979
12980         PR tree-optimization/47555
12981         Revert
12982         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
12983
12984         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12985
12986 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12987
12988         PR gcc/46692
12989         * config/lm32/t-lm32: Add multilib for all CPU options.
12990
12991 2011-02-01  Richard Guenther  <rguenther@suse.de>
12992
12993         PR tree-optimization/47541
12994         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12995         sure to have a field at offset zero.
12996
12997 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12998
12999         * config/arc/arc.opt (EB, EL): New Driver options.
13000
13001 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13002
13003         * config/alpha/osf5.opt: New.
13004         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13005
13006 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
13007
13008         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13009
13010 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
13011
13012         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13013         -floop-interchange.
13014         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13015         is an alias of -floop-interchange and that it requires the
13016         Graphite infrastructure.
13017         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13018         flag_loop_interchange based on the value of flag_tree_loop_linear.
13019
13020 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
13021             Richard Guenther  <rguenther@suse.de>
13022
13023         PR tree-optimization/47538
13024         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13025         type instead of r1type, except for comparisons.  For right
13026         shifts and comparisons punt if there are mismatches in
13027         sizetype vs. non-sizetype types.
13028
13029 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13030
13031         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13032         avx_runtime.
13033
13034 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13035
13036         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13037         version number.
13038         * configure: Regenerate.
13039
13040 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13041
13042         * configure.ac (gcc_cv_ld_static_option): Define.
13043         (gcc_cv_ld_dynamic_option): Define.
13044         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13045         instead.
13046         (HAVE_LD_STATIC_DYNAMIC): Update message.
13047         (LD_STATIC_OPTION): Define.
13048         (LD_DYNAMIC_OPTION): Define.
13049         * configure: Regenerate.
13050         * config.in: Regenerate.
13051         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13052         HAVE_LD_STATIC_DYNAMIC]: Use them.
13053
13054 2011-01-31  Nick Clifton  <nickc@redhat.com>
13055
13056         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13057         registers inside interrupt handlers if the handler is not a leaf
13058         function.
13059
13060 2011-01-31  Nick Clifton  <nickc@redhat.com>
13061
13062         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13063         reg_renumber returning an INVALID_REGNUM.
13064
13065 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13066
13067         PR libgcj/44341
13068         * doc/install.texi: Document host options discarded when cross
13069         configuring target libraries.
13070
13071 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
13072
13073         Reverted:
13074         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
13075         PR debug/45136
13076         PR debug/45130
13077         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13078         debug insns.
13079         (no_real_insns_p, schedule_block, set_priorities): Drop special
13080         treatment of boundary debug insns.
13081         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13082         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13083         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13084         (BOUNDARY_DEBUG_INSN_P): Likewise.
13085         (SCHEDULE_DEBUG_INSN_P): Likewise.
13086         * sched-rgn.c (init_ready_list): Drop special treatment of
13087         boundary debug insns.
13088         * final.c (rest_of_clean-state): Clear notes' BB.
13089
13090 2011-01-31  Alan Modra  <amodra@gmail.com>
13091
13092         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13093         toc relative expressions as we do in print_operand_address.
13094
13095 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
13096
13097         * doc/extend.texi: Follow spelling conventions.
13098         * doc/invoke.texi: Fix a typo.
13099
13100 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
13101
13102         * config/hpux11.opt: New.
13103         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
13104         ia64*-*-hpux*): Use hpux11.opt.
13105
13106 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
13107
13108         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
13109         to tmake_file.
13110
13111 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13112
13113         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
13114         support sites.
13115
13116 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13117
13118         * doc/install.texi (Binaries): Remove outdated reference for
13119         Motorola 68HC11/68HC12 downloads.
13120
13121 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
13122
13123         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
13124         Drepper's paper.
13125
13126 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
13127
13128         PR bootstrap/47147
13129         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
13130         used by NetBSD.
13131
13132 2011-01-28  Ahmad Sharif  <asharif@google.com>
13133
13134         * value-prof.c (check_counter): Corrected error message.
13135
13136 2011-01-29  Jie Zhang  <jie@codesourcery.com>
13137
13138         * config/arm/arm.c (arm_legitimize_reload_address): New.
13139         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13140         arm_legitimize_reload_address.
13141         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
13142
13143 2011-01-28  Ian Lance Taylor  <iant@google.com>
13144
13145         * godump.c (go_define): Ignore macros whose definitions include
13146         two adjacent operands.
13147
13148 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
13149
13150         PR target/42894
13151         * varasm.c (force_const_mem): Store copy of x in desc->constant
13152         instead of x itself.
13153         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
13154         itself into REG_EQUAL note.
13155
13156 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
13157
13158         * config/freebsd.opt (posix, rdynamic): New Driver options.
13159
13160 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13161
13162         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
13163         -Bstatic/-Bdynamic.
13164         * configure: Regenerate.
13165
13166 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
13167
13168         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
13169         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
13170
13171 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
13172
13173         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
13174         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
13175         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13176         (s390_preferred_reload_class): Make static. Change return and
13177         'rclass' argument type to reg_class_t.
13178
13179 2011-01-27  Jan Hubicka  <jh@suse.cz>
13180
13181         PR middle-end/46949
13182         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
13183         (process_function_and_variable_attributes): Check defined weakrefs.
13184
13185 2011-01-27  Martin Jambor  <mjambor@suse.cz>
13186
13187         PR tree-optimization/47228
13188         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
13189         build_ref_for_offset.
13190
13191 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13192
13193         * config/spu/spu-elf.h (ASM_SPEC): Remove.
13194
13195 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
13196
13197         PR rtl-optimization/46856
13198         * postreload.c (reload_combine_recognize_const_pattern): Do not
13199         separate cc0 setter and user on cc0 targets.
13200
13201 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
13202
13203         PR c/43082
13204         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
13205         passed a VOID_TYPE expression, immediately emit an error and
13206         return error_mark_node.
13207
13208 2011-01-26  Jeff Law  <law@redhat.com>
13209
13210         PR rtl-optimization/47464
13211         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
13212         rather than may_trap_p as needed.
13213
13214 2011-01-26  DJ Delorie  <dj@redhat.com>
13215
13216         PR rtl-optimization/46878
13217         * combine.c (insn_a_feeds_b): Check for the implicit cc0
13218         setter/user dependency as well.
13219
13220 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13221
13222         PR rtl-optimization/44469
13223         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13224         after removing trivially dead basic blocks.
13225
13226 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13227
13228         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13229         * config/frv/frv.h (LINK_SPEC): Likewise.
13230         * config/i386/netware.h (LINK_SPEC): Likewise.
13231         * config/m68k/linux.h (ASM_SPEC): Likewise.
13232         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13233         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13234         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13235         * config/sparc/linux.h (ASM_SPEC): Likewise.
13236         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13237         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13238
13239 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13240
13241         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13242         * config/frv/frv.h (ASM_SPEC): Likewise.
13243         * config/m68k/linux.h (ASM_SPEC): Likewise.
13244         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13245         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13246         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13247         * config/sparc/linux.h (ASM_SPEC): Likewise.
13248         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13249         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13250
13251 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13252
13253         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13254         * config/frv/frv.h (LINK_SPEC): Likewise.
13255         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13256
13257 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13258
13259         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13260         * config/frv/frv.h (ASM_SPEC): Likewise.
13261         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13262         * config/m68k/linux.h (ASM_SPEC): Likewise.
13263         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13264         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13265         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13266         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13267         * config/sparc/linux.h (ASM_SPEC): Likewise.
13268         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13269         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13270         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13271
13272 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
13273
13274         PR target/46997
13275         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13276         (*mux2): Ditto.
13277         (vec_extract_evenodd_help): Ditto.
13278         (vec_extract_evenv4hi): Ditto.
13279         (vec_extract_oddv4hi): Ditto.
13280         (vec_interleave_lowv2si): Ditto.
13281         (vec_interleave_highv2si): Ditto.
13282         (vec_extract_evenv2si): Ditto.
13283         (vec_extract_oddv2si: Ditto.
13284         (vec_pack_trunc_v2si): Ditto.
13285
13286 2011-01-22  Jan Hubicka  <jh@suse.cz>
13287
13288         PR target/47237
13289         * cgraph.h (cgraph_local_info): New field can_change_signature.
13290         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13291         signature can change.
13292         (ipcp_estimate_growth): Call sequence simplify only if calle signature
13293         can change.
13294         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13295         (cgraph_function_versioning): We can not change signature of functions
13296         that don't allow that.
13297         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13298         (lto_input_node): Likewise.
13299         * ipa-inline.c (compute_inline_parameters): Compute
13300         local.can_change_signature.
13301         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
13302         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13303         functions that can not change signature.
13304         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
13305         init_cumulative_args): Do not use local calling conventions
13306         for functions that can not change signature.
13307
13308 2011-01-22  Jan Hubicka  <jh@suse.cz>
13309
13310         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13311
13312 2011-01-26  Richard Guenther  <rguenther@suse.de>
13313
13314         PR tree-optimization/47190
13315         * cgraphunit.c (process_common_attributes): New function.
13316         (process_function_and_variable_attributes): Use it.
13317
13318 2011-01-26  Richard Guenther  <rguenther@suse.de>
13319
13320         PR lto/47423
13321         * cgraphbuild.c (record_eh_tables): Record reference to personality
13322         function.
13323
13324 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
13325
13326         PR debug/45454
13327         * sel-sched.c (moveup_expr): Don't let debug insns prevent
13328         non-debug insns from moving up.
13329
13330 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13331
13332         PR target/40125
13333         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
13334         t-dlldir{,-x} fragment for build and add it to tmake_file.
13335         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13336         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
13337         * config/i386/t-dlldir: New file.
13338         (SHLIB_DLLDIR): Define.
13339         * config/i386/t-dlldir-x: New file.
13340         (SHLIB_DLLDIR): Define.
13341         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
13342         (SHLIB_INSTALL): Use it.
13343
13344 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
13345
13346         PR target/47246
13347         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
13348         lower bound of the allowed Thumb-2 coprocessor load/store
13349         index range to -256. Add explaining comment.
13350
13351 2011-01-25  Ian Lance Taylor  <iant@google.com>
13352
13353         * godump.c (go_define): Improve lexing of macro expansion to only
13354         accept expressions which match Go spec.
13355
13356 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13357
13358         PR c++/43601
13359         * tree.c (handle_dll_attribute): Handle it.
13360         * doc/extend.texi (@item dllexport): Mention it.
13361         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
13362
13363 2011-01-25  Ian Lance Taylor  <iant@google.com>
13364
13365         PR tree-optimization/26854
13366         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
13367         (decl_jump_unsafe): Move higher in file, with no other change.
13368         (bind): Set has_jump_unsafe_decl if appropriate.
13369         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
13370         (check_earlier_gotos): Likewise.
13371         (c_check_switch_jump_warnings): Likewise.
13372
13373 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
13374
13375         * doc/invoke.texi (Warning Options): Add missing hyphen.
13376         (-fprofile-dir): Minor grammatical fixes.
13377         (-fbranch-probabilities): Likewise.
13378
13379 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
13380
13381         PR debug/45136
13382         PR debug/45130
13383         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13384         debug insns.
13385         (no_real_insns_p, schedule_block, set_priorities): Drop special
13386         treatment of boundary debug insns.
13387         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13388         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13389         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13390         (BOUNDARY_DEBUG_INSN_P): Likewise.
13391         (SCHEDULE_DEBUG_INSN_P): Likewise.
13392         * sched-rgn.c (init_ready_list): Drop special treatment of
13393         boundary debug insns.
13394         * final.c (rest_of_clean-state): Clear notes' BB.
13395
13396 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13397
13398         * Makefile.in (LAMBDA_H): Removed.
13399         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
13400         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
13401         lambda-trans.o, and tree-loop-linear.o.
13402         (lto-symtab.o): Remove dependence on LAMBDA_H.
13403         (tree-loop-linear.o): Remove rule.
13404         (lambda-mat.o): Same.
13405         (lambda-trans.o): Same.
13406         (lambda-code.o): Same.
13407         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
13408         (tree-vect-slp.o): Same.
13409         * hwint.h (gcd): Moved here.
13410         (least_common_multiple): Same.
13411         * lambda-code.c: Removed.
13412         * lambda-mat.c: Removed.
13413         * lambda-trans.c: Removed.
13414         * lambda.h: Removed.
13415         * tree-loop-linear.c: Removed.
13416         * lto-symtab.c: Do not include lambda.h.
13417         * omega.c (gcd): Removed.
13418         * passes.c (init_optimization_passes): Remove pass_linear_transform.
13419         * tree-data-ref.c (print_lambda_vector): Moved here.
13420         (lambda_vector_copy): Same.
13421         (lambda_matrix_copy): Same.
13422         (lambda_matrix_id): Same.
13423         (lambda_vector_first_nz): Same.
13424         (lambda_matrix_row_add): Same.
13425         (lambda_matrix_row_exchange): Same.
13426         (lambda_vector_mult_const): Same.
13427         (lambda_vector_negate): Same.
13428         (lambda_matrix_row_negate): Same.
13429         (lambda_vector_equal): Same.
13430         (lambda_matrix_right_hermite): Same.
13431         * tree-data-ref.h: Do not include lambda.h.
13432         (lambda_vector): Moved here.
13433         (lambda_matrix): Same.
13434         (dependence_level): Same.
13435         (lambda_transform_legal_p): Removed declaration.
13436         (lambda_collect_parameters): Same.
13437         (lambda_compute_access_matrices): Same.
13438         (lambda_vector_gcd): Same.
13439         (lambda_vector_new): Same.
13440         (lambda_vector_clear): Same.
13441         (lambda_vector_lexico_pos): Same.
13442         (lambda_vector_zerop): Same.
13443         (lambda_matrix_new): Same.
13444         * tree-flow.h (least_common_multiple): Removed declaration.
13445         * tree-parloops.c (lambda_trans_matrix): Moved here.
13446         (LTM_MATRIX): Same.
13447         (LTM_ROWSIZE): Same.
13448         (LTM_COLSIZE): Same.
13449         (LTM_DENOMINATOR): Same.
13450         (lambda_trans_matrix_new): Same.
13451         (lambda_matrix_vector_mult): Same.
13452         (lambda_transform_legal_p): Same.
13453         * tree-pass.h (pass_linear_transform): Removed declaration.
13454         * tree-ssa-loop.c (tree_linear_transform): Removed.
13455         (gate_tree_linear_transform): Removed.
13456         (pass_linear_transform): Removed.
13457         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
13458         flag_loop_interchange.
13459
13460 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13461
13462         PR tree-optimization/47265
13463         PR tree-optimization/47443
13464         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
13465         if name still has some uses.
13466
13467 2011-01-25  Martin Jambor  <mjambor@suse.cz>
13468
13469         PR tree-optimization/47382
13470         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
13471         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
13472
13473 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
13474
13475         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
13476         sjlj_except_unwind_info.
13477
13478 2011-01-25  Richard Guenther  <rguenther@suse.de>
13479
13480         PR tree-optimization/47426
13481         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
13482         visible functions results escape.
13483
13484 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13485
13486         PR target/45701
13487         * config/arm/arm.c (any_sibcall_uses_r3): New function.
13488         (arm_get_frame_offsets): Use it.
13489
13490 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13491             Jakub Jelinek  <jakub@redhat.com>
13492
13493         PR tree-optimization/47271
13494         * tree-if-conv.c (bb_postdominates_preds): New.
13495         (if_convertible_bb_p): Call bb_postdominates_preds.
13496         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
13497         (predicate_scalar_phi): Call bb_postdominates_preds.
13498
13499 2011-01-25  Nick Clifton  <nickc@redhat.com>
13500
13501         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
13502         * config/rx/rx.c (rx_function_value): Likewise.
13503         (rx_promote_function_mode): Likewise.
13504         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13505         in order to make it legitimate.
13506         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13507         make sure that the first operand is the same as the result register.
13508         (addsi3_unspec): Delete.
13509         (subdi3): Do not accept immediate operands.
13510         (subdi3_internal): Likewise.
13511
13512 2011-01-25  Jeff Law  <law@redhat.com>
13513
13514         PR rtl-optimization/37273
13515         * ira-costs.c (scan_one_insn): Detect constants living in memory and
13516         handle them like argument loads from stack slots.  Do not double
13517         count memory for memory constants and argument loads from stack slots.
13518
13519 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13520
13521         PR tree-optimization/47427
13522         PR tree-optimization/47428
13523         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13524         coalesce if the new root var would be TREE_READONLY.
13525
13526 2011-01-25  Richard Guenther  <rguenther@suse.de>
13527
13528         PR middle-end/47414
13529         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13530         correct type for TBAA.
13531
13532 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13533
13534         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13535         (close_phi_written_to_memory): Call for_each_index with
13536         dr_indices_valid_in_loop.
13537
13538 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13539
13540         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13541         when it is initialized.
13542
13543 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13544
13545         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13546         call to graphite_find_data_references_in_stmt.
13547         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13548         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
13549         call to graphite_find_data_references_in_stmt.
13550         (analyze_drs_in_stmts): Same.
13551         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13552         in which the scalar analysis of indices is performed.
13553         (create_data_ref): Same.  Update call to dr_analyze_indices.
13554         (find_data_references_in_stmt): Update call to create_data_ref.
13555         (graphite_find_data_references_in_stmt): Same.
13556         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13557         declaration.
13558         (create_data_ref): Same.
13559         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13560         call to create_data_ref.
13561
13562 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13563
13564         * graphite-sese-to-poly.c (build_poly_scop): Move
13565         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
13566
13567 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13568
13569         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13570         VAR_DECL, PARM_DECL, and RESULT_DECL.
13571
13572 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13573
13574         * graphite-dependences.c (reduction_dr_1): Allow several reductions
13575         in a reduction PBB.
13576         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13577         that have already been marked as PBB_IS_REDUCTION.
13578
13579 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13580
13581         * graphite-scop-detection.c (same_close_phi_node): New.
13582         (remove_duplicate_close_phi): New.
13583         (make_close_phi_nodes_unique): New.
13584         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13585
13586 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13587
13588         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13589         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13590         of both data references to be the same.
13591
13592 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13593
13594         * graphite-dependences.c (build_lexicographical_constraint): Remove
13595         the gdim parameter.
13596         (build_lexicographical_constraint): Adjust call to
13597         ppl_powerset_is_empty.
13598         (dependence_polyhedron): Same.
13599         (graphite_legal_transform_dr): Same.
13600         (graphite_carried_dependence_level_k): Same.
13601         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13602         parameter.
13603         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13604
13605 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13606
13607         * graphite-sese-to-poly.c
13608         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13609         (close_phi_written_to_memory): New.
13610         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13611         and unshare_expr.
13612
13613 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13614
13615         * doc/install.texi: Update the expected version number of PPL to 0.11.
13616         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13617         #if PPL_VERSION_MINOR < 11.
13618
13619 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13620
13621         * graphite-dependences.c: Include graphite-cloog-util.h.
13622         (new_poly_ddr): Inlined into dependence_polyhedron.
13623         (free_poly_ddr): Moved close by new_poly_ddr.
13624         (dependence_polyhedron_1): Renamed dependence_polyhedron.
13625         Early return NULL when ppl_powerset_is_empty returns true.
13626         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
13627         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
13628         (graphite_legal_transform_dr): Call new_poly_ddr.
13629         (graphite_carried_dependence_level_k): Same.
13630         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
13631         (dot_transformed_deps_stmt_1): Removed.
13632         (dot_deps_stmt_1): Call dot_deps_stmt_2.
13633         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
13634         (dot_deps_1): Call dot_deps_2.
13635         * Makefile.in (graphite-dependences.o): Add missing dependence on
13636         graphite-cloog-util.h.
13637
13638 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13639
13640         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13641         (build_lexicographical_constraint): Same.
13642         (dependence_polyhedron_1): Same.
13643         (graphite_legal_transform_dr): Same.
13644         (graphite_carried_dependence_level_k): Same.
13645         * graphite-ppl.c (ppl_powerset_is_empty): New.
13646         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13647         * tree-data-ref.c (dump_data_reference): Print the basic block index.
13648
13649 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13650
13651         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13652         the "a followed by b" relation and document it.
13653
13654 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13655
13656         * graphite-dependences.c (build_lexicographical_constraint): Stop the
13657         iteration when the bag of constraints is empty.
13658
13659 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13660
13661         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13662
13663 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13664
13665         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13666         nest and two loop depths as parameters.
13667         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13668         lst_perfect_nestify.
13669
13670 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13671
13672         * graphite-dependences.c (print_pddr): Call
13673         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13674
13675 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13676
13677         * graphite-ppl.c (debug_gmp_value): New.
13678         * graphite-ppl.h (debug_gmp_value): Declared.
13679
13680 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
13681
13682         * doc/install.texi: Document availability of cloog-0.16.
13683
13684 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
13685
13686         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13687         invalid postdominance info.
13688
13689 2011-01-24  Jan Hubicka  <jh@suse.cz>
13690
13691         PR c/21659
13692         * doc/extend.texi (weak pragma): Drop claim that it must
13693         appear before definition.
13694         * varasm.c (merge_weak, declare_weak): Only sanity check
13695         that DECL is not output at a time it is declared weak.
13696
13697 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
13698
13699         * machmode.def: Fixed comments.
13700
13701 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
13702
13703         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13704
13705 2011-01-24  Paul Koning  <ni1d@arrl.net>
13706
13707         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
13708         WORDS_BIG_ENDIAN.
13709
13710 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13711
13712         PR target/46519
13713         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13714         (block_info): Add scanned and prev.
13715         (move_or_delete_vzeroupper_2): Return if the basic block
13716         has been scanned and the upper 128bit state is unchanged
13717         from the last scan.
13718         (move_or_delete_vzeroupper_1): Return true if the exit
13719         state is changed.
13720         (move_or_delete_vzeroupper): Visit basic blocks using the
13721         work-list based algorithm based on vt_find_locations in
13722         var-tracking.c.
13723
13724         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13725
13726 2011-01-24  Nick Clifton  <nickc@redhat.com>
13727
13728         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13729         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13730         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
13731         then define __v850e1__.
13732         * doc/invoke.texi: Document -mv850es.
13733
13734 2011-01-24  Richard Henderson  <rth@redhat.com>
13735
13736         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13737         compound unordered comparisons.
13738         * config/rx/rx.c (rx_split_fp_compare): Remove.
13739         * config/rx/rx-protos.h: Update.
13740         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13741         (cbranchsf4): Don't call rx_split_fp_compare.
13742         (*cbranchsf4): Use rx_split_cbranch.
13743         (*cmpsf): Don't accept "i" constraint.
13744         (*conditional_branch): Only valid after reload.
13745         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
13746
13747 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13748
13749         PR target/47385
13750         * config/rs6000/altivec.md (vector constant splitters): Add
13751         support for creating vector single precision constants if -mvsx is
13752         used and we would create the constant using Altivec primitives.
13753
13754 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
13755             Richard Sandiford  <rdsandiford@googlemail.com>
13756
13757         PR rtl-optimization/47166
13758         * reload1.c (emit_reload_insns): Disable the spill_reg_store
13759         mechanism for PRE_MODIFY and POST_MODIFY.
13760         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13761         reloadreg.
13762
13763 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
13764
13765         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
13766
13767 2011-01-22  Jan Hubicka  <jh@suse.cz>
13768
13769         PR lto/47333
13770         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13771
13772 2011-01-22  Jan Hubicka  <jh@suse.cz>
13773
13774         PR tree-optimization/43884
13775         PR lto/44334
13776         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
13777         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13778
13779 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
13780
13781         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13782         * config/s390/s390.c (s390_register_move_cost,
13783         s390_memory_move_cost): New.
13784         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13785
13786 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13787
13788         PR middle-end/47401
13789         * except.c (sjlj_assign_call_site_values): Move setting the
13790         crtl->uses_eh_lsda flag to ...
13791         (sjlj_mark_call_sites): ... here.
13792         (sjlj_emit_function_enter): Support NULL dispatch label.
13793         (sjlj_build_landing_pads): In a function with no landing pads
13794         that still has must-not-throw regions, generate code to register
13795         a personality function with empty LSDA.
13796
13797 2011-01-21  Richard Henderson  <rth@redhat.com>
13798
13799         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13800
13801         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13802
13803         * compare-elim.c: New file.
13804         * Makefile.in (OBJS-common): Add it.
13805         (compare-elim.o): New.
13806         * common.opt (fcompare-elim): New.
13807         * opts.c (default_options_table): Add OPT_fcompare_elim.
13808         * tree-pass.h (pass_compare_elim_after_reload): New.
13809         * passes.c (init_optimization_passes): Add it.
13810         * recog.h: Protect against re-inclusion.
13811         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13812         * doc/invoke.texi (-fcompare-elim): Document it.
13813         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13814         * doc/tm.texi: Rebuild.
13815
13816 2011-01-22  Nick Clifton  <nickc@redhat.com>
13817
13818         * config/rx/rx.md (cstoresf4): Pass comparison operator to
13819         rx_split_fp_compare.
13820
13821 2011-01-22  Nick Clifton  <nickc@redhat.com>
13822
13823         * config/rx/rx.md (UNSPEC_CONST): New.
13824         (deallocate_and_return): Wrap the amount popped off the stack in
13825         an UNSPEC_CONST in order to stop it being rejected by
13826         -mmax-constant-size.
13827         (pop_and_return): Add a "(return)" rtx.
13828         (call): Drop the immediate operand.
13829         (call_internal): Likewise.
13830         (call_value): Likewise.
13831         (call_value_internal): Likewise.
13832         (sibcall_internal): Likewise.
13833         (sibcall_value_internal): Likewise.
13834         (sibcall): Likewise.  Generate an explicit call using
13835         sibcall_internal.
13836         (sibcall_value): Likewise.
13837         (mov<>): FAIL if a constant operand is not legitimate.
13838         (addsi3_unpsec): New pattern.
13839
13840         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
13841         (ok_for_max_constant): New function.
13842         (gen_safe_add): New function.
13843         (rx_expand_prologue): Use gen_safe_add.
13844         (rx_expand_epilogue): Likewise.
13845         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
13846         UNSPEC CONSTs.
13847
13848 2011-01-21  Jeff Law  <law@redhat.com>
13849
13850         PR tree-optimization/47053
13851         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13852         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13853         statements are deleted.
13854         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
13855         is nonempty, then purge dead edges and cleanup the CFG.
13856
13857 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13858
13859         PR debug/47402
13860         Temporarily revert:
13861         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13862         PR debug/47106
13863         * tree-dfa.c (create_var_ann): Mark variable as used.
13864
13865 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13866
13867         PR middle-end/45566
13868         * except.c (convert_to_eh_region_ranges): Emit queued no-region
13869         notes from other section in hot/cold partitioning even if
13870         last_action is -3.  Increment call_site_base.
13871
13872         PR rtl-optimization/47366
13873         * fwprop.c (forward_propagate_into): Return bool.  If
13874         any changes are made, -fnon-call-exceptions is used and
13875         REG_EH_REGION note is present, call purge_dead_edges
13876         and return true if it purged anything.
13877         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13878         any EH edges were purged.
13879
13880 2011-01-21  Jeff Law  <law@redhat.com>
13881
13882         PR rtl-optimization/41619
13883         * caller-save.c (setup_save_areas): Break out code to determine
13884         which hard regs are live across calls by examining the reload chains
13885         so that it is always used.
13886         Eliminate code which checked REG_N_CALLS_CROSSED.
13887
13888 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13889
13890         PR tree-optimization/47355
13891         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13892         NOP has non-debug uses beyond PHIs in new_bb.
13893
13894 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13895
13896         PR debug/47106
13897         * cfgexpand.c (account_used_vars_for_block): Only account vars
13898         that are annotated as used.
13899         (estimated_stack_frame_size): Don't set TREE_USED.
13900         * tree-dfa.c (create_var_ann): Mark variable as used.
13901
13902 2011-01-21  Richard Guenther  <rguenther@suse.de>
13903
13904         PR middle-end/47395
13905         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13906
13907 2011-01-21  Richard Guenther  <rguenther@suse.de>
13908
13909         PR tree-optimization/47365
13910         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13911         (vn_reference_lookup_pieces): Adjust.
13912         (vn_reference_lookup): Likewise.
13913         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13914         (vn_reference_lookup_3): Only look through kills if in
13915         VN_WALKREWRITE mode.
13916         (vn_reference_lookup_pieces): Adjust.
13917         (vn_reference_lookup): Likewise.
13918         (visit_reference_op_load): Likewise.
13919         (visit_reference_op_store): Likewise.
13920         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13921         (compute_avail): Likewise.
13922         (eliminate): Likewise.
13923
13924 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13925
13926         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13927         DECL_IGNORED_P non-reg vars if they are used.
13928
13929         PR tree-optimization/47391
13930         * varpool.c (const_value_known_p): Return false if
13931         decl is volatile.
13932
13933 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
13934
13935         PR bootstrap/47215
13936         * config/i386/i386.c (ix86_local_alignment): Handle
13937         case for va_list_type_node is nil.
13938         (ix86_canonical_va_list_type): Likewise.
13939
13940 2011-01-21  Alan Modra  <amodra@gmail.com>
13941
13942         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13943         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13944
13945 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13946
13947         * config/arm/arm.md (define_attr type): Rename f_load
13948         and f_store to f_fpa_load and f_fpa_store. Update.
13949         (write_conflict): Deal with rename fallout.
13950         (*push_fp_multi): Likewise.
13951         * config/arm/fpa.md (f_load): Use f_fpa_load.
13952         (f_store): Use f_fpa_store.
13953         (*movsf_fpa): Likewise.
13954         (*movdf_fpa): Likewise.
13955         (*movxf_fpa): Likewise.
13956         (*thumb2_movsf_fpa): Likewise.
13957         (*thumb2_movdf_fpa): Likewise.
13958         (*thumb2_movxf_fpa): Likewise.
13959         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13960         f_loadd and f_stored.
13961         (*thumb2_movdi_vfp): Likewise.
13962         (*thumb2_movsf_vfp): Fix attribute to f_loads.
13963         (*thumb2_movsi_vfp): Likewise.
13964         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13965         Use f_loads instead of f_load.
13966         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13967
13968 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
13969
13970         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13971         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13972         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13973         (xtensa_mode_dependent_address_p): New function.
13974         (constantpool_address_p): Make static. Change return type to bool.
13975         Change argument type to const_rtx. Use CONST_INT_P predicate.
13976
13977 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
13978
13979         PR debug/46583
13980         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13981
13982 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13983
13984         PR debug/47283
13985         * cfgexpand.c (expand_debug_expr): Instead of generating
13986         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13987         etc. handling.
13988
13989 2011-01-20  Richard Guenther  <rguenther@suse.de>
13990
13991         PR middle-end/47370
13992         * tree-inline.c (remap_gimple_op_r): Recurse manually for
13993         the pointer operand of MEM_REFs.
13994
13995 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13996
13997         PR tree-optimization/46130
13998         * ipa-split.c (consider_split): If return_bb contains non-virtual
13999         PHIs other than for retval or if split_function would not adjust it,
14000         refuse to split.
14001
14002 2011-01-20  Richard Guenther  <rguenther@suse.de>
14003
14004         PR tree-optimization/47167
14005         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14006         Revert previous change, only avoid enumeral type changes.
14007
14008 2011-01-19  Mike Stump  <mikestump@comcast.net>
14009
14010         * doc/tm.texi.in (BRANCH_COST): Englishify.
14011         * doc/tm.texi (BRANCH_COST): Likewise.
14012
14013 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
14014
14015         PR c++/47291
14016         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
14017         (gen_scheduled_generic_parms_dies): New functions.
14018         (gen_struct_or_union_type_die): Schedule template parameters DIEs
14019         generation for the end of CU compilation.
14020         (dwarf2out_finish): Generate template parameters DIEs here.
14021
14022 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14023
14024         PR debug/46240
14025         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14026         debug bind stmt on merge edges.
14027
14028 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14029
14030         PR debug/47079
14031         PR debug/46724
14032         * function.c (instantiate_expr): Instantiate incoming rtl of
14033         implicit arguments, and recurse on VALUE_EXPRs.
14034         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14035         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14036
14037 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
14038
14039         * c-parser.c (c_parser_for_statement): Initialize
14040         collection_expression.
14041
14042 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14043
14044         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14045
14046 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14047
14048         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14049         (LINK_SHLIB_SPEC): Don't use %(link_path).
14050         (SUBTARGET_EXTRA_SPECS): Remove link_path.
14051
14052 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14053
14054         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14055         (NO_SHARED_LIB_SUPPORT): Remove.
14056         (LINK_SHLIB_SPEC): Remove one conditional definition.
14057
14058 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
14059
14060         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14061         %{call_shared}.
14062         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14063         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14064         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14065         %{call_shared} and conditionals on these options not being passed.
14066         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14067         %{call_shared}.
14068
14069 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14070
14071         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14072         simplify.
14073
14074         * ipa-split.c: Spelling fixes.
14075
14076 2011-01-19  Richard Henderson  <rth@redhat.com>
14077
14078         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14079         (*mulsi3): Likewise.
14080
14081         * longlong.h [__mn10300__] (count_leading_zeros): New.
14082         [__mn10300__] (umul_ppmm, smul_ppmm): New.
14083         [__mn10300__] (add_ssaaaa, subddmmss): New.
14084         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14085         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14086
14087 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14088
14089         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14090
14091 2011-01-19  Richard Henderson  <rth@redhat.com>
14092
14093         * config/mn10300/mn10300.md (addsi3_flags): New.
14094         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14095         (subsi3_flags, subc_internal, subdi3): New.
14096         (subdi3_internal, *subdi3_degenerate): New.
14097         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14098
14099         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14100         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14101         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
14102         * config/mn10300/mn10300-protos.h: Update.
14103         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
14104         (return_ret): Likewise.  Rename from return_internal_regs.
14105         (return_internal): Remove.
14106
14107         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
14108         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
14109         (mn10300_legitimate_constant_p): Likewise.
14110         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
14111         (mn10300_frame_size): New.
14112         (mn10300_expand_prologue): Use it.
14113         (mn10300_expand_epilogue): Likewise.
14114         (mn10300_initial_offset): Likewise.
14115         * config/mn10300/mn10300-protos.h: Update.
14116         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
14117         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
14118         (prologue, epilogue, return_internal): Tidy output code.
14119         (mn10300_store_multiple_operation, return): Likewise.
14120         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
14121         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
14122         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
14123         (load_pic, am33_load_pic): New.
14124         (mn10300_load_pic0, mn10300_load_pic1): New.
14125
14126         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
14127         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
14128         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
14129         (cc_flags_for_mode, cc_flags_for_code): New.
14130         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
14131         overflow flag is not valid.  Validate that the flags we need
14132         for the comparison are valid.
14133         (mn10300_output_cmp): Remove.
14134         (mn10300_output_add): New.
14135         (mn10300_select_cc_mode): Use cc_flags_for_code.
14136         (mn10300_split_cbranch): New.
14137         (mn10300_match_ccmode): New.
14138         (mn10300_split_and_operand_count): New.
14139         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
14140         to the function.
14141         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
14142         (addsi3): ... here.  Use mn10300_output_add.
14143         (*addsi3_flags): New.
14144         (*am33_subsi3, *mn10300_subsi3): Merge...
14145         (subsi3): ... here.  Use attribute isa.
14146         (*subsi3_flags): New.
14147         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
14148         when possible.
14149         (*am33_andsi3, *mn10300_andsi3): Merge...
14150         (andsi3): ... here.
14151         (*andsi3_flags): New.
14152         (andsi3 splitters): New.
14153         (*am33_iorsi3, *mn10300_iorsi3): Merge...
14154         (iorsi3): ... here.
14155         (*iorsi3_flags): New.
14156         (*am33_xorsi3, *mn10300_xorsi3): Merge...
14157         (xorsi3): ... here.
14158         (*xorsi3_flags): New.
14159         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
14160         (one_cmplsi2): ... here.
14161         (*one_cmplsi2_flags): New.
14162         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
14163         instead of "dax" in constraints.  Use mn10300_split_cbranch.
14164         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
14165         use matching constraints to eliminate a self-comparison.
14166         (*integer_conditional_branch): Rename from integer_conditional_branch.
14167         Use int_mode_flags to match CC_REG.
14168         (*cbranchsi4_btst, *btstsi): New.
14169         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
14170         mn10300_split_cbranch.
14171         (*am33_cmpsf): Rename from am33_cmpsf.
14172         (*float_conditional_branch): Rename from float_conditional_branch.
14173         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
14174         (zero_extendqisi2): ... here.
14175         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
14176         (zero_extendhisi2): ... here.
14177         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
14178         (extendqisi2): ... here.
14179         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
14180         (extendhisi2): ... here.
14181         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
14182         (ashlsi3): ... here.
14183         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
14184         (lshrsi3): ... here.
14185         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
14186         (ashrsi3): ... here.
14187         (consecutive add peephole): Remove.
14188         * config/mn10300/predicates.md (label_ref_operand): New.
14189         (int_mode_flags): New.
14190         (CCZN_comparison_operator): New.
14191
14192         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
14193         (throughput_42_latency_43): New reservation.
14194         (mulsidi3, umulsidi3): New expanders.
14195         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
14196         the MDR register to allocation; separately allocate the low and
14197         high parts of the DImode result.
14198         (umulsidi3_internal): Similarly.
14199         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
14200         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
14201         (udivsi3, umodsi3): Remove.
14202         (udivmodsi4, divmodsi4): New expanders.
14203         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
14204         (*divmodsi4): Simiarly.
14205         (ext_internal): New.
14206
14207         * config/mn10300/constraints.md ("z"): New constraint.
14208         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
14209         (FIXED_REGISTERS): Don't fix MDR.
14210         (CALL_USED_REGSITERS): Reformat nicely.
14211         (REG_ALLOC_ORDER): Add MDR.
14212         (enum regclass): Add MDR_REGS.
14213         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14214         (IRA_COVER_CLASSES): Add MDR_REGS.
14215         (REGNO_REG_CLASS): Handle MDR_REG.
14216         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14217         (mn10300_register_move_cost): Likewise.
14218         * config/mn10300/mn10300.md (MDR_REG): New.
14219         (*movsi_internal): Handle moves to/from MDR_REGS.
14220
14221         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14222         POST_MODIFY.
14223         (mn10300_secondary_reload): Tidy combination reload classes.
14224         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14225         addresses for AM33.  Allow symbolic offsets for reg+imm.
14226         (mn10300_regno_in_class_p): New.
14227         (mn10300_legitimize_reload_address): New.
14228         * config/mn10300/mn10300.h (enum reg_class): Remove
14229         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14230         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
14231         SP_OR_GENERAL_REGS.
14232         (REG_CLASS_NAMES): Update to match.
14233         (REG_CLASS_CONTENTS): Likewise.
14234         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14235         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14236         (REGNO_IN_RANGE_P): Remove.
14237         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14238         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14239         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14240         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14241         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14242         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14243         (REGNO_GENERAL_P): New.
14244         (HAVE_POST_MODIFY_DISP): New.
14245         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14246         (LEGITIMIZE_RELOAD_ADDRESS): New.
14247         * config/mn10300/mn10300-protos.h: Update.
14248
14249         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14250         DATA_REGS for AM33 stack-pointer destination.
14251         (mn10300_preferred_output_reload_class): Likewise.
14252         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14253         into a form appropriate for ...
14254         (TARGET_SECONDARY_RELOAD): New.
14255         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14256         * config/mn10300/mn10300-protos.h: Update.
14257         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14258         reload_insi; use the "A" constraint for the scratch; handle AM33
14259         moves of sp to non-address registers.
14260
14261         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14262         (*movqi_internal): ... here.
14263         (*am33_movhi, *mn10300_movhi): Merge into...
14264         (*movhi_internal): ... here.
14265         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
14266         as the source/destination of moves from/to SP.
14267         (movsf): Only allow for AM33-2.
14268         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
14269         any integer constant constraint.  Only allow for AM33-2.  Tidy
14270         all of the alternative outputs.
14271         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14272         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
14273         for MN103.
14274         (udivsi3, umodsi3): New patterns for MN103 only.
14275
14276 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
14277
14278         * doc/tm.texi.in: Spell out that a lack of register class unions
14279         can lead to ICEs.
14280         * doc/tm.texi: Regenerate.
14281
14282 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14283
14284         PR rtl-optimization/47337
14285         * dce.c (check_argument_store): New function.
14286         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
14287
14288         PR tree-optimization/47290
14289         * tree-eh.c (infinite_empty_loop_p): New function.
14290         (cleanup_empty_eh): Use it.
14291
14292 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
14293
14294         PR target/46997
14295         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14296         (a64_expand_widen_sum): Ditto.
14297         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14298         (vec_extract_evenodd_help): Ditto.
14299         (vec_extract_evenv4hi): Ditto.
14300         (vec_extract_oddv4hi): Ditto.
14301         (vec_extract_evenv2si): Ditto.
14302         (vec_extract_oddv2si): Ditto.
14303         (vec_extract_evenv2sf): Ditto.
14304         (vec_extract_oddv2sf): Ditto.
14305         (vec_pack_trunc_v4hi: Ditto.
14306         (vec_pack_trunc_v2si): Ditto.
14307         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14308         (vec_interleave_highv8qi): Ditto.
14309         (mix1_r): Ditto.
14310         (vec_extract_oddv8qi): Ditto.
14311         (vec_interleave_lowv4hi): Ditto.
14312         (vec_interleave_highv4hi): Ditto.
14313         (vec_interleave_lowv2si): Ditto.
14314         (vec_interleave_highv2si): Ditto.
14315
14316 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14317
14318         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14319         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14320         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
14321         (pa_c_mode_for_suffix): New.
14322         (TARGET_EXPAND_BUILTIN): Define.
14323         (TARGET_C_MODE_FOR_SUFFIX): Define.
14324         (pa_builtins): Define.
14325         (pa_init_builtins): Register __float128 type and init new support
14326         builtins.
14327         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14328         * config/pa/quadlib.c (_U_Qfcopysign): New.
14329
14330 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
14331
14332         PR middle-end/46894
14333         * explow.c (allocate_dynamic_stack_space): Do not assume more than
14334         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
14335         are defined.
14336
14337 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14338
14339         PR tree-optimization/47179
14340         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
14341         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
14342
14343 2011-01-18  Richard Guenther  <rguenther@suse.de>
14344
14345         PR rtl-optimization/47216
14346         * emit-rtl.c: Include tree-flow.h.
14347         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
14348         of replicating it with different semantics.
14349         * Makefile.in (emit-rtl.o): Adjust.
14350
14351 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14352
14353         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
14354         (cortex_a9_dp): Handle neon types correctly.
14355
14356 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
14357
14358         PR rtl-optimization/47299
14359         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
14360         subtarget.  Use normal multiplication if both operands are constants.
14361         * expmed.c (expand_widening_mult): Don't try to optimize constant
14362         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
14363         before using it.
14364
14365 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14366
14367         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
14368         spacing after 'e.g.', typos, comma, hyphenation.
14369
14370 2011-01-17  Richard Henderson  <rth@redhat.com>
14371
14372         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
14373         (rx_restricted_mem_operand): New.
14374         (rx_shift_operand): Use register_operand.
14375         (rx_source_operand, rx_compare_operand): Likewise.
14376         * config/rx/rx.md (addsi3_flags): New expander.
14377         (adddi3): Rewrite as expander.
14378         (adc_internal, *adc_flags, adddi3_internal): New patterns.
14379         (subsi3_flags): New expander.
14380         (subdi3): Rewrite as expander.
14381         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
14382
14383         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
14384         (rx_init_builtins): Remove sat builtin.
14385         (rx_expand_builtin): Likewise.
14386         * config/rx/rx.md (ssaddsi3): New.
14387         (*sat): Rename from sat.  Represent the CC_REG input.
14388
14389         * config/rx/predicates.md (rshift_operator): New.
14390         * config/rx/rx.c (rx_expand_insv): Remove.
14391         * config/rx/rx-protos.h: Update.
14392         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
14393         operand to the canonical position.
14394         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
14395         (*bitclr, *bitclr_in_memory): Similarly.
14396         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
14397         (insv): Retain the zero_extract in the expansion.
14398
14399         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
14400         (bswaphi2, bitinvert, revw): Likewise.
14401
14402         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
14403         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
14404         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
14405         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
14406         (bitset, bitset_in_memory): Likewise.
14407         (bitinvert, bitinvert_in_memory): Likewise.
14408         (bitclr, bitclr_in_memory): Likewise.
14409         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
14410         (rx_strend, rx_cmpstrn): Likewise.
14411         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
14412         (bitop peep2 patterns): Remove.
14413
14414         * config/rx/rx.c (rx_match_ccmode): New.
14415         * config/rx/rx-protos.h: Update.
14416         * config/rx/rx.md (abssi2): Clobber, don't set flags.
14417         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
14418         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
14419         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
14420         (fix_truncsfsi2, floatsisf2): Likewise.
14421         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
14422         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
14423         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
14424         (*subsi3_flags, *xorsi3_flags): New.
14425
14426         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
14427
14428         * config/rx/rx.c (rx_print_operand): Remove workaround for
14429         unsplit comparison operations.
14430
14431         * config/rx/rx.md (movsicc): Split after reload.
14432         (*movsicc): Merge *movsieq and *movsine via match_operator.
14433         (*stcc): New pattern.
14434
14435         * config/rx/rx.c (rx_float_compare_mode): Remove.
14436         * config/rx/rx.h (rx_float_compare_mode): Remove.
14437         * config/rx/rx.md (cstoresi4): Split after reload.
14438         (*sccc): New pattern.
14439
14440         * config/rx/predicates.md (label_ref_operand): New.
14441         (rx_z_comparison_operator): New.
14442         (rx_zs_comparison_operator): New.
14443         (rx_fp_comparison_operator): New.
14444         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
14445         Validate that the flags are set properly for the comparison.
14446         (rx_gen_cond_branch_template): Remove.
14447         (rx_cc_modes_compatible): Remove.
14448         (mode_from_flags): New.
14449         (flags_from_code): Rename from flags_needed_for_conditional.
14450         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
14451         (rx_select_cc_mode): Likewise.
14452         (rx_split_fp_compare): New.
14453         (rx_split_cbranch): New.
14454         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
14455         (*cbranchsi4): Use match_operator and rx_split_cbranch.
14456         (*cbranchsf4): Similarly.
14457         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
14458         match_operator and rx_split_cbranch.
14459         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
14460         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
14461         (*cmpsi): Rename from cmpsi.
14462         (*tstsi): Rename from tstsi.
14463         (*cmpsf): Rename from cmpsf; use CC_Fmode.
14464         (*conditional_branch): Rename from conditional_branch.
14465         (*reveresed_conditional_branch): Remove.
14466         (b<code>): Remove expander.
14467         * config/rx/rx-protos.h: Update.
14468
14469         * config/rx/rx.c (rx_compare_redundant): Remove.
14470         * config/rx/rx.md (cmpsi): Don't use it.
14471         * config/rx/rx-protos.h: Update.
14472
14473         * config/rx/rx-modes.def (CC_F): New mode.
14474         * config/rx/rx.c (rx_select_cc_mode): New.
14475         * config/rx/rx.h (SELECT_CC_MODE): Use it.
14476         * config/rx/rx-protos.h: Update.
14477
14478 2011-01-17  Richard Henderson  <rth@redhat.com>
14479
14480         * except.c (dump_eh_tree): Fix stray ; after for statement.
14481
14482 2011-01-17  Richard Guenther  <rguenther@suse.de>
14483
14484         PR tree-optimization/47313
14485         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
14486         handling before copying the body.  Properly deal with
14487         by-reference result in SSA form.
14488
14489 2011-01-17  Ian Lance Taylor  <iant@google.com>
14490
14491         PR target/47219
14492         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
14493         (struct_value_alias_set): Don't define.
14494         (sparc_option_override): Don't set sparc_sr_alias_set and
14495         struct_value_alias_set.
14496         (save_or_restore_regs): Use gen_frame_mem rather than calling
14497         set_mem_alias_set.
14498         (sparc_struct_value_rtx): Likewise.
14499
14500 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
14501
14502         PR target/47318
14503         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
14504         (_mm_maskstore_pd): Likewise.
14505         (_mm_maskload_ps): Likewise.
14506         (_mm_maskstore_ps): Likewise.
14507         (_mm256_maskload_pd): Change mask to __m256i.
14508         (_mm256_maskstore_pd): Likewise.
14509         (_mm256_maskload_ps): Likewise.
14510         (_mm256_maskstore_ps): Likewise.
14511
14512         * config/i386/i386-builtin-types.def: Updated.
14513         (ix86_expand_special_args_builtin): Likewise.
14514
14515         * config/i386/i386.c (bdesc_special_args): Update
14516         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14517         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14518         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14519         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14520
14521         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14522         Use <avxpermvecmode> on mask register.
14523         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14524
14525 2011-01-17  Olivier Hainque  <hainque@adacore.com>
14526             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
14527             Eric Botcazou  <ebotcazou@adacore.com>
14528
14529         PR target/46655
14530         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14531         if <= USHRT_MAX in 32-bit mode.
14532
14533 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14534
14535         * doc/install.texi (Configuration, Specific): Wrap long
14536         lines in examples.  Allow line wrapping in long options
14537         and URLs where beneficial for PDF output.
14538
14539 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
14540
14541         * config/mips/mips.c (mips_classify_symbol): Don't return
14542         SYMBOL_PC_RELATIVE for nonlocal labels.
14543
14544 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
14545
14546         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14547
14548 2011-01-15  Jan Hubicka  <jh@suse.cz>
14549
14550         PR tree-optimization/47276
14551         * ipa.c (function_and_variable_visibility): Do not try to mark alias
14552         declarations as needed.
14553
14554 2011-01-15  Martin Jambor  <mjambor@suse.cz>
14555
14556         * common.opt (fdevirtualize): New flag.
14557         * doc/invoke.texi (Option Summary): Document it.
14558         * opts.c (default_options_table): Add devirtualize flag.
14559         * ipa-prop.c (detect_type_change): Return immediately if
14560         devirtualize flag is not set.
14561         (detect_type_change_ssa): Likewise.
14562         (compute_known_type_jump_func): Likewise.
14563         (ipa_analyze_virtual_call_uses): Likewise.
14564
14565 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14566
14567         PR tree-optimization/45934
14568         PR tree-optimization/46302
14569         * ipa-prop.c (type_change_info): New type.
14570         (stmt_may_be_vtbl_ptr_store): New function.
14571         (check_stmt_for_type_change): Likewise.
14572         (detect_type_change): Likewise.
14573         (detect_type_change_ssa): Likewise.
14574         (compute_complex_assign_jump_func): Check for dynamic type change.
14575         (compute_complex_ancestor_jump_func): Likewise.
14576         (compute_known_type_jump_func): Likewise.
14577         (compute_scalar_jump_functions): Likewise.
14578         (ipa_analyze_virtual_call_uses): Likewise.
14579         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14580
14581 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14582
14583         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14584         * config/i386/i386.opt (msse5): New Alias.
14585
14586 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14587
14588         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14589         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14590         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14591         * config/sparc/sparc.h (CC1_SPEC): Likewise.
14592
14593 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14594
14595         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14596         -mcpu options.
14597         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14598         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14599         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14600         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14601         Likewise.
14602         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14603
14604 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14605
14606         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
14607
14608 2011-01-14  Mike Stump  <mikestump@comcast.net>
14609
14610         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14611         * config/fr30/fr30.md: Likweise
14612         (movsi_push): Likewise.
14613         (movsi_pop): Likewise.
14614         (enter_func): Likewise.
14615         * config/moxie/moxie.md (movsi_push): Likewise.
14616         (movsi_pop): Likewise.
14617
14618 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14619
14620         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14621         %{no_archive} %{exact_version}.
14622         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14623         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14624         %{no_archive} %{exact_version}.
14625         * config/mips/openbsd.h (LINK_SPEC): Likewise.
14626         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14627         * config/mips/vxworks.h: Likewise.
14628
14629 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14630
14631         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
14632
14633 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14634
14635         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14636         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14637
14638 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14639
14640         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14641         -nodefaultlib.
14642
14643 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14644
14645         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14646         for mcpu not cpu.
14647         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14648         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14649         not cpu.
14650         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14651         Don't handle -shlib.
14652
14653 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14654
14655         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14656         (CC1_SPEC): Don't handle -profile.
14657
14658 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14659
14660         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14661         * config/mips/mips.h (CC1_SPEC): Likewise.
14662
14663 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14664
14665         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14666         * config/mips/mips.h (CC1_SPEC): Likewise.
14667
14668 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14669
14670         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14671         * config/m32r/linux.h (LINK_SPEC): Likewise.
14672         * config/mips/linux.h (LINK_SPEC): Likewise.
14673         * config/mips/linux64.h (LINK_SPEC): Likewise.
14674         * config/sparc/linux.h (LINK_SPEC): Likewise.
14675         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14676         LINK_SPEC): Likewise.
14677         * config/xtensa/linux.h (LINK_SPEC): Likewise.
14678
14679 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14680
14681         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14682         %{version:-v}.
14683         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14684
14685 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14686
14687         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14688         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14689
14690 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14691
14692         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14693
14694 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14695
14696         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14697         supports -Bstatic/-Bdynamic.
14698         * configure: Regenerate.
14699
14700 2011-01-14  Jan Hubicka  <jh@suse.cz>
14701             Jack Howarth  <howarth@bromo.med.uc.edu>
14702
14703         PR target/46037
14704         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14705         when checking debug_info_level. Test write_symbols instead of
14706         debug_hooks->var_location when setting flag_var_tracking_uninit.
14707
14708 2011-01-14  Richard Guenther  <rguenther@suse.de>
14709
14710         PR tree-optimization/47179
14711         * target.def (ref_may_alias_errno): New target hook.
14712         * targhooks.h (default_ref_may_alias_errno): Declare.
14713         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14714         (default_ref_may_alias_errno): New function.
14715         * target.h (struct ao_ref_s): Declare.
14716         * tree-ssa-alias.c: Include target.h.
14717         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14718         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14719         (targhooks.o): Likewise.
14720         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14721         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14722
14723 2011-01-14  Richard Guenther  <rguenther@suse.de>
14724
14725         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
14726
14727 2011-01-14  Richard Guenther  <rguenther@suse.de>
14728
14729         PR tree-optimization/47280
14730         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14731         return CFG changes.
14732         (tree_ssa_forward_propagate_single_use_vars): Deal with
14733         CFG changes from associate_plusminus.
14734
14735 2011-01-14  Richard Guenther  <rguenther@suse.de>
14736
14737         PR middle-end/47281
14738         Revert
14739         2011-01-11  Richard Guenther  <rguenther@suse.de>
14740
14741         PR tree-optimization/46076
14742         * tree-ssa.c (useless_type_conversion_p): Conversions from
14743         unprototyped to empty argument list function types are useless.
14744
14745 2011-01-14  Richard Guenther  <rguenther@suse.de>
14746
14747         PR tree-optimization/47286
14748         * tree-ssa-structalias.c (new_var_info): Register variables are global.
14749
14750 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14751
14752         PR middle-end/46823
14753         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14754
14755 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
14756
14757         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14758         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14759         * config/xtensa/xtensa.c (xtensa_libcall_value,
14760         xtensa_function_value_regno_p): New functions.
14761         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14762
14763 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
14764
14765         PR c++/47213
14766         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14767         PE specific hook.
14768         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14769         New function prototype.
14770         * config/i386/winnt.c (i386_pe_assemble_visibility):
14771         Warn only if attribute was specified by user.
14772
14773 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
14774
14775         PR target/47251
14776         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14777         floating point.
14778         (floatunsdidf2_fcfidu): Ditto.
14779
14780 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14781
14782         * config/s390/s390.c (print_operand_address): Replace 'error' with
14783         'output_operand_lossage'.
14784         (print_operand): Likewise.
14785
14786 2011-01-13  Jeff Law  <law@redhat.com>
14787
14788         PR rtl-optimization/39077
14789         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14790         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14791         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14792         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14793         * gcse.c (prune_insertions_deletions): New function.
14794         (compute_pre_data): Use it.
14795
14796 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
14797
14798         PR debug/PR46973
14799         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14800         static function.
14801         (prune_unused_types_mark): Use it.
14802
14803 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
14804
14805         PR rtl-optimization/45352
14806         * sel-sched.c: Update copyright years.
14807         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
14808         in the advancing loop when we have issued issue_rate insns.
14809
14810 2011-01-12  Richard Henderson  <rth@redhat.com>
14811
14812         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14813         (TARGET_MD_ASM_CLOBBERS): New.
14814
14815         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14816         (TARGET_DELEGITIMIZE_ADDRESS): New.
14817
14818         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14819         (clzsi2, *bsch): New patterns.
14820
14821         * config/mn10300/mn10300.md (INT): New mode iterator.
14822         (*mov<INT>_clr): New pattern, and peep2 to generate it.
14823
14824         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14825         flag_split_wide_types.
14826
14827         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14828         (mn10300_trampoline_init): Rewrite without a template, an immediate
14829         load and a direct branch.
14830         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14831
14832 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
14833
14834         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14835         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14836         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14837         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14838
14839 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
14840
14841         PR debug/47209
14842         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14843         of type.
14844
14845 2011-01-12  Jan Hubicka  <jh@suse.cz>
14846
14847         PR driver/47244
14848         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14849         (PLUGIN_COND_CLOSE): New macro.
14850         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14851
14852 2011-01-12  Richard Guenther  <rguenther@suse.de>
14853
14854         PR lto/47259
14855         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14856         register variables in a MEM_REF.
14857
14858 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
14859
14860         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14861         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14862         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14863         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14864         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14865         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14866         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14867         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14868         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14869         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14870         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14871         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14872         * config/gnu-user.h: New.  Copied from linux.h.
14873         (LINUX_TARGET_STARTFILE_SPEC): Rename to
14874         GNU_USER_TARGET_STARTFILE_SPEC.
14875         (LINUX_TARGET_ENDFILE_SPEC): Rename to
14876         GNU_USER_TARGET_ENDFILE_SPEC.
14877         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14878         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14879         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14880         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14881         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14882         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14883         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14884         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14885         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14886         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14887         * config/arm/linux-eabi.h (CC1_SPEC): Use
14888         GNU_USER_TARGET_CC1_SPEC.
14889         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14890         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14891         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14892         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14893         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14894         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14895         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14896         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14897
14898 2011-01-12  Richard Guenther  <rguenther@suse.de>
14899
14900         PR other/46946
14901         * doc/invoke.texi (ffast-math): Document it is turned on
14902         with -Ofast.
14903
14904 2011-01-12  Jan Hubicka  <jh@suse.cz>
14905
14906         PR tree-optimization/47233
14907         * opts.c (common_handle_option): Disable ipa-reference with profile
14908         feedback.
14909
14910 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14911
14912         * c-parser.c (c_parser_objc_at_property_declaration): Improved
14913         error message.
14914
14915 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14916
14917         * c-parser.c (c_lex_one_token): Updated and reindented some
14918         comments.  No changes in code.
14919
14920 2011-01-11  Ian Lance Taylor  <iant@google.com>
14921
14922         * godump.c (go_output_var): Don't output the variable if there is
14923         already a type with the same name.
14924
14925 2011-01-11  Ian Lance Taylor  <iant@google.com>
14926
14927         * godump.c (go_format_type): Don't generate float80.
14928
14929 2011-01-11  Richard Henderson  <rth@redhat.com>
14930
14931         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14932         declaration.  Rewrite for both speed and size.
14933         (mn10300_address_cost_1): Remove.
14934         (mn10300_register_move_cost): New.
14935         (mn10300_memory_move_cost): New.
14936         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
14937         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
14938         extensions, shifts, BSWAP, CLZ.
14939         (mn10300_wide_const_load_uses_clr): Remove.
14940         (TARGET_REGISTER_MOVE_COST): New.
14941         (TARGET_MEMORY_MOVE_COST): New.
14942         * config/mn10300/mn10300-protos.h: Update.
14943         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14944
14945         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14946         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14947         * config/mn10300/mn10300-protos.h: Update.
14948         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14949         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14950         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14951         (*test_int_bitfield, *test_byte_bitfield): Remove.
14952         (*bit_test, *subreg_bit_test): Remove.
14953         * config/mn10300/predicates.md (const_8bit_operand): Remove.
14954
14955         * config/mn10300/constraints.md ("c"): Rename from "A".
14956         ("A", "D"): New constraint letters.
14957         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14958         (fmssf4, fnmasf4, fnmssf4): Likewise.
14959
14960         * config/mn10300/mn10300.md (isa): New attribute.
14961         (enabled): New attribute.
14962
14963         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14964         (abssf2, negsf2): Define only for hardware fp.
14965         (sqrtsf2): Reformat.
14966         (addsf3, subsf3, mulsf3): Merge expander and insn.
14967
14968         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14969         (DEBUGGER_AUTO_OFFSET): Remove.
14970         (DEBUGGER_ARG_OFFSET): Remove.
14971
14972         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14973         Emit register stores with the same offsets as the hardware.
14974         (mn10300_store_multiple_operation): Don't check that the register
14975         save offsets are monotonic.
14976         * config/mn10300/mn10300-protos.h: Update.
14977
14978         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14979
14980         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14981         in terms of the value on the stack, not the MDR register.
14982
14983 2011-01-11  Jan Hubicka  <jh@suse.cz>
14984
14985         PR lto/45721
14986         PR lto/45375
14987         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14988         (symbol_alias_set_destroy, symbol_alias_set_contains,
14989         propagate_aliases_backward): Declare.
14990         * lto-streamer-out.c (struct sets): New sturcture.
14991         (trivally_defined_alias): New function.
14992         (output_alias_pair_p): Rewrite.
14993         (output_unreferenced_globals): Fix output of alias pairs.
14994         (produce_symtab): Likewise.
14995         * ipa.c (function_and_variable_visibility): Set weak alias destination
14996         as needed in lto.
14997         * varasm.c (symbol_alias_set_t): Remove.
14998         (symbol_alias_set_destroy): Export.
14999         (propagate_aliases_forward, propagate_aliases_backward): New functions
15000         based on ...
15001         (compute_visible_aliases): ... this one; remove.
15002         (trivially_visible_alias): New
15003         (trivially_defined_alias): New.
15004         (remove_unreachable_alias_pairs): Rewrite.
15005         (finish_aliases_1): Reorganize code checking if alias is defined.
15006         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15007         in LTO mode.
15008
15009 2011-01-11  Richard Guenther  <rguenther@suse.de>
15010
15011         PR tree-optimization/46076
15012         * tree-ssa.c (useless_type_conversion_p): Conversions from
15013         unprototyped to empty argument list function types are useless.
15014
15015 2011-01-11  Richard Guenther  <rguenther@suse.de>
15016
15017         PR middle-end/45235
15018         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15019         volatile MEMs as MEM_READONLY_P.
15020
15021 2011-01-11  Richard Guenther  <rguenther@suse.de>
15022
15023         PR tree-optimization/47239
15024         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15025
15026 2011-01-11  Jeff Law  <law@redhat.com>
15027
15028         PR tree-optimization/47086
15029         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15030         IVs from statements that might throw.
15031
15032 2011-01-10  Jan Hubicka  <jh@suse.cz>
15033
15034         PR lto/45375
15035         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15036
15037 2011-01-10  Jan Hubicka  <jh@suse.cz>
15038
15039         PR lto/45375
15040         * profile.c (read_profile_edge_counts): Ignore profile inconistency
15041         when correcting profile.
15042
15043 2011-01-10  Jan Hubicka  <jh@suse.cz>
15044
15045         PR lto/46083
15046         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15047         DECL_FINI_PRIORITY.
15048         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15049         Restore DECL_FINI_PRIORITY.
15050
15051 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15052
15053         * doc/gimple.texi: Fix quoting of multi-word return values in
15054         @deftypefn statements.  Ensure presence of return value.  Wrap
15055         overlong @deftypefn lines.
15056         (is_gimple_operand, is_gimple_min_invariant_address): Remove
15057         descriptions of removed functions.
15058         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15059         of multi-word return value in @deftypefn statement.
15060
15061 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15062
15063         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15064         (Conditional Expressions, Logical Operators)
15065         (Statement and operand traversals): Do not indent smallexample
15066         code.  Fix duplicate function argument in example.
15067
15068 2011-01-10  Jeff Law  <law@redhat.com>
15069
15070         PR tree-optimization/47141
15071         * ipa-split.c (split_function): Handle case where we are
15072         returning a value and the return block has a virtual operand phi.
15073
15074 2011-01-10  Jan Hubicka  <jh@suse.cz>
15075
15076         PR tree-optimization/47234
15077         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15078         (pass_feedback_split_functions): Declare.
15079         * passes.c (init_optimization_passes): Add ipa-split as subpass of
15080         tree-profile.
15081         * ipa-split.c (gate_split_functions): Update comments; disable
15082         split-functions for profile_arc_flag and branch_probabilities.
15083         (gate_feedback_split_functions): New function.
15084         (execute_feedback_split_functions): New function.
15085         (pass_feedback_split_functions): New global var.
15086
15087 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
15088
15089         PR lto/46760
15090         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15091         calling gimple_call_set_cannot_inline.
15092
15093 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
15094
15095         * config/darwin-sections.def: Remove unused section.
15096
15097 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
15098
15099         PR c++/47218
15100         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15101
15102 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
15103
15104         PR objc/47232
15105         * c-parser.c (c_parser_declaration_or_fndef): Improved
15106         error message.
15107
15108 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
15109
15110         * config/i386/winnt.c (i386_pe_start_function): Make sure
15111         to switch back to function's section.
15112
15113 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
15114
15115         PR gcc/46902
15116         PR testsuite/46912
15117         * plugin.c: Move include of dlfcn.h from here...
15118         * system.h: ... to here.
15119
15120 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15121
15122         * doc/cpp.texi (C++ Named Operators): Fix markup for header
15123         file name.
15124         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
15125         two extra empty pages in PDF output.
15126
15127 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
15128
15129         PR objc/47078
15130         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
15131         for error recovery purposes behave as if it was not specified so
15132         that the default type is usd.
15133
15134 2011-01-07  Jan Hubicka  <jh@suse.cz>
15135
15136         PR tree-optmization/46469
15137         * ipa.c (function_and_variable_visibility): Clear needed flags on
15138         nodes with external decls; handle weakrefs merging correctly.
15139
15140 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
15141
15142         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
15143         not false.
15144
15145 2011-01-07  Jan Hubicka  <jh@suse.cz>
15146
15147         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
15148         and no longer claim that gold is required for linker plugin.
15149         * configure: Regenerate.
15150         * gcc.c (PLUGIN_COND): New macro.
15151         (LINK_COMMAND_SPEC): Use it.
15152         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
15153         * config.in (HAVE_LTO_PLUGIN): New.
15154         * configure.ac (--with-lto-plugin): New parameter; autodetect
15155         HAVE_LTO_PLUGIN.
15156
15157 2011-01-07  Jan Hubicka  <jh@suse.cz>
15158
15159         PR tree-optimization/46367
15160         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
15161         when we can update original.
15162         (cgraph_mark_inline_edge): Sanity check.
15163         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
15164
15165 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15166
15167         * config/spu/spu.h (ASM_COMMENT_START): Define.
15168
15169 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15170
15171         PR driver/42445
15172         * gcc.c (%>S): New.
15173         (SWITCH_KEEP_FOR_GCC): Likewise.
15174         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
15175         (do_spec_1): Handle "%>".
15176
15177         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
15178
15179 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
15180
15181         PR target/47201
15182         * config/i386/i386.c (ix86_delegitimize_address): If
15183         simplify_gen_subreg fails, return orig_x.
15184
15185         PR bootstrap/47187
15186         * value-prof.c (gimple_stringop_fixed_value): Handle
15187         lhs of the call properly.
15188
15189 2011-01-07  Jan Hubicka  <jh@suse.cz>
15190
15191         PR lto/45375
15192         * lto-opt.c (lto_reissue_options): Set flag_shlib.
15193
15194 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15195
15196         * target.def (function_switched_text_sections): New hook.
15197         * doc/tm.texi: Regenerated.
15198         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15199         * final.c (default_function_switched_text_sections): New.
15200         (final_scan_insn): Call function_switched_text_sections when a
15201         mid-function section change occurs.
15202         * output.h (default_function_switched_text_sections): Declare.
15203         * config/darwin-protos.h (darwin_function_switched_text_sections):
15204         Likewise.
15205         * config/darwin.c (darwin_function_switched_text_sections): New.
15206         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
15207
15208 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
15209
15210         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
15211         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
15212         the secondary code fragment when outputting for DWARF == 2.
15213
15214 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
15215
15216         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15217         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15218         Remove.
15219         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15220         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15221
15222 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
15223
15224         PR debug/46704
15225         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15226         when it is not empty.
15227
15228 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
15229
15230         Bobcat Enablement
15231         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
15232         (case ${target}): Add btver1.
15233         * config/i386/driver-i386.c (host_detect_local_cpu): Let
15234         -march=native recognize btver1 processors.
15235         * config/i386/i386-c.c (ix86_target_macros_internal): Add
15236         btver1 def_and_undef
15237         * config/i386/i386.c (struct processor_costs btver1_cost): New
15238         btver1 cost table.
15239         (m_BTVER1): New definition.
15240         (m_AMD_MULTIPLE): Includes m_BTVER1.
15241         (initial_ix86_tune_features): Add btver1 tune.
15242         (processor_target_table): Add btver1 entry.
15243         (static const char *const cpu_names): Add btver1 entry.
15244         (software_prefetching_beneficial_p): Add btver1.
15245         (ix86_option_override_internal): Add btver1 instruction sets.
15246         (ix86_issue_rate): Add btver1.
15247         (ix86_adjust_cost): Add btver1.
15248         * config/i386/i386.h (TARGET_BTVER1): New definition.
15249         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15250         (enum processor_type): Add PROCESSOR_BTVER1.
15251         * config/i386/i386.md (define_attr "cpu"): Add btver1.
15252
15253 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15254
15255         PR target/43309
15256         * config/i386/i386.c (legitimize_tls_address)
15257         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15258         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15259         (tls_initial_exec_64_sun): New pattern.
15260
15261 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15262
15263         * doc/invoke.texi (Overall Options): Improve wording and markup
15264         of the description of -wrapper.
15265
15266 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15267
15268         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15269         rdynamic, threads): New Driver options.
15270
15271 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15272
15273         PR target/38118
15274         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15275         if coming from .tdata.
15276         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15277
15278 2011-01-06  Jan Hubicka  <jh@suse.cz>
15279
15280         PR lto/47188
15281         * collect2.c (main): Do not enable LTOmode when plugin is active.
15282
15283 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15284
15285         PR other/45915
15286         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15287         --version output if supported.
15288         * configure: Regenerate.
15289
15290 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15291
15292         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15293         Driver options.
15294
15295 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
15296
15297         PR c/47150
15298         * c-convert.c (convert): When converting a complex expression
15299         other than COMPLEX_EXPR to a different complex type, ensure
15300         c_save_expr is called instead of save_expr, unless in_late_binary_op.
15301         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15302         when converting COMPLEX_TYPE.
15303
15304 2011-01-06  Ira Rosen  <irar@il.ibm.com>
15305
15306         PR tree-optimization/47139
15307         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15308         only the last reduction value is used outside the loop.  Update
15309         documentation.
15310
15311 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
15312
15313         * config/rtems.opt: New.
15314         * config.gcc (*-*-rtems*): Use rtems.opt.
15315
15316 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
15317
15318         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15319         processors do not support 3DNow instructions.
15320
15321 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15322
15323         * config/spu/spu.c (spu_option_override): Set parameter
15324         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15325
15326 2011-01-05  Jan Hubicka  <jh@suse.cz>
15327
15328         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15329         at the command line.
15330
15331 2011-01-05  Martin Jambor  <mjambor@suse.cz>
15332
15333         PR lto/47162
15334         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
15335         deltas on streamed outgoing edges.
15336         (output_node_opt_summary): Output info for outgoing edges only when
15337         the node is in new parameter set.
15338         (output_cgraph_opt_summary): New parameter set, passed to the two
15339         aforementioned functions.  Update its forward declaration and its
15340         callee too.
15341
15342 2011-01-05  Tom Tromey  <tromey@redhat.com>
15343
15344         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
15345         operator to c_finish_omp_atomic.
15346         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
15347         (build_unary_op): Update.
15348         (build_modify_expr): Update.
15349         (build_asm_expr): Update.
15350
15351 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15352
15353         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
15354         newly inserted insns.
15355         (pad_bb): Likewise.
15356         (spu_emit_branch_hint): Likewise.
15357         (insert_hbrp_for_ilb_runout): Likewise.
15358         (spu_machine_dependent_reorg): Call df_finish_pass after
15359         schedule_insns returns.
15360
15361 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15362
15363         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
15364
15365 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
15366
15367         PR tree-optimization/47005
15368         * tree-sra.c (struct access): Add 'non_addressable' bit.
15369         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
15370         (decide_one_param_reduction): Return 0 if the parameter is passed by
15371         reference and one of the accesses in the group is non_addressable.
15372
15373 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
15374
15375         PR tree-optimization/47056
15376         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
15377         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
15378         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
15379
15380 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
15381
15382         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
15383         initializer.  Skip view conversions from aggregate types.
15384
15385 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
15386
15387         PR bootstrap/47055
15388         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
15389
15390 2011-01-04  Philipp Thomas  <pth@suse.de>
15391
15392         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
15393         obvious typo.
15394
15395 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15396
15397         * function.c (thread_prologue_and_epilogue_insns): Do not crash
15398         on empty epilogue sequences.
15399
15400 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
15401
15402         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
15403         non-static): New Driver options.
15404
15405 2011-01-04  Jie Zhang  <jie@codesourcery.com>
15406
15407         PR driver/47137
15408         * gcc.c (default_compilers[]): Set combinable field to 0
15409         for all assembly languages.
15410
15411 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
15412
15413         * config/mips/loongson3a.md: New file.
15414         * config/mips/mips.md: Include loongson3a.md.
15415         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
15416         TUNE_LOONGSON_3A.
15417
15418 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
15419
15420         PR middle-end/47017
15421         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
15422         instead of convert_memory_address_addr_space on the base expression.
15423
15424 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15425
15426         * config/spu/spu.c (spu_option_override): Update error text
15427         for bad -march= / -mtune= values.
15428
15429 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15430
15431         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
15432         if branch-hint optimization will be performed.
15433
15434 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
15435
15436         PR tree-optimization/47148
15437         * ipa-split.c (split_function): Convert arguments to
15438         DECL_ARG_TYPE if possible.
15439
15440         PR tree-optimization/47155
15441         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
15442         when computing uns.
15443
15444         PR rtl-optimization/47157
15445         * combine.c (try_combine): If undobuf.other_insn becomes
15446         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
15447         and set *new_direct_jump_p too.
15448
15449 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
15450
15451         PR tree-optimization/47021
15452         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
15453
15454 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
15455
15456         * gcc.c (process_command): Update copyright notice dates.
15457         * gcov.c (print_version): Likewise.
15458         * gcov-dump.c (print_version): Likewise.
15459         * mips-tfile.c (main): Likewise.
15460         * mips-tdump.c (main): Likewise.
15461
15462 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15463
15464         PR tree-optimization/46801
15465         * tree-sra.c (type_internals_preclude_sra_p): Check whether
15466         aggregate fields start at byte boundary instead of the bit-field flag.
15467
15468 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
15469
15470         PR driver/47137
15471         * gcc.c (main): Revert revision 168407.
15472
15473 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15474
15475         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
15476
15477 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15478
15479         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
15480         vector optab to expand vector/scalar shift, update gimple to vector.
15481
15482 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15483
15484         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
15485         a thunk.
15486
15487 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15488
15489         PR tree-optimization/46984
15490         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
15491         HOST_WIDE_INT.
15492         (cgraph_create_indirect_edge): Fixed line length.
15493         (cgraph_indirect_call_info): Declare.
15494         (cgraph_make_edge_direct) Update declaration.
15495         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
15496         (cgraph_create_indirect_edge): Use it.
15497         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
15498         callees.
15499         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
15500         the new thunk_delta representation.
15501         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
15502         HOST_WIDE_INT.
15503         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15504         (ipa_read_indirect_edge_info): Likewise.
15505         * lto-cgraph.c (output_edge_opt_summary): New function.
15506         (output_node_opt_summary): Call it on all outgoing edges.
15507         (input_edge_opt_summary): New function.
15508         (input_node_opt_summary): Call it on all outgoing edges.
15509
15510 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
15511
15512         PR driver/47137
15513         * gcc.c (main): Don't check have_o when settting combine_inputs.
15514
15515 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
15516
15517         * regrename.c: Add general comment describing the pass.
15518         (struct du_head): Remove 'length' field.
15519         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15520         (regrename_optimize): Do not sort chains.  Rework comments, add others.
15521         Force renaming to the preferred class (if any) in the first pass and do
15522         not consider registers that belong to it in the second pass.
15523         (create_new_chain): Do not set 'length' field.
15524         (scan_rtx_reg): Likewise.
15525
15526 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
15527
15528         PR tree-optimization/47140
15529         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15530         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15531         to bit_value_binop.
15532
15533         PR rtl-optimization/47028
15534         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15535         parm_birth_insn instead of at the beginning of first bb.
15536
15537 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
15538
15539         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15540         Remove the word "see" before "@pxref".
15541         * doc/rtl.texi: Remove the word "see" before "@pxref".
15542
15543 2011-01-01  Jan Hubicka  <jh@suse.cz>
15544
15545         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15546         memory.
15547
15548 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
15549
15550         PR target/38662
15551         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
15552
15553 \f
15554 Copyright (C) 2011 Free Software Foundation, Inc.
15555
15556 Copying and distribution of this file, with or without modification,
15557 are permitted in any medium without royalty provided the copyright
15558 notice and this notice are preserved.