OSDN Git Service

PR middle-end/49029
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
2
3         PR middle-end/49029
4         * expmed.c (extract_fixed_bit_field): Test whether target can be used
5         only after deciding which mode to use.
6
7 2011-05-22  Tom de Vries  <tom@codesourcery.com>
8
9         PR target/45098
10         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fixed const test
11         for call to get_shiftadd_cost.
12
13 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
14
15         PR target/49104
16         * config/i386/cpuid.h (bit_MMXEXT): New define.
17
18 2011-05-22  Nick Clifton  <nickc@redhat.com>
19
20         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
21         initialisation of non-existant args[2] element.  Use args[] array
22         not arg[] array to pass arguments to build_function_type_list.
23
24 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
25
26         PR tree-optimization/49087
27         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
28
29 2011-05-21  Jason Merrill  <jason@redhat.com>
30
31         PR c++/49092
32         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
33         static storage duration.
34
35 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
36
37         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
38         frame pointer.
39
40 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
41
42         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
43         false if there are call-saved registers here...
44         (sparc_can_use_return_insn_p): ...but here instead.
45         (save_or_restore_regs): Fix thinko.
46         (sparc_expand_prologue): Use current_function_is_leaf.
47         (sparc_frame_pointer_required): Likewise.
48
49 2011-05-21  Nick Clifton  <nickc@redhat.com>
50
51         PR target/49098
52         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
53
54 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
55
56         * gengtype.c (walk_type): Implemented "atomic" GTY option.
57         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
58
59 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
60
61         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
62         * optc-gen.awk: Move common code to opt-read.awk.
63         * opth-gen.awk: Likewise.
64         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
65
66 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
67
68         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
69
70 2011-05-20  Tom de Vries  <tom@codesourcery.com>
71
72         PR target/45098
73         * tree-ssa-loop-ivopts.c: Include expmed.h.
74         (get_shiftadd_cost): New function.
75         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
76
77 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
78
79         PR bootstrap/49086
80         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
81         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
82
83 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
84
85         * Makefile.in: Update comment referring to $(OBJS-common).
86
87 2011-05-20  Ian Lance Taylor  <iant@google.com>
88
89         * godump.c (go_output_typedef): Put enum constants in the macro
90         hash table to avoid duplicate Go const definitions.
91
92 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
93
94         * Makefile.in (LIBDEPS): Add libcommon.a.
95         (LIBS): Likewise.
96         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
97         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
98         pretty-print.o and version.o.
99         (OBJS-libcommon): New.
100         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
101         (BACKEND): Add libcommon.a.
102         (MOSTLYCLEANFILES): Likewise.
103         (libcommon.a): New.
104         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
105         (cpp$(exeext)): Likewise.
106         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
107         pretty-print.o and input.o.
108         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
109         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
110         (errors.o): Remove.
111         (mips-tfile): Don't explicitly use version.o.
112         (mips-tdump): Likewise.
113         (gcov.o): Depend on $(DIAGNOSTIC_H).
114         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
115         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
116         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
117         * gcov-dump.c: Include intl.h and diagnostic.h.
118         (main): Initialize diagnostics.
119         * gcov.c: Include diagnostic.h.
120         (fnotice): Remove.
121         (main): Initialize diagnostics.
122         * lto-wrapper.c: Include diagnostic.h.
123         (main): Initialize diagnostics.
124
125 2011-05-20  Michael Matz  <matz@suse.de>
126
127         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
128
129 2011-05-20  Michael Matz  <matz@suse.de>
130             Richard Guenther  <rguenther@suse.de>
131
132         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
133         use lto_streamer_cache_append directly instead of returning a VEC.
134         (preload_common_node): Remove.
135         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
136         track seen nodes.
137         (lto_streamer_cache_create): Call lto_preload_common_nodes.
138
139 2011-05-20  Richard Guenther  <rguenther@suse.de>
140
141         PR tree-optimization/49079
142         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
143         MEM_REFs correctly for the trailing array access detection.
144         Special case constants the same way as decls for overall size
145         constraining.
146
147 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
148
149         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
150         argument expansion.
151
152 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
153
154         PR tree-optimization/49073
155         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
156         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
157         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
158
159 2011-05-20  Richard Guenther  <rguenther@suse.de>
160
161         PR middle-end/48849
162         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
163         of pointer types the same way the middle-end does.
164
165 2011-05-20  Richard Guenther  <rguenther@suse.de>
166
167         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
168         or pointer-to chains.  Delay all fixup to uniquify_nodes.
169
170 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
171
172         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
173         (fma4_fmaddsub): Likewise
174
175 2011-05-19  Jan Hubicka  <jh@suse.cz>
176
177         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
178         (GIMPLE_TYPE_PAIR_SIZE): New macro.
179         (type_pair_cache): New static var.
180         (lookup_type_pair): Use fixed sized custom hash; make inline.
181         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
182         calls of lookup_type_pair.
183         (print_gimple_types_stats): Remove cache stats.
184         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
185         and gtc_ob.
186
187 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
188
189         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
190         when TARGET_RDRND is active.
191         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
192         Generate dummy SImode target register when target is NULL.
193
194 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
195
196         * config/arm/arm-fpus.def: New.
197         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
198         arm-fpus.def.
199         * config/arm/arm-tables.opt: Regenerate.
200         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
201         (arm_option_override): Don't decode FPU name to string here.
202         * config/arm/arm.opt (mfpu=): Use Enum.
203         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
204         Update dependencies.
205
206 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
207
208         * collect2.c: Include diagnostic.h.
209         (fatal_perror, fatal, error, fancy_abort): Remove.
210         (main): Set progname.  Call xmalloc_set_program_name and
211         diagnostic_initialize.
212         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
213         scan_libraries, resolve_lib_name): Call fatal_error instead of
214         fatal and fatal_perror.
215         * collect2.h (error, fatal, fatal_perror): Don't declare.
216         * tlink.c: Include diagnostic-core.h.
217         (recompile_files): Call fatal_error instead of fatal_perror.
218         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
219         pretty-print.o and input.o.
220         (collect2.o, tlink.o): Update dependencies.
221
222 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
223
224         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
225
226 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
227
228         PR target/40483
229         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
230         COMDAT group syntax, both SPARC and x86 variants.
231         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
232         * configure: Regenerate.
233         * config/sol2.h (TARGET_SOLARIS): Define.
234         (PUSHSECTION_FORMAT): Remove.
235         (SECTION_NAME_FORMAT): Define.
236         * config/sol2.c: Include hashtab.h.
237         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
238         expansion, using SECTION_NAME_FORMAT.
239         (solaris_comdat_htab): New variable.
240         (struct comdat_entry): Define.
241         (comdat_hash): New function.
242         (comdat_eq): New function.
243         (solaris_elf_asm_comdat_section): New function.
244         (solaris_define_comdat_signature): New function.
245         (solaris_code_end): New function.
246         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
247         (solaris_code_end): Declare.
248         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
249         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
250         solaris_code_end.
251         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
252         Remove ATTRIBUTE_UNUSED.
253         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
254         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
255         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
256         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
257         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
258         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
259         (PUSHSECTION_FORMAT): Remove.
260         (SECTION_NAME_FORMAT): Redefine.
261
262 2011-05-19  Kai Tietz  <ktietz@redhat.com>
263
264         * tree-cfg.c (verify_gimple_assign_binary): Barf on
265         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
266         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
267
268 2011-05-19  Anatoly Sokolov <aesok@post.ru>
269             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
270
271         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
272
273 2011-05-19  Richard Guenther  <rguenther@suse.de>
274
275         PR middle-end/48985
276         * tree-object-size.c (addr_object_size): If the pointed-to
277         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
278
279 2011-05-19  Richard Guenther  <rguenther@suse.de>
280
281         * gimple.c (gimple_types_compatible_p_1): Compare names of
282         the types themselves.
283         (iterative_hash_gimple_type): And hash them that way.
284         (gimple_register_type_1): If we register a main variant properly
285         initialize the leader to ourselves.
286
287 2011-05-19  Tom de Vries  <tom@codesourcery.com>
288
289         PR target/45098
290         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
291         get_loop_invariant_expr_id.
292         (get_loop_invariant_expr_id): Use get_expr_id.
293         (parm_decl_cost): New function.
294         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
295         Improve bound cost estimation.  Use different inv_expr_id for elim and
296         express cases.
297
298 2011-05-19  Tom de Vries  <tom@codesourcery.com>
299
300         PR target/45098
301         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
302         cost_base.cost == 0.
303
304 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
305
306         PR target/49002
307         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
308         Properly handle load cast.
309
310 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
311
312         PR tree-optimization/49039
313         * tree-vrp.c (extract_range_from_binary_expr): For
314         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
315         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
316
317 2011-05-18  Tom de Vries  <tom@codesourcery.com>
318
319         PR target/45098
320         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
321
322 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
323
324         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
325         (*tls_global_dynamic_64): Ditto.
326         (*tls_local_dynamic_base_32_gnu): Ditto.
327         (*tls_local_dynamic_base_64): Ditto.
328         (tls_initial_exec_64_sun): Ditto.
329
330 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
331
332         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
333         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
334         bf592-none.
335         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
336         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
337         * config/bfin/bfin.c (bfin_cpus): Add bf592.
338         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
339         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
340         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
341         * config/bfin/elf.h (LIB_SPEC): Add bf592.
342
343 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
344
345         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
346         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
347         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
348         target_thread_pointer, arm_structure_size_boundary, struct
349         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
350         struct abi_name, arm_all_abis): Remove.
351         (arm_option_override) Don't process most enumerated option values here.
352         Don't process target_fpe_name here.  Work with integer not string for
353         structure size boundary; use separate diagnostics for each case.
354         * config/arm/arm.h (enum float_abi_type, enum
355         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
356         to arm-opts.h.
357         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
358         arm_structure_size_boundary): Remove.
359         * config/arm/arm.opt (mabi=): Use Enum and Init.
360         (arm_abi_type): New Enum and EnumValue entries.
361         (mfloat-abi=): Use Enum and Init.
362         (float_abi_type): New Enum and EnumValue entries.
363         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
364         (mfp16-format=): Use Enum and Init.
365         (arm_fp16_format_type): New Enum and EnumValue entries.
366         (mstructure-size-boundary=): Use UInteger and Init.
367         (mtp=): Use Enum and Init.
368         (arm_tp_type): New Enum and EnumValue entries.
369
370 2011-05-18  Richard Guenther  <rguenther@suse.de>
371
372         PR tree-optimization/49018
373         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
374         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
375         gimple_has_side_effects.
376
377 2011-05-18  Richard Guenther  <rguenther@suse.de>
378
379         * gimple.c (gimple_register_type_1): New function, split out from ...
380         (gimple_register_type): ... here.  Avoid infinite recursion.
381
382 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
383
384         PR tree-optimization/41881
385         * tree-vectorizer.h (struct _loop_vec_info): Add new field
386         reduction_chains along with a macro for its access.
387         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
388         (destroy_loop_vec_info): Free reduction chains.
389         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
390         (vect_is_slp_reduction): New function.
391         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
392         (vect_create_epilog_for_reduction): Support SLP reduction chains.
393         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
394         definition types for reduction chains.
395         (vect_supported_load_permutation_p): Don't allow permutations for
396         reduction chains.
397         (vect_analyze_slp_instance): Support reduction chains.
398         (vect_analyze_slp): Try to build SLP instance from reduction chains.
399         (vect_get_constant_vectors):  Handle reduction chains.
400         (vect_schedule_slp_instance): Mark the first statement of the
401         reduction chain as reduction.
402
403 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
404
405         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
406         names for group elements access.
407         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
408         reduction chains as well.  Remove data reference and interleaving
409         related words from the fields names.
410         * tree-vect-loop.c (vect_transform_loop): Use new names for group
411         elements access.
412         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
413         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
414         vect_update_interleaving_chain, vect_same_range_drs,
415         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
416         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
417         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
418         vect_analyze_group_access, vect_analyze_data_ref_access,
419         vect_create_data_ref_ptr, vect_transform_strided_load,
420         vect_record_strided_load_vectors): Likewise.
421         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
422         vect_model_load_cost, vectorizable_store, vectorizable_load,
423         vect_remove_stores, new_stmt_vec_info): Likewise.
424         * tree-vect-slp.c (vect_build_slp_tree,
425         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
426
427 2011-05-18  Richard Guenther  <rguenther@suse.de>
428
429         PR middle-end/48989
430         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
431         operand verification.
432         (verify_gimple_assign_binary): Likewise.
433         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
434         to non-1-precision BOOLEAN_TYPEs.
435
436 2011-05-18  Tom de Vries  <tom@codesourcery.com>
437
438         PR target/45098
439         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
440
441 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
442
443         PR tree-optimization/49000
444         * tree-ssa.c (execute_update_addresses_taken): Call
445         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
446         be rewritten and decl has been marked for renaming, reset
447         the debug stmt.
448
449 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
450
451         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
452         enum_opts_set when testing if attributes have set -mfpmath=.
453
454 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
455
456         * config/mips/mips.c (mips_handle_option): Remove unused variable.
457
458 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
459
460         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
461         info->entry with 0
462         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
463         id.transform_lang_insert_block with NULL.
464
465 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
466
467         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
468         (output_fp_compare): Change args 3 and 4 to bool.
469         (ix86_expand_call): Change arg 6 to bool.
470         (ix86_attr_length_immediate_default): Change arg 2 to bool.
471         (ix86_attr_length_vex_default): Change arg 3 to bool.
472         * config/i386/i386.md: Update all uses.
473         * config/i386/i386.c: Ditto.
474         (ix86_flags_dependent): Change return type to bool.
475
476 2011-05-17  Richard Guenther  <rguenther@suse.de>
477
478         * gimple.c (type_hash_pair_compare): Fix comparison.
479
480 2011-05-17  Richard Guenther  <rguenther@suse.de>
481
482         * gimple.c (iterative_hash_gimple_type): Simplify singleton
483         case some more, fix final hash value of the non-singleton case.
484
485 2011-05-17  Richard Guenther  <rguenther@suse.de>
486
487         PR bootstrap/49013
488         Revert
489         2011-05-16  Richard Guenther  <rguenther@suse.de>
490
491         * gimple.c (gimple_types_compatible_p_1): Use names of the
492         type itself, not its main variant.
493         (iterative_hash_gimple_type): Likewise.
494
495 2011-05-17  Richard Guenther  <rguenther@suse.de>
496
497         * gimple.c (gimple_register_canonical_type): Use the main-variant
498         leader for computing the canonical type.
499
500 2011-05-17  Nick Clifton  <nickc@redhat.com>
501
502         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
503         moves.
504
505         * config/rx/rx.md: Add peephole to remove redundant extensions
506         after loads.
507         (bitset_in_memory): Use rx_restricted_mem_operand.
508         (bitinvert_in_memory): Likewise.
509         (bitclr_in_memory): Likewise.
510
511 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
512             Nick Clifton  <nickc@redhat.com>
513
514         * config/rx/rx.md: Add peepholes to match a register move followed
515         by a comparison of the moved register.  Replace these with an
516         addition of zero that does both actions in one instruction.
517
518 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
519
520         PR target/48986
521         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
522         predicate to allow CONST_INT.
523         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
524
525 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
526
527         * opts-common.c (opt_enum_arg_to_value): New.
528         * opts.h (opt_enum_arg_to_value): Declare.
529         * config/i386/i386.opt (fpmath): Remove.
530         (mfpmath=): Use Enum, Init and Save.
531         (fpmath_unit): New Enum and EnumValue entries.
532         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
533         name for function fpmath state.
534         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
535         * config/i386/i386.c: Include diagnostic.h.
536         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
537         (ix86_target_string): Take enum fpmath_unit value instead of string.
538         (ix86_debug_options): Update call to ix86_target_string.
539         (ix86_option_override_internal): Don't process fpmath strings here.
540         (x86_function_specific_save, ix86_function_specific_restore):
541         Don't handle fpmath state specially.
542         (ix86_function_specific_print): Pass fpmath state to
543         ix86_target_string instead of printing in this function.
544         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
545         Handle enum attributes.
546         (IX86_ATTR_ENUM, ix86_opt_enum): New.
547         (ix86_valid_target_attribute_tree): Update option_strings
548         handling.  Handle fpmath as enum option.
549         (ix86_can_inline_p): Update field names for function fpmath state.
550         (ix86_expand_builtin): Update call to ix86_target_string.
551         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
552         (ix86_fpmath): Remove.
553         * config/i386/t-i386 (i386.o): Update dependencies.
554
555 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
556
557         PR preprocessor/48677
558         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
559         from decoded_options[0], not from itself.
560
561 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
562
563         * config/i386/constraints.md (z): New constraint.
564         * config/i386/i386.c (c): New mode attribute.
565         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
566         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
567         constraint for operand 0.
568         (*call_vzeroupper): Ditto.
569         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
570         (*call_rex64_ms_sysv_vzeroupper): Ditto.
571         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
572         Use "lzm" constraint for operand 0.
573         (*call_pop_vzeroupper): Ditto.
574         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
575         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
576         constraint for operand 0.
577         (*sibcall_vzeroupper): Ditto.
578         (*sibcall_rex64_ms_sysv): Ditto.
579         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
580         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
581         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
582         (*sibcall_pop_vzeroupper): Ditto.
583         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
584         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
585         mode iterator.  Use "<c>zm" constraint for operand 1.
586         (*call_value_vzeroupper): Ditto.
587         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
588         for operand 1.
589         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
590         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
591         *call_value_pop_1.  Use "lzm" constraint for operand 1.
592         (*call_value_pop_vzeroupper): Ditto.
593         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
594         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
595         mode iterator.  Use "Uz" constraint for operand 1.
596         (*sibcall_value_vzeroupper): Ditto.
597         (*sibcall_value_rex64_ms_sysv): Ditto.
598         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
599         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
600         constraint for operand 1.
601         (*sibcall_value_pop_vzeroupper): Ditto.
602         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
603         and "z" constraint for operand 2.
604         (*tls_global_dynamic_32_gnu): Ditto.
605         (*tls_local_dynamic_base_32_gnu): Ditto.
606         (*tls_local_dynamic_base_64): Ditto.
607         (*tls_local_dynamic_32_once): Ditto.
608         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
609         Update all callers.
610         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
611
612 2011-05-16  Richard Guenther  <rguenther@suse.de>
613
614         * gimple.c (gimple_types_compatible_p_1): Use names of the
615         type itself, not its main variant.
616         (iterative_hash_gimple_type): Likewise.
617
618 2011-05-16  Richard Guenther  <rguenther@suse.de>
619
620         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
621         always visit pointer target and function result and argument types.
622
623 2011-05-16  Jason Merrill  <jason@redhat.com>
624
625         PR c++/48999
626         * tree-inline.c (copy_statement_list): Put back recursion.
627
628 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
629
630         PR target/27663
631         PR target/41076
632         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
633         * config/avr/avr.md ("*ior<mode>qi.byte0",
634         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
635
636 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
637
638         PR target/45099
639         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
640         register is needed for a function argument.
641
642 2011-05-16  Richard Guenther  <rguenther@suse.de>
643
644         * gimple.c (struct type_hash_pair): New type.
645         (type_hash_pair_compare): New function.
646         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
647
648 2011-05-16  Revital Eres  <revital.eres@linaro.org>
649
650         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
651
652 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
653
654         * config/i386/i386.md (floating point move splitters): Fix
655         usage of standard_80387_constant_p.
656         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
657
658 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
659
660         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
661
662 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
663
664         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
665         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
666         (tree_ssa_lim_finalize): Likewise.
667
668 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
669
670         * config/i386/constraint.md (Yd, Yx): New register constraints.
671         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
672         Yd conditional register constraint.
673         (*movtf_internal): Use standard_sse_constant_opcode.
674         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
675         Yx conditional register constraint.
676         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
677         Yd conditional register constraint.  Use standard_sse_constant_p to
678         check for valid SSE constants and call standard_sse_constant_opcode to
679         output SSE insn.
680         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
681         constants and call standard_sse_constant_opcode to output SSE insn.
682         * config/i386/i386.c (ix86_option_ovverride_internal): Set
683         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
684         optimize_size is set.
685         (standard_sse_constant_opcode): Output conditional AVX insn templates.
686
687 2011-05-14  Tobias Burnus  <burnus@net-b.de>
688
689         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
690
691 2011-05-13  Martin Jambor  <mjambor@suse.cz>
692
693         * ipa-prop.c (ipa_cst_from_jfunc): New function.
694         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
695         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
696         (evaluate_conditions_for_ipcp_clone): Removed.
697         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
698         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
699         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
700
701 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
702
703         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
704         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
705         lieu of MAY_HAVE_DEBUG_STMTS.
706         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
707         debug statements if !MAY_HAVE_DEBUG_STMTS.
708
709 2011-05-13  Martin Thuresson  <martint@google.com>
710
711         PR gcov-profile/47793
712         * libgcov.c (gcov_exit): Support relative profile paths.
713         * doc/invoke.texi (-fprofile-dir): Update for above change.
714
715 2011-05-13  Richard Guenther  <rguenther@suse.de>
716
717         * gimple.c (gimple_canonical_types_compatible_p): Do not use
718         type-pair caching, do not compare hashes.
719
720 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
721
722         PR middle-end/48965
723         * tree-cfg.c (edge_to_cases_cleanup): Return true.
724         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
725
726 2011-05-13  Kai Tietz  <ktietz@redhat.com>
727
728         * gimplify.c (gimplify_expr): Make sure operand is boolified.
729         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
730         compatible type for TRUTH_NOT_EXPR.
731
732 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
733
734         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
735         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
736         can_create_pseudo_p ().
737
738 2011-05-13  Richard Guenther  <rguenther@suse.de>
739
740         PR lto/48978
741         * gimple.c (iterative_hash_gimple_type): Revert change in
742         pointer target and function result and argument hashing.
743
744 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
745
746         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
747         (*movxf_internal_nointeger): Ditto.
748         (*movdf_internal_rex64): Ditto.
749         (*movdf_internal): Ditto.
750         (*movdf_internal_nointeger): Ditto.
751         (*movsf_internal): Ditto.
752         (sincos splitters): Use can_create_pseudo ().
753
754 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
755
756         * config/i386/i386-opts.h: New.
757         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
758         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
759         ix86_section_threshold): Remove.
760         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
761         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
762         OPT_mbranch_cost_.
763         (ix86_option_override_internal): Don't decode strings for options
764         other than -march=, -mtune= and -mfpmath=.  Don't allow for
765         __attribute__ uses in remaining diagnostics for options with
766         string arguments.  Don't check for integer arguments being negative.
767         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
768         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
769         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
770         ix86_branch_cost, ix86_section_threshold): Remove.
771         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
772         HeaderInclude.
773         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
774         but not Var.
775         (masm=): Use Enum and Init.
776         (asm_dialect): New Enum and EnumValue entries.
777         (mbranch-cost=): Use UInteger.
778         (mlarge-data-threshold=): Use UInteger and Init.
779         (mcmodel=): Use Enum and Init.
780         (cmodel): New Enum and EnumValue entries.
781         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
782         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
783         mregparm=): Use UInteger.
784         (mstringop-strategy=): Use Enum and Init.
785         (stringop_alg): New Enum and EnumValue entries.
786         (mtls-dialect=): Use Enum and Init.
787         (tls_dialect): New Enum and EnumValue entries.
788         (mabi=): Use Enum and Init.
789         (calling_abi): New Enum and EnumValue entries.
790         (mveclibabi=): Use Enum and Init.
791         (ix86_veclibabi): New Enum and EnumValue entries.
792
793 2011-05-13  Nick Clifton  <nickc@redhat.com>
794
795         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
796         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
797
798 2011-05-13  Kai Tietz  <ktietz@redhat.com>
799
800         PR middle-end/48984
801         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
802         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
803         (gimple_boolify): Check for cast for boolean_type_node instead for
804         BOOLEAN_TYPE.
805
806 2011-05-13  Richard Guenther  <rguenther@suse.de>
807
808         PR tree-optimization/48172
809         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
810         multiplying by number of iterations for equal step.
811         (vect_create_cond_for_alias_checks): Likewise.
812
813 2011-05-13  Andreas Schwab  <schwab@redhat.com>
814
815         * configure.ac: Use AS_HELP_STRING throughout.
816         * configure: Regenerate.
817
818 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
819
820         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
821         (ix86_emit_restore_regs_using_mov): Likewise.
822         (ix86_emit_restore_sse_regs_using_mov): Likewise.
823
824 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
825
826         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
827         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
828         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
829         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
830         RTX_OK_FOR_OLO10_P): ...here.
831         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
832         SYMBOLIC_CONST.
833
834 2011-05-12  Kai Tietz  <ktietz@redhat.com>
835
836         * gimplify.c (gimple_boolify): Re-boolify expression
837         arguments even if expression type is of kind BOOLEAN_TYPE.
838         (gimplify_boolean_expr): Removed.
839         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
840         and XOR. Additional take care that we keep expression's type.
841         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
842         of TRUTH_AND|OR|XOR_EXPR.
843
844 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
845
846         PR tree-optimization/48975
847         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
848         on all bbs here and free and clear ifc_bbs at the end.
849
850 2011-05-12  Richard Guenther  <rguenther@suse.de>
851
852         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
853         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
854         until after simple checks.
855         (gimple_types_compatible_p): Likewise.
856         (iterative_hash_gimple_type): Always hash pointer targets
857         and function return and argument types.
858         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
859         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
860         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
861         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
862         completely in the simple compare section.
863         (gimple_register_canonical_type): Query the cache again after
864         registering.
865
866 2011-05-12  Richard Guenther  <rguenther@suse.de>
867
868         PR tree-optimization/48172
869         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
870         the number of iterations from the segment size calculation.
871         (vect_create_cond_for_alias_checks): Adjust.
872
873 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
874
875         PR debug/48967
876         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
877         if validate_subreg fails.
878
879 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
880
881         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
882         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
883         early.
884
885 2011-05-12  DJ Delorie  <dj@redhat.com>
886
887         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
888         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
889         created builtin into rx_builtins array.
890         (rx_builtin_decl): New function.
891         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
892
893 2011-05-12  DJ Delorie  <dj@redhat.com>
894             Nick Clifton  <nickc@redhat.com>
895
896         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
897         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
898         (rx_is_legitimate_address): Add pre-decrement and post-increment
899         addressing in HImode and QImode.  Fix test for out of range
900         REG+INT addressing.
901         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
902         (rx_align_for_label): Test label before extracting its usage count.
903         (rx_adjust_insn_lengths): Fix selection of insn codes.
904         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
905
906 2011-05-11  Jason Merrill  <jason@redhat.com>
907
908         * tree.c (type_hash_canon): Use struct tree_type_non_common.
909
910 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
911
912         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
913         reindent the subsequent block.
914
915 2011-05-11  Satoru Takabayashi  <satorux@google.com>
916             Paul Pluzhnikov  <ppluzhnikov@google.com>
917
918         * doc/install.texi (Configuration): Document --with-linker-hash-style.
919         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
920         * config.in: Add LINKER_HASH_STYLE.
921         * configure.ac: Add --with-linker-hash-style.
922         * configure: Regenerate.
923
924 2011-05-11  Richard Guenther  <rguenther@suse.de>
925
926         PR middle-end/48964
927         * gimple.c (iterative_hash_canonical_type): Fix typo.
928
929 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
930
931         * config/i386/i386.c (legitimize_tls_address)
932         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
933         expanders directly for TARGET_GNU2_TLS.  Determine pic and
934         __tls_get_addr symbol reference here.  Update call to
935         gen_tls_global_dynamic_{32,64} for added arguments.
936         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
937         expanders directly for TARGET_GNU2_TLS.  Determine
938         __tls_get_addr symbol reference here.  Update call to
939         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
940         unique UNSPEC REG_EQUIV to libcall block.
941         (ix86_tls_get_addr): Declare static.
942         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
943         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
944         Do not determine pic and __tls_get_addr symbol reference here. Do not
945         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
946         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
947         (tls_global_dynamic_64): Add operand 2.  Do not determine
948         __tls_get_addr symbol reference here.  Do not call
949         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
950         (tls_local_dynamic_base64): Ditto for operand 1.
951
952 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
953
954         * function.c (expand_function_start): Initialize stack_check_probe_note
955         only if the generic stack checking mechanism is used.
956
957 2011-05-11  Richard Guenther  <rguenther@suse.de>
958
959         PR tree-optimization/15256
960         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
961         (A & B) | C, combine (A op CST1) op CST2.
962         (tree_ssa_forward_propagate_single_use_vars): Only bother to
963         visit assigns that have uses.
964
965 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
966
967         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
968         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
969         (unpack_ts_type_common_value_fields): ...this.  Update comment.
970         (unpack_value_fields): Adjust for renaming.
971         (lto_input_ts_type_tree_pointers): Split into...
972         (lto_input_ts_type_common_tree_pointer): ...this and...
973         (lto_input_ts_type_non_common_tree_pointers): ...this.
974         (lto_input_tree_pointers): Adjust for above split.
975         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
976         (pack_ts_type_common_value_fields): ...this.  Update comment.
977         (lto_output_ts_type_tree_pointers): Split into...
978         (lto_output_ts_type_common_tree_pointers): ...this and...
979         (lto_output_ts_type_non_common_tree_pointers): ...this.
980         (lto_output_tree_pointers): Adjust for above split.
981         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
982         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
983         * stor-layout.c (vector_type_mode): Adjust location of mode field.
984         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
985         Define.
986         (struct tree_type): Split into...
987         (struct tree_type_common: ...this and...
988         (struct tree_type_with_lang_specific): ...this and...
989         (struct tree_type_non_common): ...this.  Adjust accessor macros
990         accordingly.
991         (TYPE_VALUES_RAW): Define.
992         (union tree_node): Update for above changes.
993         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
994         TS_TYPE_NON_COMMON.
995         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
996         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
997         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
998         * treestructu.def (TS_TYPE): Remove.
999         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
1000         Define.
1001
1002 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
1003
1004         PR debug/48159
1005         * tree-ssa.c (reset_debug_uses): New function.
1006         * tree-flow.h (reset_debug_uses): New prototype.
1007         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1008         * tree-loop-distribution.c (generate_loops_for_partition): Call
1009         reset_debug_uses on the stmts that will be removed.  Keep around
1010         all debug stmts, don't count them as bits in partition bitmap.
1011         (generate_builtin): Don't count debug stmts or labels as bits in
1012         partition bitmap.
1013
1014 2011-05-11  Richard Guenther  <rguenther@suse.de>
1015
1016         * gimple.c (gimple_type_hash_1): Merge with ...
1017         (gimple_type_hash): ... this.
1018         (gtc_visit): Remove mode parameter and simplify accordingly.
1019         (gimple_types_compatible_p_1): Likewise.
1020         (gimple_types_compatible_p): Likewise.
1021         (iterative_hash_gimple_type): Likewise.
1022         (visit): Likewise.
1023         (gimple_type_eq): Adjust.
1024
1025 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1026
1027         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1028         enters the branch create an anti edge in the opposite direction
1029         to prevent the creation of reg-moves.
1030         * modulo-sched.c: Adjust comment to reflect the fact we are
1031         scheduling closing branch.
1032         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1033         (stage_count): New field in struct partial_schedule.
1034         (calculate_stage_count): New function.
1035         (normalize_sched_times): Rename to reset_sched_times and handle
1036         incrementing the sched time of the nodes by a constant value
1037         passed as parameter.
1038         (duplicate_insns_of_cycles): Skip closing branch.
1039         (sms_schedule_by_order): Schedule closing branch.
1040         (ps_insn_find_column): Handle closing branch.
1041         (sms_schedule): Call reset_sched_times and adjust the code to
1042         support scheduling of the closing branch.
1043         (ps_insert_empty_row): Update calls to normalize_sched_times
1044         and rotate_partial_schedule functions.
1045
1046 2011-05-11  Richard Guenther  <rguenther@suse.de>
1047
1048         PR middle-end/48953
1049         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1050
1051 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
1052
1053         * opts.c (finish_options): Move warning settings from process_options.
1054         * toplev.c (process_options): Move warning settings to finish_options.
1055
1056 2011-05-11  Richard Guenther  <rguenther@suse.de>
1057
1058         PR tree-optimization/18041
1059         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1060         (simplify_bitwise_binary): ... this.  Handle operand conversions
1061         by applying them to the result instead.
1062         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
1063
1064 2011-05-11  Richard Guenther  <rguenther@suse.de>
1065
1066         * gimple.c (gimple_canonical_types_compatible_p): Split out
1067         from gimple_types_compatible_p and friends.  Do not recurse
1068         to pointed-to types.
1069         (gimple_canonical_type_eq): Use it.
1070         (iterative_hash_canonical_type): Split out from
1071         iterative_hash_gimple_type and friends.  Do not recurse
1072         to pointed-to types.
1073         (gimple_canonical_type_hash): Use it, allocate the hash here.
1074
1075 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1076
1077         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1078         recognizing doloop.
1079
1080 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1081
1082         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1083         instead of PREV_INSN.
1084
1085 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1086
1087         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1088         * loop-doloop.c (doloop_condition_get): Likewise.
1089         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1090         (doloop_end): New.
1091         * config/arm/arm.md (*addsi3_compare0): Remove "*".
1092
1093 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
1094
1095         * tree.def (CASE_LABEL_EXPR): Add an operand.
1096         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1097
1098 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1099
1100         * c-decl.c (c_override_global_bindings_to_false): Remove.
1101         (global_bindings_p): Don't check
1102         c_override_global_bindings_to_false.
1103         * c-tree.h (c_override_global_bindings_to_false): Remove.
1104         * c-typeck.c (composite_type): Don't set
1105         c_override_global_bindings_to_false.
1106
1107 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
1108
1109         PR target/48857, 48495
1110         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1111         (VSX_MODE): Ditto.
1112         (VSX_MOVE_MODE): Ditto.
1113         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1114         VSX vector types.  Add V2DImode.
1115         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1116         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1117         (MODES_TIEABLE_P): Ditto.
1118
1119         * config/rs6000/rs6000.c (rs6000_emit_move): Use
1120         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1121         VSX_VECTOR_MODE.
1122         (init_cumulative_args): Ditto.
1123         (rs6000_function_arg_boundary): Ditto.
1124         (rs6000_function_arg_advance_1): Ditto.
1125         (rs6000_function_arg): Ditto.
1126         (rs6000_function_ok_for_sibcall): Ditto.
1127         (emit_frame_save): Ditto.
1128         (rs6000_function_value): Ditto.
1129         (rs6000_libcall_value): Ditto.
1130
1131 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1132
1133         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1134         i386/darwin-lib.h to $libgcc_tm_file.
1135         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1136
1137 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1138
1139         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1140
1141 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1142
1143         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
1144         * config/rs6000/rs6000-tables.opt: New file (generated).
1145         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1146         rs6000/rs6000-tables.opt to extra_options.
1147         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1148         * config/rs6000/rs6000.c (rs6000_select): Remove.
1149         (processor_target_table): Move contents to rs6000-cpus.def.
1150         (darwin_rs6000_override_options): Check
1151         global_options_set.x_rs6000_cpu_index instead of
1152         rs6000_select[1].string.
1153         (rs6000_option_override_internal): Likewise.
1154         (rs6000_handle_option): Don't assert that global structures are in
1155         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
1156         (rs6000_default_cpu): New variable.
1157         (rs6000_file_start): Set it instead of local default_cpu.  Check
1158         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1159         global_options_set.x_rs6000_tune_index instead of rs6000_select.
1160         (rs6000_darwin_file_start): Check rs6000_default_cpu and
1161         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1162         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1163         rs6000_select): Remove.
1164         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1165         Remove.
1166         (mcpu=, mtune=): Use Var, Init, Enum and Save.
1167         * config/rs6000/t-rs6000
1168         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1169         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1170         global_options_set.x_rs6000_cpu_index instead of
1171         rs6000_select[1].string.
1172         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1173         global_options_set.x_rs6000_cpu_index instead of
1174         rs6000_select[1].string.
1175
1176 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1177
1178         * config.gcc (libgcc_tm_file): Define instead of including files
1179         from ../../libgcc/config/ in tm_file.
1180         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
1181         * configure: Regenerate.
1182         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1183         libgcc_tm.h, cs-libgcc_tm.h): New.
1184         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1185         (clean): Remove libgcc_tm.h.
1186         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1187         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1188         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1189
1190 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
1191
1192         PR target/48896
1193         * config/avr/avr.c (avr_ret_register): Return unsigned int
1194         instead of int.
1195         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1196         it to avr_libcall_value.
1197         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1198         expand_expr.
1199         (avr_expand_binop_builtin): Ditto.
1200         (avr_expand_unop_builtin): Ditto.
1201
1202 2011-05-10  DJ Delorie  <dj@redhat.com>
1203
1204         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1205         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1206         * config/rx/rx.c (rx_align_for_label): Add label and
1207         uses_threshold parameters.  Do not align when the label is not
1208         used enough.
1209         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1210
1211 2011-05-10  Richard Guenther  <rguenther@suse.de>
1212
1213         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1214         a series of conversions and apply foldings similar to what
1215         fold-const does.
1216         (tree_ssa_forward_propagate_single_use_vars): Call it.
1217
1218 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
1219
1220         PR tree-optimization/48611
1221         PR tree-optimization/48794
1222         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1223         referenced from RESX or EH_DISPATCH arguments.
1224
1225         PR debug/48928
1226         * dfp.c (decimal_to_decnumber): Handle conversion from
1227         dconst{1,2,m1,half}.
1228
1229 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1230
1231         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1232         for !flag_prefer_avx128.
1233         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1234
1235 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1236
1237         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1238         (fold_ternary_loc): Use expr_location_or.
1239
1240 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1241
1242         PR debug/48853
1243         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1244         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1245         Pmode and mem_mode is not VOIDmode.
1246
1247 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
1248
1249         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1250         TYPE_QUAL_RESTRICT): Convert to enum.
1251
1252 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1253
1254         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1255         (const_pow2_1_to_8_operand): Ditto.
1256         (const_pow2_1_to_128_operand): Ditto.
1257         (const_pow2_1_to_32768_operand): Ditto.
1258         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1259         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
1260         in insn constraint to check integer value of operand 3.
1261         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1262
1263         (PINSR_MODE): New mode iterator.
1264         (sse2p4_1): New mode attribute.
1265         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1266         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1267         iterator.  Use const_int_operand instead of
1268         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
1269         exact_log2 in insn constraint to check integer value of operand 3.
1270
1271 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1272
1273         * config/i386/sse.md (blendbits): Remove mode attribute.
1274         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1275         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1276         Check integer value of operand 3 in insn constraint.
1277
1278 2011-05-09  Richard Guenther  <rguenther@suse.de>
1279
1280         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1281         for diagnostics.
1282         (lto_symtab_merge): Likewise.  Do not register types here.
1283         (lto_symtab_merge_decls_2): Likewise.
1284         (lto_symtab_merge_decls_1): Likewise.
1285         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1286         * gimple.c (enum gtc_mode): Declare.
1287         (gimple_types_compatible_p): Make static.
1288
1289 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1290
1291         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1292         temporary register to match Pmode.
1293
1294 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1295
1296         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1297         and *vec_concatv4si_1_avx.
1298
1299 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1300
1301         PR rtl-optimization/48927
1302         * ira-conflicts.c (commutative_constraint_p): Use
1303         recog_data.alternative_enabled_p to disable alternatives where
1304         "enabled" attribute is false.
1305         (get_dup_num): Ditto.
1306         * ira-lives.c (single_reg_class): Ditto.
1307         (ira_implicitly_set_insn_hard_regs): Ditto.
1308
1309 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1310
1311         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1312         (dataflow_set_preserve_mem_locs): Likewise.
1313
1314 2011-05-09  Philipp Thomas  <pth@suse.de>
1315
1316         * config/mep/mep.c (mep_validate_vliw): Syntax description
1317         should not be translated.
1318
1319 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
1320
1321         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1322         * config/mips/mips-tables.opt: New file (generated).
1323         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
1324         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1325         MIPS_ARCH_OPTION_NATIVE): Define.
1326         * config/mips/mips.c (mips_cpu_info_table): Move contents to
1327         mips-cpus.def.
1328         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1329         mips_parse_cpu): Remove.
1330         (mips_cpu_info_from_opt, mips_default_arch): New.
1331         (mips_handle_option): Don't assert that global structures are in
1332         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1333         (mips_option_override): Use new variables and functions to set
1334         state of these options.  Use strcmp to check for individual CPU names.
1335         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1336         definition.
1337         * config/mips/mips.opt (march=): Use ToLower and Enum.
1338         (mips): Use ToLower, Enum and Var.
1339         (mtune=): Use ToLower and Enum.
1340         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1341
1342 2011-05-08  Jan Hubicka  <jh@suse.cz>
1343
1344         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1345         Arrange type pairs to be UID ordered.
1346         (gimple_lookup_type_leader): Make inline.
1347
1348 2011-05-09  Nick Clifton  <nickc@redhat.com>
1349
1350         PR target/48899
1351         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1352         PROCESSOR_DEFAULT.
1353
1354         PR target/48897
1355         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1356         variable 's'.
1357
1358 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
1359
1360         * combine.c (simplify_comparison): Abstract out parts into...
1361         (simplify_compare_const): ... new function.
1362         (try_combine): Generalize parallel arithmetic/compare combining
1363         to call simplify_compare_const() and CANONICALIZE_COMPARE().
1364
1365 2011-05-08  Jan Hubicka  <jh@suse.cz>
1366
1367         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
1368         (cgraph_create_virtual_clone): Call hooks once virtual clone
1369         is finished.
1370         * cgraph.h (cgraph_clone_node): Update prototype.
1371         * ipa-cp.c (ipcp_estimate_growth): Use
1372         estimate_ipcp_clone_size_and_time.
1373         * ipa-inline-transform.c (clone_inlined_nodes): Update.
1374         * lto-cgraph.c (input_node): Update.
1375         * ipa-inline.c (recursive_inlining): Update.
1376         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1377         (evaluate_conditions_for_known_args): Break out from ...
1378         (evaluate_conditions_for_edge): ... here.
1379         (evaluate_conditions_for_ipcp_clone): New function.
1380         (inline_node_duplication_hook): Update clone summary based
1381         on parameter map.
1382         (estimate_callee_size_and_time): Rename to ...
1383         (estimate_node_size_and_time): take NODE instead of EDGE;
1384         take POSSIBLE_TRUTHS as argument.
1385         (estimate_callee_size_and_time): Update.
1386         (estimate_ipcp_clone_size_and_time): New function.
1387         (do_estimate_edge_time): Update.
1388
1389 2011-05-08  Richard Guenther  <rguenther@suse.de>
1390
1391         PR middle-end/48908
1392         PR middle-end/48905
1393         * expmed.c (expand_shift_1): Compute adjusted constant shift
1394         amount manually.
1395
1396 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1397
1398         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1399
1400 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1401
1402         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1403
1404 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
1405
1406         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1407
1408 2011-05-07  Jan Hubicka  <jh@suse.cz>
1409
1410         * ipa-inline-transform.c (inline_call): Account when program size
1411         decreases.
1412         * ipa-inline.c (relative_time_benefit): New function.
1413         (edge_badness): Reorganize to be power 2 based; fix thinko when
1414         computing badness for negative growth; update comments to match
1415         reality; better dumps.
1416
1417 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
1418
1419         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1420         type to bool and adjust comment.
1421         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1422         (fold_mathfn_compare): Remove calls to global_bindings_p.
1423         (fold_inf_compare): Likewise.
1424         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1425         * c-tree.h (global_bindings_p): Adjust prototype.
1426         * c-decl.c (global_bindings_p): Return bool and simplify.
1427
1428 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
1429
1430         PR tree-optimization/48837
1431         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1432         when accumulator transformation is performed.
1433
1434 2011-05-06  Jan Hubicka  <jh@suse.cz>
1435
1436         * i386.h (ix86_tune_indices): Add
1437         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
1438         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
1439         * i386.c (initial_ix86_tune_features): Add
1440         X86_SOFTARE_PREFETCHING_BENEFICIAL.
1441         (software_prefetching_beneficial_p): Remove predicate.
1442         (ix86_option_override_internal): Use new macro.
1443
1444 2011-05-06  Jan Hubicka  <jh@suse.cz>
1445
1446         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1447
1448 2011-05-06  Jan Hubicka  <jh@suse.cz>
1449
1450         * cgraph.c (cgraph_add_thunk): Create real function node instead
1451         of alias node; finalize it and mark needed/reachale; arrange visibility
1452         to be right and add it into the corresponding same comdat group list.
1453         (dump_cgraph_node): Dump thunks.
1454         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
1455         cgraph_function_with_gimple_body_p,
1456         cgraph_first_function_with_gimple_body,
1457         cgraph_next_function_with_gimple_body): New functions.
1458         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1459         New macros.
1460         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1461         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1462         * cgraphunit.c (cgraph_finalize_function): Only look into possible
1463         devirtualization when optimizing.
1464         (verify_cgraph_node): Verify thunks.
1465         (cgraph_analyze_function): Analyze thunks.
1466         (cgraph_mark_functions_to_output): Output thunks only in combination
1467         with function they are assigned to.
1468         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1469         alias into normal node.
1470         (assemble_thunks): New functoin.
1471         (cgraph_expand_function): Use it.
1472         * lto-cgraph.c (lto_output_node): Stream thunks.
1473         (input_overwrite_node): Stream in thunks.
1474         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1475         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1476         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1477         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1478         (inline_analyze_function): Do not care about thunk jump functions.
1479         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
1480         * ipa-prop.c (ipa_prop_write_jump_functions): Use
1481         cgraph_function_with_gimple_body_p.
1482         * passes.c (do_per_function_toporder): Use
1483         cgraph_function_with_gimple_body_p.
1484         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1485         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1486         (function_called_by_processed_nodes_p): Likewise.
1487
1488 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1489
1490         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1491         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1492         entries.
1493         (mabi=): Replace with separate entries for mabi=altivec,
1494         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1495         mabi=ieeelongdouble and mabi=ibmlongdouble.
1496         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1497         check for -mabi=spe without SPE ABI support here.
1498         (rs6000_handle_option): Replace OPT_mabi_ handling with
1499         OPT_mabi_altivec and OPT_mabi_spe handling.
1500
1501 2011-05-06  Cary Coutant  <ccoutant@google.com>
1502
1503         * dwarf2out.c (contains_subprogram_definition): New function.
1504         (should_move_die_to_comdat): Call it.
1505
1506 2011-05-06  Jeff Law  <law@redhat.com>
1507
1508         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1509         remove_ctrl_stmt_and_useless_edges.
1510         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1511         (fixup_template_block, thread_single_edge): Likewise.
1512         (mark_threaded_blocks): Use THREAD_TARGET.
1513
1514 2011-05-06  Alan Modra  <amodra@gmail.com>
1515
1516         PR target/48900
1517         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1518         const0_rtx as the arg to the dummy __tls_get_addr libcall.
1519
1520 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1521
1522         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1523         constraint modifier to "r".
1524
1525 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1526
1527         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1528         fall through for OPT_mcmodel_.
1529
1530 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1531
1532         * config/s390/s390.c (s390_asm_trampoline_template): Comment
1533         instruction sizes.
1534         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
1535
1536 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1537
1538         PR target/47930
1539         * config/arm/arm.opt (marm): Document it.
1540         (mthumb): Reject negative variant.
1541
1542 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1543
1544         PR target/48898
1545         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1546         Fix typo in "ccvt" variable name.
1547
1548 2011-05-06  Tristan Gingold  <gingold@adacore.com>
1549
1550         PR target/48895
1551         * config/vms/vms-ar.c (main): Remove cwd variable.
1552
1553 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1554
1555         PR debug/48902
1556         * var-tracking.c (prepare_call_arguments): Move else before #endif.
1557
1558 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1559
1560         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1561         * gimplify.c (gimplify_switch_expr): Likewise.
1562         * omp-low.c (expand_omp_sections): Likewise.
1563         * tree-eh.c (lower_try_finally_switch): Likewise.
1564         (lower_eh_dispatch): Likewise.
1565         * tree.h (build_case_label): Declare.
1566         * tree.c (build_case_label): Define.
1567
1568 2011-05-05  Jason Merrill  <jason@redhat.com>
1569
1570         PR c++/40975
1571         * tree-inline.c (copy_tree_r): Use copy_statement_list.
1572         (copy_statement_list): Don't recurse.
1573         * stor-layout.c (copy_self_referential_tree_r): Don't allow
1574         STATEMENT_LIST.
1575
1576 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1577
1578         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1579         through from -mfpu= handling.
1580         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1581
1582 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
1583
1584         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1585         POST_MODIFY.
1586
1587 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
1588
1589         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1590         for 11.31.
1591         (hppa[12]*-*-hpux11*): Ditto.
1592         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1593         * config/ia64/hpux-unix2003.h: New.
1594         * config/pa/pa-hpux1131.opt: New.
1595         * config/pa/pa-hpux1131.h: New.
1596         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1597         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
1598         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
1599
1600 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1601
1602         PR debug/48853
1603         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1604         instead of mode as 3rd argument to recursive call.
1605         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1606         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1607         VOIDmode.
1608         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1609         don't give up if mode is Pmode and mem_mode is not VOIDmode.
1610         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1611         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1612
1613 2011-05-05  Julian Brown  <julian@codesourcery.com>
1614
1615         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1616         parenthesis in D-register case.
1617
1618 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1619
1620         * opt-functions.awk (var_type_struct): Handle Enum options.
1621         * optc-gen.awk: Don't check range of variables of character type.
1622         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1623         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1624         rs6000_sdata_name, rs6000_explicit_options): Remove.
1625         (rs6000_option_override_internal): Check for -malign-power here.
1626         Use global_options_set instead of rs6000_explicit_options.
1627         (rs6000_parse_fpu_option): Remove.
1628         (rs6000_handle_option): Access variables via opts and opts_set
1629         pointers.  Use error_at and warning_at.  Add fall-through
1630         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1631         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1632         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1633         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1634         here.  Don't use rs6000_parse_fpu_option.
1635         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1636         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1637         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1638         (mrecip=): Use Var.
1639         (mspe): Use Var and Save.
1640         (mtraceback=): Use Enum and Var.
1641         (rs6000_traceback_type): New Enum and EnumValue entries.
1642         (mfloat-gprs=): Use Enum, Var and Save.
1643         (rs6000_float_gprs): New Enum and EnumValue entries.
1644         (mlong-double-): use Var and Save.
1645         (msched-costly-dep=, minsert-sched-nops=): Use Var.
1646         (malign-): Use Enum and Var.
1647         (rs6000_alignment_flags): New Enum and EnumValue entries.
1648         (mfpu=): Use Enum.
1649         (fpu_type_t): New Enum and EnumValue entries.
1650         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1651         global_options_set instead of rs6000_explicit_options.
1652         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1653         global_options_set instead of rs6000_explicit_options.
1654         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1655         global_options_set instead of rs6000_explicit_options.
1656         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1657         global_options_set instead of rs6000_explicit_options.
1658         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1659         global_options_set instead of rs6000_explicit_options.
1660         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1661         global_options_set instead of rs6000_explicit_options.
1662         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1663         definition.
1664         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1665         global_options_set instead of rs6000_explicit_options.
1666         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1667         (rs6000_cmodel): New Enum and EnumValue entries.
1668         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1669         global_options_set instead of rs6000_explicit_options.
1670         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1671         (mtls-size=): Use Enum and Var.
1672         (rs6000_tls_size): New Enum and EnumValue entries.
1673
1674 2011-05-05  Michael Matz  <matz@suse.de>
1675
1676         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1677         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1678         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1679         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1680         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1681         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1682         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1683         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1684         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1685         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1686         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1687         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1688         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1689         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1690         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1691         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1692
1693 2011-05-05  Richard Guenther  <rguenther@suse.de>
1694
1695         * expmed.c (expand_variable_shift): Rename to ...
1696         (expand_shift_1): ... this.  Take an expanded shift amount.
1697         For rotates recurse directly not building trees for the shift amount.
1698         (expand_variable_shift): Wrap around expand_shift_1.
1699         (expand_shift): Adjust.
1700
1701 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1702
1703         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1704
1705 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1706
1707         * tree.h (get_pending_sizes): Remove prototype.
1708         (put_pending_size): Likewise.
1709         (put_pending_sizes): Likewise.
1710         * stor-layout.c (pending_sizes): Delete.
1711         (get_pending_sizes): Likewise.
1712         (put_pending_size): Likewise.
1713         (put_pending_sizes): Likewise.
1714         (variable_size): Do not call put_pending_size and tidy up.
1715         * function.h (struct function): Remove dont_save_pending_sizes_p.
1716         * lto-streamer-in.c (input_function): Do not stream it.
1717         * lto-streamer-out.c (output_function): Likewise.
1718         * tree-inline.c (initialize_cfun): Do not copy it.
1719         * c-decl.c (store_parm_decls): Do not set it.
1720         * omp-low.c (create_task_copyfn): Likewise.
1721         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1722
1723 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
1724
1725         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1726         conditions.
1727         (*movdf_internal): Ditto.
1728         (*movdf_internal_nointeger): Ditto.
1729         (*movsf_internal): Ditto.
1730
1731 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1732
1733         * c-decl.c (finish_decl): Don't call get_pending_sizes.
1734         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
1735         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
1736         (c_variable_size): Remove.
1737         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
1738         call put_pending_sizes.
1739         (get_parm_info): Add parameter expr.  Use it to set
1740         arg_info->pending_sizes.
1741         (store_parm_decls): Use arg_info->pending_sizes instead or calling
1742         get_pending_sizes.
1743         * c-parser.c (c_parser_parms_declarator): Update call to
1744         c_parser_parms_list_declarator.
1745         (c_parser_parms_list_declarator): Take parameter expr.  Update
1746         call to push_parm_decl.  Update recursive call.  Don't call
1747         get_pending_sizes.  Update calls to get_parm_info.
1748         (c_parser_objc_method_definition): Update calls to
1749         c_parser_objc_method_decl and objc_start_method_definition.
1750         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
1751         (c_parser_objc_method_decl): Add parameter expr.  Update call to
1752         grokparm.
1753         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
1754         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1755         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1756
1757 2011-05-05  Michael Hope  <michael.hope@linaro.org>
1758
1759         PR pch/45979
1760         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1761         __ARM_EABI__ hosts.
1762
1763 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1764
1765         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1766         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1767         (spu_output_mi_thunk): New function.
1768
1769 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1770
1771         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1772         targetm.asm_out.print_operand.
1773         * config/sol2.c: Include target.h.
1774
1775 2011-05-04  Jan Hubicka  <jh@suse.cz>
1776
1777         * ipa-inline.c (reset_edge_caches): New function.
1778         (update_caller_keys): Add check_inlinablity_for; do not
1779         reset edge caches; remove now unnecesary loop.
1780         (update_callee_keys): Add comments; reset node_growth_cache of callee.
1781         (update_all_callee_keys): Likewise.
1782         (inline_small_functions): Sanity check cache; update code
1783         recomputing it.
1784
1785 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
1786
1787         PR rtl-optimization/47612
1788         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1789         as the last insn of the sequence to be moved.
1790
1791 2011-05-04  Tobias Burnus  <burnus@net-b.de>
1792
1793         PR fortran/48864
1794         * doc/invoke.texi (Ofast): Document that it
1795         enables Fortran's -fno-protect-parens.
1796
1797 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1798
1799         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1800
1801 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1802
1803         * stor-layout.c (variable_size): Do not issue errors.
1804
1805 2011-05-04  Richard Guenther  <rguenther@suse.de>
1806
1807         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
1808         for array-ref indices.
1809         (tree_coverage_counter_addr): Likewise.
1810         (build_fn_info_type): Use size_int for index types.
1811         (build_gcov_info): Likewise.
1812
1813 2011-05-04  Richard Guenther  <rguenther@suse.de>
1814
1815         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
1816         to build_int_cst.
1817         * c-typeck.c (really_start_incremental_init): Use bitsize_int
1818         for constructor indices.
1819         (push_init_level): Likewise.
1820
1821 2011-05-04  Richard Guenther  <rguenther@suse.de>
1822
1823         * explow.c (promote_mode): Move variable declarations before code.
1824
1825 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1826
1827         * tree.h (build_function_type_array): Declare.
1828         (build_varargs_function_type_array): Declare.
1829         (build_function_type_vec, build_varargs_function_type_vec): Define.
1830         * tree.c (build_function_type_array_1): New function.
1831         (build_function_type_array): New function.
1832         (build_varargs_function_type_array): New function.
1833
1834 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
1835
1836         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1837         before setting STMT_VINFO_TYPE.
1838
1839 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1840
1841         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1842         instead of spu_pass_by_reference.
1843
1844 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1845
1846         * calls.c (emit_library_call_value_1): Invoke
1847         promote_function_mode hook on libcall arguments.
1848         * explow.c (promote_function_mode, promote_mode): Handle TYPE
1849         argument being NULL.
1850         * targhooks.c (default_promote_function_mode): Lisewise.
1851         * config/s390/s390.c (s390_promote_function_mode): Likewise.
1852         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1853
1854         * doc/tm.texi: Document that TYPE argument might be NULL.
1855
1856 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1857
1858         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1859
1860 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1861
1862         From Bernd Schmidt
1863         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1864
1865 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1866
1867         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1868         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1869         Move ...
1870         * mips-tfile.c: ... here.
1871         Don't include coretypes.h, tm.h, filenames.h.
1872         (saber_stop): Remove definition and all calls.
1873         [__SABER__]: Remove.
1874         (__LINE__): Remove default.
1875         (Size_t, Ptrdiff_t): Remove definitions.
1876         Replace by size_t, ptrdiff_t.
1877         [!MIPS_DEBUGGING_INFO]: Remove.
1878         (SHASH_SIZE, THASH_SIZE): Remove defaults.
1879         (progname): Add const.
1880         (STATIC): Remove.
1881         Replace all uses by static.
1882         (ALIGN_SYMTABLE_OFFSET): Remove default.
1883         * mips-tdump.c: Don't include coretypes.h, tm.h.
1884         Remove !MIPS_IS_STAB guard.
1885         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1886         $(TM_H), filenames.h dependencies.
1887         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1888
1889 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1890
1891         From Jie Zhang
1892         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1893         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1894
1895 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1896
1897         From Bernd Schmidt
1898         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1899         account and save/restore RETS.
1900         (PROFILE_BEFORE_PROLOGUE): Define.
1901         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
1902         the push insn to use predecrement.
1903
1904 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1905
1906         From Jie Zhang
1907         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1908
1909 2011-05-04  Nick Clifton  <nickc@redhat.com>
1910
1911         * config/mn10300/mn10300.c: Include cfgloop.h.
1912         (DUMP): New macro.
1913         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
1914         Lcc or a FLcc insn into the instruction stream.
1915         (mn10300_block_contains_call): New function.  Returns true if the
1916         given basic block contains a CALL insn.
1917         (mn10300_loop_contains_call_insn): New function.  Returns true if
1918         the given loop contains a CALL insn.
1919         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
1920         to use the SETLB and Lcc or FLcc insns.
1921         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1922         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1923         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
1924         disable the SETLB optimization.
1925         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1926         __SETLB__ or __NO_SETLB__.
1927         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1928         (movsf_internal): Handle MDR register.
1929         (cmpsi): Make visible.
1930         (setlb): New pattern.
1931         (Lcc): New pattern.
1932         (FLcc): New pattern.
1933
1934 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1935
1936         PR target/48860
1937         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1938         for reg<->xmm moves.
1939         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1940         (vec_concatv2di_rex64_sse): Ditto.
1941         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1942         (*vec_extractv2di_1_rex64): Ditto.
1943
1944         Revert:
1945         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1946
1947         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1948         reg<->xmm moves.
1949         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1950
1951 2011-05-04  Richard Guenther  <rguenther@suse.de>
1952
1953         * tree.h (int_const_binop): Remove notrunc argument.
1954         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
1955         create integer constants that are properly truncated.
1956         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1957         (const_binop): Remove zero notrunc argument to int_const_binop.
1958         (size_binop_loc): Likewise.
1959         (fold_div_compare): Likewise.
1960         (maybe_canonicalize_comparison_1): Likewise.
1961         (fold_comparison): Likewise.
1962         (fold_binary_loc): Likewise.
1963         (multiple_of_p): Likewise.
1964         * expr.c (store_constructor): Likewise.
1965         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1966         (maybe_fold_stmt_addition): Likewise.
1967         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1968         * stor-layout.c (layout_type): Likewise.
1969         * tree-data-ref.c (tree_fold_divides_p): Likewise.
1970         * tree-sra.c (build_ref_for_offset): Likewise.
1971         (build_user_friendly_ref_for_offset): Likewise.
1972         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1973         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1974         * tree-ssa-loop-niter.c (inverse): Likewise.
1975         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1976         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1977         * tree-switch-conversion.c (check_range): Likewise.
1978         (build_constructors): Likewise.
1979         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1980         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1981         (extract_range_from_assert): Likewise.
1982         (vrp_int_const_binop): Likewise.
1983         (extract_range_from_binary_expr): Likewise.
1984         (extract_range_from_unary_expr): Likewise.
1985         (check_array_ref): Likewise.
1986         (find_case_label_range): Likewise.
1987         (simplify_div_or_mod_using_ranges): Likewise.
1988         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1989         comparing case labels for merging.
1990
1991 2011-05-03  Mark Wielaard  <mjw@redhat.com>
1992
1993         * dwarf2out.c (debug_str_hash_forced): Removed.
1994         (gen_label_for_indirect_string): Removed.
1995         (get_debug_string_label): Removed.
1996         (AT_string_form): Generate label directly.
1997         (output_indirect_string): Test indirect_string_node for
1998         DW_FORM_strp instead of checking label and refcount.
1999         (prune_indirect_string): Removed.
2000         (prune_unused_types): Don't check debug_str_hash_forced or
2001         call prune_indirect_string.
2002
2003 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2004
2005         PR other/48093
2006         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2007
2008 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2009
2010         PR debug/47994
2011         PR debug/47919
2012         * combine.c (try_combine): Skip debug insns at m_split tests.
2013
2014 2011-04-26  Mark Wielaard  <mjw@redhat.com>
2015
2016         PR42288
2017         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2018         when info_section_emitted.
2019
2020 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
2021
2022         * config/mips/mips-opts.h: New.
2023         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2024         to mips-opts.h.
2025         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2026         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2027         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
2028         via opts pointer.
2029         * config/mips/mips.h (enum mips_code_readable_setting): Move to
2030         mips-opts.h.
2031         (mips_abi, mips_code_readable): Don't declare.
2032         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
2033         (mabi=): Use Enum and Var.
2034         (mips_abi): New Enum and EnumValue entries.
2035         (mcode-readable=): Use Enum and Var.
2036         (mips_code_readable_setting): New Enum and EnumValue entries.
2037         (mr10k-cache-barrier=): Use Enum and Var.
2038         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2039
2040 2011-05-03  Jan Hubicka  <jh@suse.cz>
2041
2042         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2043         replace hash by pointer map.
2044         (cgraph_node_set_element_def, cgraph_node_set_element,
2045         const_cgraph_node_set_element, varpool_node_set_element_def,
2046         varpool_node_set_element, const_varpool_node_set_element): Remove.
2047         (free_cgraph_node_set, free_varpool_node_set): New function.
2048         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2049         * tree-emutls.c: Free varpool node set.
2050         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2051         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2052         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2053         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2054         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2055         Move here from ipa.c; implement using pointer_map
2056         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2057         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2058         debug_cgraph_node_set, varpool_node_set_new,
2059         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2060         dump_varpool_node_set, debug_varpool_node_set):
2061         Move to ipa-uitls.c.
2062         * passes.c (ipa_write_summaries): Update.
2063
2064 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2065
2066         From Mike Frysinger:
2067         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2068         bf542/bf544/bf547/bf548/bf549.
2069
2070 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2071
2072         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2073
2074 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2075
2076         From Bernd Schmidt:
2077         * config/bfin/bfin.md (MOVCC): New mode_macro.
2078         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2079         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
2080         comments from generated assembly.
2081
2082 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2083
2084         From Bernd Schmidt
2085         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2086         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2087         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2088         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2089         * config/bfin/lib1funcs.asm (___muldi3): New function.
2090
2091 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2092
2093         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2094         build_function_type_list instead of build_function_type.
2095         Rearrange initialization of `args' to do so.
2096
2097 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2098
2099         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2100         instead of build_function_type.
2101
2102 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2103
2104         * config/rs6000/rs6000.c (spe_init_builtins): Call
2105         build_function_type_list instead of build_function_type.
2106         (paired_init_builtins, altivec_init_builtins): Likewise.
2107         (builtin_function_type): Likewise.
2108
2109 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2110
2111         * config/sh/sh.c (sh_media_init_builtins): Call
2112         build_function_type_list instead of build_function_type.
2113
2114 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2115
2116         * config/sparc/sparc.c (sparc_file_end): Call
2117         build_function_type_list instead of build_function_type.
2118
2119 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2120
2121         * config/alpha/alpha.c (alpha_init_builtins): Call
2122         build_function_type_list instead of build_function_type.
2123
2124 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2125
2126         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2127         build_function_type_list instead of build_function_type.
2128
2129 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2130
2131         * config/iq2000/i2000.c (iq2000_init_builtins): Call
2132         build_function_type_list instead of build_function_type.
2133         Delete `endlink' variable.
2134
2135 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2136
2137         * config/avr/avr.c (avr_init_builtins): Call
2138         build_function_type_list instead of build_function_type.
2139
2140 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2141
2142         * config/picochip/picochip.c (picochip_init_builtins): Call
2143         build_function_type_list instead of build_function_type.
2144         Delete `endlink' variable.
2145
2146 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2147
2148         * config/bfin/bfin.c (bfin_init_builtins): Call
2149         build_function_type_list instead of build_function_type.
2150
2151 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2152
2153         From Bernd Schmidt
2154         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2155         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
2156
2157 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2158
2159         From Jie Zhang:
2160         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2161         libbffastfp overrides libgcc when -mfast-fp.
2162
2163 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2164
2165         Originally from Bernd Schmidt
2166         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2167         * config/bfin/bfin.c (override_options): Test it and error if
2168         TARGET_FDPIC.
2169
2170 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2171
2172         Originally From Bernd Schmidt
2173         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2174         FD-PIC.
2175
2176 2011-05-03  Jeff Law  <law@redhat.com>
2177
2178         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2179         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2180         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
2181         than accessing AUX field directly.  Free the AUX field before
2182         clearing it.
2183         (thread_block, thread_through_loop_header): Likewise.
2184         (thread_single_edge, mark_threaded_blocks): Likewise.
2185         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
2186         (register_jump_thread): Do not attempt to thread to a NULL edge.
2187
2188 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2189
2190         * function.c (init_function_start): Call decide_function_section.
2191         * varasm.c (decide_function_section): New function.
2192         (assemble_start_function): When not using
2193         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2194         or first_function_block_is_cold.
2195         * rtl.h (decide_function_section): Declare.
2196
2197 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2198             Jakub Jelinek  <jakub@redhat.com>
2199
2200         PR target/48774
2201         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2202         only succeed if req_mode is the same as set_mode.
2203
2204 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2205
2206         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2207         * genemit.c (gen_exp): Handle RETURN.
2208         * emit-rtl.c (verify_rtx_sharing): Likewise.
2209         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2210         * rtl.c (copy_rtx): RETURN is shared.
2211         * rtl.h (enum global_rtl_index): Add GR_RETURN.
2212         (ret_rtx): New.
2213         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2214         * config/s390/s390.c (s390_emit_epilogue): Likewise.
2215         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2216         * config/cris/cris.c (cris_expand_return): Likewise.
2217         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2218         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2219         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2220         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2221         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2222         Likewise.
2223         * config/v850/v850.c (expand_epilogue): Likewise.
2224         * config/bfin/bfin.c (bfin_expand_call): Likewise.
2225         * config/arm/arm.md (epilogue): Likewise.
2226         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2227         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2228         variable to ret_reg.
2229
2230 2011-05-03  Richard Guenther  <rguenther@suse.de>
2231
2232         PR lto/48846
2233         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2234         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2235         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2236
2237 2011-05-03  Richard Guenther  <rguenther@suse.de>
2238
2239         * c-decl.c (grokdeclarator): Instead of looking at
2240         TREE_OVERFLOW check if the constant fits in the index type.
2241
2242 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2243
2244         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2245         (vec_store_lanes<mode><mode>): Likewise.
2246
2247 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2248
2249         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2250         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2251         convert_optab_index values.
2252         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2253         * genopinit.c (optabs): Initialize the new optabs.
2254         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2255         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2256         (expand_STORE_LANES): New functions.
2257         * tree.h (build_array_type_nelts): Declare.
2258         * tree.c (build_array_type_nelts): New function.
2259         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2260         (vect_model_load_cost): Likewise.
2261         (vect_store_lanes_supported, vect_load_lanes_supported)
2262         (vect_record_strided_load_vectors): Declare.
2263         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2264         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2265         (vect_transform_strided_load): Split out statement recording into...
2266         (vect_record_strided_load_vectors): ...this new function.
2267         * tree-vect-stmts.c (create_vector_array, read_vector_array)
2268         (write_vector_array, create_array_ref): New functions.
2269         (vect_model_store_cost): Add store_lanes_p argument.
2270         (vect_model_load_cost): Add load_lanes_p argument.
2271         (vectorizable_store): Try to use store-lanes functions for
2272         interleaved stores.
2273         (vectorizable_load): Likewise load-lanes and loads.
2274         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2275         to vect_model_store_cost.
2276         (vect_build_slp_tree): Likewise vect_model_load_cost.
2277
2278 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2279
2280         * hooks.h (hook_bool_mode_uhwi_false): Declare.
2281         * hooks.c (hook_bool_mode_uhwi_false): New function.
2282         * target.def (array_mode_supported_p): New hook.
2283         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2284         * doc/tm.texi: Regenerate.
2285         * stor-layout.c (mode_for_array): New function.
2286         (layout_type): Use it.
2287         * config/arm/arm.c (arm_array_mode_supported_p): New function.
2288         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2289
2290 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2291
2292         PR target/48723
2293         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2294         for -fstack-check if the size to allocate is negative.
2295
2296 2011-05-02  Lawrence Crowl  <crowl@google.com>
2297
2298         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2299         (timevar_cond_start): New for starting a timer only when it is not
2300         already running.
2301         (timevar_cond_stop): New for stopping a timer when it was not already
2302         running.
2303
2304         * timevar.c (timevar_stop): Enable start/stop timers to start again.
2305         (timevar_cond_start): New as above.
2306         (timevar_cond_stop): New as above.
2307
2308         * timevar.def: Add start/stop timers for compiler phases,
2309         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2310         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2311         and TV_PHASE_FINALIZE.
2312         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2313         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2314         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2315         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2316         Make unused TV_OVERLOAD into a start/stop timer.
2317
2318         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2319         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2320         to indicate that they are start/stop timers.
2321
2322         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2323         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2324         Move initialization to do_compile.
2325         (do_compile): Add initialization from above.
2326         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2327
2328         * c-decl.c (c_write_global_declarations): Add start/stop of
2329         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2330
2331         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2332         or TV_PARSE_INLINE, as appropriate.
2333         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2334         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2335
2336 2011-05-02  Jason Merrill  <jason@redhat.com>
2337
2338         PR c++/40975
2339         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2340
2341 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
2342
2343         PR c/35445
2344         * c-decl.c (finish_decl): Only create a composite if the types are
2345         compatible.
2346
2347 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2348
2349         * config/fr30/fr30-protos.h (Mmode): Don't define.
2350         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
2351         definition where used.
2352         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2353         define.  Expand definitions where used.
2354         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2355         Expand definitions where used.
2356         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2357         rx_function_arg, rx_function_arg_advance,
2358         rx_function_arg_boundary): Expand definitions of those macros.
2359         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
2360         definition where used.
2361
2362 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2363
2364         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2365         reg<->xmm moves.
2366         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2367         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
2368         with *movv2sf_internal_rex64_avx.
2369         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2370         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2371         Use %v prefix in insn mnemonic to handle TARGET_AVX.
2372         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
2373         "vex" in "prefix" attribute calculation.
2374         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
2375
2376 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
2377
2378         PR target/47951
2379         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2380         inputs match the output.
2381
2382 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
2383
2384         PR target/47955
2385         * config/m68k/m68k.c (m68k_expand_prologue): Set
2386         current_function_static_stack_size.
2387
2388 2011-05-02   Jan Hubicka  <jh@suse.cz>
2389
2390         * lto-streamer.c (lto_streamer_cache_insert_1,
2391         lto_streamer_cache_lookup, lto_streamer_cache_create,
2392         lto_streamer_cache_delete): Use pointer map instead of hashtable.
2393         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2394
2395 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2396
2397         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2398         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2399         config/m68k/t-opts: New files.
2400         * config/m68k/m68k-tables.opt: New file (generated).
2401         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2402         extra_options and m68k/t-opts to tmake_file.
2403         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2404         (all_isas): Initialize using m68k-isas.def.
2405         (all_microarchs): Initialize using m68k-microarchs.def.
2406         (m68k_find_selection): Remove.
2407         (m68k_handle_option): Don't assert that global structures are in
2408         use.  Use error_at.  Access variables via opts pointer.  Don't
2409         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
2410         directly for -m68020-40 and -m68020-60.
2411         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2412         m68k_tune_entry here.
2413         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2414         to m68k-opts.h.
2415         (m68k_library_id_string): Remove declaration.
2416         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
2417         (m68k_library_id_string): New Variable.
2418         (march=, mcpu=, mtune=): Use Enum and Var.
2419
2420 2011-05-02  Richard Guenther  <rguenther@suse.de>
2421
2422         * varasm.c (output_constructor_regular_field): Compute zero-based
2423         index with double-ints.  Make sure to ICE instead of producing
2424         wrong code.
2425         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2426         in asserts.  Properly use a signed type.
2427
2428 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2429
2430         * config/i386/sse.md (V): New mode iterator.
2431         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
2432         TARGET_SSE2.
2433         (V_256): Rename from AVX256MODE.
2434         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
2435         condition to all users.
2436         (VF1): Ditto.
2437         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
2438         condition to all users.
2439         (VF_128): Make V4SF mode unconditional.
2440         (VF_256): Rename from AVX256MODEF2P.
2441         (VI4F_128): Rename from SSEMODE4S.
2442         (VI8F_128): Rename from SSEMODE2D.
2443         (VI4F_256): Rename from AVX256MODE8P.
2444         (VI8F_256): Rename from AVX256MODE4P.
2445         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2446         (ssescalarmodesuffix): Remove SF and DF modes.
2447         (SSEMODE124): Remove.
2448         (SSEMODE1248): Ditto.
2449         (SSEMODEF2P): Ditto.
2450         (AVXMODEF2P): Ditto.
2451         (AVXMODEFDP): Ditto.
2452         (AVXMODEFSP): Ditto.
2453         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2454         unconditional.
2455         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
2456         unconditional.
2457         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2458         xop_pcmov_<mode>256.  Use V mode iterator.
2459
2460         Adjust RTX patterns globally for renamed mode attributes.
2461
2462 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2463
2464         * haifa-sched.c (sched_emit_insn): Emit insn before first
2465         non-scheduled insn.  Inform back-end about new insn.  Add
2466         new insn to scheduled_insns list.
2467
2468 2011-05-02  Richard Guenther  <rguenther@suse.de>
2469
2470         PR tree-optimization/48822
2471         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2472         (process_scc): Indicate which iteration we start.
2473
2474 2011-05-02  Jan Hubicka  <jh@suse.cz>
2475
2476         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2477         (lto_section_overrun): New.
2478         * lto-section-out.c (append_block): Rename to ...
2479         (lto_append_block): ... this one; export.
2480         (lto_output_1_stream): Move lto lto-streamer.h
2481         (lto_output_data_stream): Update.
2482         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2483         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2484         functions.
2485
2486 2011-05-02  Richard Guenther  <rguenther@suse.de>
2487
2488         * tree.c (tree_code_counts): New global array.
2489         (record_node_allocation_statistics): Count individual tree codes.
2490         (dump_tree_statistics): Dump individual code stats.
2491
2492 2011-05-01  Jan Hubicka  <jh@suse.cz>
2493
2494         * ipa-inline.c (caller_growth_limits): Fix thinko when
2495         looking for largest stack frame.
2496         * ipa-inline.h (dump_inline_summary): Declare.
2497         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2498         on stack usage.
2499         (dump_inline_summary): Export.
2500         (debug_inline_summary): Declare as DEBUG_FUNCTION.
2501
2502 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
2503
2504         * reginfo.c (memory_move_cost): Change rclass argument type form
2505         'enum reg_class' to reg_class_t.
2506         * reload.h (memory_move_cost): Update prototype.
2507         * postreload.c reload_cse_simplify_set): Change type dclass var to
2508         reg_class_t.
2509         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2510         Update prototype.
2511         (ira_allocate_and_set_costs): Change aclass argument type form
2512         'enum reg_class' to reg_class_t.
2513         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
2514         Change aclass argument type to reg_class_t.
2515         (update_conflict_hard_reg_costs): Change type aclass and pref vars
2516         to reg_class_t.
2517         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2518         memory_move_cost call.
2519
2520         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2521         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2522         Change type tmp var to reg_class_t.
2523
2524 2011-04-30  Jan Hubicka  <jh@suse.cz>
2525
2526         * ipa-inline.c (can_inline_edge_p): Disregard limits when
2527         inlining into function with flatten attribute.
2528         (want_inline_small_function_p): Be more realistic about inlining
2529         cold calls where callee size grows.
2530
2531 2011-04-30  Jan Hubicka  <jh@suse.cz>
2532
2533         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2534         flags.
2535
2536 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
2537
2538         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2539         PRINT_OPERAND_PUNCT_VALID_P): Remove.
2540         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2541         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2542         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2543         (print_operand): Rename to...
2544         (sparc_print_operand): ...this. Make static. Adjust
2545         sparc_print_operand function call.
2546         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2547         functions.
2548
2549 2011-04-30  Jan Hubicka  <jh@suse.cz>
2550
2551         PR middle-end/48752
2552         * ipa-inline.c (early_inliner): Disable when doing late
2553         addition of function.
2554
2555 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
2556
2557         * dwarf2out.c (get_address_mode): New inline.
2558         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2559         if not dwarf_strict emit
2560         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2561         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2562         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
2563         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2564         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2565         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2566         mem_loc_descriptor callers.
2567         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2568         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2569         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2570         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2571         (base_types): New variable.
2572         (get_base_type_offset, calc_base_type_die_sizes,
2573         base_type_for_mode, mark_base_types, base_type_cmp,
2574         move_marked_base_types): New functions.
2575         (calc_die_sizes): Assert that die_offset is 0 or equal to
2576         next_die_offset.
2577         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2578         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
2579         callers.  If not dwarf_strict, call mem_loc_descriptor even for
2580         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2581         (gen_subprogram_die): Don't give up on call site parameters
2582         with non-integral or large integral modes.  Adjust
2583         mem_loc_descriptor callers.
2584         (prune_unused_types): Call prune_unused_types_mark on base_types
2585         vector entries.
2586         (resolve_addr): Call mark_base_types.
2587         (dwarf2out_finish): Call move_marked_base_types.
2588
2589         PR tree-optimization/48809
2590         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2591         type.
2592         (gen_inbound_check): Don't compute index_expr - range_min in utype
2593         again, instead reuse SSA_NAME initialized in build_arrays.
2594         Remove two useless gsi_for_stmt calls.
2595
2596 2011-04-29  Jeff Law  <law@redhat.com>
2597
2598         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2599
2600 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2601
2602         * cgraph.h (cgraph_postorder): Remove declaration.
2603         * ipa-utils.h (ipa_free_postorder_info): Declare.
2604         (ipa_reverse_postorder): Likewise.
2605         * cgraphunit.c: Include ipa-utils.h.
2606         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2607         * ipa-inline.c: Include ipa-utils.h.
2608         (ipa_inline): Update call to ipa_reverse_postorder.
2609         * ipa-pure-const.c (propagate_pure_const): Update call to
2610         ipa_reduced_postorder and ipa_print_order.  Call
2611         ipa_free_postorder_info to clean up.
2612         (propagate_nothrow): Likewise.
2613         * ipa-reference.c (propagate): Removed a useless call to
2614         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2615         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
2616         * ipa.c: Include ipa-utils.h.
2617         (ipa_profile): Update call to ipa_reverse_postorder.
2618         (cgraph_postorder): Moved to...
2619         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2620         (ipa_utils_print_order): Renamed to ipa_print_order.
2621         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2622         comments.
2623         (ipa_free_postorder_info): New function.
2624         * passes.c: Include ipa-utils.h.
2625         (do_per_function_toporder): Update call to ipa_reverse_postorder.
2626         (ipa_write_summaries): Likewise.
2627         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2628         (cgraphunit.o): Likewise.
2629         (ipa.o): Likewise.
2630         (ipa-inline.o): Likewise.
2631
2632 2011-04-29  Jan Hubicka  <jh@suse.cz>
2633
2634         * gcc.dg/tree-ssa/inline-10.c: New testcase.
2635         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2636         * ipa-inline.h (clause_t): Turn into unsigned int.
2637         * ipa-inline-analysis.c (add_clause): Do more simplification.
2638         (and_predicates): Shortcut more cases.
2639         (predicates_equal_p): Move forward; check that clauses are properly
2640         ordered.
2641         (or_predicates): Shortcut more cases.
2642         (edge_execution_predicate): Rewrite as...
2643         (set_cond_stmt_execution_predicate): ... this function; handle
2644         __builtin_constant_p.
2645         (set_switch_stmt_execution_predicate): New .
2646         (compute_bb_predicates): New.
2647         (will_be_nonconstant_predicate): Update TODO.
2648         (estimate_function_body_sizes): Use compute_bb_predicates
2649         and free them later, always try to estimate if stmt is constant.
2650         (estimate_time_after_inlining, estimate_size_after_inlining):
2651         Gracefully handle optimized out edges.
2652         (read_predicate): Fix off by one error.
2653
2654 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2655
2656         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2657
2658 2011-04-27  Xinliang David Li  <davidxl@google.com>
2659
2660         * tree-profile.c (init_ic_make_global_vars): Set
2661         tls attribute on ic vars.
2662         * coverage.c (coverage_end_function): Initialize
2663         function_list with zero.
2664
2665 2011-04-29  Richard Guenther  <rguenther@suse.de>
2666
2667         * builtins.c (fold_builtin_classify_type): Use integer_type_node
2668         for the type of the result.
2669         (fold_builtin_isascii): Likewise.
2670         (fold_builtin_toascii): Use integer_type_node where appropriate.
2671         (fold_builtin_logb): Likewise.
2672         (fold_builtin_frexp): Likewise.
2673         (fold_builtin_strstr): Likewise.
2674         (fold_builtin_strpbrk): Likewise.
2675         (fold_builtin_fputs): Likewise.
2676         (fold_builtin_sprintf): Likewise.
2677         (fold_builtin_snprintf): Likewise.
2678         (fold_builtin_printf): Likewise.
2679         (do_mpfr_remquo): Use a proper type for the assigned constant.
2680         (do_mpfr_lgamma_r): Likewise.
2681         * dwarf2out.c (resolve_one_addr): Use size_int.
2682         * except.c (init_eh): Likewise.
2683         (assign_filter_values): Use integer_type_node for filter values.
2684         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2685         indices.
2686         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2687         for EH region numbers.
2688         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2689         for the shift amount.
2690
2691 2011-04-29  Richard Guenther  <rguenther@suse.de>
2692
2693         * expr.h (expand_shift): Rename to ...
2694         (expand_variable_shift): ... this.
2695         (expand_shift): Take a constant shift amount.
2696         * expmed.c (expand_shift): Rename to ...
2697         (expand_variable_shift): ... this.
2698         (expand_shift): New wrapper around expand_variable_shift.
2699         * expr.c (convert_move, emit_group_load_1, emit_group_store,
2700         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2701         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2702         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2703         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2704         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2705         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2706         emit_store_flag_1, emit_store_flag): Likewise.
2707         * builtins.c (expand_builtin_signbit): Likewise.
2708         * calls.c (load_register_parameters): Likewise.
2709         * function.c (assign_parm_setup_block): Likewise.
2710         * lower-subreg.c (resolve_shift_zext): Likewise.
2711         * optabs.c (widen_bswap, expand_abs_nojump,
2712         expand_one_cmpl_abs_nojump, expand_float): Likewise.
2713         * spu/spu.c (spu_expand_extv): Likewise.
2714         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2715
2716 2011-04-29  Richard Guenther  <rguenther@suse.de>
2717
2718         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2719         for the remapped region number.
2720         * predict.c (build_predict_expr): Use integer_type_node for the
2721         predict kind.
2722         * fold-const.c (fold_binary_loc): Use integer_type_node for
2723         the shift amount.  Use a proper type for the PLUS_EXPR operand.
2724
2725 2011-04-29  Michael Matz  <matz@suse.de>
2726
2727         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2728         other trees that just builtins.
2729         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2730
2731 2011-04-29  Richard Guenther  <rguenther@suse.de>
2732
2733         * tree-nested.c (get_trampoline_type): Use size_int.
2734         (get_nl_goto_field): Likewise.
2735         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2736         for all indexes.
2737         (lower_eh_constructs_2): Likewise.
2738         (lower_resx): Likewise.
2739         (lower_eh_dispatch): Likewise.
2740         * tree-mudflap.c (mf_build_string): Use size_int.
2741         (mudflap_register_call): Use integer_type_node for the flag.
2742         (mudflap_enqueue_constant): Use size_int.
2743         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2744         instead of rebuilding it.
2745
2746 2011-04-29  Richard Guenther  <rguenther@suse.de>
2747
2748         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2749         Handle OBJ_TYPE_REF.
2750         (find_func_aliases_for_call): Use it more consistently.
2751
2752 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
2753
2754         * haifa-sched.c (last_nondebug_scheduled_insn): New.
2755         (rank_for_schedule): Use it.
2756         (schedule_block): Set it.
2757
2758 2011-04-28  David Li  <davidxl@google.com>
2759
2760         * tree.c (crc32_string): Use crc32_byte.
2761         (crc32_byte): New function.
2762         * tree.h (crc32_byte): New function.
2763         * gcov.c (read_graph_file): Handle new cfg_cksum.
2764         (read_count_file): Ditto.
2765         * profile.c (instrument_values): Ditto.
2766         (get_exec_counts): Ditto.
2767         (read_profile_edge_counts): Ditto.
2768         (compute_branch_probabilities): Ditto.
2769         (compute_value_histograms): Ditto.
2770         (branch_prob): Ditto.
2771         (end_branch_prob): Ditto.
2772         * coverage.c (read_counts_file): Ditto.
2773         (get_coverage_counts): Ditto.
2774         (tree_coverage_counter_addr): Ditto.
2775         (coverage_checksum_string): Ditto.
2776         (coverage_begin_output): Ditto.
2777         (coverage_end_function): Ditto.
2778         (build_fn_info_type): Ditto.
2779         (build_fn_info_value): Ditto.
2780         * libgcov.c (gcov_exit): Ditto.
2781         * gcov-dump.c (tag_function): Ditto.
2782         (compute_checksum): Remove.
2783
2784 2011-04-29  Alan Modra  <amodra@gmail.com>
2785
2786         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2787         unspec plus offset.  Tidy macho code.
2788
2789 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2790
2791         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2792         node instead of a decl.  Update all callers.
2793         * cgraph.h: Update declaration.
2794
2795 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
2796
2797         PR tree-optimization/48765
2798         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2799         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2800         to indicate if loop aware SLP is being used.  Scan the statements
2801         and update the vectorization factor according to the type of
2802         vectorization before statement analysis.
2803         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
2804         pass it to vect_analyze_loop_operations.
2805         (vectorizable_reduction): Set number of copies to 1 in case of pure
2806         SLP statement.
2807         * tree-vect-stmts.c (vectorizable_conversion,
2808         vectorizable_assignment, vectorizable_shift,
2809         vectorizable_operation, vectorizable_type_demotion,
2810         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
2811         Likewise.
2812         (vectorizable_condition): Move the check that it is not SLP
2813         vectorization before the number of copies check.
2814         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
2815         to vectorize the loop using SLP.
2816
2817 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
2818
2819         PR middle-end/48597
2820         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2821         inline asm.
2822
2823 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
2824
2825         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2826         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2827         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2828         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2829         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2830         linux*.h headers.
2831         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
2832         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2833         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2834         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2835         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2836         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2837         REG_NAME.
2838         * config/i386/linux.h (REG_NAME): Don't define.
2839         * config/i386/linux64.h (REG_NAME): Don't define.
2840         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2841         Undefine before defining.
2842
2843 2011-04-28  Jan Hubicka  <jh@suse.cz>
2844
2845         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2846         nonconstant_names array.
2847         (estimate_function_body_sizes): Build nonconstant_names array; handle
2848         BUILT_IN_CONSTANT_P.
2849
2850 2011-04-28  Richard Guenther  <rguenther@suse.de>
2851
2852         PR bootstrap/48804
2853         Revert
2854         2011-04-28  Richard Guenther  <rguenther@suse.de>
2855
2856         * tree-ssa-structalias.c (solve_constraints): Build succ graph
2857         as late as possible.
2858
2859 2011-04-28  Richard Guenther  <rguenther@suse.de>
2860
2861         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2862         (debug_constraint): Do it here.
2863         (dump_constraints): And here.
2864         (rewrite_constraints): And here.
2865         (dump_constraint_edge): Remove.
2866         (dump_constraint_graph): Rewrite to produce DOT output.
2867         (solve_constraints): Build succ graph as late as possible.
2868         Dump constraint graphs before and after solving.
2869
2870 2011-04-28  Richard Guenther  <rguenther@suse.de>
2871
2872         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2873         New function split out from ...
2874         (find_func_aliases): ... here.  Call it.
2875         (find_func_aliases_for_call): Likewise.
2876
2877 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2878
2879         * internal-fn.h (internal_fn_name_array): Declare.
2880         (internal_fn_flags_array): Likewise.
2881
2882 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2883
2884         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
2885         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2886         Move from sse.md.
2887         (ssemodefsuffix): Remove.
2888         (ssevecmodesuffix): New mode attribute.
2889         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2890         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2891         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2892         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2893         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2894         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2895         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2896         ssemodesuffix mode attribute.
2897         (float splitters): Use ssevecmodesuffix mode attribute.
2898         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2899         (sseinsmode): Rename from avxvecmode.
2900         (avxsizesuffix): Rename from avxmodesuffix.
2901         (sseintvecmode): Rename from avxpermvecmode.
2902         (ssedoublevecmode): Rename from ssedoublesizemode.
2903         (ssehalfvecmode): Rename from avxhalfvecmode.
2904         (ssescalarmode): Rename from avxscalarmode.
2905         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2906         templates for ssemodesuffix mode attribute.
2907         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2908         mode attribute.
2909
2910         Adjust RTX patterns globally for renamed mode attributes.
2911
2912 2011-04-27  Jan Hubcika  <jh@suse.cz>
2913
2914         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2915         * ipa-inline-analysis.c: Include alloc-pool.h.
2916         (edge_predicate_pool): New.
2917         (trye_predicate_p): New function
2918         (false_predicate_p): New function.
2919         (add_clause): Sanity check that false clauses are "optimized";
2920         never add clauses to predicate that is already known to be false.
2921         (and_predicate): Use flase_predicate_p.
2922         (evaulate_predicate): Rename to ...
2923         (evaluate_predicate): ... this one; update all callers; assert
2924         that false is not listed among possible truths.
2925         (dump_predicate): Use true_predicate_p.
2926         (account_size_time): Use false_predicate_p.
2927         (evaulate_conditions_for_edge): Rename to ...
2928         (evaluate_conditions_for_edge) ... this one.
2929         (edge_set_predicate): New function.
2930         (inline_edge_duplication_hook): Duplicate edge predicates.
2931         (inline_edge_removal_hook): Free edge predicates.
2932         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
2933         (dump_inline_summary): Update.
2934         (estimate_function_body_sizes): Set edge predicates.
2935         (estimate_calls_size_and_time): Handle predicates.
2936         (estimate_callee_size_and_time): Update.
2937         (remap_predicate): Add toplev_predicate; update comment.
2938         (remap_edge_predicates): New function.
2939         (inline_merge_summary): Compute toplev predicate; update.
2940         (read_predicate): New function.
2941         (read_inline_edge_summary): Use it.
2942         (inline_read_section): Likewise.
2943         (write_predicate): New function.
2944         (write_inline_edge_summary): Use it.
2945         (inline_write_summary): Likewise.
2946         (inline_free_summary): Free alloc pool and edge summary vec.
2947
2948 2011-04-27  Richard Guenther  <rguenther@suse.de>
2949
2950         * tree-ssa-structalias.c (changed_count): Remove.
2951         (changed): Use a bitmap.
2952         (unify_nodes): Adjust.
2953         (do_sd_constraint): Likewise.
2954         (do_ds_constraint): Likewise.
2955         (do_complex_constraint): Likewise.
2956         (solve_graph): Likewise.
2957
2958 2011-04-27  Jan Hubicka  <jh@suse.cz>
2959
2960         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2961
2962 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2963
2964         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2965         (avx_vperm2f128_*_operand): Ditto.
2966         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2967         Use avx_vpermilp_parallel in insn condition.
2968         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2969         Use avx_vperm2f128_parallel in insn condition.
2970
2971 2011-04-27  Richard Guenther  <rguenther@suse.de>
2972
2973         * Makefile.in (tree-ssa-structalias.o): Remove
2974         gt-tree-ssa-structalias.h dependency.
2975         (GTFILES): Remove tree-ssa-structalias.c.
2976         * tree.c (allocate_decl_uid): New function.
2977         (make_node_stat): Use it.
2978         (copy_node_stat): Likewise.
2979         * tree.h (allocate_decl_uid): Declare.
2980         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2981         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2982         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
2983         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
2984         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2985         (struct heapvar_map): Likewise.
2986         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2987         heapvar_insert): Likewise.
2988         (make_heapvar_for): Rename to ...
2989         (make_heapvar): ... this.  Simplify.
2990         (fake_var_decl_obstack): New global var.
2991         (build_fake_var_decl): New function.
2992         (make_constraint_from_heapvar): Adjust.
2993         (handle_lhs_call): Likewise.
2994         (create_function_info_for): Likewise.
2995         (intra_create_variable_infos): Likewise.
2996         (init_alias_vars): Allocate fake_var_decl_obstack.
2997         (init_alias_heapvars, delete_alias_heapvars): Remove.
2998         (compute_points_to_sets): Do not call init_alias_heapvars.
2999         (ipa_pta_execute): Likewise.
3000         (delete_points_to_sets): Free fake_var_decl_obstack.
3001
3002 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3003
3004         * config/spu/divmovti4.c (union qword_UTItype): New data type.
3005         (si_from_UTItype, si_to_UTItype): New functions.
3006         (__udivmodti4): Use them to implement type-punning.
3007         * config/spu/multi3.c (union qword_TItype): New data type.
3008         (si_from_TItype, si_to_TItype): New functions.
3009         (__multi3): Use them to implement type-punning.
3010
3011 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3012
3013         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
3014
3015 2011-04-27  Jan Hubicka  <jh@suse.cz>
3016
3017         * ipa-prop.c (function_insertion_hook_holder): New holder.
3018         (ipa_add_new_function): New function.
3019         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
3020         Register/deregister holder.
3021
3022 2011-04-27  Richard Guenther  <rguenther@suse.de>
3023
3024         PR tree-optimization/48772
3025         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
3026
3027 2011-04-27  Richard Guenther  <rguenther@suse.de>
3028
3029         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3030         TARGET_MEM_REF handling.
3031
3032 2011-04-27  Nick Clifton  <nickc@redhat.com>
3033
3034         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3035         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3036         (REG_CLASS_NAMES): Likewise.
3037         (REG_CLASS_CONTENTS): Likewise.
3038         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3039         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3040         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
3041         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
3042         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
3043         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3044         duplicate register classes.
3045         (frv_class_likely_spilled_p): Likewise.
3046         (frv_register_move_cost): Likewise.
3047
3048         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3049         end of the regno_reg_class array.
3050
3051 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
3052
3053         PR c/48742
3054         * c-typeck.c (build_binary_op): Don't wrap arguments if
3055         int_operands is true.
3056
3057 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
3058
3059         PR target/48767
3060         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3061         targetm.calls.must_pass_in_stack for void type.
3062
3063 2011-04-26  Jan Hubicka  <jh@suse.cz>
3064
3065         * cgraphbuild.c (build_cgraph_edges): Update call
3066         of cgraph_create_edge and cgraph_create_indirect_edge.
3067         * cgraph.c (cgraph_create_edge_including_clones,
3068         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3069         cgraph_update_edges_for_call_stmt_node): Do not take nest
3070         argument; do not initialize call_stmt_size/time.
3071         (dump_cgraph_node): Do not dump nest.
3072         (cgraph_clone_edge): Do not take loop_nest argument;
3073         do not propagate it; do not clone call_stmt_size/time.
3074         (cgraph_clone_node): Likewise.
3075         (cgraph_create_virtual_clone): Update.
3076         * cgraph.h (struct cgraph_edge): Remove
3077         call_stmt_size/call_stmt_time/loop_nest.
3078         (cgraph_create_edge, cgraph_create_indirect_edge,
3079         cgraph_create_edge_including_clones, cgraph_clone_node): Update
3080         prototype.
3081         * tree-emutls.c (gen_emutls_addr): Update.
3082         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3083         loop_nest; handle indirect calls, too.
3084         (clone_inlined_nodes): Do not care about updating inline summaries.
3085         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3086         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3087         stream call_stmt_size/call_stmt_time/loop_nest.
3088         * ipa-inline.c (edge_badness): Update.
3089         (ipa_inline): dump summaries after inlining.
3090         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
3091         New.
3092         (inline_edge_summary): New function.
3093         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3094         (inline_edge_removal_hook): Handle edge summaries.
3095         (inline_edge_duplication_hook): New hook.
3096         (inline_summary_alloc): Alloc hooks.
3097         (initialize_growth_caches): Do not register removal hooks.
3098         (free_growth_caches); Do not free removal hook.
3099         (dump_inline_edge_summary): New function.
3100         (dump_inline_summary): Use it.
3101         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3102         (inline_update_callee_summaries): New function.
3103         (inline_merge_summary): Use it.
3104         (do_estimate_edge_time, do_estimate_edge_growth): Update.
3105         (read_inline_edge_summary): New function.
3106         (inline_read_section): Use it.
3107         (write_inline_edge_summary): New function.
3108         (inline_write_summary): Use it.
3109         (inline_free_summary): Free edge new holders.
3110         * tree-inline.c (copy_bb): Update.
3111
3112 2011-04-26  Jason Merrill  <jason@redhat.com>
3113
3114         * tree-eh.c (lower_try_finally_switch): Create the label along with
3115         the CASE_LABEL_EXPR.
3116
3117 2011-04-26  David S. Miller  <davem@davemloft.net>
3118             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3119
3120         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3121         * configure: Regenerate.
3122
3123 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3124
3125         PR target/48258
3126         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3127         reduction.
3128         (VEC_reduc): New code iterator and splitters for vector reduction.
3129         (VEC_reduc_name): Ditto.
3130         (VEC_reduc_rtx): Ditto.
3131         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3132         (reduc_<VEC_reduc_name>_v4sf): Ditto.
3133
3134         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3135         support for extracting SF on VSX.
3136
3137         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3138         generating xscvspdp.
3139         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3140         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3141         double add, minimum, maximum vector reduction.
3142         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3143         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3144         optimize double vector reduction.
3145         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3146
3147 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
3148
3149         * config/fr30/fr30.h (inhibit_libc): Don't define.
3150         * config/m32r/m32r-protos.h: Correct comment.
3151         * config/v850/v850.h (GHS_default_section_names,
3152         GHS_current_section_names): Use tree, not union tree_node *.
3153
3154 2011-04-26  Xinliang David Li  <davidxl@google.com>
3155
3156         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
3157         * c-family/c-opts.c (c_common_handle_option): Set
3158         warn_maybe_uninitialized.
3159         * opts.c (common_handle_option): Ditto.
3160         * common.opt:  New option.
3161         * tree-ssa.c (warn_uninit): Add one more parameter.
3162         (warn_uninitialized_var): Pass warning code.
3163         * tree-flow.h: Interface change.
3164
3165
3166 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3167
3168         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
3169         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3170         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3171
3172 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3173
3174         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3175         * config/mips/mips.opt (mmips-tfile): Remove.
3176
3177         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3178         mips-tdump reference to ...
3179         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
3180         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3181         reference by Tru64 UNIX.
3182
3183 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
3184
3185         PR debug/48768
3186         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3187         is error_mark_node, set value to NULL.
3188
3189         PR tree-optimization/48734
3190         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3191         if return value from maybe_fold_*_comparsions isn't something
3192         the code is prepared to handle.
3193
3194 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
3195
3196         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3197         mode check.
3198         (ext_QIreg_nomode_operands): Remove.
3199         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3200         (*andsi_1): Ditto.
3201         (*andhi_1): Ditto.
3202
3203 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
3204
3205         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3206
3207 2011-04-26  Richard Guenther  <rguenther@suse.de>
3208
3209         * c-typeck.c (build_unary_op): Do not expand array-refs via
3210         pointer arithmetic.  Only adjust qualifiers for function types.
3211
3212 2011-04-26  Richard Guenther  <rguenther@suse.de>
3213
3214         PR middle-end/48694
3215         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3216         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
3217         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
3218         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
3219
3220 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
3221
3222         * doc/extend.texi: Document __underlying_type.
3223
3224 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
3225
3226         * config/rs6000/titan.md (automata_option "progress"): Remove.
3227
3228 2011-04-25  Jeff Law  <law@redhat.com>
3229
3230         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3231
3232 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
3233
3234         * system.h (ENUM_BITFIELD): Remove.
3235
3236 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
3237             Eric Botcazou  <ebotcazou@adacore.com>
3238
3239         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3240         for STORE_FLAG_VALUE==-1 case.
3241
3242 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
3243
3244         PR target/43804
3245         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3246         LEGITIMATE_PIC_OPERAND_P.
3247
3248 2011-04-24  Jan Hubicka  <jh@suse.cz>
3249
3250         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3251         WPA hack.
3252         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3253         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3254         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
3255         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3256         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3257         Sanity check predicate length.
3258         (remap_predicate): Likewise; sanity check jump functions.
3259         (inline_read_section, inline_write_summary): Sanity check
3260         predicate length.
3261
3262 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
3263
3264         PR other/48748
3265         * doc/extend.texi (Type Traits): Document __is_standard_layout,
3266         __is_literal_type, and __is_trivial; update throughout about
3267         possibly cv-qualified void types.
3268
3269 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3270
3271         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3272         testsuite and make it version agnostic.
3273
3274 2011-04-22  Jan Hubicka  <jh@suse.cz>
3275
3276         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3277
3278 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
3279
3280         PR c/48685
3281         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3282         to VOID_TYPE even around MODIFY_EXPR.
3283
3284 2011-04-22  Mike Stump  <mikestump@comcast.net>
3285
3286         * gensupport.c (read_md_rtx): Fix typo in comment.
3287         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3288         comment.
3289
3290 2011-04-22  Jan Hubicka  <jh@suse.cz>
3291
3292         * gengtype.c (open_base_files): Add ipa-inline.h include.
3293         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3294         ipa-prop.c; update all uses.
3295         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
3296         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3297         merge summary of inlined function into former caller.
3298         * ipa-inline.c (max_benefit): Remove.
3299         (edge_badness): Compensate for removal of benefits.
3300         (update_caller_keys): Use
3301         reset_node_growth_cache/reset_edge_growth_cache.
3302         (update_callee_keys): Likewise.
3303         (update_all_callee_keys): Likewise.
3304         (inline_small_functions): Do not collect max_benefit; do not reset
3305         estimated_growth; call free_growth_caches and initialize_growth_caches.
3306         * ipa-inline.h (struct condition, type clause_t, struct predicate,
3307         struct size_time_entry): New structures.
3308         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
3309         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3310         and estimated_growth.
3311         (edge_growth_cache_entry): New structure.
3312         (node_growth_cache, edge_growth_cache): New global vars.
3313         (estimate_growth): Turn into inline.
3314         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3315         initialize_growth_caches, free_growth_caches): Declare.
3316         (estimate_edge_growth): Rewrite.
3317         (estimate_edge_time): Implement as inline cache lookup.
3318         (reset_node_growth_cache, reset_edge_growth_cache): New inline
3319         functions.
3320         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3321         (NUM_CONDITIONS): New constant.
3322         (predicate_conditions): New enum.
3323         (IS_NOT_CONSTANT): New constant.
3324         (edge_removal_hook_holder): New var.
3325         (node_growth_cache, edge_growth_cache): New global vars.
3326         (true_predicate, single_cond_predicate, false_predicate,
3327         not_inlined_predicate, add_condition, add_clause, and_predicates,
3328         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3329         dump_clause, dump_predicate, account_size_time,
3330         evaulate_conditions_for_edge): New functions.
3331         (inline_summary_alloc): Move to heap.
3332         (inline_node_removal_hook): Clear condition and entry vectors.
3333         (inline_edge_removal_hook): New function.
3334         (initialize_growth_caches, free_growth_caches): New function.
3335         (dump_inline_summary): Update.
3336         (edge_execution_predicate): New function.
3337         (will_be_nonconstant_predicate): New function.
3338         (estimate_function_body_sizes): Compute BB and constantness predicates.
3339         (compute_inline_parameters): Do not clear estimated_growth.
3340         (estimate_edge_size_and_time): New function.
3341         (estimate_calls_size_and_time): New function.
3342         (estimate_callee_size_and_time): New function.
3343         (remap_predicate): New function.
3344         (inline_merge_summary): New function.
3345         (do_estimate_edge_time): New function based on...
3346         (estimate_edge_time): ... this one.
3347         (do_estimate_edge_growth): New function.
3348         (do_estimate_growth): New function based on....
3349         (estimate_growth): ... this one.
3350         (inline_analyze_function): Analyze after deciding on jump functions.
3351         (inline_read_section): New function.
3352         (inline_read_summary): Use it.
3353         (inline_write_summary): Write all the new data.
3354         * ipa-prop.c (ipa_get_param_decl_index): Export.
3355         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
3356         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3357         Declare.
3358         (ipa_get_lattice): Move here from ipa-cp.c
3359         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3360         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3361         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3362         cgraph_edge_inlinable_p): Remove.
3363         * cgraphunit.c: Include ipainline.h
3364         (cgraph_process_new_functions): Update call of
3365         compute_inline_parameters.
3366
3367 2011-04-22  Richard Guenther  <rguenther@suse.de>
3368
3369         * tree.c (build_int_cst): Properly create canonicalized integer
3370         constants.
3371         (build_int_cst_type): Remove scary comments.
3372
3373 2011-04-22  Xinliang David Li  <davidxl@google.com>
3374
3375         * toplev.c (process_options): Enable -Werror=coverage-mismatch
3376         by default when -Wno-error is not specified.
3377         * opts-global.c (decode_options): Remove call to
3378         control_warning_options.
3379
3380 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3381
3382         PR tree-optimization/48717
3383         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3384         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3385
3386 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
3387
3388         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
3389         definition where used.
3390
3391 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3392
3393         PR c/48716
3394         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3395         TREE_STATIC variables declared inside of some OpenMP construct.
3396
3397 2011-04-22  Martin Jambor  <mjambor@suse.cz>
3398
3399         PR middle-end/48585
3400         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
3401
3402 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
3403
3404         PR c/36750
3405         * c-typeck.c (pop_init_level): Do not warn about initializing
3406         with ` = {0}'.
3407
3408 2011-04-22  Alan Modra  <amodra@gmail.com>
3409
3410         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3411         when returning call_cookie.
3412         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3413         pointers, to functions with no more vector args than the current
3414         function, and some non-local calls for ABI_V4.
3415         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3416         sibcall_nonlocal_aix64): Combine to ..
3417         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
3418         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3419         (sibcall_value_nonlocal_aix<mode>): ..likewise.
3420         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3421         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
3422         operand.
3423         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3424         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3425         sibcall_value_symbolic_64): Delete.
3426
3427 2011-04-21  Xinliang David Li  <davidxl@google.com>
3428
3429         * cgraph.h: Remove pid.
3430         * cgraph.c: Remove pid.
3431         * value-prof.c (init_node_map): New function.
3432         (del_node_map): New function.
3433         (find_func_by_funcdef_no): New function.
3434         (gimple_ic_transform): Call new function.
3435         * cgraphunit.c (cgraph_finalize_function): Remove pid.
3436         * function.c (get_last_funcdef_no): New function.
3437         * function.h (get_last_funcdef_no): New function.
3438         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3439         to libgcov function.
3440         (tree-profiling): Call node map init and delete function.
3441
3442 2011-04-21  Ian Lance Taylor  <iant@google.com>
3443
3444         * godump.c (go_format_type): Use exported Go name for anonymous
3445         field name.
3446
3447 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3448
3449         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3450         Call builtin_function_type_list instead of builtin_function_type.
3451         (UNARY, BINARY, TRINARY, QUAD): Likewise.
3452
3453 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3454
3455         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3456         build_function_type_list instead of build_function_type.
3457         Delete variable `endlink'.
3458
3459 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3460
3461         * config/s390/s390.c (s390_init_builtins): Call
3462         build_function_type_list instead of build_function_type.
3463
3464 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3465
3466         * config/ia64/ia64.c (ia64_init_builtins): Call
3467         build_function_type_list instead of builtin_function_type.
3468
3469 2011-04-21  Easwaran Raman  <eraman@google.com>
3470
3471         * cfgexpand.c (stack_var): Remove OFFSET...
3472         (add_stack_var): ...and its reference here...
3473         (expand_stack_vars): ...and here.
3474         (stack_var_cmp): Sort by descending order of size.
3475         (partition_stack_vars): Change heuristic.
3476         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
3477         (dump_stack_var_partition): Add newline after each partition.
3478
3479 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
3480             Jeff Law  <law@redhat.com>
3481
3482         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
3483         * gengtype.c (matching_file_name_substitute): Likewise.
3484
3485 2011-04-21  Richard Guenther  <rguenther@suse.de>
3486
3487         PR lto/48703
3488         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
3489
3490 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3491
3492         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3493
3494 2011-04-21  Richard Guenther  <rguenther@suse.de>
3495
3496         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3497         file name.
3498
3499 2011-04-21  Richard Guenther  <rguenther@suse.de>
3500
3501         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3502         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3503         Use DECL_P, not SSA_VAR_P.
3504         (ptr_derefs_may_alias_p): Likewise.
3505         (ptr_deref_may_alias_ref_p_1): Likewise.
3506         (decl_refs_may_alias_p): Likewise.
3507         (refs_may_alias_p_1): Likewise.
3508         (ref_maybe_used_by_call_p_1): Likewise.
3509         (call_may_clobber_ref_p_1): Likewise.
3510         (indirect_ref_may_alias_decl_p): Assume indirect refrences
3511         are either MEM_REF or TARGET_MEM_REF.
3512         (indirect_refs_may_alias_p): Likewise.
3513         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3514         for MEM_EXPR of indirect calls.
3515
3516 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3517
3518         * vmsdbgout.c (write_srccorr): Compute file length from the string.
3519         (dst_file_info_struct): Remove flen field.
3520         (lookup_filename): Remove code that set flen field.
3521
3522 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3523
3524         * config/ia64/ia64.c (ia64_start_function): Add a guard.
3525
3526 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
3527
3528         PR target/48708
3529         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3530         vec_extract and vec_concat for non-SSE4_1 targets.
3531
3532 2011-04-21  Richard Guenther  <rguenther@suse.de>
3533
3534         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3535         return statements.
3536
3537 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3538
3539         * config/i386/cygming.h (union tree_node, TREE): Don't define or
3540         undefine.
3541         (FILE): Don't undefine.
3542
3543 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3544
3545         * config/alpha/alpha.c (struct machine_function): Use rtx, not
3546         struct rtx_def *.
3547         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3548         struct rtx_def *.
3549         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
3550         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
3551         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3552         rtx_def *.
3553         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
3554         definitions where used.
3555         * config/microblaze/microblaze.h (struct microblaze_args): Use
3556         rtx, not struct rtx_def *.
3557         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3558         rtx_def *.
3559         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3560         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
3561         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3562         not struct rtx_def *.
3563         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3564         struct rtx_def *.
3565         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3566         rtx_def *.
3567         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
3568
3569 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3570
3571         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3572         operand_equal_p to compare DR_BASE_ADDRESSes.
3573         (vect_check_interleaving): Likewise.
3574
3575 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3576
3577         PR target/46329
3578         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3579         for all Neon struct constants.
3580
3581 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3582
3583         * target.def (legitimate_constant_p): New hook.
3584         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3585         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3586         * doc/tm.texi: Regenerate.
3587         * hooks.h (hook_bool_mode_rtx_true): Declare.
3588         * hooks.c (hook_bool_mode_rtx_true): Define.
3589         * system.h (LEGITIMATE_CONSTANT_P): Poison.
3590         * calls.c (precompute_register_parameters): Replace uses of
3591         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3592         (emit_library_call_value_1): Likewise.
3593         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3594         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3595         * ira-costs.c (scan_one_insn): Likewise.
3596         * recog.c (general_operand, immediate_operand): Likewise.
3597         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3598         * reload1.c (init_eliminable_invariants): Likewise.
3599
3600         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3601         mode argument.
3602         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3603         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3604         argument.
3605         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3606         * config/alpha/predicates.md (input_operand): Update call to
3607         alpha_legitimate_constant_p.
3608
3609         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3610         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3611         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3612         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3613         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3614         (arm_legitimate_constant_p): New functions.
3615         (arm_cannot_force_const_mem): Make static.
3616
3617         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3618
3619         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3620         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3621         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3622         instead of bfin_legitimate_constant_p.
3623         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
3624         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3625
3626         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3627
3628         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3629
3630         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3631         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3632         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3633         (frv_legitimate_constant_p): Make static.  Add a mode argument.
3634
3635         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3636         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3637         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3638
3639         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3640         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3641         * config/i386/i386.c (legitimate_constant_p): Rename to...
3642         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
3643         argument.
3644         (ix86_cannot_force_const_mem): Update accordingly.
3645         (ix86_legitimate_address_p): Likewise.
3646         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3647         * config/i386/i386.md: Update commentary.
3648
3649         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3650         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3651         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3652         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
3653
3654         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3655
3656         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3657         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3658         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3659         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
3660
3661         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3662         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3663         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3664
3665         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3666         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3667         (m32r_legitimate_constant_p): New function.
3668
3669         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3670         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3671         LEGITIMATE_CONSTANT_P.
3672         (LEGITIMATE_CONSTANT_P): Delete.
3673         * config/m68k/m68k.c (m68k_expand_prologue): Call
3674         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3675         (m68k_legitimate_constant_p): New function.
3676         * config/m68k/m68k.md: Update comments.
3677
3678         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3679         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3680         (mcore_legitimate_constant_p): New function.
3681
3682         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3683         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3684         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3685         Add a mode argument.
3686         (mep_legitimate_address): Update accordingly.
3687         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3688
3689         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3690         Delete.
3691         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3692         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3693         static.  Check OP's mode for VOIDmode.
3694         (microblaze_legitimate_constant_p): New function.
3695         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3696
3697         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3698         * config/mips/mips.c (mips_legitimate_constant_p): New function.
3699         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3700         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3701         * config/mips/predicates.md: Update comments.
3702
3703         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3704         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3705         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3706         (mmix_legitimate_constant_p): Make static, return a bool, and take
3707         a mode argument.
3708         (mmix_print_operand_address): Update accordingly.
3709
3710         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3711         Delete.
3712         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
3713         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3714         static.  Add a mode argument.
3715         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3716
3717         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3718
3719         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3720         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3721         (pa_legitimate_constant_p): New function.
3722
3723         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3724
3725         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3726         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3727         (pdp11_legitimate_constant_p): New function.
3728
3729         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3730         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3731         (rs6000_legitimate_constant_p): New function.
3732
3733         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3734         (rx_legitimate_constant_p): ...this.
3735         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3736         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3737         (rx_legitimate_constant_p): ...this.
3738         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3739         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3740
3741         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3742         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3743         * config/s390/s390.c (legitimate_constant_p): Rename to...
3744         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
3745         and add a mode argument.
3746         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3747
3748         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3749
3750         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3751         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3752         (sh_legitimate_constant_p): New function.
3753
3754         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3755         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3756         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3757         (legitimate_constant_p): Rename to...
3758         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
3759         argument.
3760         (constant_address_p): Update accordingly.
3761
3762         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3763         argument and return a bool.
3764         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3765         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3766         (spu_legitimate_constant_p): Add a mode argument and return a bool.
3767         (spu_rtx_costs): Update accordingly.
3768         * config/spu/predicates.md (vec_imm_operand): Likewise.
3769
3770         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3771
3772         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3773         * config/v850/v850.c (v850_legitimate_constant_p): New function.
3774         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3775
3776         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3777         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3778         * config/vax/vax.c (legitimate_constant_p): Likewise.
3779
3780         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3781         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3782         (xtensa_legitimate_constant_p): New function.
3783
3784 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3785
3786         * target.def (cannot_force_const_mem): Add a mode argument.
3787         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3788         * doc/tm.texi: Regenerate.
3789         * hooks.h (hook_bool_mode_rtx_false): Declare.
3790         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3791         (hook_bool_mode_const_rtx_true): Likewise.
3792         (hook_bool_mode_rtx_false): New function.
3793         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3794         to be non-VOID.  Update call to cannot_force_const_mem.
3795         (find_reloads): Update accordingly.
3796         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3797         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3798         argument.
3799         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3800         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
3801         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
3802         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
3803         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
3804         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
3805         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
3806         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3807         (m68k_cannot_force_const_mem): ...this new function.
3808         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
3809         argument.
3810         (mips_const_insns, mips_legitimize_const_move): Update calls.
3811         (mips_secondary_reload_class): Likewise.
3812         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3813         (pa_cannot_force_const_mem): ...this new function.
3814         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
3815         (rs6000_cannot_force_const_mem): ...this new function.
3816         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
3817         argument.
3818         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3819         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3820         to...
3821         (xtensa_cannot_force_const_mem): ...this new function.
3822
3823 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3824
3825         * config/mips/mips.c (mips16_build_function_stub): Call
3826         build_function_type_list instead of build_function_type.
3827         (mips16_build_call_stub): Likewise.
3828
3829 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3830
3831         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3832         instead of build_function_type.
3833
3834 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3835
3836         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3837         instead of build_function_type.
3838
3839 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
3840
3841         PR target/48678
3842         * config/i386/i386.md (insv): Change operand 0 constraint to
3843         "register_operand".  Change operand 1 and 2 constraint to
3844         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
3845         * config/i386/sse.md (sse4_1_pinsrb): Export.
3846         (sse2_pinsrw): Ditto.
3847         (sse4_1_pinsrd): Ditto.
3848         (sse4_1_pinsrq): Ditto.
3849         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3850         * config/i386/i386.c (ix86_expand_pinsr): New.
3851
3852 2011-04-20  Easwaran Raman  <eraman@google.com>
3853
3854         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3855         containing union type only with -fstrict-aliasing.
3856
3857 2011-04-20  Jim Meyering  <meyering@redhat.com>
3858
3859         Remove useless if-before-free tests.
3860         * calls.c (expand_call, save_area): Likewise.
3861         * cfgcleanup.c (try_forward_edges): Likewise.
3862         * collect2.c (collect_execute): Likewise.
3863         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3864         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3865         * coverage.c (coverage_checksum_string): Likewise.
3866         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3867         * cselib.c (cselib_init): Likewise.
3868         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3869         (df_set_clean_cfg): Likewise.
3870         * function.c (free_after_compilation): Likewise.
3871         * gcc.c (do_spec_1, main): Likewise.
3872         * gcov.c (create_file_names): Likewise.
3873         * gensupport.c (identify_predicable_attribute): Likewise.
3874         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3875         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3876         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3877         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3878         * ipa-pure-const.c (local_pure_const): Likewise.
3879         * ipa-reference.c (propagate): Likewise.
3880         * ira-costs.c (free_ira_costs): Likewise.
3881         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3882         * matrix-reorg.c (mat_free): Likewise.
3883         * prefix.c (get_key_value): Likewise.
3884         * profile.c (compute_value_histograms): Likewise.
3885         * reload1.c (free_reg_equiv): Likewise.
3886         * sched-deps.c (free_deps): Likewise.
3887         * sel-sched-ir.c (fence_clear): Likewise.
3888         * sese.c (set_rename, if_region_set_false_region): Likewise.
3889         * tree-data-ref.c (free_rdg): Likewise.
3890         * tree-eh.c (lower_try_finally): Likewise.
3891         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3892         * tree-ssa-live.c (delete_var_map): Likewise.
3893         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3894         * tree-ssa-pre.c (phi_trans_add): Likewise.
3895
3896 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
3897
3898         PR tree-optimization/48611
3899         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3900         beyond ERT_MUST_NOT_THROW region.
3901
3902 2011-04-20  Catherine Moore  <clm@codesourcery.com>
3903
3904         * config/mips/mips.opt (mfix-24k): New.
3905         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3906         * config/mips/mips.md (length): Increase by 4 for stores if
3907         fixing 24K errata.
3908         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3909         all noreorder if fixing 24K errata.
3910         * doc/invoke.texi: Document mfix-24k.
3911
3912 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
3913
3914         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
3915         quad-word modes, reduce to 9-bit index range when above 1016 limit.
3916
3917 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3918
3919         * config/arm/arm.c (arm_gen_constant): Move movw support ....
3920         (const_ok_for_op): ... to here.
3921
3922 2011-04-20  Kai Tietz  <ktietz@redhat.com>
3923
3924         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3925         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
3926
3927 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3928
3929         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3930
3931 2011-04-20  Richard Guenther  <rguenther@suse.de>
3932
3933         PR tree-optimization/47892
3934         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3935         are if-convertible.
3936
3937 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3938
3939         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3940
3941 2011-04-20  Tristan Gingold  <gingold@adacore.com>
3942
3943         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3944
3945 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
3946
3947         PR target/18145
3948
3949         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3950         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3951         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3952         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3953         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3954
3955         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3956         New prototype.
3957
3958         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3959         (avr_asm_named_section, avr_asm_output_aligned_common,
3960         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3961         New functions to update...
3962         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3963         (avr_asm_init_sections): Overwrite section callbacks for
3964         data_section, bss_section.
3965         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3966         from here to...
3967         (avr_file_end): ...here.
3968
3969 2011-04-20  Richard Guenther  <rguenther@suse.de>
3970
3971         PR middle-end/48695
3972         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
3973         objects and types here.  Adjust for their offset before comparing.
3974
3975 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3976
3977         * tree-vect-stmts.c (vectorizable_store): Only chain one related
3978         statement per copy.
3979
3980 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3981
3982         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3983         (GIMPLE_H): Include $(INTERNAL_FN_H).
3984         (OBJS-common): Add internal-fn.o.
3985         (internal-fn.o): New rule.
3986         * internal-fn.def: New file.
3987         * internal-fn.h: Likewise.
3988         * internal-fn.c: Likewise.
3989         * gimple.h: Include internal-fn.h.
3990         (GF_CALL_INTERNAL): New gf_mask.
3991         (gimple_statement_call): Put fntype into a union with a new
3992         internal_fn field.
3993         (gimple_build_call_internal): Declare.
3994         (gimple_build_call_internal_vec): Likewise.
3995         (gimple_call_same_target_p): Likewise.
3996         (gimple_call_internal_p): New function.
3997         (gimple_call_internal_fn): Likewise.
3998         (gimple_call_fntype): Return null for internal calls.
3999         (gimple_call_set_fntype): Assert that the function is not internal.
4000         (gimple_call_set_fn): Likewise.
4001         (gimple_call_set_fndecl): Likewise.
4002         (gimple_call_set_internal_fn): New function.
4003         (gimple_call_addr_fndecl): Handle null functions.
4004         (gimple_call_return_type): Likewise null types.
4005         * gimple.c (gimple_build_call_internal_1): New function.
4006         (gimple_build_call_internal): Likewise.
4007         (gimple_build_call_internal_vec): Likewise.
4008         (gimple_call_same_target_p): Likewise.
4009         (gimple_call_flags): Handle calls to internal functions.
4010         (gimple_call_fnspec): New function.
4011         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
4012         (gimple_has_side_effects): Handle null functions.
4013         (gimple_rhs_has_side_effects): Likewise.
4014         (gimple_call_copy_skip_args): Handle calls to internal functions.
4015         * cfgexpand.c (expand_call_stmt): Likewise.
4016         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
4017         * gimple-fold.c (gimple_fold_call): Handle null functions.
4018         (gimple_fold_stmt_to_constant_1): Don't fold
4019         calls to internal functions.
4020         * gimple-low.c (gimple_check_call_args): Handle calls to internal
4021         functions.
4022         * gimple-pretty-print.c (dump_gimple_call): Likewise.
4023         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
4024         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
4025         (do_warn_unused_result): Likewise.
4026         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
4027         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
4028         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
4029         the target of a call.
4030         (initialize_hash_element): Update accordingly.
4031         (hashable_expr_equal_p): Use gimple_call_same_target_p.
4032         (iterative_hash_hashable_expr): Handle calls to internal functions.
4033         (print_expr_hash_elt): Likewise.
4034         * tree-ssa-pre.c (can_value_number_call): Likewise.
4035         (eliminate): Handle null functions.
4036         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
4037         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
4038         (find_func_aliases): Likewise.
4039         * value-prof.c (gimple_ic_transform): Likewise.
4040         (gimple_indirect_call_to_profile): Likewise.
4041         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4042         * lto-streamer-out.c (output_gimple_stmt): Likewise.
4043
4044 2011-04-19  Jan Hubicka  <jh@suse.cz>
4045
4046         * ipa-inline-transform.c (save_inline_function_body): Add comments.
4047         * ipa-inline.c (inline_small_functions): Compute summaries first,
4048         populate heap later.
4049
4050 2011-04-19  Jan Hubicka  <jh@suse.cz>
4051
4052         * cgraph.h (save_inline_function_body): Remove.
4053         * ipa-inline-transform.c: New file, broke out of...
4054         * ipa-inline.c: ... this one; Update toplevel comment.
4055         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
4056         make global.
4057         (update_noncloned_frequencies): Move to ipa-inline-transform.c
4058         (cgraph_mark_inline_edge): Rename to inline_call; move to
4059         ipa-inline-transform.c.
4060         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
4061         move to ipa-inline-transform.c
4062         (recursive_inlining, inline_small_functions, flatten_function,
4063         ipa_inline, inline_always_inline_functions,
4064         early_inline_small_functions): Update.
4065         (inline_transform): Move to ipa-inline-transform.c.
4066         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4067         Declare.
4068         * Makefile.in (ipa-inline-transform.o): New file.
4069         * cgraphunit.c (save_inline_function_body): Move to
4070         ipa-inline-transform.c
4071
4072 2011-04-19  DJ Delorie  <dj@redhat.com>
4073
4074         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4075         registers if we already know there aren't any.
4076         (m32c_emit_epilogue): Don't emit a barrier here.
4077         (m32c_emit_eh_epilogue): Likewise.
4078         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4079         operands at expand time.
4080         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4081         int" wchar type.
4082         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4083         duplicates.  Provide aliases instead.
4084         * config/m32c/prologue.md (eh_return): Emit a barrier here.
4085         (eh_epilogue): Add a "(return)" here as a hint to other parts of
4086         the compiler.
4087
4088 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
4089
4090         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4091         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4092         (general_or_i64_p, sparc_register_move_cost): New function.
4093
4094 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4095
4096         * doc/install.texi (Configuration, --enable-threads): Remove mach.
4097         Add lynx, mipssde.  Sort table.
4098
4099 2011-04-19  Xinliang David Li  <davidxl@google.com>
4100
4101         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4102         not negative.
4103
4104 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
4105
4106         PR target/48678
4107         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4108         is a SUBREG with non-MODE_INT mode inside of it.
4109
4110 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4111
4112         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4113         also according to actual contants.
4114         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4115         (gimple_fold_call): Use it.
4116         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4117
4118 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4119
4120         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4121         non-pointer assignments.
4122
4123 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4124
4125         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4126         account anc_offset and otr_type from the indirect edge info.
4127         * ipa-prop.c (get_ancestor_addr_info): New function.
4128         (compute_complex_ancestor_jump_func): Assignment analysis moved to
4129         get_ancestor_addr_info, call it.
4130         (ipa_note_param_call): Do not initialize information about polymorphic
4131         calls, return the indirect call graph edge.  Remove the last
4132         parameter, adjust all callers.
4133         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4134         parameters.  Initialize polymorphic information in the indirect edge.
4135
4136 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4137
4138         PR lto/48148
4139         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4140         the types if they have different enumeration identifiers.
4141
4142 2011-04-19  Jan Hubicka  <jh@suse.cz>
4143
4144         * cgraph.h (cgraph_optimize_for_size_p): Declare.
4145         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4146         * predict.c (cgraph_optimize_for_size_p): Break out from ...
4147         (optimize_function_for_size_p) ... here.
4148
4149 2011-04-19  Richard Guenther  <rguenther@suse.de>
4150
4151         PR lto/48207
4152         * tree.c (free_lang_data): Do not reset the decl-assembler-name
4153         langhook.
4154
4155 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4156
4157         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4158         if DECL_NO_INLINE_WARNING_P is set on the function.
4159
4160 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
4161
4162         PR fortran/47976
4163         * reload1.c (inc_for_reload): Return void. All callers changed.
4164         (emit_input_reload_insns): Don't try to delete previous output
4165         reloads to a register, or record spill_reg_store for autoincs.
4166
4167 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
4168
4169         * gengtype.h: Updated copyright year.
4170         (struct input_file_st): Add inpisplugin field.
4171         (type_fileloc): New function.
4172         * gengtype.c
4173         (write_typed_struct_alloc_def): Add gcc_assert.
4174         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4175         (write_typed_alloc_defns): Don't output for plugin files.
4176         (input_file_by_name): Clear inpisplugin field.
4177         (main): Set inpisplugin field for plugin files.
4178
4179 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
4180
4181         * gengtype-state.c (string_eq): New.
4182         (read_state): Use string_eq instead of strcmp when creating the
4183         state_ident_tab.
4184
4185 2011-04-19  Wei Guozhi  <carrot@google.com>
4186
4187         PR target/47855
4188         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4189         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4190         linkage.
4191         * config/arm/constraints.md (Uu): New constraint.
4192         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4193
4194 2011-04-19  Tristan Gingold  <gingold@adacore.com>
4195
4196         * config.gcc (-*-*-*vms): Added.
4197         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4198         definitions moved.
4199         * config/vms/vms-ld.c: New file.
4200         * config/vms/vms-ar.c: New file.
4201         * config/vms/t-vmsnative: New file.
4202
4203 2011-04-18  Xinliang David Li  <davidxl@google.com>
4204
4205         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4206
4207 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4208
4209         PR middle-end/48661
4210         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4211         if TREE_TYPE (v) is non-NULL.
4212
4213         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4214         gimple_get_virt_mehtod_for_binfo.
4215         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4216         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4217         callers.
4218         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4219
4220 2011-04-18  Michael Matz  <matz@suse.de>
4221             Steve Ellcey  <sje@cup.hp.com>
4222
4223         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4224         use its mode as source mode if it isn't VOIDmode.
4225
4226 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
4227
4228         * doc/passes.texi: Fill crossref nodes.
4229
4230 2011-04-18  Jim Meyering  <meyering@redhat.com>
4231
4232         Fix doubled-word typos in comments and strings
4233         * config/alpha/vms-unwind.h: s/for for/for/
4234         * config/arm/unwind-arm.h: Likewise.
4235         * config/microblaze/microblaze.c: Likewise.
4236         * config/sh/constraints.md: s/in in/in/
4237         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4238
4239 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
4240
4241         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4242         (AVX_FLOAT_MODE_P): Ditto.
4243         (AVX128_VEC_FLOAT_MODE_P): Ditto.
4244         (AVX256_VEC_FLOAT_MODE_P): Ditto.
4245         (AVX_VEC_FLOAT_MODE_P): Ditto.
4246         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4247         (UNSPEC_MASKSTORE): Ditto.
4248         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4249         Merge from <sse>_movmsk<ssemodesuffix> and
4250         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
4251         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
4252         iterator.
4253         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4254         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4255         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4256
4257 2011-04-18  Jan Hubicka  <jh@suse.cz>
4258
4259         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4260
4261         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4262         (want_inline_function_called_once_p): Break out the logic from
4263         ipa_inline.
4264         (edge_badness): Ensure that profile is not misupdated.
4265         (lookup_recursive_calls): Prioritize by call frequencies.
4266         (inline_small_functions): Move program size estimates here;
4267         actually process whole queue even when unit growth has been
4268         met. (to properly compute inline_failed reasons and for the
4269         case unit size decrease.) Revisit comments on recursive inlining.
4270         (ipa_inline): Remove unit summary code; first inline hot calls
4271         of functions called once, cold calls next.
4272         (order, nnodes): Remove unused variables.
4273         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4274         (GTFILES): Remove ipa-inline.c
4275         * sel-sched.c (fill_insns): Silence uninitialized var warning.
4276
4277 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4278
4279         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4280
4281 2011-04-18  Jie Zhang  <jie@codesourcery.com>
4282             Richard Earnshaw  <rearnsha@arm.com>
4283
4284         * arm.c (neon_builtin_type_bits): Remove.
4285         (typedef enum neon_builtin_mode): New.
4286         (T_MAX): Don't define.
4287         (typedef enum neon_builtin_datum): Remove bits, codes[],
4288         num_vars and base_fcode.  Add mode, code and fcode.
4289         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4290         VAR10): Change accordingly.
4291         (neon_builtin_data[]): Change accordingly
4292         (arm_init_neon_builtins): Change accordingly.
4293         (neon_builtin_compare): Remove.
4294         (locate_neon_builtin_icode): Remove.
4295         (arm_expand_neon_builtin): Change accordingly.
4296
4297         * arm.h (enum arm_builtins): Move to ...
4298         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4299
4300         * arm.c (arm_builtin_decl): Declare.
4301         (TARGET_BUILTIN_DECL): Define.
4302         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4303         (arm_builtin_decls[]): New.
4304         (arm_init_neon_builtins): Store builtin declarations in
4305         arm_builtin_decls[].
4306         (arm_init_tls_builtins): Likewise.
4307         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
4308         (arm_builtin_decl): New.
4309
4310 2011-04-18  Richard Guenther  <rguenther@suse.de>
4311
4312         * tree.c (upper_bound_in_type): Build properly canonicalized
4313         INTEGER_CSTs.
4314         (lower_bound_in_type): Likewise.
4315
4316 2011-04-18  Richard Guenther  <rguenther@suse.de>
4317
4318         * gimple.h (gimple_call_addr_fndecl): New function.
4319         (gimple_call_fndecl): Use it.
4320         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4321         for direct calls.
4322         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4323         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4324
4325 2011-04-18  Richard Guenther  <rguenther@suse.de>
4326
4327         PR middle-end/48650
4328         * tree.c (build_string): STRING_CST is now derived from tree_typed.
4329
4330 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4331
4332         PR lto/48492
4333         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4334         DECL_IN_CONSTANT_POOL without RTL.
4335
4336 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
4337             Ira Rosen  <ira.rosen@linaro.org>
4338
4339         PR target/48252
4340         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4341         to match neon_vzip/vuzp/vtrn_internal.
4342         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4343         outputs explicitly dependent on both inputs.
4344         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4345
4346 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4347
4348         PR tree-optimization/48616
4349         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4350         whether the shift is by scalar or vector based on whether all SLP
4351         scalar stmts have the same rhs.
4352
4353 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
4354
4355         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4356         memory operands.
4357
4358 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
4359
4360         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4361         registers.
4362
4363 2011-04-17  Jan Hubicka  <jh@suse.cz>
4364
4365         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
4366         * cgrpahunit.c (cgraph_finalize_function): Do not set
4367         finalized_by_frontend.
4368         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4369         finalized_by_frontend.
4370
4371 2011-04-17  Jan Hubicka  <jh@suse.cz>
4372
4373         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4374         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4375         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
4376         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4377         method.
4378         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4379         gimple-fold.c
4380         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4381
4382 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4383
4384         PR lto/48538
4385         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4386         is non-null before accessing it.
4387         (input_cgraph): Remove trailing spaces.
4388
4389 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4390
4391         * params.def (sms-min-sc): New param flag.
4392         * modulo-sched.c (sms_schedule): Use it.
4393         * doc/invoke.texi (sms-min-sc): Document it.
4394
4395 2011-04-17  Jan Hubicka  <jh@suse.cz>
4396
4397         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4398         present, also set gimple_call_set_cannot_inline.
4399         * ipa-inline.c: Update toplevel comment.
4400         (MAX_TIME): Remove.
4401         (cgraph_clone_inlined_nodes): Fix linebreaks.
4402         (cgraph_check_inline_limits): Restructure to ...
4403         (caller_growth_limits): ... this one; be more tolerant
4404         on growth in nested inline chains; add explanatory comment;
4405         fix stack accounting thinko introduced by previous patch.
4406         (cgraph_default_inline_p): Remove.
4407         (report_inline_failed_reason): New function.
4408         (can_inline_edge_p): New function.
4409         (can_early_inline_edge_p): New function.
4410         (leaf_node_p): Move upwards in file.
4411         (want_early_inline_function_p): New function.
4412         (want_inline_small_function_p): New function.
4413         (want_inline_self_recursive_call_p): New function.
4414         (cgraph_edge_badness): Rename to ...
4415         (edge_badness) ... this one; fix linebreaks.
4416         (update_edge_key): Update call of edge_baddness; add
4417         detailed dump about queue updates.
4418         (update_caller_keys): Use can_inline_edge_p and
4419         want_inline_small_function_p.
4420         (cgraph_decide_recursive_inlining): Rename to...
4421         (recursive_inlining): Use can_inline_edge_p and
4422         want_inline_self_recursive_call_p; simplify and remove no longer
4423         valid FIXME.
4424         (cgraph_set_inline_failed): Remove.
4425         (add_new_edges_to_heap): Use can_inline_edge_p and
4426         want_inline_small_function_p.
4427         (cgraph_decide_inlining_of_small_functions): Rename to ...
4428         (inline_small_functions): ... this one; cleanup; use
4429         can/want predicates; cleanup debug ouput; work edges till fibheap
4430         is exhausted and do not stop once unit growth is reached; remove
4431         later loop processing remaining edges.
4432         (cgraph_flatten): Rename to ...
4433         (flatten_function): ... this one; use can_inline_edge_p
4434         and can_early_inline_edge_p predicates.
4435         (cgraph_decide_inlining): Rename to ...
4436         (ipa_inline): ... this one; remove unreachable nodes before
4437         inlining functions called once; simplify the pass.
4438         (cgraph_perform_always_inlining): Rename to ...
4439         (inline_always_inline_functions): ... this one; use
4440         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4441         (cgraph_decide_inlining_incrementally): Rename to ...
4442         (early_inline_small_functions): ... this one; simplify
4443         using new predicates; cleanup; make dumps prettier.
4444         (cgraph_early_inlining): Rename to ...
4445         (early_inliner): newer inline regular functions into always-inlines;
4446         fix updating of call stmt summaries.
4447         (pass_early_inline): Update for new names.
4448         (inline_transform): Fix formating.
4449         (gate_cgraph_decide_inlining): Rename to ...
4450         (pass_ipa_inline): ... this one.
4451         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4452         * ipa-inline-analysis.c (dump_inline_summary): Update.
4453         (compute_inline_parameters): Do not compute disregard_inline_limits;
4454         look for mismatching arguments.
4455         (estimate_growth): Fix handlig of non-trivial self recursion.
4456         (inline_read_summary): Do not read info->disregard_inline_limits.
4457         (inline_write_summary): Do not write info->disregard_inline_limits.
4458         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4459         and move all checks into can_inline_edge_p predicate; re-enable code
4460         comparing optimization levels.
4461         (expand_call_inline): Do not test inline_forbidden_into_p.
4462         * Makefile.in (ipa-inline.o): Update arguments.
4463
4464 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4465
4466         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4467
4468 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4469
4470         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4471
4472 2011-04-17  Michael Matz  <matz@suse.de>
4473
4474         PR tree-optimization/48622
4475         PR lto/48645
4476         * ipa-inline-analysis.c (inline_read_summary): Read size/time
4477         in same order as they're written.
4478
4479 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4480
4481         * config/pa/predicates.md: Reorganize and simplify predicates.
4482         Eliminate duplicate code checks.
4483         (arith_operand): Rename to arith14_operand
4484         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4485         * config/pa/pa.md: Use renamed operands.
4486         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4487         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4488         arith11_operand, adddi3_operand, indexed_memory_operand,
4489         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4490         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4491         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4492         move_dest_operand, move_src_operand, prefetch_cc_operand,
4493         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4494         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4495         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4496         div_operand, int5_operand, movb_comparison_operator,
4497         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4498         arith_double_operand, ireg_operand, lhs_lshift_operand,
4499         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4500         integer_store_memory_operand): Likewise.
4501         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4502         (integer_store_memory_operand, read_only_operand,
4503         function_label_operand, borx_reg_operand,
4504         non_hard_reg_operand): Likewise.
4505         (eq_neq_comparison_operator): Delete unused operator.
4506         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4507         function_label_operand.
4508         (emit_move_sequence): Likewise.
4509
4510 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4511
4512         * config/i386/sse.md (sseunpackmode): New mode attribute.
4513         (ssepackmode): Ditto.
4514         (vec_pack_trunc_<mode>): Macroize expander from
4515         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4516         (vec_unpacks_lo_<mode>): Macroize expander from
4517         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4518         (vec_unpacks_hi_<mode>): Macroize expander from
4519         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4520         (vec_unpacku_lo_<mode>): Macroize expander from
4521         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4522         (vec_unpacku_hi_<mode>): Macroize expander from
4523         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4524         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4525         ix86_expand_sse4_unpack.
4526         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4527
4528 2011-04-16  Jan Hubicka  <jh@suse.cz>
4529
4530         * cgraphbuild.c: Include ipa-inline.h.
4531         (reset_inline_failed): Use initialize_inline_failed.
4532         * cgraph.c: Include ipa-inline.h.
4533         (cgraph_create_node_1): Do not initialize estimated_growth.
4534         (initialize_inline_failed): More to ipa-inline-analysis.c
4535         (dump_cgraph_node): Do not dump inline flags.
4536         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4537         and disregard_inline_limits flags.
4538         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4539         time, size, estimated_growth.
4540         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4541         Update.
4542         * cgraphunit.c (cgraph_decide_is_function_needed): Use
4543         DECL_DISREGARD_INLINE_LIMITS.
4544         (cgraph_analyze_function): Do not initialize
4545         node->local.disregard_inline_limits.
4546         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4547         inlinable, versionable and disregard_inline_limits.
4548         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4549         cgraph_check_inline_limits, cgraph_default_inline_p,
4550         cgraph_edge_badness, update_caller_keys, update_callee_keys,
4551         add_new_edges_to_heap): Update.
4552         (cgraph_decide_inlining_of_small_function): Update; set
4553         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
4554         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4555         cgraph_decide_inlining_incrementally): Update.
4556         * ipa-inline.h (inline_summary): Add inlinable, versionable,
4557         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4558         time, size and estimated_growth parameters.
4559         (estimate_edge_growth): Update.
4560         (initialize_inline_failed): Declare.
4561         * ipa-split.c: Include ipa-inline.h
4562         (execute_split_functions): Update.
4563         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4564         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4565         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4566         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4567         estimated_growth to INT_MIN.
4568         (inline_node_duplication_hook): Likewise.
4569         (dump_inline_summary): Dump new fields.
4570         (compute_inline_parameters): Update.
4571         (estimate_edge_time, estimate_time_after_inlining,
4572         estimate_size_after_inlining, estimate_growth, inline_read_summary,
4573         inline_write_summary):
4574         (initialize_inline_failed): Move here from cgraph.c.
4575         * tree-sra.c: Include ipa-inline.h.
4576         (ipa_sra_preliminary_function_checks): Update.
4577         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4578         ipa-inline.h.
4579
4580 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4581
4582         * config/i386/sse.md (V16): New mode iterator.
4583         (VI1, VI8): Ditto.
4584         (AVXMODEQI, AVXMODEDI): Remove.
4585         (sse2, sse3): New mode attribute.
4586         (mov<mode>): Use V16 mode iterator.
4587         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4588         (push<mode>1): Use V16 mode iterator.
4589         (movmisalign<mode>): Ditto.
4590         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4591         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4592         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4593         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4594         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4595         avx_movdqu<avxmodesuffix>.
4596         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4597         *avx_movdqu<avxmodesuffix>.
4598         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4599         avx_lddqu<avxmodesuffix>.
4600         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4601         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4602         avx_movnt<AVXMODEDI:mode>.
4603         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4604         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4605
4606 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4607
4608         PR target/48629
4609         * haifa-sched.c (prune_ready_list, schedule_block): Use
4610         sched_pressure_p rather than flag_sched_pressure.
4611
4612 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4613
4614         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4615         cgraph_get_node instead of cgraph_get_create_node.
4616
4617 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
4618
4619         * cfgexpand.c (expand_debug_expr): Use
4620         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4621
4622 2011-04-15  Michael Matz  <matz@suse.de>
4623
4624         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4625         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4626         * function.c (gimplify_parameters): Ditto.
4627         * gimplify.c (gimplify_vla_decl): Ditto.
4628
4629         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4630         (gimple_call_set_alloca_for_var): New inline function.
4631         (gimple_call_alloca_for_var_p): Ditto.
4632         * gimple.c (gimple_build_call_from_tree): Remember
4633         CALL_ALLOCA_FOR_VAR_P state.
4634         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4635
4636         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4637         calls if they were for VLA objects.
4638
4639 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4640
4641         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4642         of ADR_EXPRs.
4643
4644 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4645
4646         PR middle-end/48601
4647         * tree-emutls.c (lower_emutls_function_body): Call
4648         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
4649         result is non-NULL.
4650
4651 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4652
4653         * c-decl.c (detect_field_duplicates): Call
4654         objc_detect_field_duplicates instead of objc_get_interface_ivars.
4655
4656 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
4657
4658         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4659         * gimple.c (gimple_asm_clobbers_memory_p): Define.
4660         * ipa-pure-const.c (check_stmt): Call it.
4661         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4662
4663 2011-04-15  Richard Guenther  <rguenther@suse.de>
4664
4665         PR tree-optimization/48290
4666         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4667         Properly decide inhibiting propagation based on the valueized
4668         operand.  Do loop-closed SSA form preserving here ...
4669         (init_copy_prop): ... not here.
4670
4671 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4672
4673         PR target/48612
4674         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4675         (*ieee_smax<mode>3): Likewise.
4676
4677 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4678
4679         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4680         Replace match_operand with match_dup for the third operand in
4681         these expanders.
4682
4683 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4684
4685         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4686         to track processing of conditionals.  Update all callers.
4687         (try_combine, simplify_if_then_else): Update.
4688
4689 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4690
4691         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4692         -fsched-pressure.
4693
4694 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
4695
4696         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4697         instead of match_operand for operand 3.
4698
4699 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
4700
4701         * recog.h (insn_operand_data): Add an "allows_mem" field.
4702         * genoutput.c (output_operand_data): Initialize it.
4703         * optabs.c (maybe_legitimize_operand_same_code): New function.
4704         (maybe_legitimize_operand): Use it when matching the original
4705         op->value.
4706
4707 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4708
4709         * gimplify.c: Fix issues in comments throughout.
4710         (voidify_wrapper_expr): Fix long line.
4711         (build_stack_save_restore): Likewise.
4712         (gimplify_loop_expr): Likewise.
4713         (gimplify_compound_lval): Likewise.
4714         (gimplify_init_ctor_eval): Likewise.
4715         (gimplify_modify_expr_rhs): Likewise.
4716         (omp_notice_threadprivate_variable): Likewise.
4717
4718 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4719
4720         * cfgexpand.c (expand_call_stmt): Convert the function type to the
4721         original one if this is not a builtin function.
4722
4723 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
4724
4725         PR target/48605
4726         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4727         offset it as needed based on top 2 bits in operands[3], change
4728         MEM mode to SFmode and mask those 2 bits away from operands[3].
4729
4730 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4731
4732         * c-parser.c (c_parser_objc_protocol_definition): Updated for
4733         change from objc_declare_protocols() to objc_declare_protocol().
4734
4735 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
4736
4737         * config/i386/sse.md (sse4_1): New mode attribute.
4738         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4739         avx_blend<ssemodesuffix><avxmodesuffix> and
4740         sse4_1_blend<ssemodesuffix> using VF mode iterator.
4741         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4742         avx_blendv<ssemodesuffix><avxmodesuffix> and
4743         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4744         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4745         avx_dp<ssemodesuffix><avxmodesuffix> and
4746         sse4_1_dp<ssemodesuffix> using VF mode iterator.
4747         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4748         (sse4_1_packusdw): Merge with *avx_packusdw.
4749         (sse4_1_pblendvb): Merge with *avx_pblendvb.
4750         (sse4_1_pblendw): Merge with *avx_pblendw.
4751         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4752         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4753         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4754         VF mode iterator.
4755         (sse4_1_round<ssescalarmodesuffix>): Merge with
4756         *avx_round<ssescalarmodesuffix>.
4757         (aesenc): Merge with *avx_aesenc.
4758         (aesenclast): Merge with *avx_aesenclast.
4759         (aesdec): Merge with *avx_aesdec.
4760         (aesdeclast): Merge with *avx_aesdeclast.
4761         (pclmulqdq): Merge with *pclmulqdq.
4762         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4763         New predicate.
4764         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4765
4766 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4767
4768         PR middle-end/48608
4769         * cfgexpand.c (get_decl_align_unit): Renamed to ...
4770         (align_local_variable): This.  Update DECL_ALIGN.
4771         (add_stack_var): Updated.
4772         (expand_one_stack_var): Likewise.
4773
4774 2011-04-14  Richard Guenther  <rguenther@suse.de>
4775
4776         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4777         Remove.
4778         (dse_initialize_block_local_data, dse_leave_block,
4779         record_voperand_set, get_stmt_uid): Likewise.
4780         (dse_possible_dead_store_p): Allow any kind of killing stmt.
4781         (dse_optimize_stmt): Remove voperand set handling code.
4782         Simplify and improve to handle any kind of killing stmt.
4783         (dse_record_phi): Remove.
4784         (dse_enter_block): Simplify.
4785         (tree_ssa_dse): Likewise.
4786         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4787
4788 2011-04-14  Jan Hubicka  <jh@suse.cz>
4789
4790         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4791         * cgraph.h (struct inline_summary): Move to ipa-inline.h
4792         (cgraph_local_info): Remove inline_summary.
4793         * ipa-cp.c: Include ipa-inline.h.
4794         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4795         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4796         accesor.
4797         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4798         (input_overwrite_node): Do not set inline summary.
4799         (input_node): Do not stream inline summary.
4800         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
4801         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
4802         growth; we do not have inline parameters computed for that anyway.
4803         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
4804         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
4805         (inline_summary_t): New type and VECtor.
4806         (debug_inline_summary, dump_inline_summaries): Declare.
4807         (inline_summary): Use VOCtor.
4808         (estimate_edge_growth): Kill hack computing call stmt size directly.
4809         * lto-section-in.c (lto_section_name): Add inline section.
4810         * ipa-inline-analysis.c: Include lto-streamer.h
4811         (node_removal_hook_holder, node_duplication_hook_holder): New holders
4812         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
4813         (inline_summary_vec): Define.
4814         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
4815         dump_inline_summaries): New functions.
4816         (estimate_function_body_sizes): Properly compute size/time of outgoing
4817         calls.
4818         (compute_inline_parameters): Alloc inline_summary; do not compute
4819         size/time of incomming calls.
4820         (estimate_edge_time): Avoid missing time summary hack.
4821         (inline_read_summary): Read inline summary info.
4822         (inline_write_summary): Write inline summary info.
4823         (inline_free_summary): Free all hooks and inline summary vector.
4824         * lto-streamer.h: Add LTO_section_inline_summary section.
4825         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4826         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4827
4828 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4829
4830         * tree-vectorizer.h (vect_strided_store_supported): Add a
4831         HOST_WIDE_INT argument.
4832         (vect_strided_load_supported): Likewise.
4833         (vect_permute_store_chain): Return void.
4834         (vect_transform_strided_load): Likewise.
4835         (vect_permute_load_chain): Delete.
4836         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4837         count argument.  Check that the count is a power of two.
4838         (vect_strided_load_supported): Likewise.
4839         (vect_permute_store_chain): Return void.  Update after above changes.
4840         Assert that the access is supported.
4841         (vect_permute_load_chain): Likewise.
4842         (vect_transform_strided_load): Return void.
4843         * tree-vect-stmts.c (vectorizable_store): Update calls after
4844         above interface changes.
4845         (vectorizable_load): Likewise.
4846         (vect_analyze_stmt): Don't check for strided powers of two here.
4847
4848 2011-04-14  Richard Guenther  <rguenther@suse.de>
4849
4850         PR tree-optimization/48590
4851         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4852         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4853         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4854         BUILT_IN_STACK_SAVE.
4855         * tree-ssa-dce.c (propagate_necessity): Handle
4856         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4857
4858 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4859
4860         * c-parser.c (c_parser_objc_class_declaration): Updated call to
4861         objc_declare_class.
4862
4863 2011-04-14  Richard Guenther  <rguenther@suse.de>
4864
4865         * tree.h (get_object_alignment_1): Declare.
4866         * builtins.c (get_object_alignment_1): Split out worker from ...
4867         (get_object_alignment): ... here.
4868         * fold-const.c (get_pointer_modulus_and_residue): Use
4869         get_object_alignment_1.
4870
4871 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4872
4873         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4874         type parameter.
4875         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4876         parameter.  Generalise code to handle arrays as well as vectors.
4877         (vect_setup_realignment): Update accordingly.
4878         * tree-vect-stmts.c (vectorizable_store): Likewise.
4879         (vectorizable_load): Likewise.
4880
4881 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4882
4883         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4884         within the per-copy loop.
4885
4886 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4887
4888         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4889         in the dump file.
4890
4891 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4892
4893         * doc/options.texi (Negative): Explicitly mention that the
4894         Negative chain must be circular.
4895
4896 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
4897
4898         * function.h (block_chainon): Declare.
4899         * function.c (block_chainon): Define.
4900
4901 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
4902             Eric Weddington  <eric.weddington@atmel.com>
4903             Georg-Johann Lay  <avr@gjlay.de>
4904
4905         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
4906         New Includes
4907         (avr_init_builtins, avr_expand_builtin,
4908         avr_expand_delay_cycles, avr_expand_unop_builtin,
4909         avr_expand_binop_builtin ): New functions.
4910         (avr_builtin_id): New enum
4911         (struct avr_builtin_description): New struct
4912         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4913         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
4914
4915         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
4916         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
4917         UNSPECV_DELAY_CYCLES): new enumeration values
4918         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4919         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4920         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4921         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4922         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4923         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4924         "fmulsu"): New insns
4925
4926         * config/avr/avr-c.c: fix line endings
4927         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4928         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4929         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4930         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4931         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
4932
4933         * doc/extend.texi (AVR Built-in Functions): New node
4934         (Target Builtins): Add documentation of AVR
4935         built-in functions.
4936
4937 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
4938
4939         PR target/44643
4940         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4941         alone. Error if non-const data has attribute progmem.
4942
4943 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4944
4945         * tree.h (struct tree_constructor): Include tree_typed instead of
4946         tree_common.
4947         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4948         TS_TYPED instead of TS_COMMON.
4949
4950 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4951
4952         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4953         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4954         (sse2_psadbw): Merge with *avx_psadbw.
4955         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4956         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4957         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4958         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4959         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4960         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4961         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4962         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4963         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4964         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4965         (ssse3_palignrti): Merge with *avx_palignrti.
4966
4967 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4968
4969         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4970         * tree-ssanames.c (fini_ssanames): VEC_free it.
4971         (make_ssa_name_fn): Update for VECness of free_ssanames.
4972         (release_ssa_name, release_dead_ssa_names): Likewise.
4973         * tree.h (struct tree_ssa_name): Include tree_typed instead of
4974         tree_common.
4975         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4976         TS_TYPED instead of TS_COMMON.
4977
4978 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4979
4980         * postreload-gcse.c (gcse_after_reload_main): Add calls to
4981         statistics_counter_event.
4982         * tree-ssa-copyrename.c (stats): Define.
4983         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
4984         statistics_counter_event.
4985         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4986         (bswap_stats, widen_mul_stats): Define.
4987         (insert_reciprocals): Increment rdivs_inserted.
4988         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
4989         rfuncs_inserted.  Add calls to statistics_counter_event.
4990         (execute_cse_sincos_1): Increment inserted.
4991         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
4992         statistics_counter_event.
4993         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
4994         of bswap_stats.  Add calls to statistics_counter_event.
4995         (convert_mult_to_widen): Increment widen_mults_inserted.
4996         (convert_plusminus_to_widen): Increment maccs_inserted.
4997         (convert_mult_to_fma): Increment fmas_inserted.
4998         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
4999         calls to statistics_counter_event.
5000
5001 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5002
5003         PR rtl-optimization/48455
5004         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
5005         `temp_costs->mem_cost'.
5006
5007 2011-04-13  Jan Hubicka  <jh@suse.cz>
5008
5009         * ipa-inline.h: New file.
5010         * ipa-inline-analysis.c: New file. Broken out of ...
5011         * ipa-inline.c: ... this file; update toplevel comment;
5012         include ipa-inline.h
5013         (inline_summary): Move to ipa-inline.h
5014         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
5015         ipa-inline-analysis.c.
5016         (cgraph_estimate_time_after_inlining): Rename to
5017         estiamte_time_after_inlining; move to ipa-inline-analysis.c
5018         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
5019         to estimate_edge_growth.
5020         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
5021         rename to estimate_size_after_inlining.
5022         (cgraph_mark_inline_edge): Update for new naming convention.
5023         (cgraph_check_inline_limits): Likewise.
5024         (cgraph_edge_badness): Likewise.
5025         (cgraph_decide_recursive_inlining): Likewise.
5026         (cgraph_decide_inlining_of_small_functions): Likewise.
5027         (cgraph_decide_inlining_incrementally): Likewise.
5028         (cgraph_estimate_growth): Rename to estimate_growth; move to
5029         ipa-inline-analysis.c.
5030         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
5031         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
5032         (compute_inline_parameters): Likewise.
5033         (compute_inline_parameters_for_current): Likewise.
5034         (pass_inline_parameters): Likewise.
5035         (inline_indirect_intraprocedural_analysis): Likewise.
5036         (analyze_function): Rename to inline_analyze_function; likewise.
5037         (add_new_function): Move to ipa-inline-analysis.c.
5038         (inline_generate_summary): Likewise.
5039         (inline_read_summary): Likewise.
5040         (inline_write_summary): Likewise.
5041         * Makefile.in (ipa-inline-analysis.c): New file.
5042
5043 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5044
5045         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
5046         * configure: Regenerate.
5047
5048 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5049
5050         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
5051         instead of tree_common.
5052         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
5053         Likewise.
5054         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
5055         TS_TYPED rather than TS_COMMON.
5056         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
5057
5058 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
5059
5060         PR target/45263
5061         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
5062         r20 around calls of __tablejump_elpm__
5063
5064 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
5065
5066         PR middle-end/48591
5067         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5068         NULL.
5069         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5070
5071 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
5072
5073         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5074         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5075         (cfi_vec): New typedef.
5076         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5077         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5078         (cie_cfi_vec): New static variable.
5079         (cie_cfi_head): Delete.
5080         (add_cfi): Accept a cfi_vec * as first argument. All callers and
5081         declaration changed. Use vector rather than list operations.
5082         (new_cfi): Don't initialize the dw_cfi_next field.
5083         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5084         rather than list operations.
5085         (lookup_cfa): Use vector rather than list operations.
5086         (output_cfis): New argument upto. Accept a cfi_vec rather than
5087         a dw_cfi_ref list head as argument. All callers changed.
5088         Iterate over the vector using upto as a maximum index.
5089         (output_all_cfis): New static function.
5090         (output_fde): Use vector rather than list operations. Use the
5091         new upto argument for output_cfis rather than manipulating a
5092         list.
5093         (dwarf2out_begin_prologue): Change initializations to match
5094         new struct members.
5095         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5096         from the vector length rather than searching for the end of a list.
5097         Use output_all_cfis.
5098         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5099
5100 2011-04-13  Nick Clifton  <nickc@redhat.com>
5101
5102         * config/rx/rx.md (movmemsi): Do not use this pattern when
5103         volatile pointers are involved.
5104
5105 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
5106
5107         * config/i386/sse.md (pinsrbits): Remove.
5108         (sse2_packsswb): Merge with *avx_packsswb.
5109         (sse2_packssdw): Merge with *avx_packssdw.
5110         (sse2_packuswb): Merge with *avx_packuswb.
5111         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5112         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5113         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5114         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5115         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5116         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5117         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5118         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5119         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5120         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5121         (sse2_loadld): Merge with *avx_loadld.
5122         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5123         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5124         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5125         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5126         (vec_concatv2di): Merge with *vec_concatv2di_avx.
5127
5128 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
5129
5130         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5131         calling TREE_CHAIN.
5132         * print-tree.c (print_node): Likewise.
5133         * tree-inline.c (copy_tree_r): Likewise.
5134         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5135         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5136         instead of TS_COMMON.
5137         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5138         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5139         (copy_node_stat): Zero TREE_CHAIN only if necessary.
5140         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5141         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5142         ...and these...
5143         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5144         * tree.h: ...here.
5145         (TREE_CHAIN): Check for a TS_COMMON structure.
5146         (TREE_TYPE): Check for a TS_TYPED structure.
5147
5148 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
5149
5150         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5151         cgraph_get_create_node instead of cgraph_node.
5152
5153 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5154
5155         * c-parser.c (c_parser_initelt): Updated call to
5156         objc_build_message_expr.
5157         (c_parser_postfix_expression): Likewise.
5158
5159 2011-04-12  Kai Tietz  <ktietz@redhat.com>
5160
5161         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5162         MASK_MS_BITFIELD_LAYOUT bit.
5163
5164 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5165
5166         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5167         assert it is always true.
5168         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5169         moves.
5170
5171 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5172
5173         * c-parser.c (c_lex_one_token): Rewritten conditional used when
5174         compiling Objective-C to be more efficient.
5175
5176 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
5177
5178         * opts-common.c (decode_cmdline_options_to_array): Remove variable
5179         argv_copied.
5180
5181 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5182
5183         * recog.h, genoutput.c, optabs.c: Revert last patch.
5184
5185 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5186
5187         PR target/48090
5188         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
5189
5190 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5191
5192         * recog.h (insn_operand_data): Add an "allows_mem" field.
5193         * genoutput.c (output_operand_data): Initialize it.
5194         * optabs.c (maybe_legitimize_operand_same_code): New function.
5195         (maybe_legitimize_operand): Use it when matching the original
5196         op->value.
5197
5198 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5199
5200         * genpreds.c (process_define_predicate): Move most processing
5201         to gensupport.c.  Continue to validate the expression.
5202         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5203         (process_define_predicate): Move processing to gensupport.c.
5204         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5205         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5206         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
5207         argument.
5208         (valid_predicate_name_p): New function, split out from old
5209         genpreds.c:process_define_predicate.
5210         (process_define_predicate): New function, combining code from
5211         old genpreds.c and genrecog.c functions.
5212         (process_rtx): Call it for DEFINE_PREDICATE and
5213         DEFINE_SPECIAL_PREDICATE.
5214
5215 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5216
5217         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5218         size of a '%A' memory reference.
5219         (T_DREG, T_QREG): New neon_builtin_type_bits.
5220         (arm_init_neon_builtins): Assert that the load and store operands
5221         are neon_struct_operands.
5222         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5223         (NEON_ARG_MEMORY): New builtin_arg.
5224         (neon_dereference_pointer): New function.
5225         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5226         Handle NEON_ARG_MEMORY.
5227         (arm_expand_neon_builtin): Update after above interface changes.
5228         Use NEON_ARG_MEMORY for loads and stores.
5229         * config/arm/predicates.md (neon_struct_operand): New predicate.
5230         * config/arm/iterators.md (V_two_elem): Tweak formatting.
5231         (V_three_elem): Use BLKmode for accesses that have no associated mode.
5232         (V_four_elem): Tweak formatting.
5233         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5234         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5235         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5236         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5237         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5238         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5239         (neon_vst4<mode>): Replace pointer operand with a memory operand.
5240         Use %A in the output template.
5241         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5242         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5243         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5244         the width of the memory access.  Remove post-increment.
5245         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5246
5247 2011-04-12  Nick Clifton  <nickc@redhat.com>
5248
5249         * config/v850/v850.c (expand_prologue): Do not use the CALLT
5250         instruction for interrupt handlers if the target is the basic V850
5251         architecture.
5252         (expand_epilogue): Likewise.
5253
5254 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5255
5256         PR rtl-optimization/48549
5257         * combine.c (propagate_for_debug): Also stop after BB_END of
5258         this_basic_block.  Process LAST and just stop processing after it.
5259         (combine_instructions): If last_combined_insn has been deleted,
5260         set last_combined_insn to its PREV_INSN.
5261
5262 2011-04-12  Richard Guenther  <rguenther@suse.de>
5263
5264         PR tree-optimization/46076
5265         * gimple.h (struct gimple_statement_call): Add fntype field.
5266         (gimple_call_fntype): Adjust.
5267         (gimple_call_set_fntype): New function.
5268         * gimple.c (gimple_build_call_1): Set the call function type.
5269         * gimplify.c (gimplify_call_expr): Preserve the function
5270         type the frontend used for the call.
5271         (gimplify_modify_expr): Likewise.
5272         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5273         function type.
5274         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5275         function type.
5276         * tree-ssa.c (useless_type_conversion_p): Function pointer
5277         conversions are useless.
5278
5279 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5280
5281         * cgraph.h (cgraph_node): Remove function declaration.
5282         (cgraph_create_node): Declare.
5283         (cgraph_get_create_node): Likewise.
5284         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5285         Updated all callers.
5286         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5287         the decl does not already exist.  Call cgraph_get_create_node instead
5288         of cgraph_node.
5289         (cgraph_get_create_node): New function.
5290         (cgraph_same_body_alias): Update comment.
5291         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5292         assert it does not return NULL.
5293         (cgraph_update_edges_for_call_stmt): Likewise.
5294         (cgraph_clone_edge): Likewise.
5295         (cgraph_create_virtual_clone): Likewise.
5296         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5297         instead of cgraph_node.
5298         (cgraph_add_new_function): Call cgraph_create_node or
5299         cgraph_get_create_node instead of cgraph_node.
5300         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5301         instead of cgraph_node.
5302         (record_eh_tables): Likewise.
5303         (mark_address): Likewise.
5304         (mark_load): Likewise.
5305         (build_cgraph_edges): Call cgraph_get_create_node instead
5306         of cgraph_node.
5307         (rebuild_cgraph_edges): Likewise.
5308         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5309         instead of cgraph_node.
5310         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5311         cgraph_node.
5312         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5313         cgraph_create_node instead of cgraph_node.
5314         * c-decl.c (finish_function): Call cgraph_get_create_node instead
5315         of cgraph_node.
5316         * lto-cgraph.c (input_node): Likewise.
5317         * lto-streamer-in.c (input_function): Likewise.
5318         * varasm.c (mark_decl_referenced): Likewise.
5319         (assemble_alias): Likewise.
5320
5321 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5322
5323         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5324         instead of cgraph_node and assert it does not return NULL.
5325         * lto-streamer-in.c (lto_read_body): Likewise.
5326         * omp-low.c (new_omp_context): Likewise.
5327         (create_task_copyfn): Likewise.
5328         * tree-emutls.c (lower_emutls_function_body): Likewise.
5329         * matrix-reorg.c (transform_allocation_sites): Likewise.
5330
5331 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5332
5333         PR c/48552
5334         * c-typeck.c (build_asm_expr): Error out on attempts to use
5335         void type outputs or inputs for constraints that allow reg or
5336         don't allow memory.
5337
5338 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
5339             Richard Earnshaw  <rearnsha@arm.com>
5340
5341         PR target/48250
5342         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5343         to use sign-magnitude offsets. Reject unsupported unaligned
5344         cases. Add detailed description in comments.
5345         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5346         condition from TARGET_32BIT to TARGET_ARM.
5347
5348 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
5349
5350         * tree.h (struct typed_tree): New.
5351         (struct tree_common): Include it instead of tree_base.
5352         (TREE_TYPE): Update for new location of type field.
5353         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5354         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5355         (union tree_node): Add typed field.
5356         * treestruct.def (TS_TYPED): New.
5357         * lto-streamer.c (check_handled_ts_structures): Handle it.
5358         * tree.c (MARK_TS_TYPED): New macro.
5359         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5360
5361 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
5362
5363         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5364         (force_nonfallthru): Do not alter the loop nest if no basic block
5365         was created.
5366
5367 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5368
5369         * config/i386/sse.md (VI): New mode iterator.
5370         (SSEMODEI): Remove.
5371         (AVX256MODEI): Ditto.
5372         (AVXMODEF4P): Ditto.
5373         (avxvecpsmode): Ditto.
5374         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
5375         (sse2_andnot<mode>3): New expander.
5376         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5377         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
5378         (<any_logic:code><mode>3): Use VI mode iterator.
5379         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5380         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
5381         (*andnottf3): Handle AVX three-operand constraints.
5382         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5383
5384 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5385             Robert Millan  <rmh@gnu.org>
5386
5387         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5388         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5389         GNU_USER_DYNAMIC_LINKER64): Define.
5390         (REG_NAME): Don't undefine.
5391         (MD_UNWIND_SUPPORT): Undefine.
5392         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5393         (REG_NAME): Don't undefine.
5394         (MD_UNWIND_SUPPORT): Undefine.
5395         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
5396
5397 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5398
5399         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5400         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5401
5402 2011-04-11  Xinliang David Li  <davidxl@google.com>
5403
5404         * value-profile.c (check_ic_target): New function.
5405         (gimple_ic_transform): Sanity check indirect call target.
5406         * gimple-low.c (gimple_check_call_args): Interface change.
5407         (gimple_check_call_matching_types): New function.
5408         * tree-inline.c (tree_can_inline_p): Call new function.
5409
5410 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
5411
5412         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5413         tree-pretty-print.h & realmpfr.h.
5414
5415 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
5416
5417         PR middle-end/48464
5418         * ira.c (setup_pressure_classes): Fix typo in loop condition.
5419         (setup_allocno_and_important_classes): Ditto.
5420
5421 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5422
5423         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5424         GNU_USER_DYNAMIC_LINKER.
5425         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5426         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5427         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5428         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5429         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5430         GNU_USER_TARGET_OS_CPP_BUILTINS.
5431         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5432         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5433         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5434         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5435         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5436         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5437         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5438         GNU_USER_TARGET_OS_CPP_BUILTINS.
5439         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5440         GNU_USER_DYNAMIC_LINKER.
5441         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5442         GNU_USER_TARGET_OS_CPP_BUILTINS.
5443         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5444         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5445         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5446         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5447         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5448         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5449         GNU_USER_DYNAMIC_LINKER64): Remove.
5450         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5451         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5452         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5453         GNU_USER_DYNAMIC_LINKER.
5454         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5455         GNU_USER_TARGET_OS_CPP_BUILTINS.
5456         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5457         GNU_USER_TARGET_OS_CPP_BUILTINS.
5458         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5459         to GNU_USER_TARGET_OS_CPP_BUILTINS.
5460         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5461         GNU_USER_TARGET_OS_CPP_BUILTINS.
5462         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5463         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5464         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5465         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5466         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5467         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5468         GNU_USER_DYNAMIC_LINKER.
5469         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5470         GNU_USER_TARGET_OS_CPP_BUILTINS.
5471         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5472         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5473         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5474         GNU_USER_DYNAMIC_LINKER.
5475         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5476         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5477         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5478         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5479         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5480         GNU_USER_DYNAMIC_LINKER.
5481         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5482         GNU_USER_DYNAMIC_LINKERN32.
5483         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5484         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
5485         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
5486         GNU_USER_DYNAMIC_LINKER32.
5487         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5488         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5489         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5490         GNU_USER_DYNAMIC_LINKER.
5491         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5492         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5493         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5494         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5495         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5496         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5497         GNU_USER_DYNAMIC_LINKER32.
5498         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5499         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5500         GNU_USER_DYNAMIC_LINKER.
5501         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5502         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5503         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5504         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
5505         GNU_USER_DYNAMIC_LINKER64.
5506         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5507         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5508         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5509         GNU_USER_DYNAMIC_LINKER.
5510         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5511         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5512         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5513         GNU_USER_DYNAMIC_LINKER.
5514         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5515         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5516         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5517         GNU_USER_DYNAMIC_LINKER32.
5518         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5519         GNU_USER_DYNAMIC_LINKER64.
5520         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5521         GNU_USER_DYNAMIC_LINKER64.
5522         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5523         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5524         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5525         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5526         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5527
5528 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5529
5530         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
5531         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5532         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5533         GNU_USER_DYNAMIC_LINKER.
5534         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5535         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
5536         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5537         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5538         GNU_USER_DYNAMIC_LINKER64.
5539         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5540         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5541         GNU_USER_LINK_EMULATION.
5542         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5543         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5544         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5545         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5546         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5547         CPP_SPEC, CC1_SPEC): Remove.
5548         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5549         (GNU_USER_DYNAMIC_LINKER): Define.
5550         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5551         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5552         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5553         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5554         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5555         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5556         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5557         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5558         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5559         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5560         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5561         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5562         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5563         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5564         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5565         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5566         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5567         GNU_USER_DYNAMIC_LINKER.
5568         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5569         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5570         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5571         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5572         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5573         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5574         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5575         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5576         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
5577         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
5578
5579 2011-04-11  Kai Tietz  <ktietz@redhat.com>
5580
5581         PR target/9601
5582         PR target/11772
5583         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5584         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5585         comment.
5586         (ix86_is_msabi_thiscall): Removed.
5587         (ix86_is_type_thiscall): Likewise.
5588         (ix86_get_callcvt): New function.
5589         (ix86_comp_type_attributes): Simplify check.
5590         (ix86_function_regparm): Use ix86_get_callcvt for calling
5591         convention attribute checks.
5592         (ix86_return_pops_args): Likewise.
5593         (ix86_static_chain): Likewise.
5594         (x86_this_parameter): Likewise.
5595         (x86_output_mi_thunk): Likewise.
5596         (ix86_function_type_abi): Optimize check for types without attributes.
5597         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5598         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5599         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5600         by flag-values.
5601         (IX86_BASE_CALLCVT): Helper macro.
5602         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5603         Use ix86_get_callcvt for calling convention attribute checks and avoid
5604         symbol-decoration for stdcall in TARGET_RTD case.
5605         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5606         Likewise.
5607         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5608         for declaration.
5609
5610 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5611
5612         * config/i386/sse.md (VI_128): New mode iterator.
5613         (VI12_128): Rename from SSEMODE12.
5614         (VI14_128): Rename from SSEMODE14.
5615         (VI124_128): New mode iterator.
5616         (VI24_128): Rename from SSEMODE248.
5617         (VI248_128): Rename from SSEMODE248.
5618         (SSEMODE124C8): Remove.
5619         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5620         (*sse2_<plusminus_insn><mode>3): Merge with
5621         *avx_<plusminus_insn><mode>3.
5622         (*mulv8hi3): Merge with *avx_mulv8hi3.
5623         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5624         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5625         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5626         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5627         (ashr<mode>3): Merge with *avx_ashr<mode>3.
5628         (lshr<mode>3): Merge with *avx_lshr<mode>3.
5629         (ashl<mode>3): Merge with *avx_ashl<mode>3.
5630         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5631         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5632         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5633         (*<smaxmin:code>v8hi3): Ditto.
5634         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5635         (*<smaxmin:code>v16qi3): Ditto.
5636         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5637         (*sse2_eq<mode>3): Ditto.
5638         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5639         (*sse2_gt<mode>3): Ditto.
5640         (vcondv2di): Split out of vcond<mode>.
5641         (vconduv2di): Split out of vcondu<mode>.
5642
5643 2011-04-11  Richard Guenther  <rguenther@suse.de>
5644
5645         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5646         before calling tree_low_cst.
5647
5648 2011-04-11  Richard Guenther  <rguenther@suse.de>
5649
5650         * stor-layout.c (layout_type): Compute all array index size operations
5651         in the original type.
5652         (initialize_sizetypes): Add comment.
5653         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5654
5655 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5656
5657         * common.opt (Tbss=, Tdata=, Ttext=): New options.
5658
5659 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5660
5661         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5662         of cgraph_node, handle NULL return value.
5663         (cgraph_global_info): Likewise.
5664         (cgraph_rtl_info): Likewise.
5665         * tree-inline.c (estimate_num_insns): Likewise.
5666         * gimplify.c (unshare_body): Likewise.
5667         (unvisit_body): Likewise.
5668         (gimplify_body): Likewise.
5669         * predict.c (optimize_function_for_size_p): Likewise.
5670         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5671         (call_may_clobber_ref_p_1): Likewise.
5672         * varasm.c (function_section_1): Likewise.
5673         (assemble_start_function): Likewise.
5674
5675 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5676
5677         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5678         of cgraph_node.
5679         * final.c (rest_of_clean_state): Likewise.
5680         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5681         * passes.c (pass_init_dump_file): Likewise.
5682         (execute_all_ipa_transforms): Likewise.
5683         (function_called_by_processed_nodes_p): Likewise.
5684         * predict.c (maybe_hot_frequency_p): Likewise.
5685         (probably_never_executed_bb_p): Likewise.
5686         (compute_function_frequency): Likewise.
5687         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5688         (unnest_nesting_tree_1): Likewise.
5689         (lower_nested_functions): Likewise.
5690         * tree-optimize.c (execute_fixup_cfg): Likewise.
5691         (tree_rest_of_compilation): Likewise.
5692         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5693         * tree-sra.c (ipa_early_sra): Likewise.
5694         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5695         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5696         * ipa.c (record_cdtor_fn): Likewise.
5697         * ipa-inline.c (cgraph_early_inlining): Likewise.
5698         (compute_inline_parameters_for_current): Likewise.
5699         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5700         * ipa-pure-const.c (local_pure_const): Likewise.
5701         * ipa-split.c (split_function): Likewise.
5702         (execute_split_functions): Likewise.
5703         * cgraphbuild.c (build_cgraph_edges): Likewise.
5704         (rebuild_cgraph_edges): Likewise.
5705         (cgraph_rebuild_references): Likewise.
5706         (remove_cgraph_callee_edges): Likewise.
5707         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5708         (verify_cgraph_node): Likewise.
5709         (cgraph_analyze_functions): Likewise.
5710         (cgraph_preserve_function_body_p): Likewise.
5711         (save_inline_function_body): Likewise.
5712         (save_inline_function_body): Likewise.
5713         * tree-inline.c (copy_bb): Likewise.
5714         (optimize_inline_calls): Likewise.
5715
5716 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5717
5718         PR tree-optimization/48195
5719         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5720         ipa_check_create_edge_args.
5721         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5722         ipa_check_create_edge_args.
5723         * ipa-inline.c (inline_generate_summary): Do not call
5724         ipa_check_create_node_params and ipa_check_create_edge_args.
5725         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5726         ipa_check_create_edge_args.
5727
5728 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
5729
5730         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5731         instead of loop.
5732         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5733         * function.c (record_hard_reg_sets): Likewise.
5734         * ira.c (compute_regs_asm_clobbered): Likewise.
5735         * sched-deps.c (sched_analyze_1): Likewise.
5736         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5737
5738 2011-04-09  Xinliang David Li  <davidxl@google.com>
5739
5740         PR tree-optimization/PR48484
5741         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5742         has_valid_pred lazily
5743
5744 2011-04-09  Duncan Sands  <baldrick@free.fr>
5745
5746         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5747
5748 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5749
5750         * combine.c (combine_validate_cost): Adjust comments.  Set registered
5751         cost of I0 to zero at the end, if any.
5752
5753 2011-04-08  Xinliang David Li  <davidxl@google.com>
5754
5755         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5756         to insane profile data.
5757
5758 2011-04-08  Xinliang David Li  <davidxl@google.com>
5759
5760         * ipa-cp.c (ipcp_update_profiling): Correct
5761          negative scale factor due to insane profile data.
5762
5763 2011-04-08  Xinliang David Li  <davidxl@google.com>
5764
5765         * final.c (dump_basic_block_info): New function.
5766         (final): Dump basic block.
5767         (final_scan_insn): Remove old dump.
5768
5769 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
5770
5771         PR target/47829
5772         * config.gcc (i386-*-freebsd): Disable unwind table generation for
5773         crtbegin/crtend.
5774
5775 2011-04-08  Michael Matz  <matz@suse.de>
5776
5777         PR middle-end/48389
5778         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5779         functions.
5780         (rebuild_jump_labels): Call rebuild_jump_labels_1.
5781         * rtl.h (rebuild_jump_labels_chain): Declare.
5782         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5783         insns inserted on edges.
5784
5785 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
5786
5787         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5788         * config/arm/arm-arches.def: New.
5789         * config/arm/arm-opts.h: New.
5790         * config/arm/genopt.sh: New.
5791         * config/arm/arm-tables.opt: New (generated).
5792         * config/arm/arm.c (arm_handle_option, arm_target_help,
5793         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5794         (all_architectures): Get most table contents from arm-arches.def.
5795         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5796         arm_selected_tune here.
5797         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5798         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5799         (march=, mcpu=, mtune=): Use Enum and Var.
5800         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
5801         (arm.o): Update dependencies.
5802
5803 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
5804
5805         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
5806         of header_file.
5807         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
5808         (write_typed_alloc_defns): Likewise.
5809         (main): Calls write_typed_alloc_defns with output_header.
5810
5811 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
5812
5813         PR inline-asm/48435
5814         * ira-color.c (setup_profitable_hard_regs): Add comments.
5815         Don't take prohibited hard regs into account.
5816         (setup_conflict_profitable_regs): Rename to
5817         get_conflict_profitable_regs.
5818         (check_hard_reg_p): Check prohibited hard regs.
5819
5820 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
5821
5822         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5823         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5824         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5825
5826 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5827
5828         PR target/48366
5829         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
5830         move from floating point to shift amount register.
5831         (emit_move_sequence): Remove secondary reload support for floating
5832         point to shift amount amount register copies.
5833         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5834         amount register copies.
5835         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5836         register, return false if mode isn't a scalar integer mode.
5837         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5838
5839 2011-04-08  Richard Guenther  <rguenther@suse.de>
5840
5841         * gimple.c (gimple_call_flags): Remove kludge.
5842
5843 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5844
5845         * sel-sched.c (sel_region_init): Move call to
5846         sel_setup_region_sched_flags after setup_current_loop_nest.
5847
5848 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
5849
5850         PR rtl-optimization/48272
5851         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5852         init_insn_reg_pressure_info.  Adjust a caller.
5853         * sched-int.h (init_insn_reg_pressure_info): Declare.
5854         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5855         when sched-pressure is enabled.
5856
5857 2011-04-08  Richard Guenther  <rguenther@suse.de>
5858
5859         * gimple.c (gimple_set_modified): Do not queue calls to
5860         MODIFIED_NORETURN_CALLS here ...
5861         * tree-ssa-operands.c (update_stmt_operands): ... but here.
5862
5863 2011-04-08  Richard Guenther  <rguenther@suse.de>
5864
5865         PR lto/48467
5866         * toplev.c (lang_dependent_init): Do not open asm_out_file
5867         in WPA mode, nor perform debug machinery initialization.
5868         (finalize): Do not unlink asm_out_file in WPA mode.
5869
5870 2011-04-08  Richard Guenther  <rguenther@suse.de>
5871
5872         * gimple.h (gimple_call_fntype): New function.
5873         (gimple_call_return_type): Use it.
5874         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5875         * gimple-low.c (gimple_check_call_args): Likewise.
5876         * gimple.c (gimple_call_flags): Likewise.
5877         (gimple_call_arg_flags): Likewise.
5878         (gimple_call_return_flags): Likewise.
5879         * tree-cfg.c (verify_gimple_call): Likewise.
5880         (do_warn_unused_result): Likewise.
5881         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5882         * value-prof.c (gimple_ic_transform): Fix fndecl check.
5883
5884 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
5885
5886         PR rtl-optimization/48235
5887         * sel-sched.c (code_motion_process_successors): Recompute the last
5888         insn in basic block if control flow changed.
5889         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
5890         Update condition for ilist_remove.
5891
5892 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5893
5894         PR rtl-optimization/48302
5895         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5896         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
5897         it to record added preheader blocks.
5898         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
5899         on to sel_add_loop_preheaders.
5900         (sel_region_init): Move call to setup_current_loop_nest after
5901         sel_init_bbs.
5902
5903 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5904
5905         PR target/48273
5906         * cfgloop.h (loop_has_exit_edges): New helper.
5907         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5908         non-clonable.
5909         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5910         that have no exit edges.
5911
5912 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5913
5914         PR rtl-optimization/48442
5915         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
5916         all callers.  Adjust assert.
5917
5918 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
5919
5920         PR tree-optimization/48377
5921         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5922         is_packed to true even for types with smaller TYPE_ALIGN than
5923         TYPE_SIZE.
5924
5925 2011-04-08  Richard Guenther  <rguenther@suse.de>
5926
5927         PR bootstrap/48513
5928         * doc/tm.texi: Re-generate.
5929
5930 2011-04-08  Wei Guozhi  <carrot@google.com>
5931
5932         PR target/47855
5933         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5934         * config/arm/arm.c (arm_attr_length_push_multi): New function.
5935         * config/arm/arm.md (*push_multi): Change the length computation to
5936         call a C function.
5937
5938 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
5939
5940         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5941         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5942         * doc/tm.texi: Regenerate.
5943         * system.h (ASM_OUTPUT_BSS): Poison.
5944         * varasm.c (asm_output_bss): Remove function.
5945         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
5946
5947         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5948         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5949         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5950         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5951         Likewise.
5952         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5953         Likewise.
5954         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5955         Likewise.
5956         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5957
5958 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5959
5960         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5961         EnumValue lines.
5962
5963 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5964
5965         * config/m68k/m68k.c (m68k_handle_option): Don't handle
5966         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5967         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5968         OPT_mcpu32.
5969         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5970         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5971         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5972         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5973         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5974         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5975         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5976         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5977         options.  Don't map other m68k options manually.  Don't handle
5978         old-style options as canonical.
5979         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5980         * doc/install.texi (m68k-*-*): Document binutils version requirement.
5981
5982 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5983
5984         * basic-block.h (force_nonfallthru): Move to...
5985         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5986         (force_nonfallthru): ...here.
5987         * cfghooks.c (force_nonfallthru): New function.
5988         * cfgrtl.c (force_nonfallthru): Rename into...
5989         (rtl_force_nonfallthru): ...this.
5990         (commit_one_edge_insertion): Do not set AUX field.
5991         (commit_edge_insertions): Do not discover new basic blocks.
5992         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5993         (cfg_layout_rtl_cfg_hooks): Likewise.
5994         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5995         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
5996         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5997
5998 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
5999
6000         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6001         Remove macros.
6002
6003 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
6004
6005         * config/i386/sse.md: Update copyright year.
6006         (avxcvtvecmode): Remove.
6007         (sse_movhlps): Merge with *avx_movhlps.
6008         (sse_movlhps): Merge with *avx_movlhps.
6009         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
6010         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
6011         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
6012         (sse_loadhps): Merge with *avx_loadhps.
6013         (sse_storelps): Merge with *avx_storelps.
6014         (sse_loadlps): Merge with *avx_loadlps.
6015         (sse_movss): Merge with *avx_movss.
6016         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
6017         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
6018         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
6019         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
6020         (vec_set<mode>_0): Ditto.
6021         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
6022         (sse4_1_insertps): Merge with *avx_insertps.
6023         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
6024         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
6025         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
6026         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
6027         (sse2_storehpd): Merge with *avx_storehpd.
6028         (sse2_loadhpd): Merge with *avx_loadhpd.
6029         (sse2_loadlpd): Merge with *avx_loadlpd.
6030         (sse2_movsd): Merge with *avx_movsd.
6031         (*vec_concatv2df): Merge with *vec_concatv2df.
6032
6033 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
6034
6035         PR debug/48343
6036         * combine.c (combine_instructions): Add last_combined_insn,
6037         update it if insn is after it, pass it to all try_combine calls.
6038         (try_combine): Add last_combined_insn parameter, pass it instead of
6039         i3 to propagate_for_debug.
6040
6041 2011-04-07  Nick Clifton  <nickc@redhat.com>
6042
6043         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
6044         to handle MDR <-> data register transfers.
6045         (movhi_internal): Likewise.
6046
6047 2011-04-07  Alan Modra  <amodra@gmail.com>
6048
6049         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
6050         previous stack info.
6051
6052 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6053
6054         PR target/43920
6055         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
6056         flow_find_cross_jump.  Swap variables to implement backward replacement.
6057         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
6058
6059 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6060
6061         PR target/43920
6062         * cfgcleanup.c (walk_to_nondebug_insn): New function.
6063         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
6064         and bb2.
6065         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6066         src1 or src2.  Redirect edges to the last basic block.  Update
6067         frequency and count on multiple basic blocks in case of fallthru.
6068
6069 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6070
6071         PR target/43920
6072         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6073         function.
6074         (old_insns_match_p): Change return type.  Replace return false/true
6075         with return dir_none/dir_both.  Use can_replace_by.
6076         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
6077         direction from dir_p.  Register replacement direction in dir, last_dir
6078         and afterlast_dir.  Handle new return type of old_insns_match_p using
6079         merge_dir.  Return replacement direction in dir_p.
6080         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6081         return type of old_insns_match_p.
6082         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6083         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6084         flow_find_cross_jump.
6085         * basic-block.h (enum replace_direction): New type.
6086         (flow_find_cross_jump): Add parameter to declaration.
6087
6088 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6089
6090         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6091         (AVXMODEDCVTPS2DQ): Ditto.
6092         (VEC_FLOAT_MODE): Ditto.
6093         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
6094         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6095         (<any_logic:code><mode>3): Use VF mode iterator.
6096         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6097         Use VF mode iterator.
6098         (copysign<mode>3): Use VF mode iterator.
6099         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
6100         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6101         (*<any_logic:code><MODEF:mode>3): Merge with
6102         *avx_<any_logic:code><MODEF:mode>3.
6103         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6104         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6105         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6106         (avx_cvtdq2ps<avxmodesuffix>): Remove.
6107         (sse2_cvtdq2ps): Use %v modifier.
6108         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6109         (avx_cvtps2dq<avxmodesuffix>): Remove.
6110         (sse2_cvtps2dq): Use %v modifier.
6111         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6112         (avx_cvttps2dq<avxmodesuffix>): Remove.
6113         (sse2_cvttps2dq): Use %v modifier.
6114         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6115         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6116         (sse2_cvtsd2siq): Fix insn template.
6117         (sse2_cvtsd2siq_2): Ditto.
6118         (sse2_cvttsd2siq): Ditto.
6119         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6120         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6121
6122 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6123
6124         * gcov-io.c: Use GCC Runtime Library Exception.
6125
6126 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
6127
6128         PR debug/48466
6129         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6130         as base_reg whatever register reg has been eliminated to, instead
6131         of hardcoding STACK_POINTER_REGNUM.
6132
6133 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6134
6135         * doc/tm.texi.in: Document C target hooks as separate from general
6136         target hooks.
6137         * doc/tm.texi: Regenerate.
6138         * genhooks.c (struct hook_desc): Add docname field.
6139         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
6140         docname field.
6141         (hook_array): Include c-target.def.
6142         (emit_documentation): Use docname field in output.
6143         (emit_init_macros): Take docname argument.  Only emit definitions
6144         for hooks matching docname.
6145         (main): Expect additional arguments in all cases.  Pass argument
6146         to emit_init_macros.
6147         * target.def: Move initial macro definitions and comments to
6148         target-hooks-macros.h.
6149         (gcc_targetcm): Move to c-family/c-target.def.
6150         * target.h (targetcm): Move declaration to c-family/c-target.h.
6151         * targhooks.c (default_handle_c_option): Move to
6152         c-family/c-opts.c.
6153         * targhooks.h (default_handle_c_option): Move declaration to
6154         c-family/c-common.h.
6155         * target-hooks-macros.h: New file.
6156         * config.gcc (target_has_targetcm): Define and use to add to
6157         c_target_objs and cxx_target_objs.
6158         * config/default-c.c: New file.
6159         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6160         of target.h and target-def.h.
6161         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6162         (darwin_objc_construct_string, darwin_cfstring_ref_p,
6163         darwin_check_cfstring_format_arg): Make static.
6164         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6165         TARGET_STRING_OBJECT_REF_TYPE_P,
6166         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6167         * config/darwin-protos.h (darwin_objc_construct_string,
6168         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6169         declare.
6170         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6171         TARGET_STRING_OBJECT_REF_TYPE_P,
6172         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
6173         * config/t-darwin (darwin-c.o): Update dependencies.
6174         * system.h (TARGET_HAS_TARGETCM): Poison.
6175         * Makefile.in (TARGET_H): Update.
6176         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6177         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6178         (default-c.o): New target.
6179         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
6180         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
6181         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
6182         c-target.def.
6183         (build/genhooks.o): Update dependencies.
6184
6185 2011-04-06  Richard Guenther  <rguenther@suse.de>
6186
6187         * ipa-inline.c (enum inlining_mode): Remove.
6188         (cgraph_flatten): Use some other token.
6189         (cgraph_edge_early_inlinable_p): New function, split out from ...
6190         (cgraph_perform_always_inlining): New function, split out from ...
6191         (cgraph_decide_inlining_incrementally): ... here.
6192         (cgraph_mark_inline_edge): Adjust.
6193         (cgraph_early_inlining): Re-structure.
6194         (pass_early_inline): Require SSA form.
6195
6196 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
6197             Julian Brown  <julian@codesourcery.com>
6198             Mark Shinwell  <shinwell@codesourcery.com>
6199
6200         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6201         LO_REGS only for Thumb-1.
6202         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6203         be used in short instructions when optimising for size on Thumb-2.
6204
6205 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6206
6207         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6208         associated with user returns to be preserved.
6209
6210 2011-04-06  Tristan Gingold  <gingold@adacore.com>
6211
6212         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6213         symbol_queue_size, DBXOUT_DECR_NESTING,
6214         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6215         if XCOFF_DEBUGGING_INFO.
6216
6217 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6218
6219         * config/i386/i386.md (attribute isa): New.
6220         (attribute enabled): New.
6221         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6222         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6223         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6224         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6225         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6226         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6227         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6228         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6229
6230         * config/i386/sse.md (VF): New mode iterator.
6231         (VF1): Ditto.
6232         (VF2): Ditto.
6233         (VF_128): Ditto.
6234         (SSEMODEF4): Remove.
6235         (attribute sse): Handle V8SF and V4DF modes.
6236         (<absneg:code><mode>2): Use VF mode iterator.
6237         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
6238         mode iterator.
6239         (<plusminus_insn><mode>3): Use VF mode iterator.
6240         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6241         Use VF mode iterator.
6242         (<sse>_vm<plusminus_insn><mode>3): Merge with
6243         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
6244         (mul<mode>3): Use VF mode iterator.
6245         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
6246         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
6247         mode iterator.
6248         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6249         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6250         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
6251         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
6252         mode iterator.
6253         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6254         Use VF1 mode iterator.
6255         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6256         (sqrt<VF2:mode>2): New expander.
6257         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6258         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6259         and sqrtv2df2.  Use VF mode iterator.
6260         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
6261         mode iterator.
6262         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6263         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6264         Use VF1 mode iterator.
6265         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6266         (<smaxmin:code><mode>3): Use VF mode iterator.
6267         (*<smaxmin:code><mode>3_finite): Merge with
6268         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
6269         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6270         (<sse>_vm<smaxmin:code><mode>2): Merge with
6271         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
6272         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
6273         mode iterator.
6274         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
6275         mode iterator.
6276         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6277         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6278         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6279         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6280         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
6281         VF mode iterator.
6282         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6283         Use VF_128 mode iterator.
6284         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
6285         mode iterator.
6286         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
6287         VF_128 mode iterator.
6288         (vcond<mode>): Use VF mode iterator.
6289         * config/i386/predicates.md (sse_comparison_operator): Merge with
6290         avx_comparison_float_operator.  Do not declare as special_predicate.
6291         * config/i386/i386.c (struct builtin_description): Update for renamed
6292         compare patterns.
6293         (ix86_expand_args_builtin): Ditto.
6294         (ix86_expand_sse_compare_mask): Ditto.
6295
6296 2011-04-06  Richard Guenther  <rguenther@suse.de>
6297
6298         * tree-inline.c (estimate_num_insns): For calls simply account
6299         for all passed arguments and a used return value.
6300
6301 2011-04-06  Richard Guenther  <rguenther@suse.de>
6302
6303         PR tree-optimization/47663
6304         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6305         call_stmt_time fields.
6306         (cgraph_edge_inlinable_p): Declare.
6307         (cgraph_edge_recursive_p): New inline function.
6308         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6309         (cgraph_clone_edge): Copy it.
6310         * ipa-inline.c (cgraph_estimate_edge_time): New function.
6311         Account for call stmt time.
6312         (cgraph_estimate_time_after_inlining): Take edge argument.
6313         (cgraph_estimate_edge_growth): Account call stmt size.
6314         (cgraph_estimate_size_after_inlining): Take edge argument.
6315         (cgraph_mark_inline_edge): Adjust.
6316         (cgraph_check_inline_limits): Likewise.
6317         (cgraph_recursive_inlining_p): Remove.
6318         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6319         (cgraph_decide_recursive_inlining): Take edge argument and
6320         adjust.
6321         (cgraph_decide_inlining_of_small_functions): Do not avoid
6322         diags for recursive inlining here.
6323         (cgraph_flatten): Adjust.
6324         (cgraph_decide_inlining_incrementally): Likewise.
6325         (estimate_function_body_sizes): Remove call cost handling.
6326         (compute_inline_parameters): Initialize caller edge call costs.
6327         (cgraph_estimate_edge_growth): New function.
6328         (cgraph_estimate_growth): Use it.
6329         (cgraph_edge_badness): Likewise.
6330         (cgraph_check_inline_limits): Take an edge argument.
6331         (cgraph_decide_inlining_of_small_functions): Adjust.
6332         (cgraph_decide_inlining): Likewise.
6333         * tree-inline.c (estimate_num_insns): Only account for call
6334         return value if it is used.
6335         (expand_call_inline): Avoid diagnostics on recursive inline
6336         functions here.
6337         * lto-cgraph.c (lto_output_edge): Output edge call costs.
6338         (input_edge): Input edge call costs.
6339
6340 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6341
6342         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6343
6344 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
6345
6346         * doc/invoke.texi (Spec Files): Fix typo.
6347
6348 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6349
6350         * profile.c (branch_prob): Move declaration of local variable.  Remove
6351         obsolete ??? comment.  Expand the location explicitly instead of using
6352         the LOCATION_FILE and LOCATION_LINE macros.
6353
6354 2011-04-06  Wei Guozhi  <carrot@google.com>
6355
6356         PR target/47855
6357         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6358         (arm_cond_branch): Likewise.
6359         (arm_cond_branch_reversed): Likewise.
6360         (arm_jump): Likewise.
6361         (push_multi): Likewise.
6362         * config/arm/constraints.md (Py): New constraint.
6363
6364 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6365
6366         PR bootstrap/48471
6367         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6368         Move these...
6369         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6370         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6371         #ifdef DBX_DEBUGGING_INFO.
6372
6373 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
6374
6375         PR bootstrap/48403
6376         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6377         if old and new states differ.
6378
6379 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6380
6381         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6382         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6383         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6384         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6385         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6386         mcfv4e): Use Alias.
6387         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6388         ColdFire options to -mcpu= options.
6389
6390 2011-04-05  Jeff Law  <law@redhat.com>
6391
6392         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6393         check if BB is a successor of LOOP->header and return
6394         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6395
6396 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6397
6398         * cprop.c (struct reg_use): Remove.
6399         (reg_use_table): Make an array of RTX.
6400         (find_used_regs, constprop_register, local_cprop_pass,
6401         bypass_block): Simplify users of reg_use_table.
6402         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
6403         on one of the uses found by find_used_regs.
6404
6405 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6406
6407         PR bootstrap/48469
6408         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6409         declaration.
6410
6411 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6412
6413         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6414         as an rtx.
6415         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6416
6417 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6418
6419         PR middle-end/48441
6420         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6421
6422 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6423
6424         * combine.c: Include obstack.h.
6425         (struct insn_link): Define.
6426         (uid_log_links): Adjust type.
6427         (FOR_EACH_LOG_LINK): New macro.
6428         (insn_link_obstack): Declare.
6429         (alloc_insn_link): Define.
6430         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
6431         type of link variables.
6432         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6433         (try_combine, record_promoted_values, distribute_notes): Likewise.
6434         (distribute_links): Likewise.  Tweak prototype.
6435         (clear_log_links): Delete.
6436         (adjust_for_new_dest): Call alloc_insn_link.
6437         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6438
6439 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6440
6441         * gcse.c (modify_mem_list): Convert to an array of VECs.
6442         (canon_modify_mem_list, compute_transp): Tweak formatting.
6443         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
6444         (load_killed_in_block_p): Likewise.
6445         (record_last_mem_set_info): Likewise.
6446         (clear_modify_mem_tables): Likewise.
6447
6448 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6449
6450         PR middle-end/48461
6451         * function.c (emit_use_return_register_into_block): Only define if
6452         HAVE_return.
6453
6454 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
6455
6456         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6457
6458 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6459
6460         * config/rx/rx-opts.h: New.
6461         * config/rx/rx.c (rx_cpu_type): Remove.
6462         (rx_handle_option): Don't assert that global structures are in
6463         use.  Access variables via opts pointer.  Defer most handling of
6464         OPT_mint_register_.  Use error_at.
6465         (rx_option_override): Handle deferred OPT_mint_register_ here.
6466         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6467         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6468         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6469         (rx_cpu_types): New Enum and EnumValue entries.
6470         (mint-register=): Use Defer and use Var accordingly.
6471
6472 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6473
6474         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6475         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6476         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6477         Move these...
6478         (debug_free_queue, debug_nesting, symbol_queue_index):
6479         ...and these...
6480         * dbxout.c: ...to here.  Make static.
6481
6482 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6483
6484         * gcse.c (modify_pair): Define.  Define a VEC of it.
6485         (canon_modify_mem_list): Convert to an array of VECs.
6486         (free_insn_expr_list_list): Delete.
6487         (clear_modify_mem_tables): Call VEC_free instead.
6488         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6489         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6490         (canon_list_insert, compute_transp): Likewise.
6491
6492 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6493
6494         PR target/43920
6495         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6496         for size.
6497
6498 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6499
6500         PR target/43920
6501         * function.c (emit_use_return_register_into_block): New function.
6502         (thread_prologue_and_epilogue_insns): Use
6503         emit_use_return_register_into_block.
6504
6505 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6506
6507         PR target/43920
6508         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6509         insn.
6510
6511 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6512
6513         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6514
6515 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
6516
6517         * config/arm/arm.md (define_constants for unspec): Replace with
6518         define_c_enum.
6519         (define_constants for unspecv): Replace with define_c_enum.
6520         * config/arm/neon.md (define_constants for unspec): Replace with
6521         define_c_enum.
6522
6523 2011-04-04  Richard Henderson  <rth@redhat.com>
6524
6525         PR bootstrap/48400
6526         * dwarf2out.c (output_line_info): Always emit line info from
6527         at least one section.
6528         (dwarf2out_init): Create text_section_line_info here ...
6529         (set_cur_line_info_table): ... not here.
6530
6531 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
6532
6533         PR target/48380
6534         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
6535         not called.
6536
6537         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
6538
6539 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
6540
6541         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6542         (expr_equiv_p): Remove.
6543         (insert_set_in_table): Look at <dest, src> pair instead of expr.
6544         (hash_scan_set): Update call to insert_set_in_table.
6545         (dump_hash_table): Dump <dest, src> pair.
6546         (lookup_set): Simplify.  Lookup <dest, src> pair.
6547         (compute_transp): Remove, fold heavily simplified code into...
6548         (compute_local_properties): ...here.  Expect COMP and TRANSP
6549         unconditionally.
6550         (find_avail_set): Take set directly from struct expr.
6551         (find_bypass-set): Likewise.
6552         (bypass_block): Likewise.
6553         (cprop_insn): Likewise.  Remove redundant INSN_P test.
6554
6555         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6556         checks on form of COND from find_implicit_sets to here.
6557         (find_implicit_sets): Cleanup control flow. Split critical edges
6558         if it exposes implicit sets.  Allocate/resize implicit_sets as
6559         necessary.
6560         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6561         changed something.  Run df_analyze after find_implicit_sets if any
6562         edges were split.  Do not allocate implicit_sets here.
6563
6564         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6565         (gcse_obstack): Renamed to cprop_obstack.
6566         (GNEW, GNEWVEC, GNEWVAR): Remove.
6567         (gmalloc): Remove.
6568         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6569         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6570         (gcse_alloc): Likewise, and rename to cprop_alloc.
6571         (alloc_gcse_men, free_gcse_mem): Remove.
6572         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6573         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6574         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6575
6576         * cprop.c (oprs_not_set_p): Remove.
6577         (mark_set, mark_clobber): Remove.
6578         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6579         (reg_not_set_p): New function.
6580         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6581         (cprop_insn): Likewise.
6582         (cprop_jump): Use FOR_EACH_EDGE.
6583
6584 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
6585
6586         PR bootstrap/48403
6587         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6588         (rank_for_schedule): Use scheduled_insns vector instead of
6589         last_scheduled_insn.
6590         (ok_for_early_queue_removal): Likewise.
6591         (queue_to_ready): Search forward in nonscheduled_insns_begin if
6592         we have a dbg_cnt.
6593         (choose_ready): Likewise.
6594         (commit_schedule): Use VEC_iterate.
6595         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
6596         a dbg_cnt, use it and ensure the first insn is in the ready list.
6597         (haifa_sched_init): Allocate scheduled_insns.
6598         (sched_extend_ready_list): Don't allocate it; reserve space.
6599         (haifa_sched_finish): Free it.
6600
6601 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6602
6603         * optc-gen.awk: Always remove type from Variable entry before
6604         recording in var_seen.
6605
6606 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
6607
6608         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6609         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6610         call to tidy_fallthru_edges.
6611
6612 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6613
6614         * doc/options.texi (ToLower): Document.
6615         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
6616         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6617         * opts.h (cl_option): Add cl_tolower field.
6618         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6619         arguments with lowercase strings.
6620         * config/rx/rx.opt (mcpu=): Add ToLower.
6621         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6622         argument.
6623
6624 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6625
6626         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6627
6628 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6629
6630         * config/vax/vax.c: Include reload.h.
6631
6632 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
6633
6634         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6635         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6636         (sparc_preferred_reload_class): New function.
6637
6638 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
6639
6640         PR debug/48401
6641         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6642         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6643
6644 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
6645
6646         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6647         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6648
6649 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
6650
6651         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6652         (ASM_OUTPUT_ALIGNED_BSS): Define.
6653
6654 2011-04-03  Michael Matz  <matz@suse.de>
6655
6656         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6657         and next_slot members.
6658         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6659         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6660         (lto_streamer_cache_append): Declare.
6661         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6662         unsigned index, remove offset parameter, ensure that we append
6663         or update existing entries.
6664         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6665         parameter, update next_slot for append.
6666         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6667         parameter.
6668         (lto_streamer_cache_insert_at): Likewise.
6669         (lto_streamer_cache_append): New function.
6670         (lto_streamer_cache_lookup): Use unsigned index.
6671         (lto_streamer_cache_get): Likewise.
6672         (lto_record_common_node): Don't test tree_node_can_be_shared.
6673         (preload_common_node): Adjust call to lto_streamer_cache_insert.
6674         (lto_streamer_cache_delete): Don't free offsets member.
6675         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6676         (lto_output_string_with_length): Use lto_output_data_stream.
6677         (lto_output_tree_header): Remove ix parameter, don't write it.
6678         (lto_output_builtin_tree): Likewise.
6679         (lto_write_tree): Adjust callers to above, don't track and write
6680         offset, write unsigned index.
6681         (output_unreferenced_globals): Don't emit all global vars.
6682         (write_global_references): Use unsigned indices.
6683         (lto_output_decl_state_refs): Likewise.
6684         (write_symbol): Likewise.
6685         * lto-streamer-in.c (lto_input_chain): Move earlier.
6686         (input_function): Use unsigned index.
6687         (input_alias_pairs): Don't read and then ignore all global vars.
6688         (lto_materialize_tree): Remove ix_p parameter, don't read index,
6689         don't pass it back, use lto_streamer_cache_append.
6690         (lto_register_var_decl_in_symtab): Use unsigned index.
6691         (lto_register_function_decl_in_symtab): Likewise.
6692         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6693         index.
6694         (lto_get_builtin_tree): Don't read index, use
6695         lto_streamer_cache_append.
6696         (lto_read_tree): Adjust call to lto_materialize_tree.
6697
6698         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6699         don't use function calls in arguments to MIN.
6700
6701         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6702         twice.
6703
6704         * gimple.c (gimple_type_leader_entry): Mark deletable.
6705
6706 2011-04-03  Alan Modra  <amodra@gmail.com>
6707
6708         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6709
6710 2011-04-03  Michael Matz  <matz@suse.de>
6711
6712         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6713         an integer.
6714         * tree.h (tree_decl_non_common.vindex): Adjust comment.
6715
6716 2011-04-03  Michael Matz  <matz@suse.de>
6717
6718         * cgraphbuild.c (record_reference): Canonicalize constructor values.
6719         * gimple-fold.c (canonicalize_constructor_val): Accept being called
6720         without function context.
6721         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6722         current_function_decl and cfun.
6723
6724 2011-04-03  Michael Matz  <matz@suse.de>
6725
6726         * tree.c (decl_init_priority_insert): Don't create entry for
6727         default priority.
6728         (decl_fini_priority_insert): Ditto.
6729         (fields_compatible_p, find_compatible_field): Remove.
6730         * tree.h (fields_compatible_p, find_compatible_field): Remove.
6731         * gimple.c (gimple_compare_field_offset): Adjust block comment.
6732
6733 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
6734
6735         * combine.c (try_combine): Remove useless local variable.
6736
6737 2011-04-03  Richard Guenther  <rguenther@suse.de>
6738             Ira Rosen  <ira.rosen@linaro.org>
6739
6740         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6741         non-variable offsets and compare the remaining bases of the two
6742         accesses instead of looking for exact same data-ref.
6743
6744 2011-04-02  Kai Tietz  <ktietz@redhat.com>
6745
6746         PR target/48416
6747         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6748
6749         * i386.c (ix86_is_msabi_thiscall): New helper function.
6750         (ix86_is_type_thiscall): New helper function.
6751         (ix86_comp_type_attributes): Handle thiscall for method-functions
6752         special.
6753         (init_cumulative_args): Likewise.
6754         (find_drap_reg): Likewise.
6755         (ix86_static_chain): Likewise.
6756         (x86_this_parameter): Likewise.
6757         (x86_output_mi_thunk): Likewise.
6758
6759 2011-04-01  Olivier Hainque  <hainque@adacore.com>
6760             Nicolas Setton  <setton@adacore.com>
6761             Eric Botcazou  <ebotcazou@adacore.com>
6762
6763         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6764         (add_gnat_descriptive_type_attribute): New function.
6765         (gen_array_type_die): Call it.
6766         (gen_enumeration_type_die): Likewise.
6767         (gen_struct_or_union_type_die): Likewise.
6768         (modified_type_die): Likewise.
6769         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6770         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6771         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6772
6773 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6774
6775         PR bootstrap/48148
6776         * dwarf2out.c (resolve_addr): Don't call force_decl_die
6777         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6778
6779         Revert:
6780         2011-03-17  Richard Guenther  <rguenther@suse.de>
6781
6782         PR bootstrap/48148
6783         * lto-cgraph.c (input_overwrite_node): Clear the abstract
6784         origin for decls in other ltrans units.
6785         (input_varpool_node): Likewise.
6786
6787 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6788
6789         PR middle-end/48335
6790         * expr.c (expand_assignment): Handle all possibilities
6791         if TO_RTX is CONCAT.
6792         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
6793         (store_split_bit_field): If SUBREG_REG (op0) or
6794         op0 itself has smaller mode than word, return it
6795         for offset 0 and const0_rtx for out-of-bounds stores.
6796         If word is const0_rtx, skip it.
6797
6798 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
6799
6800         * config/h8300/h8300.c (print_operand_address): Rename to...
6801         (h8300_print_operand_address): ...this. Make static. Adjust comments.
6802         Call h8300_print_operand and h8300_print_operand_address instead of
6803         print_operand and print_operand_address. Declare.
6804         (print_operand): Renake to...
6805         (h8300_print_operand): ...this. Make static. Adjust comments.
6806         Call h8300_print_operand instead of print_operand. Declare.
6807         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
6808         (h8300_register_move_cost): Likewise.
6809         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
6810         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
6811         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
6812         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
6813         * config/h8300/h8300-protos.h (print_operand): Delete.
6814         (print_operand_address): Delete.
6815
6816 2011-04-01  Richard Henderson  <rth@redhat.com>
6817
6818         PR 48400
6819         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6820         in strict mode before dwarf4.  Re-order tests to early out
6821         before switching sections.
6822
6823 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
6824
6825         * config/h8300/constraints.md: New file.
6826         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
6827         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6828         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6829         * config/h8300/predicates.md (bit_operand): Likewise.
6830         (incdec_operand): Use satisfies_constraint_M and
6831         satisfies_constraint_O.  Don't use C code block.
6832         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6833         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6834         (compute_mov_length): Use satisfies_constraint_G.
6835         (fix_bit_operand): Use satisfies_constraint_U.
6836         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6837         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6838         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6839         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6840         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6841         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6842         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6843         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6844         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6845         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6846         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6847         (EXTRA_MEMORY_CONSTRAINT): Delete.
6848
6849 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
6850             Michael Meissner  <meissner@linux.vnet.ibm.com>
6851
6852         PR target/48262
6853         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6854         operands, as per the specifications.
6855
6856         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6857         (vec_extract_evenv4sf): Ditto.
6858         (vec_extract_evenv8hi): Ditto.
6859         (vec_extract_evenv16qi): Ditto.
6860         (vec_extract_oddv4si): Ditto.
6861
6862 2011-03-31  Mark Wielaard  <mjw@redhat.com>
6863
6864         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6865         high_pc attribute if the CU has no associated code. Only output
6866         DW_AT_entry_pc for CU if not generating strict dwarf and
6867         dwarf_version < 4.
6868
6869 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
6870
6871         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6872         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6873         out of ...
6874         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6875         * final.c (final_start_function): Call the new function rather
6876         than using a NULL argument for dwarf2out_frame_debug.
6877
6878         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6879         that contains the prologue.
6880
6881         * haifa-sched.c (queue_insn): New arg REASON.  All callers
6882         changed.  Print it in debugging output.
6883
6884         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6885
6886         * sched-ebb.c (begin_schedule_ready): Remove second argument.
6887         Split most of the code into...
6888         (begin_move_insn): ... here.  New function.
6889         (ebb_sched_info): Add a pointer to it.
6890         * haifa-sched.c (scheduled_insns): New static variable.
6891         (sched_extend_ready_list): Allocate it.
6892         (schedule_block): Use it to record the order of scheduled insns.
6893         Perform RTL changes to move insns only after all scheduling
6894         decisions have been made.
6895         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6896         begin_move_insn field.
6897         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6898         * sched-int.h (struct haifa_sched_info): Remove second argument
6899         from begin_schedule_ready hook.  Add new member begin_move_insn.
6900         * sched-rgn.c (begin_schedule_ready): Remove second argument.
6901         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6902
6903         * haifa-sched.c (prune_ready_list): New function, broken out of
6904         schedule_block.
6905         (schedule_block): Use it.
6906
6907 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6908
6909         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6910
6911 2011-04-01  Kai Tietz  <ktietz@redhat.com>
6912
6913         * config.gcc (*-*-mingw*): Allow as option the
6914         posix threading model.
6915         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
6916         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6917         definition.
6918         (CPP_SPEC): Add pthread/no-pthread handling.
6919         (LIB_SPEC): Likewise.
6920         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6921         (LIB_SPEC): Likewise.
6922         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6923         flag to pass -pthread option for shared libgcc build.
6924         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6925         for shared libgcc build.
6926         * config/i386/t-mingw-pthread: New file.
6927         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6928         New define to enable use of library pthread by default.
6929         * config/i386/mingw.opt (pthread): New driver option.
6930         (no-pthread): New driver option.
6931         * config/i386/cygming.opt: Make sure trailing empty line is retained.
6932         * config/i386/mingw-w64.opt: Likewise.
6933
6934 2011-04-01  Gary Funck  <gary@intrepid.com>
6935
6936         * c-decl.c (grokdeclarator): Fix formatting.
6937
6938 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6939
6940         * expr.c (emit_block_move_via_movmem): Use n_generator_args
6941         instead of n_operands.
6942         (set_storage_via_setmem): Likewise.
6943         * optabs.c (maybe_gen_insn): Likewise.
6944         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6945         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6946         (mips_expand_builtin_direct): Likewise.
6947         * config/spu/spu.c (expand_builtin_args): Likewise.
6948
6949 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6950
6951         * recog.h (insn_data_d): Add n_generator_args.
6952         * genoutput.c (data): Likewise.
6953         (output_insn_data): Print it.
6954         (max_opno, num_dups): Delete.
6955         (scan_operands): Just fill in "d->operand[...]".
6956         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6957
6958 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6959
6960         * gensupport.h (pattern_stats): New structure.
6961         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6962         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6963         (max_operand_1, max_operand_vec): Delete.
6964         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6965
6966 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
6967
6968         * emit-rtl.c (emit_pattern_after_setloc): New function.
6969         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6970         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6971         (emit_pattern_after): New function.
6972         (emit_insn_after, emit_jump_insn_after): Call it.
6973         (emit_call_insn_after, emit_debug_insn_after): Likewise.
6974         (emit_pattern_before_setloc): New function.
6975         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6976         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6977         Likewise.
6978         (emit_pattern_before): New function.
6979         (emit_insn_before, emit_jump_insn_before): Call it.
6980         (emit_call_insn_before, emit_debug_insn_before): Likewise.
6981
6982 2011-03-31  Richard Henderson  <rth@redhat.com>
6983
6984         * dwarf2out.c (dw_separate_line_info_ref): Remove.
6985         (dw_separate_line_info_entry): Remove.
6986         (enum dw_line_info_opcode): New.
6987         (dw_line_info_entry): Use it.
6988         (dw_line_info_table, dw_line_info_table_p): New.
6989         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6990         (line_info_table, line_info_label_num): Remove.
6991         (line_info_table_in_use): Remove.
6992         (separate_line_info_table): Remove.
6993         (separate_line_info_table_allocated): Remove.
6994         (separate_line_info_table_in_use): Remove.
6995         (LINE_INFO_TABLE_INCREMENT): Remove.
6996         (line_info_label_num): New.
6997         (cur_line_info_table): New.
6998         (text_section_line_info, cold_text_section_line_info): New.
6999         (separate_line_info): New.
7000         (SEPARATE_LINE_CODE_LABEL): Remove.
7001         (print_dwarf_line_table): Remove.
7002         (debug_dwarf): Don't dump it.
7003         (output_one_line_info_table): New.
7004         (output_line_info): Use it.
7005         (new_line_info_table): New.
7006         (set_cur_line_info_table): New.
7007         (dwarf2out_switch_text_section): Use it.
7008         (dwarf2out_begin_function): Likewise.
7009         (push_dw_line_info_entry): New.
7010         (dwarf2out_source_line): Rewrite for new line info tables.
7011         (dwarf2out_init): Remove dead initailizations.
7012
7013 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7014
7015         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
7016         various flags.
7017         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
7018         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
7019         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
7020         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
7021         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
7022         * opt-functions.awk (flag_init, switch_bit_fields): New.
7023         (switch_flags): Don't handle flags moved to bit-fields.  Don't
7024         generate CL_MISSING_OK or CL_SAVE.
7025         * optc-gen.awk: Update to generate bit-field output as well as
7026         flags field.
7027         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
7028         bit-field instead of CL_REJECT_DRIVER flag.
7029         * opts-common.c (generate_canonical_option,
7030         decode_cmdline_option): Use bit-fields instead of CL_* flags.
7031         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
7032         instead of CL_REJECT_NEGATIVE flag.
7033         * toplev.c (print_switch_values): Use cl_report bit-field instead
7034         of CL_REPORT flag.
7035
7036 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7037
7038         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
7039         a zero minimum index only if it is redundant.
7040
7041 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
7042
7043         PR rtl-optimization/48381
7044         * ira-color.c (assign_hard_reg): Use hard reg set intersection
7045         instead of ira_class_hard_reg_index for calculating conflicting
7046         hard registers.
7047
7048 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
7049
7050         * cprop.c: Clean up hash table building.
7051         (reg_avail_info): Remove.
7052         (oprs_available_p): Remove.
7053         (record_last_reg_set_info): Remove.
7054         (record_last_set_info): Remove.
7055         (reg_available_p): New function.
7056         (gcse_constant_p): Do not treat unfolded conditions as constants.
7057         (make_set_regs_unavailable): New function.
7058         (hash_scan_set): Simplify with new reg_available_p.
7059         (compute_hash_table_work): Traverse insns stream only once.
7060         Do not compute reg_avail_info. Traverse insns in reverse order.
7061         Record implicit sets after recording explicit sets from the block.
7062
7063 2011-03-31  Michael Matz  <matz@suse.de>
7064
7065         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
7066
7067 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
7068
7069         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7070         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7071         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7072         (h8300_mode_dependent_address_p): New function.
7073         (h8300_get_index): Make static.
7074
7075 2011-03-31  Jeff Law  <law@redhat.com>
7076
7077         * reload1.c (elimination_effects): Fix typo in recent change.
7078
7079         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
7080         typo potentially leading to null pointer dereference.
7081
7082         * caller-save.c (new_saved_hard_reg): Eliminate return value.
7083         (setup_save_areas): Corresponding changes to avoid useless
7084         assignments.
7085
7086         * jump.c (reversed_comparison_code_parts): Avoid successive return
7087         statements when REVERSE_CONDITION is defined.
7088
7089         * expr.c (expand_assignment): Avoid useless assignments.
7090         (expand_expr_real_1): Likewise.
7091         (expand_expr_real_2): Avoid useless statements.
7092
7093         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7094
7095         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7096
7097         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7098         statements.
7099
7100         * stmt.c (expand_expr_stmt): Avoid useless assignment.
7101
7102 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7103
7104         PR target/47109
7105         * doc/tm.texi.in (TARGET_VERSION): Remove.
7106         * doc/tm.texi: Regenerate.
7107         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7108         * collect2.c (main): Don't use TARGET_VERSION.
7109         * mips-tdump.c (main): Don't use TARGET_VERSION.
7110         * mips-tfile.c (main): Don't use TARGET_VERSION.
7111         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
7112         * config/rs6000/vxworksae.h: Remove.
7113         * config/alpha/alpha.h (TARGET_VERSION): Remove.
7114         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7115         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7116         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7117         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7118         * config/arm/arm.h (TARGET_VERSION): Remove.
7119         * config/arm/coff.h (TARGET_VERSION): Remove.
7120         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7121         * config/arm/elf.h (TARGET_VERSION): Remove.
7122         * config/arm/freebsd.h (TARGET_VERSION): Remove.
7123         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7124         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7125         * config/arm/pe.h (TARGET_VERSION): Remove.
7126         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7127         * config/arm/semi.h (TARGET_VERSION): Remove.
7128         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7129         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7130         * config/arm/vxworks.h (TARGET_VERSION): Remove.
7131         * config/avr/avr.h (TARGET_VERSION): Remove.
7132         * config/bfin/bfin.h (TARGET_VERSION): Remove.
7133         * config/fr30/fr30.h (TARGET_VERSION): Remove.
7134         * config/frv/frv.h (TARGET_VERSION): Remove.
7135         * config/h8300/h8300.h (TARGET_VERSION): Remove.
7136         * config/i386/cygwin.h (TARGET_VERSION): Remove.
7137         * config/i386/darwin.h (TARGET_VERSION): Remove.
7138         * config/i386/darwin64.h (TARGET_VERSION): Remove.
7139         * config/i386/djgpp.h (TARGET_VERSION): Remove.
7140         * config/i386/freebsd.h (TARGET_VERSION): Remove.
7141         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7142         * config/i386/gnu.h (TARGET_VERSION): Remove.
7143         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7144         * config/i386/i386elf.h (TARGET_VERSION): Remove.
7145         * config/i386/linux.h (TARGET_VERSION): Remove.
7146         * config/i386/linux64.h (TARGET_VERSION): Remove.
7147         * config/i386/lynx.h (TARGET_VERSION): Remove.
7148         * config/i386/mingw32.h (TARGET_VERSION): Remove.
7149         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7150         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7151         * config/i386/netware.h (TARGET_VERSION): Remove.
7152         * config/i386/nto.h (TARGET_VERSION): Remove.
7153         * config/i386/openbsd.h (TARGET_VERSION): Remove.
7154         * config/i386/vxworks.h (TARGET_VERSION): Remove.
7155         * config/ia64/elf.h (TARGET_VERSION): Remove.
7156         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7157         * config/ia64/hpux.h (TARGET_VERSION): Remove.
7158         * config/ia64/linux.h (TARGET_VERSION): Remove.
7159         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7160         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7161         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7162         * config/lm32/lm32.h (TARGET_VERSION): Remove.
7163         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7164         * config/m32c/m32c.h (TARGET_VERSION): Remove.
7165         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7166         * config/m32r/m32r.h (TARGET_VERSION): Remove.
7167         * config/m68k/linux.h (TARGET_VERSION): Remove.
7168         * config/m68k/m68k.h (TARGET_VERSION): Remove.
7169         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7170         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7171         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7172         * config/mep/mep.h (TARGET_VERSION): Remove.
7173         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7174         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7175         * config/mips/iris6.h (MACHINE_TYPE): Remove.
7176         * config/mips/linux.h (TARGET_VERSION): Remove.
7177         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7178         * config/mips/vxworks.h (TARGET_VERSION): Remove.
7179         * config/mmix/mmix.h (TARGET_VERSION): Remove.
7180         * config/mn10300/linux.h (TARGET_VERSION): Remove.
7181         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7182         * config/pa/pa.h (TARGET_VERSION): Remove.
7183         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7184         * config/picochip/picochip.h (TARGET_VERSION): Remove.
7185         * config/rs6000/aix.h (TARGET_VERSION): Remove.
7186         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7187         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7188         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7189         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7190         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7191         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7192         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7193         * config/rs6000/linux.h (TARGET_VERSION): Remove.
7194         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7195         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7196         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7197         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7198         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7199         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7200         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7201         * config/s390/linux.h (TARGET_VERSION): Remove.
7202         * config/s390/s390.h (TARGET_VERSION): Remove.
7203         * config/s390/tpf.h (TARGET_VERSION): Remove.
7204         * config/score/score.h (TARGET_VERSION): Remove.
7205         * config/sh/linux.h (TARGET_VERSION): Remove.
7206         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7207         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7208         * config/sh/sh.h (TARGET_VERSION): Remove.
7209         * config/sh/sh64.h (TARGET_VERSION): Remove.
7210         * config/sh/superh.h (TARGET_VERSION): Remove.
7211         * config/sh/vxworks.h (TARGET_VERSION): Remove.
7212         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7213         * config/sparc/linux.h (TARGET_VERSION): Remove.
7214         * config/sparc/linux64.h (TARGET_VERSION): Remove.
7215         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7216         TARGET_NAME32, TARGET_NAME): Remove.
7217         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7218         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7219         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7220         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7221         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7222         * config/spu/spu.h (TARGET_VERSION): Remove.
7223         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7224         * config/v850/v850.h (TARGET_VERSION): Remove.
7225         * config/vax/linux.h (TARGET_VERSION): Remove.
7226         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7227         * config/xtensa/elf.h (TARGET_VERSION): Remove.
7228         * config/xtensa/linux.h (TARGET_VERSION): Remove.
7229
7230 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7231
7232         PR target/48142
7233         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7234         frame-related from frame-unrelated adjustments to the stack pointer.
7235
7236 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
7237
7238         * common.opt (fdebug-types-section): Move earlier.
7239         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7240
7241 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
7242
7243         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7244         var.
7245
7246 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
7247
7248         * tree.h (CASE_CHAIN): Define.
7249         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7250         (gimple_redirect_edge_and_branch): Likewise.
7251
7252 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7253
7254         PR middle-end/48367
7255         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7256         calculation.
7257
7258 2011-03-30  Jeff Law  <law@redhat.com>
7259
7260         * PR bootstrap/48371
7261         * reload1.c (reload): Fix botch in last change.
7262
7263         * reload.h (struct reload): Fix typo introduced in last change.
7264
7265 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7266
7267         * config/arm/arm.opt (mhard-float, msoft-float): Mark
7268         Undocumented.  Remove help text.
7269         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7270         -mhard-float.
7271
7272 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7273
7274         * doc/options.texi (NegativeAlias): Document.
7275         (Alias): Mention NegativeAlias.
7276         * opt-functions.awk: Handle NegativeAlias.
7277         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
7278         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7279         * opts.h (CL_NEGATIVE_ALIAS): Define.
7280         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7281         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7282         OPT_mspe_.
7283         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7284         Alias entries.
7285         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7286         mno-spe and mno-isel instead of mspe=no and -misel=no.
7287
7288 2011-03-29  Mark Wielaard  <mjw@redhat.com>
7289
7290         * common.opt (fdebug-types-section): New flag.
7291         * doc/invoke.texi: Document new -fno-debug-types-section flag.
7292         * dwarf2out.c (use_debug_types): New define.
7293         (struct die_struct): Mark die_id with GTY desc use_debug_types.
7294         (print_die): Guard output of type unit signatures using
7295         use_debug_types.
7296         (build_abbrev_table): Replace assert of dwarf_version >= 4
7297         with assert on use_debug_types.
7298         (size_of_die): Likewise.
7299         (unmark_dies): Likewise.
7300         (value_format): Decide AT_ref_external form on use_debug_types.
7301         (output_die): Replace dwarf_version version check guard with
7302         use_debug_types where appropriate.
7303         (modified_type_die): Likewise.
7304         (gen_reference_type_die): Likewise.
7305         (dwarf2out_start_source_file): Likewise.
7306         (dwarf2out_end_source_file): Likewise.
7307         (prune_unused_types_walk_attribs): Likewise.
7308         (dwarf2out_finish): Likewise.
7309
7310 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7311
7312         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7313
7314 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7315
7316         PR rtl-optimization/48332
7317         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7318         mode of input operand N and modeN to its actual mode.
7319
7320 2011-03-30  Jeff Law  <law@redhat.com>
7321
7322         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7323         define accessor macro.
7324         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7325         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7326         (reg_equiv_init): Likewise.
7327         (reg_equivs_size): New variable.
7328         (reg_equiv_init_size): Remove.
7329         (allocate_initial_values): Move prototype to here from....
7330         * integrate.h (allocate_initial_values): Remove prototype.
7331         * integrate.c: Include reload.h.
7332         (allocate_initial_values): Corresponding changes.
7333         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7334         (fix_reg_equiv_init, no_equiv): Corresponding changes.
7335         (update_equiv_regs): Corresponding changes.
7336         (ira): Corresponding changes.
7337         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7338         (push_secondary_reload): Corresponding changes.
7339         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7340         (make_memloc, find_reloads_address): Corresponding changes.
7341         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7342         (find_reloads_address_1): Corresponding changes.
7343         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7344         (refers_to_regno_for_reload_p): Corresponding changes.
7345         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7346         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7347         * reload1.c: Include ggc.h.
7348         (grow_reg_equivs): New function.
7349         (replace_pseudos_in, reload): Corresponding changes.
7350         (calculate_needs_all_insns, alter_regs): Corresponding changes.
7351         (eliminate_regs_1, elimination_effects): Corresponding changes.
7352         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7353         (delete_output_reload): Likewise.
7354         * caller-save.c (mark_referenced_regs): Corresponding changes.
7355         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7356         * frv/predicates.md (frv_load_operand): Corresponding changes.
7357         * microblaze/microblaze.c (double_memory_operand): Corresponding
7358         changes.
7359         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7360         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
7361         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
7362         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7363         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7364         changes.
7365         * pa/pa.c (emit_move_sequence): Corresponding changes.
7366         * vax/vax.c (nonindexed_address_p): Corresponding changes.
7367
7368 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7369
7370         PR target/47551
7371         * config/arm/arm.c (coproc_secondary_reload_class): Handle
7372         structure modes.  Don't check neon_vector_mem_operand for
7373         vector or structure modes.
7374
7375 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7376             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7377
7378         PR target/43590
7379         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7380         operand 1 and reshuffle the operands to match.
7381         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7382
7383 2011-03-30  Christian Schüler  <cschueler@gmx.de>
7384
7385         PR driver/48208
7386         * config/c.opt (F): Added 'Driver' to -F option.
7387
7388         PR driver/48260
7389         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7390           handler function.
7391         * config/darwin.opt: Added '-arch' option.
7392
7393 2011-03-30  Nick Clifton  <nickc@redhat.com>
7394
7395         * config/rx/rx.md: Add peepholes and patterns to combine
7396         extending loads and simple arithmetic instructions.
7397         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
7398         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7399         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
7400         modes to use pre-decrement and post-increment addressing.
7401         (rx_is_restricted_memory_address): Add range checking of REG+INT
7402         addresses.
7403         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
7404         (rx_memory_move_cost): Adjust cost of stores.
7405         (rx_adjust_insn_length): New function.
7406
7407 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
7408
7409         PR c/48305
7410         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7411         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7412         matching arg00/arg01 types.
7413
7414 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7415
7416         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7417         last_location to UNKNOWN_LOCATION.
7418
7419 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7420
7421         PR target/48349
7422         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7423         FLOAT_SSE_REGS.
7424
7425 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7426             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7427
7428         PR bootstrap/48337
7429         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7430         Init(PROCESSOR_V7).
7431         (sparc_cpu): Likewise.
7432         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7433         PROCESSOR_V7.
7434
7435 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7436
7437         PR target/48336
7438         PR middle-end/48342
7439         PR rtl-optimization/48345
7440         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7441         hard regs for given mode from profitable regs when doing secondary
7442         allocation.
7443
7444 2011-03-29  Jeff Law  <law@redhat.com>
7445
7446         PR bootstrap/48327
7447         * tree-ssa-threadupdate.c (struct redirection_data): Remove
7448         do_not_duplicate field.
7449         (lookup_redirection_data): Corresponding changes.
7450         (create_duplicates): Always create a template block.
7451         (redirect_edges): Remove code which reused the original block
7452         when it was going to become unreachable code.
7453         (thread_block): Don't set do_not_duplicate field.
7454
7455 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
7456
7457         * lto-opts.c (register_user_option_p, lto_register_user_option):
7458         Make type argument unsigned.
7459         * lto-streamer.h (lto_register_user_option): Make type argument
7460         unsigned.
7461         * opth-gen.awk: Make CL_* macros unsigned.
7462         * opts-common.c (find_opt): Make lang_mask argument unsigned.
7463         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7464         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7465         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7466         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7467         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7468         (find_opt): Make lang_mask argument unsigned.
7469
7470 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7471
7472         PR rtl-optimization/48331
7473         PR rtl-optimization/48334
7474         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7475         for any used algorithm.
7476
7477 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7478
7479         * ira-conflicts.c (build_object_conflicts): Add unused attribute
7480         to parent_max.
7481
7482 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
7483
7484         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7485         (alpha_option_override): Don't set alpha_sr_alias_set.
7486         (emit_frame_store_1): Use gen_frame_mem rather than calling
7487         set_mem_alias_set.
7488         (alpha_expand_epilogue): Ditto.
7489
7490 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
7491
7492         PR tree-optimization/48290
7493         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7494         vectorization, check that relevant phis in the basic block after
7495         the inner loop are really inner loop's exit phis.
7496
7497 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
7498
7499         PR debug/48190
7500         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7501         (cached_dw_loc_list_def): New structure.
7502         (cached_dw_loc_list): New typedef.
7503         (cached_dw_loc_list_table): New variable.
7504         (cached_dw_loc_list_table_hash): New function.
7505         (cached_dw_loc_list_table_eq): Likewise.
7506         (add_location_or_const_value_attribute): Take a bool cache_p.
7507         Cache the list when the parameter is true.
7508         (gen_formal_parameter_die): Update caller.
7509         (gen_variable_die): Likewise.
7510         (dwarf2out_finish): Likewise.
7511         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7512         while generating debug info for the decl.
7513         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7514         (dwarf2out_init): Initialize cached_dw_loc_list_table.
7515         (resolve_addr): Cache the result of resolving a chain of
7516         location lists.
7517
7518 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7519
7520         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7521         conflict object hard regset nodes have intersecting hard reg sets.
7522
7523         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7524         after regstat_init_n_sets_and_refs.
7525
7526         * ira.c: Add more comments at the top.
7527         (setup_stack_reg_pressure_class, setup_pressure_classes):
7528         Add comments how we compute the register pressure classes.
7529         (setup_allocno_and_important_classes): Add more comments.
7530         (setup_class_translate_array, reorder_important_classes)
7531         (setup_reg_class_relations): Add comments.
7532
7533         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
7534         start of the file.
7535
7536         * ira-color.c: Add 2011 to the Copyright line.
7537         (assign_hard_reg):  Add more comments.
7538         (improve_allocation): Ditto.
7539
7540         * ira-costs.c: Add 2011 to the Copyright line.
7541         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7542         comments.
7543         (setup_regno_cost_classes_by_mode): Ditto.
7544
7545         Initial patches from ira-improv branch:
7546
7547         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7548
7549         * ira-build.c (ira_create_object): Remove initialization of
7550         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
7551         (ira_create_allocno): Remove initialization of
7552         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7553         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7554         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7555         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7556         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7557         Initialize ALLOCNO_ADD_DATA.
7558         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7559         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7560         ALLOCNO_REG.
7561         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
7562         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7563
7564         * ira.c (ira_reallocate): Remove.
7565         (setup_pressure_classes): Call
7566         ira_init_register_move_cost_if_necessary.  Use
7567         ira_register_move_cost instead of ira_get_register_move_cost.
7568         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7569         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7570
7571         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7572         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7573         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7574         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7575         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7576         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7577         Fix formatting.
7578         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
7579         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7580         (struct allocno_color_data): New.
7581         (allocno_color_data_t): New typedef.
7582         (allocno_color_data): New definition.
7583         (ALLOCNO_COLOR_DATA): New macro.
7584         (struct object_color_data): New.
7585         (object_color_data_t): New typedef.
7586         (object_color_data): New definition.
7587         (OBJECT_COLOR_DATA): New macro.
7588         (update_copy_costs, calculate_allocno_spill_cost): Call
7589         ira_init_register_move_cost_if_necessary.  Use
7590         ira_register_move_cost instead of ira_get_register_move_cost.
7591         (move_spill_restore, update_curr_costs): Ditto.
7592         (allocno_spill_priority): Make it inline.
7593         (color_pass): Allocate and free allocno_color_dat and object_color_data.
7594         (struct coalesce_data, coalesce_data_t): New.
7595         (allocno_coalesce_data): New definition.
7596         (ALLOCNO_COALESCE_DATA): New macro.
7597         (merge_allocnos, coalesced_allocno_conflict_p): Use
7598         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7599         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7600         (coalesce_allocnos): Ditto.
7601         (setup_coalesced_allocno_costs_and_nums): Ditto.
7602         (collect_spilled_coalesced_allocnos): Ditto.
7603         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7604         (setup_slot_coalesced_allocno_live_ranges): Ditto.
7605         (coalesce_spill_slots): Ditto.
7606         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
7607         free allocno_coalesce_data.
7608
7609         * ira-conflicts.c: Fix formatting.
7610         (process_regs_for_copy): Call
7611         ira_init_register_move_cost_if_necessary.  Use
7612         ira_register_move_cost instead of ira_get_register_move_cost.
7613         (build_object_conflicts): Optimize.
7614
7615         * ira-costs.c (record_reg_classes): Optimize.  Call
7616         ira_init_register_move_cost_if_necessary.  Use
7617         ira_register_move_cost, ira_may_move_in_cost, and
7618         ira_may_move_out_cost instead of ira_get_register_move_cost and
7619         ira_get_may_move_cost.
7620         (record_address_regs): Ditto.
7621         (scan_one_insn): Optimize.
7622         (find_costs_and_classes): Optimize.
7623         (process_bb_node_for_hard_reg_moves): Call
7624         ira_init_register_move_cost_if_necessary.  Use
7625         ira_register_move_cost instead of ira_get_register_move_cost.
7626
7627         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7628         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7629         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7630         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7631         definitions.
7632         (ira_initiate_emit_data, ira_finish_emit_data)
7633         (create_new_allocno): New functions.
7634         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
7635         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7636         Use ira_register_move_cost instead of ira_get_register_move_cost.
7637
7638         * ira-int.h: Fix some comments.
7639         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7640         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7641         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7642         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
7643         add_data.
7644         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
7645         bitfield after mode.  Make hard_regno a short int.  Make
7646         hard_regno short.  Remove first_coalesced_allocno and
7647         next_coalesced_allocno.  Move mem_optimized_dest_p,
7648         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7649         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
7650         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7651         temp, colorable_p.  Add new member add_data.
7652         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7653         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7654         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7655         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7656         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7657         (ALLOCNO_ADD_DATA): New macro.
7658         (ira_emit_data_t): New typedef.
7659         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
7660         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7661         from struct ira_allocno.
7662         (ALLOCNO_EMIT_DATA): New macro.
7663         (ira_allocno_emit_data, allocno_emit_reg): New.
7664         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7665         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
7666         (OBJECT_ADD_DATA): New macro.
7667         (ira_reallocate): Remove.
7668         (ira_initiate_emit_data, ira_finish_emit_data): New.
7669         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7670         (ira_init_register_move_cost_if_necessary): New.
7671         (ira_object_conflict_iter_next): Merge into
7672         ira_object_conflict_iter_cond.
7673         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
7674
7675         * ira-live.c (process_single_reg_class_operands): Call
7676         ira_init_register_move_cost_if_necessary.  Use
7677         ira_register_move_cost instead of ira_get_register_move_cost.
7678
7679         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7680
7681         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7682
7683         * ira-costs.c: Fix formatting.
7684         (cost_classes, cost_classes_num): Remove.
7685         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7686         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7687         (cost_classes_del, cost_classes_htab): New.
7688         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7689         (initiate_regno_cost_classes, setup_cost_classes): New.
7690         (setup_regno_cost_classes_by_aclass): New.
7691         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
7692         (record_reg_classes): Use regno_cost_classes instead of
7693         cost_classes.  Move checking opposite operand up.
7694         (record_address_regs): Use regno_cost_classes
7695         instead of cost_classes.
7696         (scan_one_insn): Ditto.  Use always general register.
7697         (print_allocno_costs): Use regno_cost_classes instead of
7698         cost_classes.
7699         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
7700         (find_costs_and_classes): Set up cost classes for each registers.
7701         Use also their mode for this.  Use regno_cost_classes instead of
7702         cost_classes.
7703         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7704         cost_classes.
7705         (free_ira_costs, ira_init_costs): Don't use cost_classes.
7706         (ira_costs, ira_set_pseudo_classes): Call
7707         initiate_regno_cost_classes and finish_regno_cost_classes.
7708
7709         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7710
7711         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7712
7713         * target.def (ira_cover_classes): Remove.
7714
7715         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
7716
7717         * doc/tm.texi.in: Ditto.
7718
7719         * ira-conflicts.c: Remove mentioning cover classes from the file.
7720         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
7721         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
7722
7723         * targhooks.c (default_ira_cover_classes): Remove.
7724
7725         * targhooks.h (default_ira_cover_classes): Ditto.
7726
7727         * haifa-sched.c: Remove mentioning cover classes from the file.
7728         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7729         ira_pressure_classes and ira_pressure_classes_num instead of
7730         ira_reg_class_cover_size and ira_reg_class_cover.  Use
7731         sched_regno_pressure_class instead of sched_regno_cover_class.
7732         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7733         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7734
7735         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
7736         classes from the file.
7737         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7738         (struct object_hard_regs, struct object_hard_regs_node): New.
7739         (struct ira_object): New members profitable_hard_regs,
7740         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7741         (struct ira_allocno): Rename cover_class to aclass.  Rename
7742         cover_class_cost and updated_cover_class_cost to class_cost and
7743         updated_class_cost.  Remove splay_removed_p and
7744         left_conflict_size.  Add new members colorable_p.
7745         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7746         (ALLOCNO_COLORABLE_P): New macro.
7747         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7748         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7749         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7750         (OBJECT_...): Rename parameter C to O.
7751         (OBJECT_PROFITABLE_HARD_REGS): New macro.
7752         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7753         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7754         (struct target_ira_int): New members x_ira_max_memory_move_cost,
7755         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7756         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7757         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7758         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
7759         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
7760         x_ira_reg_class_subunion.
7761         (ira_max_memory_move_cost, ira_max_register_move_cost)
7762         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7763         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7764         (ira_important_class_nums, ira_reg_class_superunion): New macros.
7765         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
7766         (ira_reg_class_union): Rename to ira_reg_class_subunion.
7767         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7768         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7769         (ira_tune_allocno_costs_and_cover_classes): Rename to
7770         ira_tune_allocno_costs.
7771         (ira_debug_hard_regs_forest): New.
7772         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7773         (ira_object_conflict_iter_next): Fix comments.
7774         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
7775         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7776         cover_class to aclass.
7777         (ira_allocate_and_accumulate_costs): Ditto.
7778         (ira_allocate_and_set_or_copy_costs): Ditto.
7779
7780         * opts.c (decode_options): Remove ira_cover_class check.
7781
7782         * ira-color.c: Remove mentioning cover classes from the file.  Use
7783         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7784         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7785         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7786         (splay-tree.h): Remove include.
7787         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7788         before copy_freq_compare_func.
7789         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7790         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7791         New definitions.
7792         (hard_regs_roots, hard_regs_node_vec): Ditto.
7793         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7794         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7795         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7796         (create_new_object_hard_regs_node): Ditto.
7797         (add_new_object_hard_regs_node_to_forest): Ditto.
7798         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
7799         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7800         Ditto.
7801         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
7802         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
7803         (remove_unused_object_hard_regs_nodes): Ditto.
7804         (enumerate_object_hard_regs_nodes): Ditto.
7805         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
7806         (object_hard_regs_subnode_t): Ditto.
7807         (struct object_hard_regs_subnode): Ditto.
7808         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
7809         (setup_object_hard_regs_subnode_index): Ditto.
7810         (get_object_hard_regs_subnodes_num): Ditto.
7811         (form_object_hard_regs_nodes_forest): Ditto.
7812         (finish_object_hard_regs_nodes_tree): Ditto.
7813         (finish_object_hard_regs_nodes_forest): Ditto.
7814         (allocnos_have_intersected_live_ranges_p): Rename to
7815         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7816         (pseudos_have_intersected_live_ranges_p): Rename to
7817         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7818         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7819         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7820         (update_copy_costs): Remove assert.  Skip cost update if the hard
7821         reg does not belong the class.
7822         (assign_hard_reg): Process only profitable hard regs.
7823         (uncolorable_allocnos_num): Make it scalar.
7824         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7825         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7826         and ira_reg_class_max_nregs.
7827         (bucket_allocno_compare_func): Check frequency first.
7828         (sort_bucket): Add compare function as a parameter.
7829         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7830         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7831         (push_allocno_to_stack): Rewrite for checking new allocno
7832         colorability.
7833         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
7834         (push_only_colorable): Pass new parameter to sort_bucket.
7835         (push_allocno_to_spill): Remove.
7836         (allocno_spill_priority_compare): Make it inline and rewrite.
7837         (splay_tree_allocate, splay_tree_free): Remove.
7838         (allocno_spill_sort_compare): New function.
7839         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
7840         build and use splay tree.  Choose first allocno in uncolorable
7841         allocno bucket to spill.  Remove setting spill cost.
7842         (all_conflicting_hard_regs): Remove.
7843         (setup_allocno_available_regs_num): Check only profitable hard
7844         regs.  Print info about hard regs nodes.
7845         (setup_allocno_left_conflicts_size): Remove.
7846         (put_allocno_into_bucket): Don't call
7847         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
7848         (improve_allocation): New.
7849         (color_allocnos): Call setup_profitable_hard_regs,
7850         form_object_hard_regs_nodes_forest, improve_allocation,
7851         finish_object_hard_regs_nodes_forest.  Setup spill cost.
7852         (print_loop_title): Use pressure classes.
7853         (color_allocnso): Ditto.
7854         (do_coloring): Remove allocation and freeing splay_tree_node_pool
7855         and allocnos_for_spilling.
7856         (ira_sort_regnos_for_alter_reg): Don't setup members
7857         {first,next}_coalesced_allocno.
7858         (color): Remove allocating and freeing removed_splay_allocno_vec.
7859         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7860         prohibited_class_mode_regs.
7861
7862         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
7863         formatting.
7864         (update_allocno_pressure_excess_length): Use pressure classes.
7865         (inc_register_pressure, dec_register_pressure): Check for pressure
7866         class.
7867         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7868         pressure class.  Use ira_reg_class_nregs instead of
7869         ira_reg_class_max_nregs.
7870         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7871         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7872         (single_reg_class): Use ira_reg_class_nregs instead of
7873         ira_reg_class_max_nregs.
7874         (process_bb_node_lives): Use pressure classes.
7875
7876         * ira-emit.c: Remove mentioning cover classes from the file.  Use
7877         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7878         (change_loop): Use pressure classes.
7879         (modify_move_list): Call ira_set_allocno_class instead of
7880         ira_set_allocno_cover_class.
7881
7882         * ira-build.c: Remove mentioning cover classes from the file.  Use
7883         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7884         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
7885         ALLOCNO_UPDATED_CLASS_COST instead of
7886         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7887         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7888         (ira_create_allocno): Remove initialization of
7889         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
7890         ALLOCNO_COLORABLE_P.
7891         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7892         Update conflict regs for the objects.
7893         (create_cap_allocno): Remove assert.  Don't propagate
7894         ALLOCNO_AVAILABLE_REGS_NUM.
7895         (ira_free_allocno_costs): New function.
7896         (finish_allocno): Change a part of code into call of
7897         ira_free_allocno_costs.
7898         (low_pressure_loop_node_p): Use pressure classes.
7899         (object_range_compare_func): Don't compare classes.
7900         (setup_min_max_conflict_allocno_ids): Ditto.
7901
7902         * loop-invariant.c: Remove mentioning cover classes from the file.
7903         Use ira_pressure_classes and ira_pressure_classes_num instead of
7904         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
7905         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7906         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7907         Use reg_allocno_class instead of reg_cover_class.
7908         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7909         STACK_REG_COVER_CLASS.
7910         (get_regno_cover_class): Rename to get_regno_pressure_class.
7911         (move_loop_invariants): Initialize and finalize regstat.
7912
7913         * ira.c: Remove mentioning cover classes from the file.  Add
7914         comments about coloring without cover classes.  Use ALLOCNO_CLASS
7915         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7916         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7917         setup_class_subset_and_memory_move_costs.
7918         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7919         (setup_cover_and_important_classes): Rename to
7920         setup_allocno_and_important_classes.
7921         (setup_class_translate_array): New.
7922         (setup_class_translate): Call it for allocno and pressure classes.
7923         (cover_class_order): Rename to allocno_class_order.
7924         (comp_reg_classes_func): Use ira_allocno_class_translate instead
7925         of ira_class_translate.
7926         (reorder_important_classes): Set up ira_important_class_nums.
7927         (setup_reg_class_relations): Set up ira_reg_class_superunion.
7928         (print_class_cover): Rename to print_classes.  Add parameter.
7929         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7930         Print pressure classes too.
7931         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
7932         setup_reg_subclasses.
7933         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7934         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7935         (setup_prohibited_class_mode_regs): Use
7936         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
7937         (clarify_prohibited_class_mode_regs): New function.
7938         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7939         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7940         (ira_init_once): Initialize them.
7941         (free_register_move_costs): Process them.
7942         (ira_init): Move calls of find_reg_classes and
7943         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7944         Call clarify_prohibited_class_mode_regs.
7945         (ira_no_alloc_reg): Remove.
7946         (too_high_register_pressure_p): Use pressure classes.
7947
7948         * sched-deps.c: Remove mentioning cover classes from the file.
7949         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7950         ira_pressure_classes and ira_pressure_classes_num instead of
7951         ira_reg_class_cover_size and ira_reg_class_cover.
7952         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7953         sched_regno_pressure_class instead of sched_regno_cover_class.
7954         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
7955         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7956
7957         * ira.h: Add 2010 to Copyright.
7958         (ira_no_alloc_reg): Remove external.
7959         (struct target_ira): Rename x_ira_hard_regno_cover_class,
7960         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7961         x_ira_class_translate to x_ira_hard_regno_allocno_class,
7962         x_ira_allocno_classes_num, x_ira_allocno_classes, and
7963         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
7964         x_ira_pressure_classes, x_ira_pressure_class_translate, and
7965         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
7966         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
7967         x_ira_no_alloc_regs.
7968         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7969         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7970         ira_allocno_classes_num and ira_allocno_classes.
7971         (ira_class_translate): Rename to ira_allocno_class_translate.
7972         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7973         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7974         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7975         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7976         (ira_no_alloc_regs): New.
7977
7978         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
7979         classes from the file.  Use ALLOCNO_CLASS instead of
7980         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
7981         ALLOCNO_COVER_CLASS_COST.
7982         (regno_cover_class): Rename to regno_aclass.
7983         (record_reg_classes): Use ira_reg_class_subunion instead of
7984         ira_reg_class_union.
7985         (record_address_regs): Check overflow.
7986         (scan_one_insn): Ditto.
7987         (print_allocno_costs): Print total mem cost fore regional allocation.
7988         (print_pseudo_costs): Use REG_N_REFS.
7989         (find_costs_and_classes): Use classes intersected with them on the
7990         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
7991         ira_reg_class_union.  Use ira_allocno_class_translate and
7992         regno_aclass instead of ira_class_translate and regno_cover_class.
7993         Modify code for finding regno_aclass.  Setup preferred classes for
7994         the next pass.
7995         (setup_allocno_cover_class_and_costs): Rename to
7996         setup_allocno_class_and_costs.  Use regno_aclass instead of
7997         regno_cover_class.  Use ira_set_allocno_class instead of
7998         ira_set_allocno_cover_class.
7999         (init_costs, finish_costs): Use regno_aclass instead of
8000         regno_cover_class.
8001         (ira_costs): Use setup_allocno_class_and_costs instead of
8002         setup_allocno_cover_class_and_costs.
8003         (ira_tune_allocno_costs_and_cover_classes): Rename to
8004         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
8005         by processing objects.  Use ira_reg_class_max_nregs instead of
8006         ira_reg_class_nregs.
8007
8008         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
8009
8010         * sched-int.h: Remove mentioning cover classes from the file.
8011         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
8012
8013         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
8014         classes from the file.
8015         (struct reg_pref): Rename coverclass into allocnoclass.
8016         (reg_cover_class): Rename to reg_allocno_class.
8017
8018         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
8019
8020         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
8021
8022         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8023
8024         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
8025
8026         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
8027
8028         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
8029
8030         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
8031
8032         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
8033
8034         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
8035
8036         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
8037
8038         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
8039         (i386_ira_cover_classes): Ditto.
8040
8041         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8042
8043         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
8044
8045         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
8046
8047         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
8048
8049         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
8050
8051         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
8052
8053         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
8054         (mips_ira_cover_classes): Ditto.
8055
8056         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
8057
8058         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
8059
8060         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
8061
8062         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
8063
8064         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8065
8066         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8067         (IRA_COVER_CLASSES_VSX): Ditto.
8068
8069         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8070         (rs6000_ira_cover_classes): Ditto.
8071
8072         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8073
8074         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8075
8076         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8077
8078         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8079
8080         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8081
8082         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8083
8084         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8085
8086         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8087
8088         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8089
8090         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8091
8092 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
8093
8094         PR debug/48253
8095         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8096         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8097         dw_fde_unlikely_section_end_label, cold_in_std_section,
8098         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8099         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8100         fields.
8101         (output_fde): Use dw_fde_second_{begin,end} if second is
8102         true, otherwise dw_fde_{begin,end}.
8103         (output_call_frame_info): Test dw_fde_second_begin != NULL
8104         instead of dw_fde_switched_sections.
8105         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8106         fields, initialize new fields.  Initialize in_std_section
8107         unconditionally from the first partition.
8108         (dwarf2out_end_epilogue): Don't override dw_fde_end when
8109         dw_fde_second_begin is non-NULL.
8110         (dwarf2out_switch_text_section): Stop initializing removed
8111         dw_fde_struct fields, initialize new fields, initialize
8112         also dw_fde_end here.  Set dw_fde_switch_cfi even when
8113         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
8114         (struct var_loc_list_def): Add last_before_switch field.
8115         (arange_table, arange_table_allocated, arange_table_in_use,
8116         ARANGE_TABLE_INCREMENT, add_arange): Removed.
8117         (size_of_aranges): Count !in_std_section and !second_in_std_section
8118         hunks in fdes, instead of looking at arange_table_in_use.
8119         (output_aranges): Add aranges_length argument, don't call
8120         size_of_aranges here.  Instead of using aranges_table*
8121         emit ranges for fdes when !in_std_section resp.
8122         !second_in_std_section.
8123         (dw_loc_list): Break ranges crossing section switch.
8124         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
8125         use dw_fde_second_end instead of dw_fde_end as end of last range.
8126         (gen_subprogram_die): Don't call add_arange.  Use
8127         dw_fde_{begin,end} for first partition and if switched
8128         section dw_fde_second_{begin,end} for the second.
8129         (var_location_switch_text_section_1,
8130         var_location_switch_text_section): New functions.
8131         (dwarf2out_begin_function): Initialize cold_text_section even
8132         when function_section () isn't text_section.
8133         (prune_unused_types): Don't walk arange_table.
8134         (dwarf2out_finish): Don't needlessly test
8135         flag_reorder_blocks_and_partition when testing cold_text_section_used.
8136         If info_section_emitted, call size_of_aranges and if it indicates
8137         non-empty .debug_aranges, call output_aranges with the computed
8138         size.  Stop using removed dw_fde_struct fields, use
8139         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8140         for second.
8141
8142         PR debug/48203
8143         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8144         create ENTRY_VALUE if incoming or address of incoming's MEM
8145         is a hard REG.
8146         * dwarf2out.c (mem_loc_descriptor): Don't emit
8147         DW_OP_GNU_entry_value of DW_OP_fbreg.
8148         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8149         on ENTRY_VALUE is able to find the canonical parameter VALUE.
8150         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8151         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8152         ENTRY_VALUE_EXPs.
8153         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8154         is a REG_P or MEM_P with REG_P address, compute hash directly
8155         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8156         (preserve_only_constants): Don't clear VALUES forwaring
8157         ENTRY_VALUE to some other VALUE.
8158
8159 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
8160
8161         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8162         instead of GEN_INT.
8163
8164 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8165
8166         * cfgexpand.c (expand_gimple_cond): Always set the source location and
8167         block before expanding the statement.
8168         (expand_gimple_stmt_1): Likewise.  Set them here...
8169         (expand_gimple_stmt): ...and not here.  Tidy.
8170         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8171         unknown.
8172
8173 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8174
8175         * Makefile.in: New rule for cprop.o.
8176         * gcse.c: Move constant/copy propagation to cprop.c.
8177         (compute_local_properties): Only handle expression tables.
8178         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8179         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8180         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8181         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
8182         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
8183         compute_cprop_data, find_used_regs, try_replace_reg,
8184         find_avail_set, cprop_jump, constprop_register, cprop_insn,
8185         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8186         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8187         find_bypass_set, reg_killed_on_edge, bypass_block,
8188         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8189         execute_rtl_cprop, pass_rtl_cprop): Move to...
8190         * cprop.c: ...here.  New file, constant/copy propagation for RTL
8191         moved from gcse.c to here with minor cleanups in duplicated code.
8192
8193 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8194
8195         * config/i386/i386.c (flag_opts): Fix a typo in
8196         -mavx256-split-unaligned-store.
8197
8198 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8199
8200         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8201         LIBCALL_VALUE): Remove macros.
8202         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8203         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8204         (h8300_function_value, h8300_libcall_value,
8205         h8300_function_value_regno_p): New functions.
8206
8207 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8208
8209         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8210
8211 2011-03-28  Jeff Law  <law@redhat.com>
8212
8213         * tree-ssa-threadupdate.c (redirect_edges): Call
8214         create_edge_and_update_destination_phis as needed.
8215         (create_edge_and_update_destination_phis): Accept new BB argument.
8216         All callers updated.
8217         (thread_block): Do not update the profile when threading around
8218         intermediate blocks.
8219         (thread_single_edge): Likewise.
8220         (determine_bb_domination_status): If BB is not a successor of the
8221         loop header, return NONDOMINATING.
8222         (register_jump_thread): Note when we register a jump thread around
8223         an intermediate block.
8224         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8225         (thread_across_edge): Use it.
8226
8227 2011-03-28  Tristan Gingold  <gingold@adacore.com>
8228
8229         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8230         when for_return is 2.
8231
8232 2011-03-28  Jeff Law  <law@redhat.com>
8233
8234         * var-tracking.c (canonicalize_values_mark): Delete unused
8235         lhs assignment.
8236         (canonicalize_values_star, set_variable_part): Likewise.
8237         (clobber_variable_part, delete_variable_part): Likewise.
8238
8239 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8240
8241         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8242
8243 2011-03-28  Martin Jambor  <mjambor@suse.cz>
8244
8245         * tree-inline.c (expand_call_inline): Do not check that destination
8246         node is analyzed.
8247         (optimize_inline_calls): Assert that destination node is analyzed.
8248         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8249         not call tree_lowering_passes.
8250         * cgraph.h (cgraph_analyze_function): Declare.
8251         * cgraphunit.c (cgraph_analyze_function): Make public.
8252
8253 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
8254
8255         * config/sparc/sparc-opts.h: New.
8256         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8257         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8258         (sparc_option_override): Store processor_type enumeration rather
8259         than string in cpu_default.  Remove name and enumeration from
8260         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
8261         without using sparc_select.  Use target_flags_explicit instead of
8262         fpu_option_set.
8263         * config/sparc/sparc.h (enum processor_type): Move to
8264         sparc-opts.h.
8265         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8266         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8267         HeaderInclude entry.
8268         (mcpu=, mtune=): Use Var and Enum.
8269         (sparc_processor_type): New Enum and EnumValue entries.
8270
8271 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8272             Iain Sandoe  <iains@gcc.gnu.org>
8273
8274         PR target/48245
8275         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8276
8277 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8278
8279         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8280         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8281         Insert new statements at it in lieu of STMT.
8282         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8283         * tree-vect-stmts.c (vectorizable_store): Likewise.
8284         (vectorizable_load): Likewise.
8285
8286 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
8287
8288         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8289         (divtf3): Ditto.
8290         (multf3): Ditto.
8291         (subtf3): Ditto.
8292
8293 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8294
8295         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8296         unaligned 256bit load/store.
8297         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8298         (*avx_movdqu<avxmodesuffix>): Likewise.
8299
8300 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8301
8302         PR target/48288
8303         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8304         * config/pa/pa.md (iordi3): Use new predicate in expander.
8305         (iorsi3): Likewise.
8306
8307 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
8308
8309         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
8310         FUNCTION_VALUE_REGNO_P): Remove macros.
8311         * config/mips/mips-protos.h (mips_function_value): Remove.
8312         * config/mips/mips.c (mips_function_value): Rename to...
8313         (mips_function_value_1): ... this. Make static.  Handle receiving
8314         the function type in 'fn_decl_or_type' argument.
8315         (mips_function_value, mips_libcall_value,
8316         mips_function_value_regno_p): New function.
8317         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8318         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8319
8320 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8321
8322         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8323         and -mavx256-split-unaligned-store.
8324         (ix86_option_override_internal): Split 32-byte AVX unaligned
8325         load/store by default.
8326         (ix86_avx256_split_vector_move_misalign): New.
8327         (ix86_expand_vector_move_misalign): Use it.
8328
8329         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8330         -mavx256-split-unaligned-store.
8331
8332         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8333         256bit load/store.  Generate unaligned store on misaligned memory
8334         operand.
8335         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8336         256bit load/store.
8337         (*avx_movdqu<avxmodesuffix>): Likewise.
8338
8339         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8340         -mavx256-split-unaligned-store.
8341
8342 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8343
8344         PR target/38598
8345         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8346         Update commentary.
8347
8348 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8349
8350         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8351         opno arguments with an expand_operand.  Use create_input_operand.
8352         (mips_prepare_builtin_target): Delete.
8353         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8354         functions.
8355         (mips_expand_builtin_direct): Use create_output_operand and
8356         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
8357         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
8358         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8359
8360 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
8361
8362         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8363         function.
8364         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8365
8366 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8367
8368         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8369         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
8370         basic blocks and call commit_edge_insertions directly.
8371         (fixup_abnormal_edges): Move from here to...
8372         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
8373         on the edges and return whether some have actually been inserted.
8374         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8375         compensation code.
8376
8377 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
8378
8379         PR rtl-optimization/48144
8380         * sel-sched-ir.c (merge_history_vect): Factor out from ...
8381         (merge_expr_data): ... here.
8382         (av_set_intersect): Rename to av_set_code_motion_filter.
8383         Update all callers.  Call merge_history_vect when an expression
8384         is found in both sets.
8385         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8386
8387 2011-03-26  Alan Modra  <amodra@gmail.com>
8388
8389         * config/rs6000/predicates.md (word_offset_memref_op): Handle
8390         cmodel medium addresses.
8391         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8392         64-bit gpr loads and stores.
8393         (rs6000_secondary_reload_ppc64): New function.
8394         * config/rs6000/rs6000-protos.h: Declare it.
8395         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8396
8397 2011-03-26  Alan Modra  <amodra@gmail.com>
8398
8399         PR target/47487
8400         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8401         GNU Go in traceback table.
8402
8403 2011-03-25  Richard Henderson  <rth@redhat.com>
8404
8405         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8406         if there are exactly 6 operands.
8407         (set_storage_via_setmem): Similarly.
8408
8409 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8410
8411         * collect2.c (write_c_file_stat): Handle backslash
8412         as right-hand directory separator.
8413         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8414         checking just for slash.
8415         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8416         instead of checking for trailing slash.
8417         * gcc.c (record_temp_file): Use filename_cmp instead
8418         of strcmp.
8419         (do_spec_1): Likewise.
8420         (replace_outfile_spec_function): Likewise.
8421         (is_directory): Use filename_ncmp instead of strncmp.
8422         (print_multilib_info): Likewise.
8423         * gcov.c (find_source): Use filename_cmp instead
8424         instead of strcmp.
8425         (make_gcov_file_name): Fix order of slash/backslash
8426         checks.
8427         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8428         (add_standard_paths): Likewise.
8429         * mips-tfile.c (saber_stop): Handle backslash.
8430         * prefix.c (update_path): Use filename_ncmp instead of
8431         strncmp.
8432         * profile.c (output_location): Use filename_cmp instead
8433         of strcmp.
8434         * read-md.c (handle_toplevel_file): Handle backslash.
8435         * tlink.c (frob_extension):  Likewise.
8436         * tree-cfg.c (same_line_p): Use filename_cmp instead of
8437         strcmp.
8438         * tree-dump.c (dequeue_and_dump): Handle backslash.
8439         * tree.c (get_file_function_name): Likewise.
8440         * gengtype.c (read_input_list): Likewise.
8441         (get_file_realbasename): Likewise.
8442         (get_output_file_with_visibility): Use filename_cmp
8443         instead of strcmp.
8444
8445 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
8446
8447         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8448         case to VFPv1.
8449
8450 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8451
8452         * fold-const.c (expr_location_or): New function.
8453         (fold_truth_not_expr): Call it.
8454
8455 2011-03-25  Jeff Law  <law@redhat.com>
8456
8457         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8458         va_end.
8459         * c-family/c-common.c (def_fn_type): Likewise.
8460         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8461         * emit-rtl.c (gen_rtvec): Likewise.
8462         * lto/lto-lang.c (def_fn_type): Likewise.
8463
8464 2011-03-25  Richard Guenther  <rguenther@suse.de>
8465
8466         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8467         also generate copies.
8468         (fini_copy_prop): Handle constant values properly.
8469
8470 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
8471
8472         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8473         mode size instead of bitsize with DWARF2_ADDR_SIZE.
8474         (hash_loc_operands, compare_loc_operands): Handle
8475         DW_OP_GNU_entry_value.
8476
8477 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8478
8479         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8480         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8481         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8482         comment and use macro TARGET_64BIT_MS_ABI instead.
8483         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8484         and change default behavior for 32-bit MS_ABI.
8485         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8486         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8487         32-bit, too.
8488         (ix86_cfun_abi): Likewise.
8489         (ix86_maybe_switch_abi): Adjust comment.
8490         (init_cumulative_args): Check for bit-ness in MS_ABI case.
8491         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8492         instead of checking for SYSV_ABI.
8493         (ix86_nsaved_sseregs): Likewise.
8494         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8495         to 16 bytes.
8496         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8497         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8498         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8499         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8500         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8501
8502 2011-03-25  Richard Guenther  <rguenther@suse.de>
8503
8504         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8505         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8506         (verify_gimple): Remove.
8507         * tree-cfg.c (verify_gimple_call): Merge verification
8508         from verify_stmts.
8509         (verify_gimple_phi): Merge verification from verify_stmts.
8510         (verify_gimple_label): New function.
8511         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8512         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8513         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8514         (verify_stmts): Rename to verify_gimple_in_cfg.
8515         (verify_gimple_in_cfg): New function.
8516         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8517         * tree-ssa.c (verify_ssa): Likewise.
8518         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8519
8520 2011-03-25  Richard Guenther  <rguenther@suse.de>
8521
8522         * passes.c (init_optimization_passes): Add FRE pass after
8523         early SRA.
8524
8525 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
8526             Andrew Stubbs  <ams@codesourcery.com>
8527
8528         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8529         for Cortex-A8.
8530         (arm_movdi_vfp_cortexa8): New pattern.
8531         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8532         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8533         instructions when tuning for Cortex-A8.  Set attribute "arch".
8534         * config/arm/arm.md: Move include arm-tune.md up a bit.
8535         (define_attr "arch"): Add "onlya8" and "nota8" values.
8536         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8537
8538 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8539
8540         PR bootstrap/48282
8541         Revert:
8542         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8543
8544         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8545         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8546         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8547         * passes.c (init_optimization_passes): Move
8548         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8549
8550 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8551
8552         * c-typeck.c (comptypes_internal): Replace target
8553         hook call of comp_type_attributes by version in tree.c file.
8554         * gimple.c (gimple_types_compatible_p_1): Likewise.
8555         * tree-ssa.c (useless_type_conversion_p): Likewise.
8556         * tree.c (build_type_attribute_qual_variant): Likewise.
8557         (attribute_value_equal): New static helper function.
8558         (comp_type_attributes): New function.
8559         (merge_attributes): Use attribute_value_equal for comparison.
8560         (attribute_list_contained): Likewise.
8561         * tree.h (comp_type_attributes): New prototype.
8562
8563 2011-03-25  Richard Guenther  <rguenther@suse.de>
8564
8565         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8566         of complex types at -O0.
8567         (verify_gimple_assign_binary): Likewise.
8568         (verify_gimple_assign_ternary): Likewise.
8569
8570 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8571
8572         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8573         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8574
8575 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8576
8577         PR debug/48041
8578         * dwarf2out.c (output_abbrev_section): Only write table when
8579         abbrev_die_table_in_use > 1.
8580
8581 2011-02-24  Richard Henderson  <rth@redhat.com>
8582
8583         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8584         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8585         (alpha_expand_unaligned_load_words): Use extql.
8586         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8587         (emit_insxl): Handle all modes for consistency.
8588
8589 2011-02-24  Richard Henderson  <rth@redhat.com>
8590
8591         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8592         (alpha_expand_unaligned_load): Likewise.
8593         (alpha_expand_unaligned_store): Likewise.
8594         (alpha_expand_unaligned_load_words): Likewise.
8595         (alpha_expand_unaligned_store_words): Likewise.
8596         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8597         (alpha_split_lock_test_and_set_12): Likewise.
8598         (print_operand, alpha_fold_builtin_extxx): Likewise.
8599         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8600         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8601         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8602         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8603         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8604         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8605         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8606         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8607         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8608         (extwl, extll, extql): Similarly.
8609         (inswh, inslh, insqh): Similarly.
8610         (mskbl, mskwl, mskll, mskql): Similarly.
8611         (mskwh, msklh, mskqh): Similarly.
8612
8613 2011-02-24  Richard Henderson  <rth@redhat.com>
8614
8615         * config/alpha/alpha.md (attribute isa): Add er, ner.
8616         (attribute enabled): Handle them.
8617         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8618
8619 2011-02-24  Richard Henderson  <rth@redhat.com>
8620
8621         * config/alpha/alpha.md (attribute isa): Add vms.
8622         (attribute enabled): Handle it.
8623         (*movsf): Merge *movsf_{nofix,fix,nofp}.
8624         (*movdf): Merge *movdf_{nofix,fix,nofp}.
8625         (*movtf): Rename from *movtf_internal for consistency.
8626         (*movsi): Merge with *movsi_nt_vms.
8627         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8628         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8629         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8630         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8631
8632 2011-02-24  Richard Henderson  <rth@redhat.com>
8633
8634         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8635         (extendqisi2, extendhisi2): Likewise.
8636         (extendqidi2): Simplify BWX/non-BWX expansions.
8637         (extendhidi2): Similarly.
8638
8639 2011-02-24  Richard Henderson  <rth@redhat.com>
8640
8641         * config/alpha/alpha.md (attribute isa): New.
8642         (attribute enabled): New.
8643         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8644         (zero_extendqisi2, zero_extendqidi2): Similarly.
8645         (zero_extendhisi2, zero_extendhidi2): Similarly.
8646         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8647
8648 2011-02-24  Richard Henderson  <rth@redhat.com>
8649
8650         * config/alpha/predicates.md (input_operand): Revert last change;
8651         update comment to mention 32-bit VMS rather than Windows.
8652
8653 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8654
8655         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8656         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8657         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8658         * passes.c (init_optimization_passes): Move
8659         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8660
8661 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8662
8663         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8664
8665 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8666
8667         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8668         correctly.
8669
8670 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
8671
8672         PR debug/48204
8673         * simplify-rtx.c (simplify_const_unary_operation): Call
8674         real_convert when changing mode class with FLOAT_EXTEND.
8675
8676 2011-03-24  Nick Clifton  <nickc@redhat.com>
8677
8678         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8679         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8680         * config/rx/rx.c (rx_option_override): Set align_jumps,
8681         align_loops and align_labels if not set by the user.
8682         (rx_align_for_label): New function.
8683         (rx_max_skip_for_label): New function.
8684         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8685         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8686         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8687         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8688         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8689
8690 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8691
8692         PR rtl-optimization/48263
8693         * optabs.c (expand_binop_directly): Reinstate convert_modes code
8694         and original commutative_p handling.  Use maybe_gen_insn.
8695
8696 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8697
8698         * reload.c (find_reloads_subreg_address): Add address_reloaded
8699         parameter and return true there if the full address has been
8700         reloaded.
8701         (find_reloads_toplev): Pass address_reloaded flag.
8702         (find_reloads_address_1): Don't use address_reloaded parameter.
8703
8704 2011-03-24  Jeff Law  <law@redhat.com>
8705
8706         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8707         unused variable "ann".
8708         (remove_unused_locals): Likewise.
8709
8710         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8711         statement.
8712
8713         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8714         after it is freed.
8715
8716 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8717
8718         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8719         for invalid symbolic addresses.
8720         (s390_secondary_reload): Don't use s390_check_symref_alignment for
8721         larl operands.
8722
8723 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8724
8725         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8726         the argument in calls to fold_truth_not_expr.
8727
8728 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8729
8730         * tree.c (record_node_allocation_statistics): New function.
8731         (make_node_stat, copy_node_stat, build_string): Call it.
8732         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8733         (build1_stat, build_omp_clause): Likewise.
8734
8735 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8736
8737         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8738         last commit.
8739
8740 2011-03-24  Richard Guenther  <rguenther@suse.de>
8741
8742         PR tree-optimization/48271
8743         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8744         blocks that still exist.
8745
8746 2011-03-24  Richard Guenther  <rguenther@suse.de>
8747
8748         PR tree-optimization/48270
8749         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8750         not free datarefs before ddrs.
8751
8752 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8753
8754         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8755         from the address built for a reference with variable offset.
8756
8757 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8758
8759         PR target/48237
8760         * config/i386/i386.md (*movdf_internal_rex64): Do not split
8761         alternatives that can be handled with movq or movabsq insn.
8762         (*movdf_internal): Disable for !TARGET_64BIT.
8763         (*movdf_internal_nointeger): Ditto.
8764         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8765
8766 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8767
8768         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8769         (FUNCTION_ARG_ADVANCE): Likewise.
8770         * tm.texi.in: Change references to them to hook references.
8771         * tm.texi: Regenerate.
8772         * targhooks.c (default_function_arg): Eliminate check for target macro.
8773         (default_function_incoming_arg): Likewise.
8774         (default_function_arg_advance): Likewise.
8775         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8776         (function_arg_advance): Likewise.
8777         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8778
8779 2011-03-24  Richard Guenther  <rguenther@suse.de>
8780
8781         PR middle-end/48269
8782         * tree-object-size.c (addr_object_size): Do not double-account
8783         for MEM_REF offsets.
8784
8785 2011-03-24  Diego Novillo  <dnovillo@google.com>
8786
8787         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
8788         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
8789         (lto_input_data_block): Move from lto-opts.c.  Make extern.
8790         Update all users.
8791         (lto_input_string): Rename from input_string.  Make extern.
8792         Update all users.
8793         * lto-streamer-out.c (lto_output_string_with_length): Rename from
8794         output_string_with_length.
8795         Output 0 to indicate a non-NULL string.  Update all callers to
8796         not emit 0.
8797         (lto_output_string): Rename from output_string.  Make extern.
8798         Update all users.
8799         (lto_output_decl_state_streams): Make extern.
8800         (lto_output_decl_state_refs): Make extern.
8801         * lto-streamer.h (lto_input_string): Declare.
8802         (lto_input_data_block): Declare.
8803         (lto_output_string): Declare.
8804         (lto_output_string_with_length): Declare.
8805         (lto_output_decl_state_streams): Declare.
8806         (lto_output_decl_state_refs): Declare.
8807
8808 2011-03-24  Richard Guenther  <rguenther@suse.de>
8809
8810         PR tree-optimization/46562
8811         * tree.c (build_invariant_address): New function.
8812         * tree.h (build_invariant_address): Declare.
8813         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
8814         a renamed function moved ...
8815         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
8816         Take valueization callback parameter.
8817         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8818         * gimple-fold.h: New file.
8819         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8820         (ccp_fold, fold_const_aggregate_ref,
8821         fold_ctor_reference, fold_nonarray_ctor_reference,
8822         fold_array_ctor_reference, fold_string_cst_ctor_reference,
8823         get_base_constructor): Move ...
8824         * gimple-fold.c: ... here.
8825         (gimple_fold_stmt_to_constant_1): New function
8826         split out from ccp_fold.  Take a valueization callback parameter.
8827         Valueize all operands.
8828         (gimple_fold_stmt_to_constant): New wrapper function.
8829         (fold_const_aggregate_ref_1): New function split out from
8830         fold_const_aggregate_ref.  Take a valueization callback parameter.
8831         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8832         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8833         invariant POINTER_PLUS_EXPRs to invariant form.
8834         (vn_valueize): New function.
8835         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8836         * tree-vrp.c (vrp_valueize): New function.
8837         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8838         to fold statements to constants.
8839         * tree-ssa-pre.c (eliminate): Properly guard propagation of
8840         function declarations.
8841         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8842         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8843
8844 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8845
8846         * config/h8300/predicates.md (jump_address_operand): Fix register
8847         mode check.
8848
8849 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
8850
8851         * doc/invoke.texi (max-stores-to-sink): Document.
8852         * params.h (MAX_STORES_TO_SINK): Define.
8853         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8854         if either vectorization or if-conversion is disabled.
8855         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8856         tree-vect-data-refs.c vect_equal_offsets.
8857         (dr_equal_offsets_p): New function.
8858         (find_data_references_in_bb): Remove static.
8859         * tree-data-ref.h (find_data_references_in_bb): Declare.
8860         (dr_equal_offsets_p): Likewise.
8861         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8862         (vect_drs_dependent_in_basic_block): Update calls to
8863         vect_equal_offsets.
8864         (vect_check_interleaving): Likewise.
8865         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8866         (cond_if_else_store_replacement): Rename to...
8867         (cond_if_else_store_replacement_1): ... this.  Change arguments and
8868         documentation.
8869         (cond_if_else_store_replacement): New function.
8870         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8871         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8872
8873 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
8874
8875         PR target/46934
8876         * config/arm/arm.md (casesi): Use the gen_int_mode() function
8877         to subtract lower bound instead of GEN_INT().
8878
8879 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
8880
8881         PR other/48179
8882         PR other/48221
8883         PR other/48234
8884         * doc/extend.texi (Alignment): Move section to match order in TOC.
8885         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8886         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8887
8888 2011-03-23  Jeff Law  <law@redhat.com>
8889
8890         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8891         before removing the edge.
8892
8893         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8894         it may have been freed by redirect_branch_edge or
8895         redirect_edge_succ_nodup.
8896
8897 2011-03-23  Richard Guenther  <rguenther@suse.de>
8898
8899         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
8900         (check_va_list_escapes): Likewise.
8901         (check_all_va_list_escapes): Likewise.
8902
8903 2011-03-23  Richard Guenther  <rguenther@suse.de>
8904
8905         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8906         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8907         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8908         (alias.o): Likewise.
8909         (ipa-type-escape.o): Remove.
8910         (ipa-struct-reorg.o): Likewise.
8911         (GTFILES): Remove ipa-struct-reorg.c.
8912         * alias.c: Do not include ipa-type-escape.h.
8913         * tree-ssa-alias.c: Likewise.
8914         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8915         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8916         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8917         and ipa-type-escape passes.
8918         * tree-pass.h (pass_ipa_type_escape): Remove.
8919         (pass_ipa_struct_reorg): Likewise.
8920         * ipa-struct-reorg.h: Remove.
8921         * ipa-struct-reorg.c: Likewise.
8922         * ipa-type-escape.h: Likewise.
8923         * ipa-type-escape.c: Likewise.
8924         * doc/invoke.texi (-fipa-struct-reorg): Remove.
8925         (--param struct-reorg-cold-struct-ratio): Likewise.
8926         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8927         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8928         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8929
8930 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8931
8932         * config/s390/2084.md: Enable all insn reservations also for z9_ec
8933         cpu attribute value.
8934         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8935         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8936         * config/s390/s390.c (processor_flags_table): New constant array.
8937         (s390_handle_arch_option): Remove.
8938         (s390_handle_option): Remove s390_handle_arch_option invocations
8939         and OPT_mwarn_framesize_ handling.
8940         (s390_option_override): Remove s390_handle_arch_option invocation.
8941         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8942         warnings.
8943         * config/s390/s390.md (cpu attribute): Add z9_ec value.
8944         * config/s390/s390.opt (s390_tune, s390_arch)
8945         (march=): Replace s390_arch_option enum and values with
8946         processor_type.  Set variable name to s390_arch.  Set
8947         initialization value.
8948         (mtune=): Replace s390_arch_option with processor_type.  Set
8949         variable name to s390_tune.  Set initialization value.
8950
8951 2011-03-23  Julian Brown  <julian@codesourcery.com>
8952
8953         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8954         accesses which are not naturally aligned.
8955
8956 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8957
8958         PR target/47553
8959         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8960
8961 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8962
8963         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8964         parameter from "int" to "enum insn_code".
8965         (expand_operand_type): New enum.
8966         (expand_operand): New structure.
8967         (create_expand_operand): New function.
8968         (create_fixed_operand, create_output_operand): Likewise
8969         (create_input_operand, create_convert_operand_to): Likewise.
8970         (create_convert_operand_from, create_address_operand): Likewise.
8971         (create_integer_operand): Likewise.
8972         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8973         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8974         (expand_insn, expand_jump_insn): Likewise.
8975         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8976         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8977         (expand_movstr, expand_builtin___clear_cache): Likewise.
8978         (expand_builtin_lock_release): Likewise.
8979         * explow.c (allocate_dynamic_stack_space): Likewise.
8980         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
8981         and use the default handling in that case.
8982         * expmed.c (check_predicate_volatile_ok): Delete.
8983         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8984         (emit_cstore): Likewise.
8985         * expr.c (emit_block_move_via_movmem): Likewise.
8986         (set_storage_via_setmem, expand_assignment): Likewise.
8987         (emit_storent_insn, try_casesi): Likewise.
8988         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
8989         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8990         (expand_vec_shift_expr, expand_binop_directly): Likewise.
8991         (expand_twoval_unop, expand_twoval_binop): Likewise.
8992         (expand_unop_direct, emit_indirect_jump): Likewise.
8993         (emit_conditional_move, vector_compare_rtx): Likewise.
8994         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8995         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8996         (expand_sync_lock_test_and_set): Likewise.
8997         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
8998         (emit_unop_insn): Likewise.
8999         (expand_copysign_absneg): Change icode to an insn_code.
9000         (create_convert_operand_from_type): New function.
9001         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
9002         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9003         (expand_insn, expand_jump_insn): Likewise.
9004         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
9005         than const_int_operand for operand 2.
9006
9007 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9008
9009         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
9010         if possible.
9011
9012 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9013
9014         * emit-rtl.c (emit_pattern_before_noloc): New function.
9015         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
9016         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
9017         (emit_pattern_after_noloc): New function.
9018         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
9019         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
9020
9021 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9022
9023         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
9024         (__ffsDI2): Likewise.
9025
9026 2011-03-22  Richard Henderson  <rth@redhat.com>
9027
9028         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
9029         of !TARGET_ABI_OPEN_VMS.
9030         (alpha_trampoline_init, alpha_start_function): Likewise.
9031         (alpha_expand_epilogue, alpha_file_start): Likewise.
9032         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
9033         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
9034         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
9035         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
9036         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
9037
9038 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9039
9040         * config/s390/s390-opts.h: New.
9041         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
9042         s390_arch_flags, s390_warn_framesize, s390_stack_size,
9043         s390_stack_guard): Remove.
9044         (s390_handle_arch_option): Return void.  Take enum
9045         s390_arch_option value instead of string and searching array.
9046         (s390_handle_option): Don't assert that global structures are in
9047         use.  Access variables via opts pointer.  Use error_at.  Don't use
9048         sscanf for -mstack-guard= or -mstack-size=.  Update call to
9049         s390_handle_arch_option.
9050         (s390_option_override): Update call to s390_handle_arch_option.
9051         (s390_emit_prologue): Use %d format for s390_stack_size in
9052         diagnostic.  Use %wd for HOST_WIDE_INT.
9053         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
9054         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
9055         * config/s390/s390.opt (config/s390/s390-opts.h): New
9056         HeaderInclude entry.
9057         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
9058         s390_arch_flags, s390_warn_framesize): New Variable entries.
9059         (s390_arch_option): New Enum and EnumValue entries.
9060         (march=): Use Enum instead of Var.
9061         (mstack-guard=, mstack-size=): Use UInteger and Var.
9062         (mtune=): Use Enum.
9063
9064 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9065
9066         * config/score/score.c (score_handle_option): Don't assert that
9067         global structures are in use.  Access target_flags via opts
9068         pointer.  Use value of -march= option to determine target_flags
9069         settings.
9070         * config/score/score.opt (march=): Use Enum.
9071         (score_arch): New Enum and EnumValue entries.
9072
9073 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9074
9075         * config/mep/mep.c (option_mtiny_specified): Remove.
9076         (mep_option_override): Move register handling for -mivc2 from
9077         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
9078         instead of option_mtiny_specified.
9079         (mep_handle_option): Access target_flags via opts pointer.  Don't
9080         assert that global structures are in use.  Defer part of -mivc2
9081         handling and move it to mep_option_override.
9082         * config/mep/mep.opt (IVC2): New Mask entry.
9083         (mivc2): Use Var and Defer instead of Mask.
9084
9085 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9086
9087         * config/v850/v850-opts.h: New.
9088         * config/v850/v850.c (small_memory): Replace with
9089         small_memory_physical_max array.  Make that array static const.
9090         (v850_handle_memory_option): Take integer value of argument.  Take
9091         gcc_options pointer, option text and location.  Return void.
9092         Update for changes to small memory structures.
9093         (v850_handle_option): Access target_flags via opts pointer.  Don't
9094         assert that global structures are in use.  Update calls to
9095         v850_handle_memory_option.
9096         (v850_encode_data_area): Update references to small memory settings.
9097         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
9098         (enum small_memory_type): Move to v850-opts.h.
9099         * config/v850/v850.opt (config/v850/v850-opts.h): New
9100         HeaderInclude entry.
9101         (small_memory_max): New Variable entry.
9102         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
9103         (mtda, mzda): Likewise.
9104
9105 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9106
9107         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9108         pointer.  Don't assert that global structures are in use.
9109
9110 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9111
9112         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9113         via opts pointer.  Don't assert that global structures are in use.
9114
9115 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9116
9117         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9118         (munix=93): Use Var.
9119         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9120         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9121         * config/pa/pa-opts.h: New.
9122         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9123         (pa_handle_option): Don't assert that global structures are in
9124         use.  Access target_flags via opts pointer.  Don't handle
9125         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9126         OPT_munix_98 here.
9127         (pa_option_override): Handle deferred OPT_mfixed_range_.
9128
9129 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9130
9131         * config/mn10300/mn10300-opts.h: New.
9132         * config/mn10300/mn10300.c (mn10300_processor,
9133         mn10300_tune_string): Remove.
9134         (mn10300_handle_option): Don't assert that global structures are
9135         in use.  Access mn10300_processor via opts pointer.  Don't handle
9136         OPT_mtune_ here.
9137         * config/mn10300/mn10300.h (enum processor_type): Move to
9138         mn10300-opts.h.
9139         (mn10300_processor): Remove.
9140         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9141         HeaderInclude entry.
9142         (mn10300_processor): New Variable entry.
9143         (mtune=): Use Var.
9144
9145 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9146
9147         * config/microblaze/microblaze.c: Don't include opts.h.
9148         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9149         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9150         (mno-clearbss): Use Var and Warn.
9151
9152 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9153
9154         * config/m32r/m32r-opts.h: New.
9155         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9156         (m32r_handle_option): Don't assert that global structures are in
9157         use.  Access target_flags and m32r_cache_flush_func via opts
9158         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
9159         OPT_mno_flush_trap here.
9160         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9161         include of m32r-opts.h.
9162         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9163         HeaderInclude entry.
9164         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9165         (mmodel=): Use Enum and Var.
9166         (m32r_model): New Enum and EnumValue entries.
9167         (mno-flush-trap): Use Var.
9168         (msdata=): Use Enum and Var.
9169         (m32r_sdata): New Enum and EnumValue entries.
9170
9171 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9172
9173         * config/m32c/m32c.c: Don't include opts.h.
9174         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9175         m32c_handle_option): Remove.
9176         (m32c_option_override): Check global_options_set.x_target_memregs
9177         instead of target_memregs_set.
9178         * config/m32c/m32c.h (target_memregs): Remove.
9179         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9180         variable.
9181
9182 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9183
9184         * config/iq2000/iq2000-opts.h: New.
9185         * config/iq2000/iq2000.c: Don't include opts.h.
9186         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
9187         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
9188         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9189         HeaderInclude entry.
9190         (iq2000_tune): New Variable entry.
9191         (march=): Add comment.  Use Enum.
9192         (iq2000_arch): New Enum and EnumValue entries.
9193         (mcpu=): Use Enum and Var.
9194         (iq2000_tune): New Enum and EnumValue entries.
9195
9196 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9197
9198         * config/ia64/ia64-opts.h: New.
9199         * config/ia64/ia64.c (ia64_tune): Remove.
9200         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9201         here.  Use error_at.
9202         (ia64_option_override): Handle deferred OPT_mfixed_range_.
9203         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9204         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9205         HeaderInclude entry.
9206         (ia64_tune): New Variable entry.
9207         (mfixed-range=): Use Defer and Var.
9208         (mtune=): Use Enum and Var.
9209         (ia64_tune): New Enum and EnumValue entries.
9210
9211 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9212
9213         * config/frv/frv-opts.h: New.
9214         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9215         frv-opts.h.
9216         (frv_cpu_type): Remove.
9217         * config/frv/frv.c: Don't include opts.h.
9218         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
9219         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
9220         (frv_cpu_type): New Variable entry.
9221         (frv_cpu): New Enum and EnumValue entries.
9222
9223 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9224
9225         * config/cris/cris.c (cris_handle_option): Access target_flags via
9226         opts pointer.  Don't assert that global structures are in use.
9227         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9228         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9229
9230 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9231
9232         * config/bfin/bfin-opts.h: New.
9233         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9234         bfin_si_revision, bfin_workarounds): Remove.
9235         (bfin_cpus): Make static const.
9236         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9237         not bfin_lib_id_given.
9238         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
9239         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
9240         pointer. Use error_at.  Don't assert that global structures are in use.
9241         * config/bfin/bfin.h: Include bfin-opts.h.
9242         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9243         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9244         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9245         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9246         entries.
9247
9248 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9249
9250         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9251         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9252         or -msoft-float here.
9253         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9254         -msoft-float and -mhard-float.
9255         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
9256         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9257         msoft-float.
9258         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9259         -msoft-float.
9260         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9261         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9262         not mhard-float.
9263         (LIBGCC_SPEC): Don't handle -msoft-float.
9264         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9265         -mhard-float.
9266         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9267         msoft-float.
9268         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9269         -mfloat-abi=*, not -msoft-float and -mhard-float.
9270         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9271         -msoft-float.
9272         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9273         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9274         mhard-float and msoft-float.
9275         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9276         mfloat-abi=soft in comments, not mhard-float and msoft-float.
9277         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9278         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9279         mhard-float.
9280         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9281         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9282         msoft-float.
9283         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9284         not mhard-float.
9285         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9286         not msoft-float.
9287
9288 2011-03-22  Richard Henderson  <rth@redhat.com>
9289
9290         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9291         TARGET_ABI_WINDOWS_NT.
9292         (alpha_output_function_end_prologue): Likewise.
9293         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9294         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9295         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9296         (trap, *movsi_nt_vms): Likewise.
9297         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9298         (*tablejump_osf_nt_internal): Remove.
9299         * config/alpha/predicates.md (input_operand): Only test Pmode.
9300
9301 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9302
9303         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9304         via opts pointer.  Use error_at.  Don't assert that global
9305         structures are in use.
9306
9307 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9308
9309         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9310         (ix86_handle_option): Access ix86_isa_flags and
9311         ix86_isa_flags_explicit via opts pointer.  Don't assert that
9312         global structures are in use.
9313         (ix86_function_specific_save, ix86_function_specific_restore):
9314         Update ix86_isa_flags_explicit field name.
9315         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
9316         (ix86_isa_flags_explicit): Rename TargetSave entry to
9317         x_ix86_isa_flags_explicit.
9318
9319 2011-03-22  Richard Henderson  <rth@redhat.com>
9320
9321         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9322         (alpha_option_override, direct_return): Likewise.
9323         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9324         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9325         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9326         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9327         (alpha_expand_epilogue, alpha_end_function): Likewise.
9328         (alpha_init_libfuncs): Likewise.
9329         (struct machine_function): Remove unicosmk members.
9330         (print_operand) ['t']: Remove.
9331         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9332         unicosmk_output_module_name, unicosmk_output_common,
9333         current_section_align, unicosmk_output_text_section_asm_op,
9334         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9335         unicosmk_section_type_flags, unicosmk_unique_section,
9336         unicosmk_asm_named_section, unicosmk_insert_attributes,
9337         unicosmk_output_align, unicosmk_defer_case_vector,
9338         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9339         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9340         unicosmk_output_ssib, unicosmk_add_call_info_word,
9341         unicosmk_extern_head, unicosmk_output_default_externs,
9342         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9343         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9344         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9345         * config/alpha/alpha-protos.h: Update.
9346         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9347         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9348         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9349         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9350         (*mulsi_se, mulvsi3): Likewise.
9351         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9352         (*divmodsi_internal, call, call_value, realign): Likewise.
9353         (moddi3, umoddi3): Likewise; remove duplicate expander.
9354         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9355         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9356         (*movdi_nofix): Remove r/U alternative.
9357         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9358         * config/alpha/constraints.md ("U"): Remove.
9359         * config/alpha/predicates.md (call_operand"): Don't test
9360         TARGET_ABI_UNICOSMK.
9361
9362 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9363
9364         * target.def (handle_option): Take gcc_options and
9365         cl_decoded_option pointers and location_t.
9366         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9367         * doc/tm.texi: Regenerate.
9368         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9369         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9370         * lto-opts.c (lto_reissue_options): Generate option structure for
9371         targetm.handle_option call.
9372         * opts.c (target_handle_option): Update call to
9373         targetm.handle_option.  Remove assertions about values now passed
9374         down to hook.
9375         * targhooks.c (default_target_handle_option): New.
9376         * targhooks.h (default_target_handle_option): Declare.
9377         * config/alpha/alpha.c: Include opts.h.
9378         (alpha_handle_option): Update to new hook interface.
9379         * config/arm/arm.c: Include opts.h.
9380         (arm_handle_option): Update to new hook interface.
9381         * config/arm/t-arm (arm.o): Update dependencies.
9382         * config/bfin/bfin.c: Include opts.h.
9383         (bfin_handle_option): Update to new hook interface.
9384         * config/cris/cris.c: Include opts.h.
9385         (cris_handle_option): Update to new hook interface.
9386         * config/frv/frv.c: Include opts.h.
9387         (frv_handle_option): Update to new hook interface.
9388         * config/i386/i386.c: Include opts.h.
9389         (ix86_handle_option): Update to new hook interface.
9390         (ix86_valid_target_attribute_inner_p): Generate option structure
9391         for call to ix86_handle_option.
9392         * config/i386/t-i386 (i386.o): Update dependencies.
9393         * config/ia64/ia64.c: Include opts.h.
9394         (ia64_handle_option): Update to new hook interface.
9395         * config/ia64/t-ia64 (ia64.o): Update dependencies.
9396         * config/iq2000/iq2000.c: Include opts.h.
9397         (iq2000_handle_option): Update to new hook interface.
9398         * config/m32c/m32c.c: Include opts.h.
9399         (m32c_handle_option): Update to new hook interface.
9400         * config/m32r/m32r.c: Include opts.h.
9401         (m32r_handle_option): Update to new hook interface.
9402         * config/m68k/m68k.c: Include opts.h.
9403         (m68k_handle_option): Update to new hook interface.
9404         * config/mep/mep.c: Include opts.h.
9405         (mep_handle_option): Update to new hook interface.
9406         * config/microblaze/microblaze.c: Include opts.h.
9407         (microblaze_handle_option): Update to new hook interface.
9408         * config/mips/mips.c: Include opts.h.
9409         (mips_handle_option): Update to new hook interface.
9410         * config/mn10300/mn10300.c: Include opts.h.
9411         (mn10300_handle_option): Update to new hook interface.
9412         * config/pa/pa.c: Include opts.h.
9413         (pa_handle_option): Update to new hook interface.
9414         * config/pdp11/pdp11.c: Include opts.h.
9415         (pdp11_handle_option): Update to new hook interface.
9416         * config/rs6000/rs6000.c: Include opts.h.
9417         (rs6000_handle_option): Update to new hook interface.
9418         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9419         * config/rx/rx.c: Include opts.h.
9420         (rx_handle_option): Update to new hook interface.
9421         * config/s390/s390.c: Include opts.h.
9422         (s390_handle_option): Update to new hook interface.
9423         * config/score/score.c: Include opts.h.
9424         (score_handle_option): Update to new hook interface.
9425         * config/sh/sh.c: Include opts.h.
9426         (sh_handle_option): Update to new hook interface.
9427         * config/sparc/sparc.c: Include opts.h.
9428         (sparc_handle_option): Update to new hook interface.
9429         * config/v850/v850.c: Include opts.h.
9430         (v850_handle_option): Update to new hook interface.
9431
9432 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9433
9434         * gcc.c (driver_unknown_option_callback): Only permit and save
9435         unknown -Wno- options.
9436         (driver_wrong_lang_callback): Save options directly instead of via
9437         driver_unknown_option_callback.
9438
9439 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9440
9441         * combine.c (simplify_set): Try harder to find the best CC mode when
9442         simplifying a nested COMPARE on the RHS.
9443
9444 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9445
9446         * config/alpha/gnu.h: Remove.
9447         * config/arc: Remove directory.
9448         * config/arm/netbsd.h: Remove.
9449         * config/arm/t-pe: Remove.
9450         * config/crx: Remove directory.
9451         * config/i386/netbsd.h: Remove.
9452         * config/m68hc11: Remove directory.
9453         * config/m68k/uclinux-oldabi.h: Remove.
9454         * config/mcore/mcore-pe.h: Remove.
9455         * config/mcore/t-mcore-pe: Remove.
9456         * config/netbsd-aout.h: Remove.
9457         * config/rs6000/gnu.h: Remove.
9458         * config/sh/sh-symbian.h: Remove.
9459         * config/sh/symbian-base.c: Remove.
9460         * config/sh/symbian-c.c: Remove.
9461         * config/sh/symbian-cxx.c: Remove.
9462         * config/sh/symbian-post.h: Remove.
9463         * config/sh/symbian-pre.h: Remove.
9464         * config/sh/t-symbian: Remove.
9465         * config/svr3.h: Remove.
9466         * config/vax/netbsd.h: Remove.
9467         * config.build: Don't handle i[34567]86-*-pe.
9468         * config.gcc: Remove handling of deprecations for most deprecated
9469         targets.
9470         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9471         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9472         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9473         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9474         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9475         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9476         Remove cases.
9477         * config.host: Don't handle i[34567]86-*-pe.
9478         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9479         (ASM_SPEC32): Don't handle -mcall-gnu.
9480         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9481         -mcall-gnu.
9482         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9483         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9484         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9485         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9486         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9487         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9488         conditional on SYMBIAN.
9489         * configure.ac: Don't handle powerpc*-*-gnu*.
9490         * configure: Regenerate.
9491         * doc/extend.texi (interrupt attribute): Don't mention CRX.
9492         * doc/install-old.texi (m6811, m6812): Don't mention.
9493         * doc/install.texi (arc-*-elf*): Don't document multilib option.
9494         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9495         (m68k-uclinuxoldabi): Don't mention.
9496         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9497         Remove.
9498         (-mcall-gnu): Remove.
9499         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9500         families): Remove constraint documentation.
9501
9502 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
9503
9504         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9505         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9506         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9507
9508 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9509
9510         PR target/48226
9511         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9512         vector when peeking at the next token for vector, don't expand the
9513         keywords.
9514
9515 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
9516
9517         * config/avr/avr-protos.h (expand_epilogue): Change prototype
9518         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9519         * config/avr/avr.c (init_cumulative_args)
9520         (avr_function_arg_advance): Use it.
9521         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9522         sibcall epilogues.
9523         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9524         (avr_function_ok_for_sibcall): ...this new function.
9525         (avr_lookup_function_attribute1): New static Function.
9526         (avr_naked_function_p, interrupt_function_p)
9527         (signal_function_p, avr_OS_task_function_p)
9528         (avr_OS_main_function_p): Use it.
9529         * config/avr/avr.md ("sibcall", "sibcall_value")
9530         ("sibcall_epilogue"): New expander.
9531         ("*call_insn", "*call_value_insn"): New insn.
9532         ("call_insn", "call_value_insn"): Remove
9533         ("call", "call_value", "epilogue"): Change expander to handle
9534         sibling calls.
9535
9536 2011-03-21  Nick Clifton  <nickc@redhat.com>
9537
9538         * doc/invoke.texi (Overall Options): Move closing brace to end of
9539         options list.
9540         (Optimization Options): Add missing @gol.
9541         (Directory Options): Likewise.
9542         (i386 and x86-64 Options): Likewise.
9543         (RS6000 and PowerPC Options): Likewise.
9544         (i386 and x86-64 Windows Options): Likewise.
9545         (V850 Options): Add text missing from descriptions.
9546
9547 2011-03-22  Richard Henderson  <rth@redhat.com>
9548
9549         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9550         (avr_incoming_return_addr_rtx): New.
9551         (emit_push_byte): New.
9552         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
9553         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
9554         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
9555         (emit_pop_byte): New.
9556         (expand_epilogue): Use it.  Pop frame pointer by bytes.
9557         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9558         (INCOMING_RETURN_ADDR_RTX): New.
9559         (INCOMING_FRAME_SP_OFFSET): New.
9560         (ARG_POINTER_CFA_OFFSET): New.
9561         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9562         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9563         (pophi): Remove.
9564
9565         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9566
9567 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9568
9569         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9570         (FUNCTION_ARG_ADVANCE): Likewise.
9571         * tm.texi.in: Change references to them to hook references.
9572         * tm.texi: Regenerate.
9573         * targhooks.c (default_function_arg): Eliminate check for target
9574         macro.
9575         (default_function_incoming_arg): Likewise.
9576         (default_function_arg_advance): Likewise.
9577         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9578         (function_arg_advance): Likewise.
9579         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9580
9581 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9582
9583         * tree.c (build_call_1): New function.
9584         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9585
9586 2011-03-22  Richard Guenther  <rguenther@suse.de>
9587
9588         PR tree-optimization/48228
9589         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9590         for single-arg PHIs.
9591
9592 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
9593
9594         PR rtl-optimization/48143
9595         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9596         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9597         sse2_cvtps2pd): Likewise.
9598
9599 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9600
9601         * recog.c (canonicalize_change_group): Use validate_unshare_change.
9602
9603 2011-03-22  Richard Guenther  <rguenther@suse.de>
9604
9605         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9606         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9607         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9608         and REALIGN_LOAD_EXPR.
9609         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9610         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9611         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9612         DOT_PROD_EXPR case ...
9613         (expand_expr_real_2): ... here.
9614         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9615         and REALIGN_LOAD_EXPR.
9616         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9617         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9618         (vect_create_epilog_for_reduction): Likewise.
9619         (vectorizable_reduction): Likewise.
9620         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9621         * tree-vect-stmts.c (vectorizable_load): Likewise.
9622
9623 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9624
9625         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9626
9627 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9628
9629         * config/s390/s390.c (s390_delegitimize_address): Fix offset
9630         handling for PLTOFF/GOTOFF.
9631
9632 2011-03-22  Nick Clifton  <nickc@redhat.com>
9633
9634         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9635         trailing backslash from the end of the macro definition.
9636
9637 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9638
9639         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9640         and PLT unspecs.
9641
9642 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
9643
9644         * expr.h (prepare_operand): Move to...
9645         * optabs.h (prepare_operand): ...here and change the insn code
9646         parameter from "int" to "enum insn_code".
9647         (insn_operand_matches): Declare.
9648         * expr.c (init_expr_target): Use insn_operand_matches.
9649         (compress_float_constant): Likewise.
9650         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9651         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9652         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
9653         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9654         Likewise.
9655         (gen_cond_trap): Likewise.
9656         (prepare_operand): Likewise.  Change icode to an insn_code.
9657         (insn_operand_matches): New function.
9658         * reload.c (find_reloads_address_1): Use insn_operand_matches.
9659         * reload1.c (gen_reload): Likewise.
9660         * targhooks.c (default_secondary_reload): Likewise.
9661
9662 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9663
9664         * config/alpha/alpha.md (unspec): New define_c_enum.
9665         (unspecv): Ditto.
9666
9667 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9668
9669         PR debug/48214
9670         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9671         between a call and its CALL_ARG_LOCATION note.
9672
9673 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
9674
9675         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9676
9677 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9678
9679         PR c/42544
9680         PR c/48197
9681         * c-common.c (shorten_compare): If primopN is first sign-extended
9682         to opN and then zero-extended to result type, set primopN to opN.
9683
9684 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
9685
9686         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9687         for barrier handlers.
9688
9689 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9690
9691         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9692         UNSPEC constants to be in the unspec enumeration, and redefine
9693         all UNSPECV constants to be in the unspecv enumeration, so that
9694         dumps print which unspec/unspec_volatile this is.
9695         * config/rs6000/vector.md (UNSPEC_*): Ditto.
9696         * config/rs6000/paired.md (UNSPEC_*): Ditto.
9697         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9698         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9699         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9700
9701         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9702         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9703         UNSPECV_LWSYNC, since these are used as unspec_volatile.
9704         * config/rs6000/sync.md (isync, lwsync): Ditto.
9705
9706 2011-03-21  Richard Guenther  <rguenther@suse.de>
9707
9708         * params.def (lto-min-partition): Fix typo.
9709
9710 2011-03-21  Richard Guenther  <rguenther@suse.de>
9711
9712         PR c/47939
9713         * c-decl.c (grokdeclarator): Drop to the main variant only
9714         for array types.  Drop flag_gen_aux_info check.
9715
9716 2011-03-21  Richard Guenther  <rguenther@suse.de>
9717
9718         PR translation/47911
9719         * params.def (lto-partitions): Fix typo.
9720         (lto-min-partition): Fix wording.
9721
9722 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
9723
9724         * config/rs6000/t-freebsd: Remove duplication from file.
9725
9726 2011-03-21  Richard Guenther  <rguenther@suse.de>
9727
9728         PR middle-end/47661
9729         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9730
9731 2011-03-21  Richard Guenther  <rguenther@suse.de>
9732
9733         PR lto/48210
9734         * params.def (lto-partitions): Require at least 1 partition.
9735
9736 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9737
9738         * gthr-solaris.h: Remove.
9739         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9740         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9741         (LIB_SPEC): Likewise.
9742         * config/sol2.opt (threads): Remove.
9743         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
9744         (sparc*-*-solaris2*): Likewise.
9745         * configure.ac (enable_threads): Enable solaris support.
9746         * configure: Regenerate.
9747         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
9748         * doc/install.texi (Configuration, --enable-threads=lib): Remove
9749         solaris.
9750
9751 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9752
9753         * config.gcc: Obsolete *-*-solaris2.8*.
9754         * doc/install.texi (Specific, *-*-solaris2*): Document it.
9755
9756 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9757
9758         PR bootstrap/48135
9759         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9760         reference.  Solaris 8 perl works.
9761
9762 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9763
9764         PR bootstrap/48135
9765         * doc/install.texi (Prerequisites): Move jar etc. up.
9766         Explain support library version requirements.
9767
9768 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9769
9770         PR bootstrap/48135
9771         * doc/install.texi (Prerequisites): Move Perl to build
9772         requirements.  Always necessary on Solaris 2 with Sun ld.
9773
9774 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9775
9776         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9777         binutils 2.21.
9778         (Specific, i?86-*-solaris2.[89]): Likewise.
9779         (Specific, i?86-*-solaris2.10): Likewise.
9780         (Specific, mips-sgi-irix6): Likewise.
9781         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9782         Update for binutils 2.21.
9783
9784 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9785
9786         * configure.ac (gcc_cv_lto_plugin): Fix typo.
9787         Allow -fuse-linker-plugin for non-default plugin linker.
9788         * configure: Regenerate.
9789
9790 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9791
9792         PR bootstrap/48167
9793         * gengtype.c (files_rules): Added rule for cp/parser.h.
9794
9795 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9796
9797         PR target/48213
9798         * config/s390/s390.c (s390_delegitimize_address): Don't call
9799         lowpart_subreg if orig_x has BLKmode.
9800
9801 2011-03-21  Kai Tietz  <ktietz@redhat.com>
9802
9803         PR target/12171
9804         * doc/plugins.texi: Adjust documentation for plugin register_callback.
9805         * tree.h (attribute_spec): Add new member affects_type_identity.
9806         * attribs.c (empty_attribute_table): Adjust attribute_spec
9807         initializers.
9808         * config/alpha/alpha.c: Likewise.
9809         * config/arc/arc.c: Likewise.
9810         * config/arm/arm.c: Likewise.
9811         * config/avr/avr.c: Likewise.
9812         * config/bfin/bfin.c: Likewise.
9813         * config/crx/crx.c: Likewise.
9814         * config/darwin.h: Likewise.
9815         * config/h8300/h8300.c: Likewise.
9816         * config/i386/cygming.h: Likewise.
9817         * config/i386/i386.c: Likewise.
9818         * config/ia64/ia64.c: Likewise.
9819         * config/m32c/m32c.c: Likewise.
9820         * config/m32r/m32r.c: Likewise.
9821         * config/m68hc11/m68hc11.c: Likewise.
9822         * config/m68k/m68k.c: Likewise.
9823         * config/mcore/mcore.c: Likewise.
9824         * config/mep/mep.c: Likewise.
9825         * config/microblaze/microblaze.c: Likewise.
9826         * config/mips/mips.c: Likewise.
9827         * config/rs6000/rs6000.c: Likewise.
9828         * config/rx/rx.c: Likewise.
9829         * config/sh/sh.c: Likewise.
9830         * config/sol2.h: Likewise.
9831         * config/sparc/sparc.c: Likewise.
9832         * config/spu/spu.c: Likewise.
9833         * config/stormy16/stormy16.c: Likewise.
9834         * config/v850/v850.c: Likewise.
9835
9836 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
9837
9838         * simplify-rtx.c (simplify_binary_operation_1): Handle
9839         (xor (and A B) C) case when B and C are both constants.
9840
9841 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
9842
9843         * tree-dfa.c (add_referenced_var): Fix typo in comment.
9844
9845 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
9846
9847         PR bootstrap/48168
9848         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9849
9850 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
9851
9852         PR rtl-optimization/48156
9853         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9854         assume df and df_lr are not NULL.
9855
9856 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9857
9858         PR debug/48023
9859         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9860         between a call and its CALL_ARG_LOCATION note.
9861
9862 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
9863
9864         PR debug/48178
9865         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9866         between a call and its corresponding CALL_ARG_LOCATION note.
9867
9868 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
9869
9870         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9871         instead of loop. Use HARD_REGISTER_NUM_P predicate.
9872         * haifa-sched.c (setup_ref_regs): Ditto.
9873         * caller-save.c (add_used_regs_1): Ditto.
9874         * dse.c (look_for_hardregs): Ditto.
9875         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9876         * sched-rgn.c (check_live_1): Ditto.
9877
9878 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9879
9880         * c-decl.c (diagnose_mismatched_decls): Give an error for
9881         redefining a typedef with variably modified type.
9882
9883 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9884
9885         * c-decl.c (grokfield): Don't allow typedefs for structures or
9886         unions with no tag by default.
9887         * doc/extend.texi (Unnamed Fields): Update.
9888
9889 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
9890
9891         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9892         Rewrite using indirect functions.
9893         (lwp_slwpcb): Ditto.
9894         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9895         (avx_vinsertf128<mode>): Ditto.
9896
9897 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9898
9899         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9900         unspecs.
9901
9902 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9903
9904         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9905         splitting between a call and its corresponding CALL_ARG_LOCATION note.
9906
9907 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9908
9909         PR rtl-optimization/48170
9910         * gcse.c (hoist_code): Remove bogus asserts.
9911
9912 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
9913
9914         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9915         computation for prologue/epilogue.
9916
9917 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9918
9919         * Makefile.in (check-consistency): Remove.
9920
9921 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
9922
9923         PR debug/48176
9924         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9925         arange_table_in_use is 0, but either text_section_used or
9926         cold_text_section_used is true.  Don't call it if
9927         !info_section_emitted.
9928
9929 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
9930
9931         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9932         FUNCTION_VALUE_REGNO_P): Remove.
9933         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9934         Remove.
9935         * config/avr/avr.c (avr_ret_register): Make static inline.
9936         (avr_function_value_regno_p): New function.
9937         (avr_libcall_value): Make static. Add 'func' argument.
9938         (avr_function_value): Make static. Rename 'func' argument to
9939         'fn_decl_or_type', forward it to avr_libcall_value. Call
9940         avr_ret_register function instead of RET_REGISTER macro.
9941         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9942
9943 2011-03-18  Jason Merrill  <jason@redhat.com>
9944
9945         PR c++/23372
9946         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9947
9948 2011-03-18  Richard Guenther  <rguenther@suse.de>
9949
9950         * doc/install.texi (--enable-gold): Remove.
9951         (--with-plugin-ld): Document.
9952         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9953
9954 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
9955
9956         PR middle-end/47790
9957         * expr.c (optimize_bitfield_assignment_op): Revamp to work
9958         again after expansion changes.
9959
9960 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
9961
9962         * combine.c (try_combine): Do simplification only call of
9963         subst() on i2 even when i1 is present. Update comments.
9964
9965 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9966
9967         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9968         and UNSPEC_PCREL_SYMOFF.
9969
9970 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9971
9972         * config/s390/s390.md: Use define_c_enum for the unspec constant
9973         definitions.
9974
9975 2011-03-18  Richard Henderson  <rth@redhat.com>
9976             Jakub Jelinek  <jakub@redhat.com>
9977
9978         PR bootstrap/48161
9979         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9980         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9981
9982 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9983
9984         PR middle-end/47725
9985         * combine.c (cant_combine_insn_p): Don't check zero/sign
9986         extended hard registers.
9987
9988 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9989
9990         PR middle-end/47725
9991         * combine.c (cant_combine_insn_p): Check zero/sign extended
9992         hard registers.
9993
9994 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
9995
9996         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9997         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9998         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9999         Change return type to bool.
10000         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10001
10002 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10003
10004         PR debug/48163
10005         * var-tracking.c (prepare_call_arguments): If CALL target
10006         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
10007         pc instead of looking it up using cselib_lookup and use
10008         Pmode for it if x has VOIDmode.
10009         * dwarf2out.c (gen_subprogram_die): If also both first and
10010         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
10011
10012         PR debug/48163
10013         * function.c (assign_parms): For data.passed_pointer parms
10014         use MEM of data.entry_parm instead of data.entry_parm itself
10015         as DECL_INCOMING_RTL.
10016         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
10017         also when passed and declared mode is the same, DECL_RTL
10018         is a MEM with pseudo as address and DECL_INCOMING_RTL is
10019         a MEM too.
10020
10021 2011-03-16  Jeff Law  <law@redhat.com>
10022
10023         PR rtl-optimization/37273
10024         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10025         handle them like argument loads from stack slots.  Do not double
10026         count memory for memory constants and argument loads from stack slots.
10027
10028 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10029
10030         PR debug/48160
10031         * var-tracking.c (prepare_call_arguments): Check SUBREG.
10032
10033 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10034
10035         PR target/48171
10036         * config/i386/i386.opt: Add Save to -mavx and -mfma.
10037
10038 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10039
10040         PR bootstrap/48153
10041         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
10042         if dwarf_strict.
10043         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
10044         Clear call_arg_locations and call_arg_loc_last always.
10045
10046         PR middle-end/48152
10047         * var-tracking.c (prepare_call_arguments): If argument needs to be
10048         passed by reference, adjust argtype and mode.
10049
10050 2011-03-17  Richard Guenther  <rguenther@suse.de>
10051
10052         PR middle-end/48134
10053         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
10054         a value make sure to fold the statement.
10055
10056 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
10057
10058         PR target/43872
10059         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
10060         return condition with !cfun->calls_alloca.
10061
10062 2011-03-17  Richard Guenther  <rguenther@suse.de>
10063
10064         PR bootstrap/48148
10065         * lto-cgraph.c (input_overwrite_node): Clear the abstract
10066         origin for decls in other ltrans units.
10067         (input_varpool_node): Likewise.
10068
10069 2011-03-17  Richard Guenther  <rguenther@suse.de>
10070
10071         PR middle-end/48165
10072         * tree-object-size.c (compute_object_offset): Properly return
10073         the offset operand of MEM_REFs as sizetype.
10074
10075 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10076
10077         PR rtl-optimization/48141
10078         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10079         * dse.c: Include params.h.
10080         (active_local_stores_len): New variable.
10081         (add_wild_read, dse_step1): Clear it when setting active_local_stores
10082         to NULL.
10083         (record_store, check_mem_read_rtx): Decrease it when removing
10084         from the chain.
10085         (scan_insn): Likewise.  Increase it when adding to chain, if it
10086         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10087         set active_local_stores to NULL before the addition.
10088         * Makefile.in (dse.o): Depend on $(PARAMS_H).
10089
10090         PR rtl-optimization/48141
10091         * dse.c (record_store): If no positions are needed in an insn
10092         that cannot be deleted, at least unchain it from active_local_stores.
10093
10094 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
10095
10096         PR debug/47510
10097         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10098         (lookup_type_die_strip_naming_typedef): ... here.
10099         (get_context_die): Use it.
10100         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10101         the anonymous struct named by the naming typedef.
10102
10103 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
10104
10105         PR target/48154
10106         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10107         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10108
10109 2011-03-16  Jeff Law  <law@redhat.com>
10110
10111         * tree-vrp.c (identify_jump_threads): Slightly simplify type
10112         check for operands of conditional.  Allow type to be a pointer.
10113
10114 2011-03-16  Richard Guenther  <rguenther@suse.de>
10115
10116         PR tree-optimization/48149
10117         * fold-const.c (fold_binary_loc): Fold
10118         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10119
10120 2011-03-16  Richard Guenther  <rguenther@suse.de>
10121
10122         PR tree-optimization/26134
10123         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10124         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10125         (non_rewritable_mem_ref_base): Handle complex type component
10126         accesses, constrain offsets for vector and complex extracts
10127         more properly.
10128
10129 2011-03-16  Richard Guenther  <rguenther@suse.de>
10130
10131         PR tree-optimization/48146
10132         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10133         operands avoiding the need for renaming.
10134
10135 2011-03-16  Richard Guenther  <rguenther@suse.de>
10136
10137         * gimple-fold.c (maybe_fold_reference): Open-code relevant
10138         constant folding.  Move MEM_REF canonicalization first.
10139         Rely on fold_const_aggregate_ref for initializer folding.
10140         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10141
10142 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10143
10144         PR middle-end/48136
10145         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10146         arg0/arg1 or their arguments are always fold converted to matching
10147         types.
10148
10149         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10150         to nargs.
10151
10152 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10153
10154         PR lto/46944
10155         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10156         Handle in-tree gold.
10157         (ld_vers): Extract binutils version for gold.
10158         (gcc_cv_ld_hidden): Handle gold here.
10159         (gcc_cv_lto_plugin): Determine level of linker plugin support.
10160         * configure: Regenerate.
10161         * config.in: Regenerate.
10162         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10163         -fuse-linker-plugin otherwise.
10164         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
10165         (LINK_COMMAND_SPEC): Use it.
10166         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10167
10168 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10169
10170         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10171         * calls.c: Remove debug.h include.
10172         (emit_call_1): Don't call virtual_call_token debug hook.
10173         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10174         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10175         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10176         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10177         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10178         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10179         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10180         dwarf2out_virtual_call): Remove.
10181         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10182         copy_call_info and virtual_call hooks.
10183         (dwarf2out_init): Don't initialize vcall_insn_table,
10184         debug_dcall_section and debug_vcall_section.
10185         (prune_unused_types): Don't mark nodes from dcall_table.
10186         (dwarf2out_finish): Don't output dcall or vcall tables.
10187         * final.c (final_scan_insn): Don't call direct_call or
10188         virtual_call debug hooks.
10189         * debug.h (struct gcc_debug_hooks): Remove direct_call,
10190         virtual_call_token, copy_call_info and virtual_call hooks.
10191         (debug_nothing_uid): Remove prototype.
10192         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10193         copy_call_info and virtual_call hooks.
10194         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10195         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10196         * debug.c (do_nothing_debug_hooks): Likewise.
10197         (debug_nothing_uid): Remove.
10198         * doc/invoke.texi (-fenable-icf-debug): Remove.
10199         * common.opt (-fenable-icf-debug): Likewise.
10200
10201         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10202         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10203         call's MEM.  Handle functions returning aggregate through a hidden
10204         first pointer.  For virtual calls add clobbered pc to call arguments
10205         chain.
10206         * dwarf2out.c (gen_subprogram_die): Emit
10207         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10208         can't be emitted.
10209
10210         PR debug/45882
10211         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10212         * rtl.h (ENTRY_VALUE_EXP): Define.
10213         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10214         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10215         * print-rtl.c (print_rtx): Likewise.
10216         * gengtype.c (adjust_field_rtx_def): Likewise.
10217         * var-tracking.c (vt_add_function_parameter): Adjust
10218         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10219         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10220         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10221         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10222         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10223
10224         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10225         Call var_location debug hook even on CALL_INSNs.
10226         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10227         * rtl.def (ENTRY_VALUE): New.
10228         * dwarf2out.c: Include cfglayout.h.
10229         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10230         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10231         (struct call_arg_loc_node): New type.
10232         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10233         tail_call_site_count): New variables.
10234         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10235         DW_TAG_GNU_call_site_parameter.
10236         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10237         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10238         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10239         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10240         and DW_AT_GNU_all_source_call_sites.
10241         (mem_loc_descriptor): Handle ENTRY_VALUE.
10242         (add_src_coords_attributes): Don't add enything if
10243         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10244         (dwarf2out_abstract_function): Save and clear call_arg_location,
10245         call_site_count and tail_call_site_count around dwarf2out_decl call.
10246         (gen_call_site_die): New function.
10247         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10248         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10249         (dwarf2out_function_decl): Clear call_arg_locations,
10250         call_arg_loc_last, set call_site_count and tail_call_site_count
10251         to -1 and free block_map.
10252         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10253         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
10254         followed by any real instructions.
10255         (dwarf2out_begin_function): Set call_site_count and
10256         tail_call_site_count to 0.
10257         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10258         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10259         attempt to force a DIE for it and worst case remove the attribute.
10260         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10261         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10262         the decl itself.
10263         * var-tracking.c: Include tm_p.h.
10264         (vt_stack_adjustments): For calls call note_register_arguments.
10265         (argument_reg_set): New variable.
10266         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10267         ensure the VALUE is resolved.
10268         (call_arguments): New variable.
10269         (prepare_call_arguments): New function.
10270         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10271         (struct expand_loc_callback_data): Add ignore_cur_loc field.
10272         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10273         always use the best expression.
10274         (vt_expand_loc): Add ignore_cur_loc argument.
10275         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10276         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10277         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10278         note for all calls.
10279         (vt_add_function_parameter): Use cselib_lookup_from_insn.
10280         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10281         argument.  Don't call cselib_preserve_only_values and
10282         cselib_reset_table.
10283         (note_register_arguments): New function.
10284         (vt_initialize): Compute argument_reg_set.  Call
10285         vt_add_function_parameters before processing basic blocks instead of
10286         afterwards.  For calls call prepare_call_arguments before calling
10287         cselib_process_insn.
10288         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10289         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10290         (var-tracking.o): Depend on $(TM_P_H).
10291         * cfglayout.h (insn_scope): New prototype.
10292         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10293         * cfglayout.c (insn_scope): No longer static.
10294         * insn-notes.def (CALL_ARG_LOCATION): New.
10295         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10296         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10297         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10298         nothing for DECL_EXTERNAL BLOCK_VARS.
10299
10300 2011-03-16  Alan Modra  <amodra@gmail.com>
10301
10302         PR target/45844
10303         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10304         create invalid offset address for vsx splat insn.
10305         * config/rs6000/predicates.md (splat_input_operand): New.
10306         * config/rs6000/vsx.md (vsx_splat_*): Use it.
10307
10308 2011-03-15  Xinliang David Li  <davidxl@google.com>
10309
10310         PR c/47837
10311         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10312         (normalize_preds): New function.
10313         (is_use_properly_guarded): Normalize def predicates.
10314
10315 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10316
10317         PR target/46788
10318         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10319         in the output template.
10320
10321 2011-03-15  Richard Guenther  <rguenther@suse.de>
10322
10323         PR middle-end/47650
10324         * tree-pretty-print.c (dump_function_declaration): Properly
10325         dump unprototyped and varargs function types.
10326
10327 2011-03-15  Richard Guenther  <rguenther@suse.de>
10328
10329         PR tree-optimization/13954
10330         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10331         and friends.
10332
10333 2011-03-15  Richard Guenther  <rguenther@suse.de>
10334
10335         PR tree-optimization/48037
10336         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10337         selects into BIT_FIELD_REFs.
10338         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10339         vector select.
10340
10341 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
10342
10343         PR tree-optimization/48129
10344         * builtins.c (fold_builtin_snprintf): Convert to type of
10345         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10346         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10347
10348 2011-03-15  Richard Guenther  <rguenther@suse.de>
10349
10350         PR tree-optimization/41490
10351         * tree-ssa-dce.c (propagate_necessity): Handle returns without
10352         value but with VUSE.
10353         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10354         return statements.
10355         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10356         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10357         * tree-tailcall.c (find_tail_calls): Ignore returns.
10358
10359 2011-03-15  Richard Guenther  <rguenther@suse.de>
10360
10361         PR middle-end/48031
10362         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10363         or variable-indexed array accesses when in gimple form.
10364
10365 2011-03-15  Richard Guenther  <rguenther@suse.de>
10366
10367         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
10368
10369 2011-03-15  Alan Modra  <amodra@gmail.com>
10370
10371         PR target/48032
10372         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10373         presume symbol_refs without a symbol_ref_decl are suitably
10374         aligned, nor other trees we may see here.  Handle anchor symbols.
10375         (legitimate_constant_pool_address_p): Comment.  Add mode param.
10376         Check cmodel=medium addresses.  Adjust all calls.
10377         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10378         creating cmodel=medium optimized access to locals.
10379         * config/rs6000/constraints.md (R): Pass QImode to
10380         legitimate_constant_pool_address_p.
10381         * config/rs6000/predicates.md (input_operand): Pass mode to
10382         legitimate_constant_pool_address_p.
10383         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10384         Update prototype.
10385
10386 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10387
10388         PR target/48053
10389         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10390         64-bit constants being loaded into registers other than GPRs such
10391         as loading 0 into a VSX register.
10392
10393 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10394
10395         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
10396
10397 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10398
10399         PR middle-end/47917
10400         * builtins.c (fold_builtin_snprintf): New function.
10401         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10402         (fold_builtin_4): Likewise.
10403
10404         PR middle-end/38878
10405         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10406         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
10407         and C - X == X also strip nops from +/-/p+ operand.
10408         When optimizing -X == C, fold C to arg0's type.
10409
10410         PR debug/47946
10411         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10412         emit it as add_AT_int instead of add_AT_unsigned.
10413
10414 2011-03-14  Tom Tromey  <tromey@redhat.com>
10415
10416         * unwind-dw2.c: Include sys/sdt.h if it exists.
10417         (_Unwind_DebugHook): Use STAP_PROBE2.
10418         * config.in, configure: Rebuild.
10419         * configure.ac: Check for sys/sdt.h.
10420
10421 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
10422
10423         * config/i386/i386.md (ROUND_FLOOR): New constant.
10424         (ROUND_CEIL): Ditto.
10425         (ROUND_TRUNC): Ditto.
10426         (ROUND_MXCSR): Ditto.
10427         (ROUND_NO_EXC): Ditto.
10428         (rint<mode>2): Use new defines instead of numerical constants.
10429         (floor<mode>2): Ditto.
10430         (ceil<mode>2): Ditto.
10431         (btrunc<mode>2): Ditto.
10432         * config/i386/i386-builtin-types.def: Define ROUND function type
10433         aliases.
10434         * config/i386/i386.c (enum ix86_builtins): Add
10435         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10436         (struct builtin_description): Add
10437         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10438         (ix86_expand_sse_round): New static function.
10439         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10440         function types.
10441         (ix86_builtin_vectorized_function): Handle
10442         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10443
10444 2011-03-14  Tom Tromey  <tromey@redhat.com>
10445
10446         * c-parser.c (c_parser_asm_string_literal): Clear
10447         warn_overlength_strings.
10448
10449 2011-03-14  Tom Tromey  <tromey@redhat.com>
10450
10451         * c-parser.c (disable_extension_diagnostics): Save
10452         warn_overlength_strings.
10453         (restore_extension_diagnostics): Restore warn_overlength_strings.
10454
10455 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10456
10457         * BASE-VER: Change to 4.7.0.
10458
10459 2011-03-14  Richard Guenther  <rguenther@suse.de>
10460
10461         PR middle-end/48098
10462         * tree.c (build_vector_from_val): Adjust assert to requirements
10463         and reality.
10464
10465 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10466
10467         PR bootstrap/48102
10468         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
10469
10470 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
10471
10472         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
10473         terms of target_flags_explicit. Adjust copyright year.
10474
10475         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10476         * config/rs6000/t-freebsd: New file. Add override for
10477         LIB2FUNCS_EXTRA.
10478
10479 2011-03-13  Chris Demetriou  <cgd@google.com>
10480
10481         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10482         (-fno-diagnostics-show-option): this, to reflect current default.
10483         (-Werror=): Update text about -fno-diagnostics-show-option.
10484
10485 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
10486
10487         PR target/48053
10488         * config/rs6000/predicates.md (easy_vector_constant_add_self,
10489         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10490         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10491         mode is not V2DImode or V2DFmode.
10492         (vspltis_constant): Do not handle V2DImode and V2DFmode.
10493         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10494         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10495         registers to 0.
10496         (movdi_internal64): Likewise.
10497
10498 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
10499
10500         PR tree-optimization/47127
10501         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10502         parameter.
10503         (set_cloog_options): Same.
10504         (scop_to_clast): Same.
10505         (print_clast_stmt): Do not call cloog_state_malloc and
10506         cloog_state_free.
10507         (print_generated_program): Same.
10508         (gloog): Same.
10509         * graphite-clast-to-gimple.h (cloog_state): Declared.
10510         (scop_to_clast): Adjust declaration.
10511         * graphite.c (cloog_state): Defined here.
10512         (graphite_initialize): Call cloog_state_malloc.
10513         (graphite_finalize): Call cloog_state_free.
10514
10515 2011-03-11  Jason Merrill  <jason@redhat.com>
10516
10517         * attribs.c (lookup_attribute_spec): Take const_tree.
10518         * tree.h: Adjust.
10519
10520 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
10521
10522         * config/sparc/sparc.c (sparc_option_override): Use
10523         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10524
10525 2011-03-11  Richard Guenther  <rguenther@suse.de>
10526
10527         PR tree-optimization/48067
10528         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10529         multiplication result will be only used once on the target
10530         stmt.
10531
10532 2011-03-11  Richard Guenther  <rguenther@suse.de>
10533
10534         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10535
10536 2011-03-11  Richard Guenther  <rguenther@suse.de>
10537
10538         PR lto/48073
10539         * tree.c (find_decls_types_r): Do not walk types only reachable
10540         from IDENTIFIER_NODEs.
10541
10542 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10543
10544         PR middle-end/48044
10545         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10546         all vnode->force_output nodes as needed.
10547
10548 2011-03-11  Jason Merrill  <jason@redhat.com>
10549
10550         PR c++/48069
10551         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10552         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10553
10554 2011-03-11  Martin Jambor  <mjambor@suse.cz>
10555
10556         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10557         cgraph_node.
10558
10559 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10560
10561         PR tree-optimization/48063
10562         * ipa-inline.c (cgraph_decide_inlining): Don't try to
10563         inline functions called once if !tree_can_inline_p (node->callers).
10564
10565 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
10566
10567         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10568         extra_objs.
10569         * config/score/score3.c: Delete.
10570         * config/score/score3.h: Delete.
10571         * config/score/mul-div.S: Delete.
10572         * config/score/sfp-machine.h: Add new file.
10573         * config/score/constraints.md: Add new file.
10574         * config/score/t-score-softfp: Add new file.
10575         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
10576         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10577         (score7_extra_constraint): Delete.
10578         (score7_option_override): Remove unused code.
10579         * config/score/score.c: Remove score3 and score5 define and code.
10580         * config/score/score.h: Remove score3 and score5 define and code.
10581         * config/score/score.md: Remove score3 template and unusual insn.
10582         * config/score/score.opt: Remove score3 and score5 options.
10583
10584 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10585
10586         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10587         when _HPUX_SOURCE is defined.
10588         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10589
10590 2011-03-10  Jason Merrill  <jason@redhat.com>
10591
10592         PR c++/48029
10593         * stor-layout.c (layout_type): Don't set structural equality
10594         on arrays of incomplete type.
10595         * tree.c (type_hash_eq): Handle comparing them properly.
10596
10597 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
10598
10599         PR debug/48043
10600         * config/s390/s390.c (s390_delegitimize_address): Make sure the
10601         result mode matches original rtl mode.
10602
10603 2011-03-10  Nick Clifton  <nickc@redhat.com>
10604
10605         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
10606         (andsi3, andsi3_flags): Fix timings for three operand alternative.
10607
10608 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
10609
10610         PR rtl-optimization/47866
10611         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10612         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10613         if target wasn't scalar.
10614         * function.c (assign_stack_temp_for_type): Assert that neither
10615         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10616         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10617         macro.
10618         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10619
10620 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10621
10622         * config/s390/s390-protos.h (s390_label_align): New prototype.
10623         * config/s390/s390.c (s390_label_align): New function.
10624         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10625
10626 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10627
10628         PR target/47755
10629         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10630         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
10631         (output_vec_const_move): Ditto.
10632
10633 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
10634
10635         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10636         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10637         * config/mips/mips.c (mips_preferred_reload_class): Make static.
10638         Change 'rclass' argument and result type to reg_class_t.
10639         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10640
10641 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
10642
10643         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10644         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10645         (TARGET_MEMORY_MOVE_COST): Define.
10646         (avr_register_move_cost, avr_memory_move_cost): New Functions.
10647
10648 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
10649
10650         PR debug/47881
10651         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10652         removed anything.
10653
10654         PR tree-optimization/48022
10655         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10656         for EQ/NE_EXPR.
10657
10658 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
10659
10660         PR debug/47991
10661         * var-tracking.c (find_use_val): Return NULL for
10662         cui->sets && cui->store_p BLKmode MEMs.
10663
10664 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
10665
10666         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10667         Remove.
10668         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10669         xstormy16_print_operand_address): Remove.
10670         * config/stormy16/stormy16.c (xstormy16_print_operand,
10671         xstormy16_print_operand_address): Make static.
10672         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10673
10674 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
10675
10676         PR target/47862
10677         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10678         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10679         before definition.
10680
10681 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
10682
10683         PR bootstrap/48000
10684         * cfgloopmanip.c (fix_bb_placements): Return immediately
10685         if FROM is BASE_LOOP's header.
10686
10687 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
10688
10689         * gimplify.c (gimplify_function_tree): Fix building calls
10690         to __builtin_return_address.
10691
10692 2011-03-07  Alan Modra  <amodra@gmail.com>
10693
10694         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10695         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10696         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10697         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10698         return_mode args.
10699         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10700         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10701         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10702         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10703         * config/rs6000/rs6000.c
10704         (rs6000_elf_end_indicate_exec_stack): Rename to..
10705         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
10706         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
10707         (rs6000_file_start): ..here.
10708         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10709         file scope variables.
10710         (call_ABI_of_interest): New function.
10711         (init_cumulative_args): Set above vars when function return value
10712         is a float, vector, or small struct.
10713         (rs6000_function_arg_advance_1): Likewise for function args.
10714         (rs6000_va_start): Set rs6000_passes_float if variable arg function
10715         references float args.
10716
10717 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
10718
10719         * doc/cfg.texi: Remove "See" before @ref.
10720         * doc/invoke.texi: Likewise.
10721
10722 2011-03-05  Jason Merrill  <jason@redhat.com>
10723
10724         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10725
10726 2011-03-05  Anthony Green  <green@moxielogic.com>
10727
10728         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10729
10730 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
10731
10732         PR rtl-optimization/47899
10733         * cfgloopmanip.c (fix_bb_placements): Fix first argument
10734         to flow_loop_nested_p when moving the loop upward.
10735
10736 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
10737
10738         PR target/47719
10739         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
10740
10741 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
10742
10743         PR tree-optimization/47967
10744         * ipa-cp.c (build_const_val): Return NULL instead of creating
10745         VIEW_CONVERT_EXPR for mismatching sizes.
10746         (ipcp_create_replace_map): Return NULL if build_const_val failed.
10747         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10748         give up on versioning.
10749
10750 2011-03-05  Alan Modra  <amodra@gmail.com>
10751
10752         PR target/47986
10753         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10754         full cmodel medium/large lo_sum + high addresses.
10755
10756 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10757
10758         * config/s390/s390.c (s390_decompose_address): Reject non-literal
10759         pool references in UNSPEC_LTREL_OFFSET.
10760
10761 2011-03-04  Jan Hubicka  <jh@suse.cz>
10762
10763         PR lto/47497
10764         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10765         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
10766         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10767         Add node pointers.
10768         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10769         cgraph_add_thunk): Add node pointers.
10770         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10771         associated to right node.
10772         (input_node): Update use of cgraph_same_body_alias
10773         and cgraph_add_thunk.
10774
10775 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
10776
10777         * config/i386/i386.opt (mprefer-avx128): New flag.
10778         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10779         modes when the flag -mprefer-avx128 is on.
10780
10781 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
10782
10783         * dwarf2out.c (compare_loc_operands): Fix address handling.
10784
10785 2011-03-04  Alan Modra  <amodra@gmail.com>
10786
10787         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10788
10789 2011-03-04  Richard Guenther  <rguenther@suse.de>
10790
10791         PR middle-end/47968
10792         * expmed.c (extract_bit_field_1): Prefer vector modes that
10793         vec_extract patterns can handle.
10794
10795 2011-03-04  Richard Guenther  <rguenther@suse.de>
10796
10797         PR middle-end/47975
10798         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10799
10800 2011-03-04  Richard Henderson  <rth@redhat.com>
10801
10802         * explow.c (emit_stack_save): Remove 'after' parameter.
10803         (emit_stack_restore): Likewise.
10804         * expr.h: Update to match.
10805         * builtins.c, calls.c, stmt.c: Likewise.
10806         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
10807         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
10808         * function.c (expand_function_end): Insert the emit_stack_save
10809         sequence before parm_birth_insn instead of after.
10810
10811 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
10812
10813         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
10814         (ssse3_pmaddubsw128): Ditto.
10815         (ssse3_pmaddubsw): Ditto.
10816
10817 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
10818
10819         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10820
10821 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
10822
10823         PR c/47963
10824         * gimplify.c (omp_add_variable): Only call omp_notice_variable
10825         on TYPE_SIZE_UNIT if it is a DECL.
10826
10827         PR debug/47283
10828         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10829         first operand is not is_gimple_mem_ref_addr, try to fold it.
10830         If the operand still isn't is_gimple_mem_ref_addr, clear
10831         MEM_EXPR on op0.
10832
10833 2011-03-03  Richard Guenther  <rguenther@suse.de>
10834
10835         PR middle-end/47283
10836         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10837         match comment.
10838         (refs_may_alias_p_1): For release branches return true if
10839         we are confused by our input.
10840
10841 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10842
10843         * config/s390/s390.c (s390_function_value): Rename to ...
10844         (s390_function_and_libcall_value): ... this.
10845         (s390_function_value): New function.
10846         (s390_libcall_value): New function.
10847         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
10848         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10849         target macro definitions.
10850         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10851
10852 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
10853
10854         * config/i386/freebsd64.h (CC1_SPEC): Define.
10855         * config/i386/linux64.h (CC1_SPEC): Define.
10856         * config/i386/x86-64.h (CC1_SPEC): Don't define.
10857
10858 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
10859
10860         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10861         Remove.
10862         * config/stormy16/stormy16.c: Include reload.h.
10863         (xstormy16_memory_move_cost): New function.
10864         (TARGET_MEMORY_MOVE_COST): Define.
10865
10866 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
10867
10868         PR rtl-optimization/47925
10869         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10870         with side effects.  Remove the more-specific check for volatile asms.
10871
10872 2011-03-02  Alan Modra  <amodra@gmail.com>
10873
10874         PR target/47935
10875         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10876         toc relative addresses for valid offsets.
10877
10878 2011-03-01  Richard Guenther  <rguenther@suse.de>
10879
10880         PR tree-optimization/47890
10881         * tree-vect-loop.c (get_initial_def_for_induction): Set
10882         related stmt properly.
10883
10884 2011-03-01  Richard Guenther  <rguenther@suse.de>
10885
10886         PR lto/47924
10887         * lto-streamer.c (lto_record_common_node): Also register
10888         the canonical type.
10889
10890 2011-03-01  Richard Guenther  <rguenther@suse.de>
10891
10892         PR lto/46911
10893         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10894         Do not stream DECL_ABSTRACT_ORIGIN.
10895         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10896         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10897         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10898         Do not stream DECL_ABSTRACT_ORIGIN.
10899         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10900         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10901
10902 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
10903
10904         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10905         FUNCTION_VALUE_REGNO_P): Remove.
10906         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
10907         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10908         Add 'outgoing' argument.
10909         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10910         function.
10911         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10912         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10913
10914 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
10915
10916         PR debug/28047
10917         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10918         (lookup_filename): Likewise.
10919         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
10920
10921 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
10922             Jakub Jelinek  <jakub@redhat.com>
10923
10924         PR middle-end/47893
10925         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10926         (assign_stack_local_1): Change last argument type to int.
10927         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10928         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
10929         don't record padding space into frame_space_list nor use those areas.
10930         (assign_stack_local): Adjust caller.
10931         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10932         of assign_stack_local, pass 0 as last argument.
10933         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10934         callers.
10935
10936 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
10937
10938         PR debug/47283
10939         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10940         Use target address_mode and pointer_mode hooks instead of hardcoded
10941         Pmode and ptr_mode.  Handle some simple cases of extending if
10942         POINTERS_EXTEND_UNSIGNED < 0.
10943         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10944         Call convert_debug_memory_address.
10945         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10946         convert_debug_memory_address.
10947
10948         PR middle-end/46790
10949         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10950         * configure: Regenerated.
10951         * config.in: Regenerated.
10952         * varasm.c (default_function_section): Return NULL
10953         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
10954
10955 2011-02-28  Martin Jambor  <mjambor@suse.cz>
10956
10957         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10958         the description to match the printed values.
10959
10960 2011-02-28  Richard Guenther  <rguenther@suse.de>
10961
10962         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10963         of the copied scope tree.
10964
10965 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10966
10967         * doc/extend.texi (Function Attributes): Avoid deeply (and
10968         wrongly) nested tables.
10969
10970 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
10971
10972         PR middle-end/47903
10973         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10974         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10975         r isn't op0 nor op1.
10976
10977 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10978
10979         * config/avr/avr.md: Remove magic comment for emacs.
10980
10981 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10982
10983         PR target/45261
10984         * config/avr/avr.c (avr_option_override): Use error on bad options.
10985         (avr_help): New function.
10986         (TARGET_HELP): Define.
10987
10988 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
10989
10990         PR target/42240
10991         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10992         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10993
10994 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
10995
10996         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10997         (ARM Options): Ditto.
10998         (i386 and x86-64 Options): Ditto.
10999         (RX Options): Ditto.
11000         (SPARC Options): Ditto.
11001
11002 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
11003
11004         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
11005         FreeBSD 6 and later.  Generally use cpu generic.
11006
11007 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
11008
11009         * doc/cpp.texi: Update copyright years.
11010
11011 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
11012
11013         PR target/46898
11014         * config/lm32/lm32.md (ashrsi3): Added needed variable.
11015
11016 2011-02-25  Jon Beniston  <jon@beniston.com>
11017
11018         PR target/46898
11019         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
11020         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
11021         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
11022         (lm32_block_move_inline): Add type cast to remove warning.
11023         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
11024         (gen_int_relational): Move declarations to start of function.
11025
11026 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11027
11028         PR tree-optimization/45470
11029         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11030         can throw internally only.
11031         * tree-vect-stmts.c (vectorizable_call): Likewise.
11032
11033 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
11034
11035         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
11036         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11037         * config/stormy16/stormy16-protos.h
11038         (xstormy16_preferred_reload_class): Remove.
11039         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
11040         static. Change 'rclass' argument and return type to reg_class_t.
11041         (TARGET_PREFERRED_RELOAD_CLASS,
11042         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11043
11044 2011-02-24  Richard Guenther  <rguenther@suse.de>
11045
11046         * lto-streamer-in.c (input_bb): Do not find referenced vars
11047         in debug statements.
11048
11049 2011-02-23  Jason Merrill  <jason@redhat.com>
11050
11051         * common.opt (fabi-version): Document v5 and v6.
11052
11053 2011-02-23  Richard Guenther  <rguenther@suse.de>
11054
11055         PR tree-optimization/47849
11056         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
11057
11058 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11059
11060         * opts-common.c (decode_cmdline_option): Print empty string
11061         argument as "" in decoded->orig_option_with_args_text.
11062         * gcc.c (execute): Print empty string argument as ""
11063         in the verbose output.
11064         (do_spec_1): Keep empty string argument.
11065
11066 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
11067
11068         * config.gcc: Declare score-* and crx-* obsolete.
11069
11070 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11071
11072         PR rtl-optimization/47763
11073         * web.c (web_main): Ignore naked clobber when replacing register.
11074
11075 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
11076
11077         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11078         Remove.
11079
11080 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11081
11082         PR doc/47848
11083         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11084
11085 2011-02-22  Mike Stump  <mikestump@comcast.net>
11086
11087         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11088         assembler.
11089         * configure: Regenerate.
11090
11091 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
11092
11093         PR rtl-optimization/46002
11094         * ira-color.c (update_copy_costs): Change class intersection
11095         test to reg_class_contents[] test of 'hard_regno'.
11096
11097 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
11098
11099         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11100         than Driver option.
11101         * config/hpux11.opt (mt): Likewise.
11102         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11103         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11104         * config/vax/elf.opt (mno-asm-pic): Likewise.
11105         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11106
11107 2011-02-21  Mike Stump  <mikestump@comcast.net>
11108
11109         PR target/47822
11110         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11111         tree so we can get save the type.
11112         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11113         for CFString instead of trying to use past the end of the builtins.
11114         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11115         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11116         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11117         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11118         Rename to darwin_builtin_cfstring.
11119         (darwin_init_cfstring_builtins): Return the built type.
11120
11121 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
11122
11123         PR target/47840
11124         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11125         (_mm256_insert_epi64): Use _mm_insert_epi64.
11126
11127 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
11128
11129         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11130         * config/stormy16/stormy16-protos.h
11131         (xstormy16_mode_dependent_address_p): Remove.
11132         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11133         Make static. Change return type to bool. Change argument type to
11134         const_rtx. Remove dead code.
11135         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11136
11137 2011-02-21  Richard Guenther  <rguenther@suse.de>
11138
11139         PR lto/47820
11140         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11141         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11142         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11143         TUs context.
11144         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11145         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11146
11147 2011-02-20  Richard Guenther  <rguenther@suse.de>
11148
11149         PR lto/47822
11150         * tree.c (free_lang_data_in_decl): Clean builtins from
11151         the TU decl BLOCK_VARS.
11152
11153 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
11154
11155         PR debug/47620
11156         PR debug/47630
11157         * haifa-sched.c (fix_tick_ready): Skip tick computation
11158         for debug insns.
11159
11160 2011-02-19  Richard Guenther  <rguenther@suse.de>
11161
11162         PR lto/47647
11163         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11164         Remove lazy BLOCK_VARS streaming.
11165         (lto_input_ts_block_tree_pointers): Likewise.
11166         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11167
11168 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11169
11170         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11171
11172 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11173
11174         * config/i386/biarch32.h, config/i386/mach.h,
11175         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11176
11177 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
11178
11179         PR target/47800
11180         * config/i386/i386.md (peephole2 for shift and plus): Use
11181         operands[1] original mode in the first insn.
11182
11183 2011-02-18  Mike Stump  <mikestump@comcast.net>
11184
11185         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
11186
11187 2011-02-18  Jan Hubicka  <jh@suse.cz>
11188
11189         PR middle-end/47788
11190         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11191         to zero when the function is not inlinable at all.
11192
11193 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11194
11195         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11196         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11197         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11198         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11199         * config/pa/t-pa64: Likewise.
11200         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11201
11202 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11203
11204         PR driver/47787
11205         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11206
11207 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11208
11209         PR target/47792
11210         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11211
11212 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
11213
11214         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11215         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11216         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11217         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11218         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11219         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11220         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11221         m32r_load_postinc_p, m32r_store_preinc_predec_p,
11222         m32r_legitimate_address_p): New functions.
11223         * config/m32r/constraints.md (constraint "S"): Don't use
11224         STORE_PREINC_PREDEC_P.
11225         (constraint "U"): Don't use LOAD_POSTINC_P.
11226
11227 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
11228
11229         PR rtl-optimization/46178
11230         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11231         compute ira_hard_regno_cover_class[].
11232
11233 2011-02-18  Richard Guenther  <rguenther@suse.de>
11234
11235         PR lto/47798
11236         * lto-streamer.h (lto_global_var_decls): Declare.
11237         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11238         statics for global var processing.
11239
11240 2011-02-18  Richard Guenther  <rguenther@suse.de>
11241
11242         PR tree-optimization/47737
11243         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11244         edge dominance check.
11245
11246 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11247
11248         PR debug/47780
11249         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11250         avoid invalid rtx sharing.
11251
11252 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
11253
11254         * doc/cpp.texi (Obsolete Features): Add background on the
11255         origin of assertions.
11256
11257 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
11258
11259         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
11260         objc_abi == 2.
11261         * config/darwin.c (output_objc_section_asm_op): Added support for
11262         ABI v1 and v2.
11263         (is_objc_metadata): New.
11264         (darwin_objc2_section): New.
11265         (darwin_objc1_section): New.
11266         (machopic_select_section): Added support for ABI v1 and v2.
11267         (darwin_emit_objc_zeroed): New.
11268         (darwin_output_aligned_bss): Detect objc metadata and treat it
11269         appropriately.
11270         (darwin_asm_output_aligned_decl_common): Same.
11271         (darwin_asm_output_aligned_decl_local): Same.
11272         * config/darwin-sections.def: Updated for ABI v1 and v2.
11273         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11274         compiling Objective-C code for the NeXT runtime, default to using
11275         ABI version 0 for 32-bit, and version 2 for 64-bit.
11276
11277 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11278
11279         * common.opt (optimize_fast): New Variable.
11280         * opts.c (default_options_optimization): Use opts->x_optimize_fast
11281         instead of local variable ofast.
11282
11283 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
11284
11285         * doc/invoke.texi (fobjc-abi-version): Documented.
11286         (fobjc-nilcheck): Documented.
11287         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11288         version.
11289
11290 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11291
11292         PR driver/47390
11293         * common.opt (export-dynamic): New Driver option.
11294         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11295
11296 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11297
11298         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11299
11300 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
11301             Jan Hubicka  <jh@suse.cz>
11302
11303         PR debug/47106
11304         PR debug/47402
11305         * cfgexpand.c (account_used_vars_for_block): Remove.
11306         (estimated_stack_frame_size): Use referenced vars.
11307         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11308         that were referenced in the original function.  Test src_fn
11309         rather than cfun.  Drop redundant get_var_ann.
11310         (setup_one_parameter): Drop redundant get_var_ann.
11311         (declare_return_variable): Likewise.
11312         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11313         (copy_arguments_for_versioning): Drop redundant get_var_ann.
11314         * ipa-inline.c (compute_inline_parameters): Do not compute
11315         disregard_inline_limits here.
11316         (compute_inlinable_for_current, pass_inlinable): New.
11317         (pass_inline_parameters): Require PROP_referenced_vars.
11318         * cgraphunit.c (cgraph_process_new_functions): Don't run
11319         compute_inline_parameters explicitly unless function is in SSA form.
11320         (cgraph_analyze_function): Set .disregard_inline_limits.
11321         * tree-sra.c (convert_callers): Compute inliner parameters
11322         only for functions already in SSA form.
11323
11324 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11325
11326         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11327         -mlittle-endian-data.
11328
11329 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11330
11331         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11332         -mno-fpu, not -fpu and -no-fpu.
11333         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11334         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11335
11336 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
11337
11338         PR target/43653
11339         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11340         input reload with PLUS RTX.
11341
11342 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11343
11344         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11345         of InverseVar(MDMX).
11346
11347 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11348
11349         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11350         --m4-340.
11351
11352 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11353
11354         * config/mn10300/mn10300.opt (mno-crt0): New.
11355
11356 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11357
11358         * config/m68k/uclinux.opt (static-libc): New Driver option.
11359
11360 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11361
11362         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11363
11364 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11365
11366         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11367         %{muser-extend-enabled}.
11368
11369 2011-02-16  Richard Guenther  <rguenther@suse.de>
11370
11371         PR tree-optimization/47738
11372         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11373         the TODO from tree_predictive_commoning.
11374
11375 2011-02-15  Jeff Law  <law@redhat.com>
11376
11377         Revert
11378         2011-01-25  Jeff Law  <law@redhat.com>
11379
11380         PR rtl-optimization/37273
11381         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11382         handle them like argument loads from stack slots.  Do not double
11383         count memory for memory constants and argument loads from stack slots.
11384
11385 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11386
11387         PR middle-end/47725
11388         * combine.c (cant_combine_insn_p): Revert the last change.
11389
11390 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
11391
11392         PR target/47755
11393         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11394         mode for vector constants.  Remove code that checks for TImode.
11395
11396 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11397
11398         PR debug/47106
11399         PR debug/47402
11400         * cgraph.h (compute_inline_parameters): Return void.
11401         * ipa-inline.c (compute_inline_parameters): Adjust.
11402
11403 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11404
11405         PR debug/47106
11406         PR debug/47402
11407         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11408         rather than decl.
11409         * cfgexpand.c (estimated_stack_frame_size): Likewise.
11410         * ipa-inline.c (compute_inline_parameters): Adjust.
11411
11412 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11413
11414         PR debug/47106
11415         PR debug/47402
11416         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11417         Adjust all users.  Pass FN to...
11418         * tree-flow-inline.h (first_referenced_var): ... this.  Add
11419         fn argument.
11420         * ipa-struct-reorg.c: Adjust.
11421         * tree-dfa.c: Adjust.
11422         * tree-into-ssa.c: Adjust.
11423         * tree-sra.c: Adjust.
11424         * tree-ssa-alias.c: Adjust.
11425         * tree-ssa-live.c: Adjust.
11426         * tree-ssa.c: Adjust.
11427         * tree-ssanames.c: Adjust.
11428         * tree-tailcall.c: Adjust.
11429
11430 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11431
11432         PR debug/47106
11433         PR debug/47402
11434         * tree-flow.h (referenced_var_lookup): Add fn parameter.
11435         Adjust all callers.
11436         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11437         * tree-flow-inline.h: Adjust.
11438         * gimple-pretty-print.c: Adjust.
11439         * tree-into-ssa.c: Adjust.
11440         * tree-ssa.c: Adjust.
11441         * cfgexpand.c: Adjust.
11442
11443 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11444
11445         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11446         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11447         (EXTRA_CONSTRAINT): Delete.
11448         * config/iq2000/constraints.md: New file.
11449         * config/iq2000/iq2000.md: Include it.
11450         (define_insn ""): Delete.
11451         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11452         unsupported constraint letters from patterns.
11453         (call_value, call_value_internal1): Likewise.
11454         (call_value_multiple_internal1): Likewise.
11455
11456 2011-02-15  Nick Clifton  <nickc@redhat.com>
11457
11458         * config/mn10300/mn10300.c: Include tm-constrs.h.
11459         (struct liw_data): New data structure describing an LIW candidate
11460         instruction.
11461         (extract_bundle): Use struct liw_data.  Allow small integer
11462         operands for some instructions.
11463         (check_liw_constraints): Use struct liw_data.  Remove swapped
11464         parameter.  Add comments describing the checks.  Fix bug when
11465         assigning the source of liw1 to the source of liw2.
11466         (liw_candidate): Delete.  Code moved into extract_bundle.
11467         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
11468         before swapping.
11469         * config/mn10300/predicates.md (liw_operand): New predicate.
11470         Allows registers and small integer constants.
11471         * config/mn10300/constraints.md (O): New constraint.  Accetps
11472         integers in the range -8 to +7 inclusive.
11473         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11474         for moving a small integer into a register.  Give this alternative
11475         LIW attributes.
11476         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11477         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11478         using the J,K,L and M constraints,
11479         (liw): Remove SI mode on second operands to allow for HI and QI
11480         mode values.
11481         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
11482         instruction.
11483
11484 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11485
11486         PR middle-end/47725
11487         * combine.c (cant_combine_insn_p): Check zero/sign extended
11488         hard registers.
11489
11490 2011-02-15  Richard Guenther  <rguenther@suse.de>
11491
11492         PR tree-optimization/47743
11493         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11494         for a non-type-compatible VN lookup bail out.
11495
11496 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11497
11498         * config/fr30/constraints.md: New file.
11499         * config/fr30/fr30.md: Include it.
11500         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11501         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11502         (EXTRA_CONSTRAINT): Delete.
11503
11504 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11505
11506         * config/frv/constraints.md: New file.
11507         * config/frv/predicates.md: Include it.
11508         * config/frv/frv.c (reg_class_from_letter): Delete.
11509         (frv_option_override): Don't initialize it.
11510         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11511         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11512         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11513         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11514         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11515         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11516         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11517         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11518         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11519         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11520         (REG_CLASS_FROM_CONSTRAINT): Delete.
11521
11522 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
11523
11524         PR middle-end/47581
11525         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11526         if frame size is 0 in a leaf function.
11527
11528 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11529
11530         PR pch/14940
11531         * config/alpha/host-osf.c: New file.
11532         * config/alpha/x-osf: New file.
11533         * config.host (alpha*-dec-osf*): Use it.
11534
11535 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11536
11537         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11538         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11539         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11540         (rx_mode_dependent_address_p): ...this. Make static. Change argument
11541         type to const_rtx.
11542         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11543
11544 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11545
11546         * config/stormy16/constraints.md: New file.
11547         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11548         Use satisfies_constraint_Q and satisfies_constraint_R.
11549         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11550         Delete.
11551         (xstormy16_legitiamte_address_p): Declare.
11552         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11553         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11554         (EXTRA_CONSTRAINT): Delete.
11555         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
11556         Un-staticize.
11557         (xstormy16_extra_constraint_p): Delete.
11558
11559 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11560
11561         PR tree-optimization/46494
11562         * loop-unroll.c (split_edge_and_insert): Adjust comment.
11563         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11564         (pass_rtl_loop_done): Add TODO_verify_flow.
11565         * fwprop.c (pass_rtl_fwprop): Likewise.
11566         * modulo-sched.c (pass_sms): Likewise.
11567         * tree-ssa-dom.c (pass_dominator): Likewise.
11568         * tree-ssa-loop-ch.c (pass_ch): Likewise.
11569         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11570         (pass_tree_loop_done): Likewise.
11571         * tree-ssa-pre.c (execute_pre): Likewise.
11572         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11573         * tree-ssa-sink.c (pass_sink_code): Likewise.
11574         * tree-vrp.c (pass_vrp): Likewise.
11575
11576 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11577
11578         * config/v850/constraints.md: New file.
11579         * config/v850/v850.md: Include it.
11580         * config/v850/predicates.md (reg_or_0_operand): Use
11581         satisfies_constraint_G.
11582         (special_symbolref_operand): Use satisfies_constraint_K.
11583         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11584         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11585         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11586         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11587         (EXTRA_CONSTRAINT): Delete.
11588         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11589         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11590         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
11591
11592 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11593
11594         PR target/47696
11595         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11596         description.
11597
11598 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11599
11600         * config/mcore/constraints.md: New file.
11601         * config/mcore/mcore.md: Include it.
11602         * config/mcore/mcore.c (reg_class_from_letter): Delete.
11603         * config/mcore/mcore.h (reg_class_from_letter): Delete.
11604         (REG_CLASS_FROM_LETTER): Delete.
11605         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11606         insn_const_int_ok_for_constraint.
11607         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11608         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11609         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11610         (EXTRA_CONSTRAINT): Delete.
11611
11612 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11613
11614         PR ada/41929
11615         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11616         (IS_SIGHANDLER): Define.
11617         (sparc64_is_sighandler): New function, split off from
11618         sparc64_fallback_frame_state.
11619         (sparc_is_sighandler): New function, split off from
11620         sparc_fallback_frame_state.
11621         (sparc64_fallback_frame_state): Merge with ...
11622         (sparc_fallback_frame_state): ... this into ...
11623         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
11624         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
11625         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
11626         stack instead of hardcoded offsets.
11627
11628 2011-02-14  Andriy Gapon  <avg@freebsd.org>
11629
11630         PR target/45808
11631         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11632
11633 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11634
11635         * configure: Regenerate.
11636
11637 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
11638
11639         PR driver/45731
11640         * gcc.c (asm_options): Correct spec matching --target-help.
11641
11642 2011-02-12  Martin Jambor  <mjambor@suse.cz>
11643
11644         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11645         to gimple call error.
11646
11647 2011-02-12  Mike Stump  <mikestump@comcast.net>
11648
11649         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11650         comments in backslash regions.
11651
11652 2011-02-12  Mike Stump  <mikestump@comcast.net>
11653             Jakub Jelinek  <jakub@redhat.com>
11654             Iain Sandoe  <iains@gcc.gnu.org>
11655
11656         PR target/47324
11657         * dwarf2out.c (output_cfa_loc): When required, apply the
11658         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11659         (output_loc_sequence): Likewise.
11660         (output_loc_operands_raw): Likewise.
11661         (output_loc_sequence_raw): Likewise.
11662         (output_cfa_loc): Likewise.
11663         (output_loc_list): Suppress register number adjustment when
11664         calling output_loc_sequence()
11665         (output_die): Likewise.
11666
11667 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
11668
11669         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11670         Remove macros.
11671         * config/xtensa/xtensa.c (xtensa_register_move_cost,
11672         xtensa_memory_move_cost): New functions.
11673         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11674
11675 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
11676
11677         PR lto/47225
11678         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11679         in the current directory.
11680         * configure: Rebuilt.
11681
11682 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11683
11684         * config/darwin.c (darwin_override_options): Add a hunk missed
11685         from the commit of r168571.  Trim comment line lengths and
11686         correct indents of the preceding block.
11687
11688 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11689
11690         * gcc.c (driver_handle_option): Concatenate the argument to -F with
11691         the switch.
11692
11693 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11694
11695         * common.opt (nostartfiles): New Driver option.
11696
11697 2011-02-11  Xinliang David Li  <davidxl@google.com>
11698
11699         PR tree-optimization/47707
11700         * tree-chrec.c (convert_affine_scev): Keep type precision.
11701
11702 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
11703
11704         PR tree-optimization/47420
11705         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11706
11707 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
11708
11709         PR rtl-optimization/47614
11710         * rtl.h (check_for_inc_dec): Declare.
11711         * dse.c (check_for_inc_dec): Externalize...
11712         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11713         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11714
11715 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11716
11717         PR driver/47678
11718         * gcc.c (main): Do not compile inputs if there were errors in
11719         option handling.
11720         * opts-common.c (read_cmdline_option): Check for wrong language
11721         after other error checks.
11722
11723 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
11724
11725         * cgraph.c: Fix comment typos.
11726         * cgraph.h: Likewise.
11727         * cgraphunit.c: Likewise.
11728         * ipa-cp.c: Likewise.
11729         * ipa-inline.c: Likewise.
11730         * ipa-prop.c: Likewise.
11731         * ipa-pure-const.c: Likewise.
11732         * ipa-ref.c: Likewise.
11733         * ipa-reference.c: Likewise.
11734
11735 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
11736
11737         PR debug/47684
11738         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
11739
11740 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11741
11742         PR testsuite/47400
11743         * doc/sourcebuild.texi (Require Support): Document
11744         dg-require-ascii-locale.
11745
11746 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
11747
11748         * doc/lto.texi (Write summary): Fix missing parentheses.
11749
11750 2011-02-10  DJ Delorie  <dj@redhat.com>
11751
11752         * config/m32c/m32c.c (m32c_option_override): Disable
11753         -fcombine-stack-adjustments until flag value tracking and compare
11754         optimization can be rewritten.
11755
11756 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
11757
11758         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11759         PROCESSOR_POWER7.
11760         (PROCESSOR_DEFAULT64): Likewise.
11761
11762 2011-02-10  Richard Henderson  <rth@redhat.com>
11763
11764         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11765         change from 2011-02-03.
11766         * config/rx/rx.c (flags_from_code): Likewise.
11767         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11768         is valid, n/pz otherwise.
11769         (rx_select_cc_mode): Return CCmode if Y is not zero.
11770
11771 2011-02-10  Richard Guenther  <rguenther@suse.de>
11772
11773         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
11774
11775 2011-02-10  Richard Guenther  <rguenther@suse.de>
11776
11777         PR tree-optimization/47677
11778         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11779
11780 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
11781
11782         PR target/47665
11783         * combine.c (make_compound_operation): Only change shifts into
11784         multiplication for SCALAR_INT_MODE_P.
11785
11786 2011-02-10  Jie Zhang  <jie@codesourcery.com>
11787
11788         PR testsuite/47622
11789         Revert
11790         2011-02-05  Jie Zhang  <jie@codesourcery.com>
11791         PR debug/42631
11792         * web.c (entry_register): Don't clobber the number of the
11793         first uninitialized reference in used[].
11794
11795 2011-02-09  Richard Guenther  <rguenther@suse.de>
11796
11797         PR tree-optimization/47664
11798         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11799         all edges again.
11800
11801 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
11802
11803         PR target/46481
11804         PR target/47032
11805         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
11806         PROCESSOR_POWER7.
11807         (PROCESSOR_DEFAULT64): Same.
11808         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
11809
11810 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11811
11812         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
11813
11814 2011-02-09  Martin Jambor  <mjambor@suse.cz>
11815
11816         PR middle-end/45505
11817         * tree-sra.c (struct access): New flags grp_scalar_read and
11818         grp_scalar_write.  Changed description of assignment read and write
11819         flags.
11820         (dump_access): Dump new flags, reorder all of them.
11821         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11822         to detect multiple scalar reads.
11823         (analyze_access_subtree): Use the new scalar read write flags instead
11824         of the old flags.  Adjusted comments.
11825
11826 2011-02-08  DJ Delorie  <dj@redhat.com>
11827
11828         PR target/47548
11829         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11830         patterns.
11831
11832 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11833
11834         * config/m68k/uclinux.opt: New.
11835         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11836
11837 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11838
11839         * config/cris/elf.opt (sim): New Driver option.
11840
11841 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11842
11843         * config/xtensa/elf.opt: New.
11844         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11845
11846 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11847
11848         * config/vax/elf.opt: New.
11849         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11850
11851 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11852
11853         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11854
11855 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11856
11857         * config/gnu-user.opt: New.
11858         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11859         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11860         *-*-uclinux*): Use gnu-user.opt.
11861
11862 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
11863
11864         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11865         * config/i386/gnu.h (CPP_SPEC): Likewise.
11866
11867 2011-02-08  Ian Lance Taylor  <iant@google.com>
11868
11869         * common.opt (fcx-limited-range): Add SetByCombined flag.
11870         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11871         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11872         (fassociative-math, freciprocal-math): Likewise.
11873         (funsafe-math-optimizations): Likewise.
11874         * opth-gen.awk: Handle SetByCombined.
11875         * optc-gen.awk: Likewise.
11876         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
11877         (set_unsafe_math_optimizations_flags): Likewise.
11878         * doc/options.texi (Option properties): Document SetByCombined.
11879
11880 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11881
11882         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11883         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11884         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11885         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11886         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11887
11888 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
11889
11890         PR tree-optimization/46834
11891         PR tree-optimization/46994
11892         PR tree-optimization/46995
11893         * graphite-sese-to-poly.c (used_outside_reduction): New.
11894         (detect_commutative_reduction): Call used_outside_reduction.
11895         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11896         translate_scalar_reduction_to_array only when at least one
11897         loop-phi/close-phi tuple has been detected.
11898
11899 2011-02-08  Richard Guenther  <rguenther@suse.de>
11900
11901         PR middle-end/47639
11902         * tree-vect-generic.c (expand_vector_operations_1): Update
11903         stmts here ...
11904         (expand_vector_operations): ... not here.  Cleanup EH info
11905         and the CFG if required.
11906
11907 2011-02-08  Richard Guenther  <rguenther@suse.de>
11908
11909         PR tree-optimization/47641
11910         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11911         require type compatibility.
11912
11913 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11914
11915         * gimple-low.c (lower_function_body): Don't remove the location of
11916         the return statement here.
11917         (lower_gimple_return): Do it here instead but only if the return
11918         statement is actually used twice.
11919
11920 2011-02-08  Richard Guenther  <rguenther@suse.de>
11921
11922         PR tree-optimization/47632
11923         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11924         unused up_to_stmt parameter, return whether cfg-cleanup is
11925         necessary, remove EH info properly.
11926         (forward_propagate_into_gimple_cond): Adjust caller.
11927         (forward_propagate_into_cond): Likewise.
11928         (forward_propagate_comparison): Likewise.
11929         (tree_ssa_forward_propagate_single_use_vars): Make
11930         forward_propagate_comparison case similar to the two others.
11931
11932 2011-02-08  Nick Clifton  <nickc@redhat.com>
11933
11934         * config/mn10300/mn10300.opt (mliw): New command line option.
11935         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11936         (liw_bundling): New automaton.
11937         (liw): New attribute.
11938         (liw_op): New attribute.
11939         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11940         (movsi_internal): Add LIW attributes.
11941         (andsi3): Likewise.
11942         (iorsi3): Likewise.
11943         (xorsi3): Likewise.
11944         (addsi3): Separate register and immediate alternatives.
11945         Add LIW attributes.
11946         (subsi3): Likewise.
11947         (cmpsi): Likewise.
11948         (aslsi3): Likewise.
11949         (lshrsi3): Likewise.
11950         (ashrsi3): Likewise.
11951         (liw): New pattern.
11952         * config/mn10300/mn10300.c (liw_op_names): New
11953         (mn10300_print_operand): Handle 'W' operand descriptor.
11954         (extract_bundle): New function.
11955         (check_liw_constraints): New function.
11956         (liw_candidate): New function.
11957         (mn10300_bundle_liw): New function.
11958         (mn10300_reorg): New function.
11959         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11960         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11961         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11962         __LIW__ or __NO_LIW__.
11963         * doc/invoke.texi: Describe the -mliw command line option.
11964
11965 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11966
11967         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11968         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11969         pthread_mutex_unlock): Remove.
11970         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11971         * config/pa/t-pa64: Likewise.
11972         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11973         shared libc if not linking against libpthread.
11974         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11975
11976 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
11977
11978         PR target/47558
11979         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11980         on 10.6 and later to ensure that we always use the unwinder from
11981         the system.  Only add -no_compact_unwind when tarteting darwin
11982         10.6 or later.
11983
11984 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
11985
11986         PR target/46997
11987         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11988         (vec_interleave_lowv2sf): Ditto.
11989         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11990         (vec_extract_oddv2sf): Ditto.
11991
11992 2011-02-07  Mike Stump  <mikestump@comcast.net>
11993
11994         PR target/42333
11995         Add __ieee_divdc3 entry point.
11996         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11997         entry point.
11998         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11999         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
12000         * config/darwin.c (darwin_rename_builtins): Add.
12001         * config/darwin-protos.h (darwin_rename_builtins): Add.
12002
12003 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
12004
12005         PR target/47636
12006         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
12007         for the condition.
12008
12009 2011-02-07  Mike Stump  <mikestump@comcast.net>
12010
12011         * config/darwin.opt (mmacosx-version-min): Update default OS version.
12012
12013 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
12014
12015         PR target/47534
12016         * config/avr/libgcc.S (exit): Move .endfunc
12017
12018 2011-02-07  Richard Guenther  <rguenther@suse.de>
12019
12020         PR tree-optimization/47615
12021         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
12022         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
12023         (run_scc_vn): Initialize it.
12024         (visit_reference_op_load): Use it.
12025         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
12026
12027 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12028
12029         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
12030         DImode trapping arithmetic libfuncs.
12031
12032 2011-02-07  Richard Guenther  <rguenther@suse.de>
12033
12034         PR tree-optimization/47621
12035         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
12036         two duplicates ...
12037         (execute_update_addresses_taken): ... here.  Make it more
12038         conservative in what we accept.
12039
12040 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12041
12042         * config/sparc/freebsd.h (ASM_SPEC): Define.
12043         * config/sparc/vxworks.h (ASM_SPEC): Define.
12044
12045 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12046
12047         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12048
12049 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
12050
12051         * doc/invoke.texi: Remove reference to compiler internals from
12052         user documentation.
12053
12054         * reg-notes.def: Remove REG_VALUE_PROFILE.
12055         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
12056
12057 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
12058
12059         PR middle-end/47610
12060         * varasm.c (default_section_type_flags): If decl is NULL,
12061         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
12062
12063 2011-02-05  Jie Zhang  <jie@codesourcery.com>
12064
12065         PR debug/42631
12066         * web.c (entry_register): Don't clobber the number of the
12067         first uninitialized reference in used[].
12068
12069 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
12070
12071         PR tree-optimization/46194
12072         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12073         (build_classic_dist_vector_1): Do not represent classic distance
12074         vectors when the access functions are variating in different loops.
12075
12076 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12077
12078         * config/mips/iris6.opt: New.
12079         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12080
12081 2011-02-04  Richard Henderson  <rth@redhat.com>
12082             Steve Ellcey  <sje@cup.hp.com>
12083
12084         PR target/46997
12085         * config/ia64/predicates.md (mux1_brcst_element): New.
12086         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12087         * config/ia64/ia64.c (ia64_unpack_assemble): New.
12088         (ia64_unpack_sign): New.
12089         (ia64_expand_unpack): Rewrite using new routines.
12090         (ia64_expand_widen_sum): Ditto.
12091         (ia64_expand_dot_prod_v8qi): Ditto.
12092         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12093         routines, add endian check.
12094         (pmpy2_even): Rename from pmpy2_r, add endian check.
12095         (pmpy2_odd): Rename from pmpy2_l, add endian check.
12096         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12097         (vec_widen_smult_hi_v4hi): Ditto.
12098         (vec_widen_umult_lo_v4hi): Ditto.
12099         (vec_widen_umult_hi_v4hi): Ditto.
12100         (mulv2si3): Change endian checks.
12101         (sdot_prodv4hi): Rewrite with new calls.
12102         (udot_prodv4hi): New.
12103         (vec_pack_ssat_v4hi): Add endian check.
12104         (vec_pack_usat_v4hi): Ditto.
12105         (vec_pack_ssat_v2si): Ditto.
12106         (max1_even): Rename from max1_r, add endian check.
12107         (max1_odd): Rename from max1_l, add endian check.
12108         (*mux1_rev): Format change.
12109         (*mux1_mix): Ditto.
12110         (*mux1_shuf): Ditto.
12111         (*mux1_alt): Ditto.
12112         (*mux1_brcst_v8qi): Use new predicate.
12113         (vec_extract_evenv8qi): Remove endian check.
12114         (vec_extract_oddv8qi): Ditto.
12115         (vec_interleave_lowv4hi): Format change.
12116         (vec_interleave_highv4hi): Ditto.
12117         (mix2_even): Rename from mix2_r, add endian check.
12118         (mix2_odd): Rename from mux2_l, add endian check.
12119         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12120         (vec_extract_evenodd_helper): Format change.
12121         (vec_extract_evenv4hi): Remove endian check.
12122         (vec_extract_oddv4hi): Remove endian check.
12123         (vec_interleave_lowv2si): Format change.
12124         (vec_interleave_highv2si): Format change.
12125         (vec_initv2si): Remove endian check.
12126         (vecinit_v2si): Add endian check.
12127         (reduc_splus_v2sf): Add endian check.
12128         (reduc_smax_v2sf): Ditto.
12129         (reduc_smin_v2sf): Ditto.
12130         (vec_initv2sf): Remove endian check.
12131         (fpack): Add endian check.
12132         (fswap): Add endian check.
12133         (vec_interleave_highv2sf): Add endian check.
12134         (vec_interleave_lowv2sf): Add endian check.
12135         (fmix_lr): Add endian check.
12136         (vec_setv2sf): Format change.
12137         (*vec_extractv2sf_0_be): Use shift to extract operand.
12138         (*vec_extractv2sf_1_be): New.
12139         (vec_pack_trunc_v4hi): Add endian check.
12140         (vec_pack_trunc_v2si): Format change.
12141
12142 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
12143
12144         PR inline-asm/23200
12145         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
12146         do bb, locus and block comparison and disallow loads if it is not set.
12147         (stmt_is_replaceable_p): New function.
12148         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12149         callers.
12150         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12151         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12152         SSA_NAME_DEF_STMT.
12153         * tree-flow.h (stmt_is_replaceable_p): New prototype.
12154
12155 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12156
12157         * config/rs6000/xilinx.opt: New.
12158         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12159
12160 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12161
12162         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12163
12164 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
12165
12166         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12167         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12168         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12169         secondary_reload_info, xtensa_secondary_reload): Remove.
12170         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12171         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12172         (xtensa_preferred_reload_class): Make static. Change return and
12173         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12174         Use CONST_DOUBLE_P predicate.
12175         (xtensa_preferred_output_reload_class): New function.
12176         (xtensa_secondary_reload): Make static.
12177
12178 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
12179
12180         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12181         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12182         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12183
12184 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12185
12186         PR middle-end/31490
12187         * output.h (SECTION_RELRO): Define.
12188         (SECTION_MACH_DEP): Adjust.
12189         (get_variable_section): New prototype.
12190         * varpool.c (varpool_finalize_named_section_flags): New function.
12191         (varpool_assemble_pending_decls): Call it.
12192         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12193         * cgraphunit.c (cgraph_output_in_order): Call
12194         varpool_finalize_named_section_flags.
12195         * varasm.c (get_section): Allow section flags conflicts between
12196         relro and read-only sections if the section hasn't been declared yet.
12197         Set SECTION_OVERRIDE after diagnosing section type conflict.
12198         (get_variable_section): No longer static.
12199         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12200         readonly sections that need relocations.
12201         (decl_readonly_section_1): New function.
12202         (decl_readonly_section): Use it.
12203
12204         Revert:
12205         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
12206                     Steve Ellcey  <sje@cup.hp.com>
12207
12208         PR middle-end/31490
12209         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12210         if section attribute used.
12211
12212 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12213
12214         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12215         * config/darwin.c (SECTION_NO_ANCHOR): Define.
12216         (darwin_init_sections): Remove assertion.
12217
12218 2011-02-03  Nick Clifton  <nickc@redhat.com>
12219
12220         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12221         lt and ge.
12222         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
12223         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12224         instead of "n" and "pz".
12225         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12226         CC_FLAG_S.
12227
12228 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12229
12230         PR target/47312
12231         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12232         fma, expand FMA_EXPR as fma{,f,l} call.
12233
12234         PR lto/47274
12235         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12236         copy them into a unsigned char variable and pass address of it to
12237         lto_output_data_stream.
12238
12239         PR target/47564
12240         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12241         around backend_init_target and lang_dependent_init_target calls.
12242         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12243         (verify_cgraph_node): Don't call set_cfun here.  Use
12244         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12245         Set error_found for incorrectly represented calls to thunks.
12246
12247 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12248
12249         PR debug/43092
12250         PR rtl-optimization/43494
12251         * rtl.h (for_each_inc_dec_fn): New type.
12252         (for_each_inc_dec): Declare.
12253         * rtlanal.c (struct for_each_inc_dec_ops): New type.
12254         (for_each_inc_dec_find_inc_dec): New fn.
12255         (for_each_inc_dec_find_mem): New fn.
12256         (for_each_inc_dec): New fn.
12257         * dse.c (struct insn_size): Remove.
12258         (replace_inc_dec, replace_inc_dec_mem): Remove.
12259         (emit_inc_dec_insn_before): New fn.
12260         (check_for_inc_dec): Use it, along with for_each_inc_dec.
12261         (canon_address): Pass mem modes to cselib_lookup.
12262         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
12263         (cselib_lookup_from_insn): Likewise.
12264         (cselib_subst_to_values): Likewise.
12265         * cselib.c (find_slot_memmode): New var.
12266         (cselib_find_slot): New fn.  Use it instead of
12267         htab_find_slot_with_hash everywhere.
12268         (entry_and_rtx_equal_p): Use find_slot_memmode.
12269         (autoinc_split): New fn.
12270         (rtx_equal_for_cselib_p): Rename and implement in terms of...
12271         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
12272         Deal with autoinc.  Special-case recursion into MEMs.
12273         (cselib_hash_rtx): Likewise.
12274         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
12275         address and MEM modes.
12276         (cselib_subst_to_values): Add memmode, pass it on.
12277         Deal with autoinc.
12278         (cselib_lookup): Add memmode argument, pass it on.
12279         (cselib_lookup_from_insn): Add memmode.
12280         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12281         (struct cselib_record_autoinc_data): New.
12282         (cselib_record_autoinc_cb): New fn.
12283         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
12284         mode to cselib_lookup.  Reset autoinced REGs here instead of...
12285         (cselib_process_insn): ... here.
12286         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12287         to cselib_lookup.
12288         (add_uses): Likewise, also to cselib_subst_to_values.
12289         (add_stores): Likewise.
12290         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
12291         cselib_subst_to_values.
12292         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
12293         * gcse.c (do_local_cprop): Adjusted.
12294         * postreload.c (reload_cse_simplify_set): Adjusted.
12295         (reload_cse_simplify_operands): Adjusted.
12296         * sel-sched-dump (debug_mem_addr_value): Pass mode.
12297
12298 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12299
12300         PR tree-optimization/45122
12301         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12302         unsafe assumptions when there's more than one loop exit.
12303
12304 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12305
12306         PR target/47272
12307         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12308         Document using vector double with the load/store builtins, and
12309         that the load/store builtins always use Altivec instructions.
12310
12311         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12312         to use altivec memory instructions, even on VSX.
12313         (vector_altivec_store_<mode>): Ditto.
12314
12315         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12316         function.
12317
12318         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12319         V2DF, V2DI support to load/store overloaded builtins.
12320
12321         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12322         altivec load/store builtins for V2DF/V2DI types.
12323
12324         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12325         set avoid indexed addresses on power6 if -maltivec.
12326         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12327         vector_altivec_load/vector_altivec_store builtins.
12328         (altivec_expand_st_builtin): Ditto.
12329         (altivec_expand_builtin): Add VSX memory builtins.
12330         (rs6000_init_builtins): Add V2DI types to internal types.
12331         (altivec_init_builtins): Add support for V2DF/V2DI altivec
12332         load/store builtins.
12333         (rs6000_address_for_altivec): Insure memory address is appropriate
12334         for Altivec.
12335
12336         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12337         vec_vsx_ld and vec_vsx_st.
12338         (vsx_store_<mode>): Ditto.
12339
12340         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12341         variables to hold long long types for VSX vector memory builtins.
12342         (RS6000_BTI_unsigned_long_long): Ditto.
12343         (long_long_integer_type_internal_node): Ditti.
12344         (long_long_unsigned_type_internal_node): Ditti.
12345
12346         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12347         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12348         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12349
12350         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12351         short cuts.
12352         (vec_vsx_st): Ditto.
12353
12354 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12355
12356         * config/pa/pa-hpux10.opt: New.
12357         * config/hpux11.opt (pthread): New Driver option.
12358         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12359         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12360
12361 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12362
12363         * config/ia64/vms.opt: New.
12364         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12365
12366 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
12367
12368         PR target/47580
12369         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12370         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12371         generator functions.
12372         (vsx_floatuns<VSi><mode>2): Ditto.
12373         (vsx_fix_trunc<mode><VSi>2): Ditto.
12374         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12375
12376 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12377
12378         * config/i386/djgpp.opt (posix): New Driver option.
12379
12380 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12381
12382         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12383         Move to the unsupported targets list.
12384
12385 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
12386
12387         PR rtl-optimization/47525
12388         * df-scan.c: Update copyright years.
12389         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12390         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12391
12392 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12393
12394         * config/i386/sysv4.h (TARGET_VERSION): Remove.
12395         (SUBTARGET_RETURN_IN_MEMORY): Remove.
12396         (ASM_OUTPUT_ASCII): Remove.
12397         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12398
12399 2011-02-02  Jeff Law  <law@redhat.com>
12400
12401         PR middle-end/47543
12402         * reload.c (find_reloads_address): Handle reg+d address where both
12403         components are invalid by reloading the entire address.
12404
12405 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12406             Richard Guenther  <rguenther@suse.de>
12407
12408         PR tree-optimization/40979
12409         PR bootstrap/47044
12410         * passes.c (init_optimization_passes): After LIM call copy_prop
12411         and DCE to clean up.
12412         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12413
12414 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12415
12416         PR tree-optimization/47576
12417         PR tree-optimization/47555
12418         * doc/invoke.texi (scev-max-expr-complexity): Documented.
12419         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12420         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12421         * tree-scalar-evolution.c (follow_ssa_edge): Use
12422         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12423
12424 2011-02-02  Richard Guenther  <rguenther@suse.de>
12425
12426         PR tree-optimization/47566
12427         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12428
12429 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12430
12431         PR debug/47106
12432         PR debug/47402
12433         * tree-inline.c (declare_return_variable): Remove unused caller
12434         variable.
12435
12436         PR debug/47106
12437         PR debug/47402
12438         * tree-flow-inline.h (clear_is_used, is_used_p): New.
12439         * cfgexpand.c (account_used_vars_for_block): Use them.
12440         * tree-nrv.c (tree_nrv): Likewise.
12441         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12442         (dump_scope_block): Likewise.
12443         (remove_unused_locals): Likewise.
12444
12445         PR debug/47106
12446         PR debug/47402
12447         * tree-inline.c (declare_return_variable): Add result decl to
12448         local decls only once.
12449         * gimple-low.c (record_vars_into): Mark newly-created variables
12450         as referenced.
12451
12452 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12453
12454         PR debug/47498
12455         PR debug/47501
12456         PR debug/45136
12457         PR debug/45130
12458         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12459         debug insns.
12460         (no_real_insns_p, schedule_block, set_priorities): Drop special
12461         treatment of boundary debug insns.
12462         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12463         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12464         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12465         (BOUNDARY_DEBUG_INSN_P): Likewise.
12466         (SCHEDULE_DEBUG_INSN_P): Likewise.
12467         * sched-rgn.c (init_ready_list): Drop special treatment of
12468         boundary debug insns.
12469         * final.c (rest_of_clean_state): Clear notes' BB.
12470
12471 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12472
12473         * config/openbsd.opt (assert=): New Driver option.
12474
12475 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12476
12477         * config/i386/nto.opt: New.
12478         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12479
12480 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12481
12482         * config/i386/netware.opt: New.
12483         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12484
12485 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12486
12487         * config/interix.opt (posix): New Driver option.
12488
12489 2011-02-01  DJ Delorie  <dj@redhat.com>
12490
12491         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12492
12493         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12494         class for A0/A1.
12495
12496 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
12497
12498         PR tree-optimization/47561
12499         * toplev.c (process_options): Print the Graphite flags.  Add
12500         flag_loop_flatten to the list of options requiring Graphite.
12501
12502 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12503
12504         * config/i386/cygming.opt (posix): New Driver option.
12505
12506 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12507
12508         * config/arm/vxworks.opt: New.
12509         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12510
12511 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12512
12513         * config/alpha/elf.opt: New.
12514         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12515         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12516
12517 2011-02-01  Richard Guenther  <rguenther@suse.de>
12518
12519         PR tree-optimization/47559
12520         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12521         store-motion on references that can throw.
12522
12523 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
12524
12525         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12526         * tree-pass.h (TDF_CSELIB): New macro.
12527         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12528         cselib_lookup): Check for it rather than for TDF_DETAILS.
12529
12530 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
12531
12532         PR driver/47547
12533         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12534         is HOST_BIT_BUCKET.
12535
12536         * opts.c (finish_options): Don't add x_aux_base_name if it is
12537         HOST_BIT_BUCKET.
12538
12539 2011-02-01  Richard Guenther  <rguenther@suse.de>
12540
12541         PR tree-optimization/47555
12542         Revert
12543         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
12544
12545         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12546
12547 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12548
12549         PR gcc/46692
12550         * config/lm32/t-lm32: Add multilib for all CPU options.
12551
12552 2011-02-01  Richard Guenther  <rguenther@suse.de>
12553
12554         PR tree-optimization/47541
12555         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12556         sure to have a field at offset zero.
12557
12558 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12559
12560         * config/arc/arc.opt (EB, EL): New Driver options.
12561
12562 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12563
12564         * config/alpha/osf5.opt: New.
12565         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12566
12567 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12568
12569         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12570
12571 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
12572
12573         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12574         -floop-interchange.
12575         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12576         is an alias of -floop-interchange and that it requires the
12577         Graphite infrastructure.
12578         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12579         flag_loop_interchange based on the value of flag_tree_loop_linear.
12580
12581 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
12582             Richard Guenther  <rguenther@suse.de>
12583
12584         PR tree-optimization/47538
12585         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12586         type instead of r1type, except for comparisons.  For right
12587         shifts and comparisons punt if there are mismatches in
12588         sizetype vs. non-sizetype types.
12589
12590 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12591
12592         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12593         avx_runtime.
12594
12595 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12596
12597         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12598         version number.
12599         * configure: Regenerate.
12600
12601 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12602
12603         * configure.ac (gcc_cv_ld_static_option): Define.
12604         (gcc_cv_ld_dynamic_option): Define.
12605         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12606         instead.
12607         (HAVE_LD_STATIC_DYNAMIC): Update message.
12608         (LD_STATIC_OPTION): Define.
12609         (LD_DYNAMIC_OPTION): Define.
12610         * configure: Regenerate.
12611         * config.in: Regenerate.
12612         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12613         HAVE_LD_STATIC_DYNAMIC]: Use them.
12614
12615 2011-01-31  Nick Clifton  <nickc@redhat.com>
12616
12617         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12618         registers inside interrupt handlers if the handler is not a leaf
12619         function.
12620
12621 2011-01-31  Nick Clifton  <nickc@redhat.com>
12622
12623         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12624         reg_renumber returning an INVALID_REGNUM.
12625
12626 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12627
12628         PR libgcj/44341
12629         * doc/install.texi: Document host options discarded when cross
12630         configuring target libraries.
12631
12632 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12633
12634         Reverted:
12635         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12636         PR debug/45136
12637         PR debug/45130
12638         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12639         debug insns.
12640         (no_real_insns_p, schedule_block, set_priorities): Drop special
12641         treatment of boundary debug insns.
12642         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12643         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12644         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12645         (BOUNDARY_DEBUG_INSN_P): Likewise.
12646         (SCHEDULE_DEBUG_INSN_P): Likewise.
12647         * sched-rgn.c (init_ready_list): Drop special treatment of
12648         boundary debug insns.
12649         * final.c (rest_of_clean-state): Clear notes' BB.
12650
12651 2011-01-31  Alan Modra  <amodra@gmail.com>
12652
12653         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12654         toc relative expressions as we do in print_operand_address.
12655
12656 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
12657
12658         * doc/extend.texi: Follow spelling conventions.
12659         * doc/invoke.texi: Fix a typo.
12660
12661 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
12662
12663         * config/hpux11.opt: New.
12664         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12665         ia64*-*-hpux*): Use hpux11.opt.
12666
12667 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
12668
12669         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12670         to tmake_file.
12671
12672 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12673
12674         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12675         support sites.
12676
12677 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12678
12679         * doc/install.texi (Binaries): Remove outdated reference for
12680         Motorola 68HC11/68HC12 downloads.
12681
12682 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12683
12684         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12685         Drepper's paper.
12686
12687 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
12688
12689         PR bootstrap/47147
12690         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12691         used by NetBSD.
12692
12693 2011-01-28  Ahmad Sharif  <asharif@google.com>
12694
12695         * value-prof.c (check_counter): Corrected error message.
12696
12697 2011-01-29  Jie Zhang  <jie@codesourcery.com>
12698
12699         * config/arm/arm.c (arm_legitimize_reload_address): New.
12700         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12701         arm_legitimize_reload_address.
12702         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
12703
12704 2011-01-28  Ian Lance Taylor  <iant@google.com>
12705
12706         * godump.c (go_define): Ignore macros whose definitions include
12707         two adjacent operands.
12708
12709 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
12710
12711         PR target/42894
12712         * varasm.c (force_const_mem): Store copy of x in desc->constant
12713         instead of x itself.
12714         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12715         itself into REG_EQUAL note.
12716
12717 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
12718
12719         * config/freebsd.opt (posix, rdynamic): New Driver options.
12720
12721 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12722
12723         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12724         -Bstatic/-Bdynamic.
12725         * configure: Regenerate.
12726
12727 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
12728
12729         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12730         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12731
12732 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
12733
12734         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12735         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12736         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12737         (s390_preferred_reload_class): Make static. Change return and
12738         'rclass' argument type to reg_class_t.
12739
12740 2011-01-27  Jan Hubicka  <jh@suse.cz>
12741
12742         PR middle-end/46949
12743         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12744         (process_function_and_variable_attributes): Check defined weakrefs.
12745
12746 2011-01-27  Martin Jambor  <mjambor@suse.cz>
12747
12748         PR tree-optimization/47228
12749         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12750         build_ref_for_offset.
12751
12752 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12753
12754         * config/spu/spu-elf.h (ASM_SPEC): Remove.
12755
12756 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
12757
12758         PR rtl-optimization/46856
12759         * postreload.c (reload_combine_recognize_const_pattern): Do not
12760         separate cc0 setter and user on cc0 targets.
12761
12762 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
12763
12764         PR c/43082
12765         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12766         passed a VOID_TYPE expression, immediately emit an error and
12767         return error_mark_node.
12768
12769 2011-01-26  Jeff Law  <law@redhat.com>
12770
12771         PR rtl-optimization/47464
12772         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12773         rather than may_trap_p as needed.
12774
12775 2011-01-26  DJ Delorie  <dj@redhat.com>
12776
12777         PR rtl-optimization/46878
12778         * combine.c (insn_a_feeds_b): Check for the implicit cc0
12779         setter/user dependency as well.
12780
12781 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
12782
12783         PR rtl-optimization/44469
12784         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12785         after removing trivially dead basic blocks.
12786
12787 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12788
12789         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12790         * config/frv/frv.h (LINK_SPEC): Likewise.
12791         * config/i386/netware.h (LINK_SPEC): Likewise.
12792         * config/m68k/linux.h (ASM_SPEC): Likewise.
12793         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12794         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12795         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12796         * config/sparc/linux.h (ASM_SPEC): Likewise.
12797         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12798         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12799
12800 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12801
12802         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
12803         * config/frv/frv.h (ASM_SPEC): Likewise.
12804         * config/m68k/linux.h (ASM_SPEC): Likewise.
12805         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12806         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
12807         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12808         * config/sparc/linux.h (ASM_SPEC): Likewise.
12809         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12810         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12811
12812 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12813
12814         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
12815         * config/frv/frv.h (LINK_SPEC): Likewise.
12816         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12817
12818 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12819
12820         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12821         * config/frv/frv.h (ASM_SPEC): Likewise.
12822         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12823         * config/m68k/linux.h (ASM_SPEC): Likewise.
12824         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12825         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12826         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12827         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12828         * config/sparc/linux.h (ASM_SPEC): Likewise.
12829         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12830         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12831         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12832
12833 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
12834
12835         PR target/46997
12836         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12837         (*mux2): Ditto.
12838         (vec_extract_evenodd_help): Ditto.
12839         (vec_extract_evenv4hi): Ditto.
12840         (vec_extract_oddv4hi): Ditto.
12841         (vec_interleave_lowv2si): Ditto.
12842         (vec_interleave_highv2si): Ditto.
12843         (vec_extract_evenv2si): Ditto.
12844         (vec_extract_oddv2si: Ditto.
12845         (vec_pack_trunc_v2si): Ditto.
12846
12847 2011-01-22  Jan Hubicka  <jh@suse.cz>
12848
12849         PR target/47237
12850         * cgraph.h (cgraph_local_info): New field can_change_signature.
12851         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12852         signature can change.
12853         (ipcp_estimate_growth): Call sequence simplify only if calle signature
12854         can change.
12855         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12856         (cgraph_function_versioning): We can not change signature of functions
12857         that don't allow that.
12858         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12859         (lto_input_node): Likewise.
12860         * ipa-inline.c (compute_inline_parameters): Compute
12861         local.can_change_signature.
12862         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
12863         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12864         functions that can not change signature.
12865         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
12866         init_cumulative_args): Do not use local calling conventions
12867         for functions that can not change signature.
12868
12869 2011-01-22  Jan Hubicka  <jh@suse.cz>
12870
12871         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12872
12873 2011-01-26  Richard Guenther  <rguenther@suse.de>
12874
12875         PR tree-optimization/47190
12876         * cgraphunit.c (process_common_attributes): New function.
12877         (process_function_and_variable_attributes): Use it.
12878
12879 2011-01-26  Richard Guenther  <rguenther@suse.de>
12880
12881         PR lto/47423
12882         * cgraphbuild.c (record_eh_tables): Record reference to personality
12883         function.
12884
12885 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
12886
12887         PR debug/45454
12888         * sel-sched.c (moveup_expr): Don't let debug insns prevent
12889         non-debug insns from moving up.
12890
12891 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12892
12893         PR target/40125
12894         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12895         t-dlldir{,-x} fragment for build and add it to tmake_file.
12896         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12897         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12898         * config/i386/t-dlldir: New file.
12899         (SHLIB_DLLDIR): Define.
12900         * config/i386/t-dlldir-x: New file.
12901         (SHLIB_DLLDIR): Define.
12902         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12903         (SHLIB_INSTALL): Use it.
12904
12905 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
12906
12907         PR target/47246
12908         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12909         lower bound of the allowed Thumb-2 coprocessor load/store
12910         index range to -256. Add explaining comment.
12911
12912 2011-01-25  Ian Lance Taylor  <iant@google.com>
12913
12914         * godump.c (go_define): Improve lexing of macro expansion to only
12915         accept expressions which match Go spec.
12916
12917 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12918
12919         PR c++/43601
12920         * tree.c (handle_dll_attribute): Handle it.
12921         * doc/extend.texi (@item dllexport): Mention it.
12922         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12923
12924 2011-01-25  Ian Lance Taylor  <iant@google.com>
12925
12926         PR tree-optimization/26854
12927         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12928         (decl_jump_unsafe): Move higher in file, with no other change.
12929         (bind): Set has_jump_unsafe_decl if appropriate.
12930         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12931         (check_earlier_gotos): Likewise.
12932         (c_check_switch_jump_warnings): Likewise.
12933
12934 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
12935
12936         * doc/invoke.texi (Warning Options): Add missing hyphen.
12937         (-fprofile-dir): Minor grammatical fixes.
12938         (-fbranch-probabilities): Likewise.
12939
12940 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12941
12942         PR debug/45136
12943         PR debug/45130
12944         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12945         debug insns.
12946         (no_real_insns_p, schedule_block, set_priorities): Drop special
12947         treatment of boundary debug insns.
12948         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12949         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12950         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12951         (BOUNDARY_DEBUG_INSN_P): Likewise.
12952         (SCHEDULE_DEBUG_INSN_P): Likewise.
12953         * sched-rgn.c (init_ready_list): Drop special treatment of
12954         boundary debug insns.
12955         * final.c (rest_of_clean-state): Clear notes' BB.
12956
12957 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12958
12959         * Makefile.in (LAMBDA_H): Removed.
12960         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12961         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12962         lambda-trans.o, and tree-loop-linear.o.
12963         (lto-symtab.o): Remove dependence on LAMBDA_H.
12964         (tree-loop-linear.o): Remove rule.
12965         (lambda-mat.o): Same.
12966         (lambda-trans.o): Same.
12967         (lambda-code.o): Same.
12968         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12969         (tree-vect-slp.o): Same.
12970         * hwint.h (gcd): Moved here.
12971         (least_common_multiple): Same.
12972         * lambda-code.c: Removed.
12973         * lambda-mat.c: Removed.
12974         * lambda-trans.c: Removed.
12975         * lambda.h: Removed.
12976         * tree-loop-linear.c: Removed.
12977         * lto-symtab.c: Do not include lambda.h.
12978         * omega.c (gcd): Removed.
12979         * passes.c (init_optimization_passes): Remove pass_linear_transform.
12980         * tree-data-ref.c (print_lambda_vector): Moved here.
12981         (lambda_vector_copy): Same.
12982         (lambda_matrix_copy): Same.
12983         (lambda_matrix_id): Same.
12984         (lambda_vector_first_nz): Same.
12985         (lambda_matrix_row_add): Same.
12986         (lambda_matrix_row_exchange): Same.
12987         (lambda_vector_mult_const): Same.
12988         (lambda_vector_negate): Same.
12989         (lambda_matrix_row_negate): Same.
12990         (lambda_vector_equal): Same.
12991         (lambda_matrix_right_hermite): Same.
12992         * tree-data-ref.h: Do not include lambda.h.
12993         (lambda_vector): Moved here.
12994         (lambda_matrix): Same.
12995         (dependence_level): Same.
12996         (lambda_transform_legal_p): Removed declaration.
12997         (lambda_collect_parameters): Same.
12998         (lambda_compute_access_matrices): Same.
12999         (lambda_vector_gcd): Same.
13000         (lambda_vector_new): Same.
13001         (lambda_vector_clear): Same.
13002         (lambda_vector_lexico_pos): Same.
13003         (lambda_vector_zerop): Same.
13004         (lambda_matrix_new): Same.
13005         * tree-flow.h (least_common_multiple): Removed declaration.
13006         * tree-parloops.c (lambda_trans_matrix): Moved here.
13007         (LTM_MATRIX): Same.
13008         (LTM_ROWSIZE): Same.
13009         (LTM_COLSIZE): Same.
13010         (LTM_DENOMINATOR): Same.
13011         (lambda_trans_matrix_new): Same.
13012         (lambda_matrix_vector_mult): Same.
13013         (lambda_transform_legal_p): Same.
13014         * tree-pass.h (pass_linear_transform): Removed declaration.
13015         * tree-ssa-loop.c (tree_linear_transform): Removed.
13016         (gate_tree_linear_transform): Removed.
13017         (pass_linear_transform): Removed.
13018         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
13019         flag_loop_interchange.
13020
13021 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13022
13023         PR tree-optimization/47265
13024         PR tree-optimization/47443
13025         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
13026         if name still has some uses.
13027
13028 2011-01-25  Martin Jambor  <mjambor@suse.cz>
13029
13030         PR tree-optimization/47382
13031         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
13032         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
13033
13034 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
13035
13036         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
13037         sjlj_except_unwind_info.
13038
13039 2011-01-25  Richard Guenther  <rguenther@suse.de>
13040
13041         PR tree-optimization/47426
13042         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
13043         visible functions results escape.
13044
13045 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13046
13047         PR target/45701
13048         * config/arm/arm.c (any_sibcall_uses_r3): New function.
13049         (arm_get_frame_offsets): Use it.
13050
13051 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13052             Jakub Jelinek  <jakub@redhat.com>
13053
13054         PR tree-optimization/47271
13055         * tree-if-conv.c (bb_postdominates_preds): New.
13056         (if_convertible_bb_p): Call bb_postdominates_preds.
13057         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
13058         (predicate_scalar_phi): Call bb_postdominates_preds.
13059
13060 2011-01-25  Nick Clifton  <nickc@redhat.com>
13061
13062         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
13063         * config/rx/rx.c (rx_function_value): Likewise.
13064         (rx_promote_function_mode): Likewise.
13065         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13066         in order to make it legitimate.
13067         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13068         make sure that the first operand is the same as the result register.
13069         (addsi3_unspec): Delete.
13070         (subdi3): Do not accept immediate operands.
13071         (subdi3_internal): Likewise.
13072
13073 2011-01-25  Jeff Law  <law@redhat.com>
13074
13075         PR rtl-optimization/37273
13076         * ira-costs.c (scan_one_insn): Detect constants living in memory and
13077         handle them like argument loads from stack slots.  Do not double
13078         count memory for memory constants and argument loads from stack slots.
13079
13080 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13081
13082         PR tree-optimization/47427
13083         PR tree-optimization/47428
13084         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13085         coalesce if the new root var would be TREE_READONLY.
13086
13087 2011-01-25  Richard Guenther  <rguenther@suse.de>
13088
13089         PR middle-end/47414
13090         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13091         correct type for TBAA.
13092
13093 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13094
13095         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13096         (close_phi_written_to_memory): Call for_each_index with
13097         dr_indices_valid_in_loop.
13098
13099 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13100
13101         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13102         when it is initialized.
13103
13104 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13105
13106         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13107         call to graphite_find_data_references_in_stmt.
13108         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13109         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
13110         call to graphite_find_data_references_in_stmt.
13111         (analyze_drs_in_stmts): Same.
13112         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13113         in which the scalar analysis of indices is performed.
13114         (create_data_ref): Same.  Update call to dr_analyze_indices.
13115         (find_data_references_in_stmt): Update call to create_data_ref.
13116         (graphite_find_data_references_in_stmt): Same.
13117         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13118         declaration.
13119         (create_data_ref): Same.
13120         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13121         call to create_data_ref.
13122
13123 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13124
13125         * graphite-sese-to-poly.c (build_poly_scop): Move
13126         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
13127
13128 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13129
13130         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13131         VAR_DECL, PARM_DECL, and RESULT_DECL.
13132
13133 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13134
13135         * graphite-dependences.c (reduction_dr_1): Allow several reductions
13136         in a reduction PBB.
13137         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13138         that have already been marked as PBB_IS_REDUCTION.
13139
13140 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13141
13142         * graphite-scop-detection.c (same_close_phi_node): New.
13143         (remove_duplicate_close_phi): New.
13144         (make_close_phi_nodes_unique): New.
13145         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13146
13147 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13148
13149         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13150         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13151         of both data references to be the same.
13152
13153 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13154
13155         * graphite-dependences.c (build_lexicographical_constraint): Remove
13156         the gdim parameter.
13157         (build_lexicographical_constraint): Adjust call to
13158         ppl_powerset_is_empty.
13159         (dependence_polyhedron): Same.
13160         (graphite_legal_transform_dr): Same.
13161         (graphite_carried_dependence_level_k): Same.
13162         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13163         parameter.
13164         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13165
13166 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13167
13168         * graphite-sese-to-poly.c
13169         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13170         (close_phi_written_to_memory): New.
13171         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13172         and unshare_expr.
13173
13174 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13175
13176         * doc/install.texi: Update the expected version number of PPL to 0.11.
13177         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13178         #if PPL_VERSION_MINOR < 11.
13179
13180 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13181
13182         * graphite-dependences.c: Include graphite-cloog-util.h.
13183         (new_poly_ddr): Inlined into dependence_polyhedron.
13184         (free_poly_ddr): Moved close by new_poly_ddr.
13185         (dependence_polyhedron_1): Renamed dependence_polyhedron.
13186         Early return NULL when ppl_powerset_is_empty returns true.
13187         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
13188         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
13189         (graphite_legal_transform_dr): Call new_poly_ddr.
13190         (graphite_carried_dependence_level_k): Same.
13191         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
13192         (dot_transformed_deps_stmt_1): Removed.
13193         (dot_deps_stmt_1): Call dot_deps_stmt_2.
13194         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
13195         (dot_deps_1): Call dot_deps_2.
13196         * Makefile.in (graphite-dependences.o): Add missing dependence on
13197         graphite-cloog-util.h.
13198
13199 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13200
13201         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13202         (build_lexicographical_constraint): Same.
13203         (dependence_polyhedron_1): Same.
13204         (graphite_legal_transform_dr): Same.
13205         (graphite_carried_dependence_level_k): Same.
13206         * graphite-ppl.c (ppl_powerset_is_empty): New.
13207         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13208         * tree-data-ref.c (dump_data_reference): Print the basic block index.
13209
13210 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13211
13212         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13213         the "a followed by b" relation and document it.
13214
13215 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13216
13217         * graphite-dependences.c (build_lexicographical_constraint): Stop the
13218         iteration when the bag of constraints is empty.
13219
13220 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13221
13222         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13223
13224 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13225
13226         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13227         nest and two loop depths as parameters.
13228         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13229         lst_perfect_nestify.
13230
13231 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13232
13233         * graphite-dependences.c (print_pddr): Call
13234         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13235
13236 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13237
13238         * graphite-ppl.c (debug_gmp_value): New.
13239         * graphite-ppl.h (debug_gmp_value): Declared.
13240
13241 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
13242
13243         * doc/install.texi: Document availability of cloog-0.16.
13244
13245 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
13246
13247         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13248         invalid postdominance info.
13249
13250 2011-01-24  Jan Hubicka  <jh@suse.cz>
13251
13252         PR c/21659
13253         * doc/extend.texi (weak pragma): Drop claim that it must
13254         appear before definition.
13255         * varasm.c (merge_weak, declare_weak): Only sanity check
13256         that DECL is not output at a time it is declared weak.
13257
13258 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
13259
13260         * machmode.def: Fixed comments.
13261
13262 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
13263
13264         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13265
13266 2011-01-24  Paul Koning  <ni1d@arrl.net>
13267
13268         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
13269         WORDS_BIG_ENDIAN.
13270
13271 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13272
13273         PR target/46519
13274         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13275         (block_info): Add scanned and prev.
13276         (move_or_delete_vzeroupper_2): Return if the basic block
13277         has been scanned and the upper 128bit state is unchanged
13278         from the last scan.
13279         (move_or_delete_vzeroupper_1): Return true if the exit
13280         state is changed.
13281         (move_or_delete_vzeroupper): Visit basic blocks using the
13282         work-list based algorithm based on vt_find_locations in
13283         var-tracking.c.
13284
13285         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13286
13287 2011-01-24  Nick Clifton  <nickc@redhat.com>
13288
13289         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13290         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13291         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
13292         then define __v850e1__.
13293         * doc/invoke.texi: Document -mv850es.
13294
13295 2011-01-24  Richard Henderson  <rth@redhat.com>
13296
13297         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13298         compound unordered comparisons.
13299         * config/rx/rx.c (rx_split_fp_compare): Remove.
13300         * config/rx/rx-protos.h: Update.
13301         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13302         (cbranchsf4): Don't call rx_split_fp_compare.
13303         (*cbranchsf4): Use rx_split_cbranch.
13304         (*cmpsf): Don't accept "i" constraint.
13305         (*conditional_branch): Only valid after reload.
13306         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
13307
13308 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13309
13310         PR target/47385
13311         * config/rs6000/altivec.md (vector constant splitters): Add
13312         support for creating vector single precision constants if -mvsx is
13313         used and we would create the constant using Altivec primitives.
13314
13315 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
13316             Richard Sandiford  <rdsandiford@googlemail.com>
13317
13318         PR rtl-optimization/47166
13319         * reload1.c (emit_reload_insns): Disable the spill_reg_store
13320         mechanism for PRE_MODIFY and POST_MODIFY.
13321         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13322         reloadreg.
13323
13324 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
13325
13326         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
13327
13328 2011-01-22  Jan Hubicka  <jh@suse.cz>
13329
13330         PR lto/47333
13331         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13332
13333 2011-01-22  Jan Hubicka  <jh@suse.cz>
13334
13335         PR tree-optimization/43884
13336         PR lto/44334
13337         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
13338         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13339
13340 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
13341
13342         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13343         * config/s390/s390.c (s390_register_move_cost,
13344         s390_memory_move_cost): New.
13345         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13346
13347 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13348
13349         PR middle-end/47401
13350         * except.c (sjlj_assign_call_site_values): Move setting the
13351         crtl->uses_eh_lsda flag to ...
13352         (sjlj_mark_call_sites): ... here.
13353         (sjlj_emit_function_enter): Support NULL dispatch label.
13354         (sjlj_build_landing_pads): In a function with no landing pads
13355         that still has must-not-throw regions, generate code to register
13356         a personality function with empty LSDA.
13357
13358 2011-01-21  Richard Henderson  <rth@redhat.com>
13359
13360         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13361
13362         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13363
13364         * compare-elim.c: New file.
13365         * Makefile.in (OBJS-common): Add it.
13366         (compare-elim.o): New.
13367         * common.opt (fcompare-elim): New.
13368         * opts.c (default_options_table): Add OPT_fcompare_elim.
13369         * tree-pass.h (pass_compare_elim_after_reload): New.
13370         * passes.c (init_optimization_passes): Add it.
13371         * recog.h: Protect against re-inclusion.
13372         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13373         * doc/invoke.texi (-fcompare-elim): Document it.
13374         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13375         * doc/tm.texi: Rebuild.
13376
13377 2011-01-22  Nick Clifton  <nickc@redhat.com>
13378
13379         * config/rx/rx.md (cstoresf4): Pass comparison operator to
13380         rx_split_fp_compare.
13381
13382 2011-01-22  Nick Clifton  <nickc@redhat.com>
13383
13384         * config/rx/rx.md (UNSPEC_CONST): New.
13385         (deallocate_and_return): Wrap the amount popped off the stack in
13386         an UNSPEC_CONST in order to stop it being rejected by
13387         -mmax-constant-size.
13388         (pop_and_return): Add a "(return)" rtx.
13389         (call): Drop the immediate operand.
13390         (call_internal): Likewise.
13391         (call_value): Likewise.
13392         (call_value_internal): Likewise.
13393         (sibcall_internal): Likewise.
13394         (sibcall_value_internal): Likewise.
13395         (sibcall): Likewise.  Generate an explicit call using
13396         sibcall_internal.
13397         (sibcall_value): Likewise.
13398         (mov<>): FAIL if a constant operand is not legitimate.
13399         (addsi3_unpsec): New pattern.
13400
13401         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
13402         (ok_for_max_constant): New function.
13403         (gen_safe_add): New function.
13404         (rx_expand_prologue): Use gen_safe_add.
13405         (rx_expand_epilogue): Likewise.
13406         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
13407         UNSPEC CONSTs.
13408
13409 2011-01-21  Jeff Law  <law@redhat.com>
13410
13411         PR tree-optimization/47053
13412         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13413         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13414         statements are deleted.
13415         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
13416         is nonempty, then purge dead edges and cleanup the CFG.
13417
13418 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13419
13420         PR debug/47402
13421         Temporarily revert:
13422         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13423         PR debug/47106
13424         * tree-dfa.c (create_var_ann): Mark variable as used.
13425
13426 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13427
13428         PR middle-end/45566
13429         * except.c (convert_to_eh_region_ranges): Emit queued no-region
13430         notes from other section in hot/cold partitioning even if
13431         last_action is -3.  Increment call_site_base.
13432
13433         PR rtl-optimization/47366
13434         * fwprop.c (forward_propagate_into): Return bool.  If
13435         any changes are made, -fnon-call-exceptions is used and
13436         REG_EH_REGION note is present, call purge_dead_edges
13437         and return true if it purged anything.
13438         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13439         any EH edges were purged.
13440
13441 2011-01-21  Jeff Law  <law@redhat.com>
13442
13443         PR rtl-optimization/41619
13444         * caller-save.c (setup_save_areas): Break out code to determine
13445         which hard regs are live across calls by examining the reload chains
13446         so that it is always used.
13447         Eliminate code which checked REG_N_CALLS_CROSSED.
13448
13449 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13450
13451         PR tree-optimization/47355
13452         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13453         NOP has non-debug uses beyond PHIs in new_bb.
13454
13455 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13456
13457         PR debug/47106
13458         * cfgexpand.c (account_used_vars_for_block): Only account vars
13459         that are annotated as used.
13460         (estimated_stack_frame_size): Don't set TREE_USED.
13461         * tree-dfa.c (create_var_ann): Mark variable as used.
13462
13463 2011-01-21  Richard Guenther  <rguenther@suse.de>
13464
13465         PR middle-end/47395
13466         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13467
13468 2011-01-21  Richard Guenther  <rguenther@suse.de>
13469
13470         PR tree-optimization/47365
13471         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13472         (vn_reference_lookup_pieces): Adjust.
13473         (vn_reference_lookup): Likewise.
13474         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13475         (vn_reference_lookup_3): Only look through kills if in
13476         VN_WALKREWRITE mode.
13477         (vn_reference_lookup_pieces): Adjust.
13478         (vn_reference_lookup): Likewise.
13479         (visit_reference_op_load): Likewise.
13480         (visit_reference_op_store): Likewise.
13481         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13482         (compute_avail): Likewise.
13483         (eliminate): Likewise.
13484
13485 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13486
13487         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13488         DECL_IGNORED_P non-reg vars if they are used.
13489
13490         PR tree-optimization/47391
13491         * varpool.c (const_value_known_p): Return false if
13492         decl is volatile.
13493
13494 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
13495
13496         PR bootstrap/47215
13497         * config/i386/i386.c (ix86_local_alignment): Handle
13498         case for va_list_type_node is nil.
13499         (ix86_canonical_va_list_type): Likewise.
13500
13501 2011-01-21  Alan Modra  <amodra@gmail.com>
13502
13503         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13504         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13505
13506 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13507
13508         * config/arm/arm.md (define_attr type): Rename f_load
13509         and f_store to f_fpa_load and f_fpa_store. Update.
13510         (write_conflict): Deal with rename fallout.
13511         (*push_fp_multi): Likewise.
13512         * config/arm/fpa.md (f_load): Use f_fpa_load.
13513         (f_store): Use f_fpa_store.
13514         (*movsf_fpa): Likewise.
13515         (*movdf_fpa): Likewise.
13516         (*movxf_fpa): Likewise.
13517         (*thumb2_movsf_fpa): Likewise.
13518         (*thumb2_movdf_fpa): Likewise.
13519         (*thumb2_movxf_fpa): Likewise.
13520         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13521         f_loadd and f_stored.
13522         (*thumb2_movdi_vfp): Likewise.
13523         (*thumb2_movsf_vfp): Fix attribute to f_loads.
13524         (*thumb2_movsi_vfp): Likewise.
13525         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13526         Use f_loads instead of f_load.
13527         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13528
13529 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
13530
13531         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13532         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13533         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13534         (xtensa_mode_dependent_address_p): New function.
13535         (constantpool_address_p): Make static. Change return type to bool.
13536         Change argument type to const_rtx. Use CONST_INT_P predicate.
13537
13538 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
13539
13540         PR debug/46583
13541         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13542
13543 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13544
13545         PR debug/47283
13546         * cfgexpand.c (expand_debug_expr): Instead of generating
13547         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13548         etc. handling.
13549
13550 2011-01-20  Richard Guenther  <rguenther@suse.de>
13551
13552         PR middle-end/47370
13553         * tree-inline.c (remap_gimple_op_r): Recurse manually for
13554         the pointer operand of MEM_REFs.
13555
13556 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13557
13558         PR tree-optimization/46130
13559         * ipa-split.c (consider_split): If return_bb contains non-virtual
13560         PHIs other than for retval or if split_function would not adjust it,
13561         refuse to split.
13562
13563 2011-01-20  Richard Guenther  <rguenther@suse.de>
13564
13565         PR tree-optimization/47167
13566         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13567         Revert previous change, only avoid enumeral type changes.
13568
13569 2011-01-19  Mike Stump  <mikestump@comcast.net>
13570
13571         * doc/tm.texi.in (BRANCH_COST): Englishify.
13572         * doc/tm.texi (BRANCH_COST): Likewise.
13573
13574 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
13575
13576         PR c++/47291
13577         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
13578         (gen_scheduled_generic_parms_dies): New functions.
13579         (gen_struct_or_union_type_die): Schedule template parameters DIEs
13580         generation for the end of CU compilation.
13581         (dwarf2out_finish): Generate template parameters DIEs here.
13582
13583 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13584
13585         PR debug/46240
13586         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13587         debug bind stmt on merge edges.
13588
13589 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13590
13591         PR debug/47079
13592         PR debug/46724
13593         * function.c (instantiate_expr): Instantiate incoming rtl of
13594         implicit arguments, and recurse on VALUE_EXPRs.
13595         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13596         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13597
13598 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13599
13600         * c-parser.c (c_parser_for_statement): Initialize
13601         collection_expression.
13602
13603 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13604
13605         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13606
13607 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13608
13609         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13610         (LINK_SHLIB_SPEC): Don't use %(link_path).
13611         (SUBTARGET_EXTRA_SPECS): Remove link_path.
13612
13613 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13614
13615         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13616         (NO_SHARED_LIB_SUPPORT): Remove.
13617         (LINK_SHLIB_SPEC): Remove one conditional definition.
13618
13619 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13620
13621         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13622         %{call_shared}.
13623         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13624         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13625         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13626         %{call_shared} and conditionals on these options not being passed.
13627         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13628         %{call_shared}.
13629
13630 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13631
13632         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13633         simplify.
13634
13635         * ipa-split.c: Spelling fixes.
13636
13637 2011-01-19  Richard Henderson  <rth@redhat.com>
13638
13639         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13640         (*mulsi3): Likewise.
13641
13642         * longlong.h [__mn10300__] (count_leading_zeros): New.
13643         [__mn10300__] (umul_ppmm, smul_ppmm): New.
13644         [__mn10300__] (add_ssaaaa, subddmmss): New.
13645         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13646         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13647
13648 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13649
13650         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13651
13652 2011-01-19  Richard Henderson  <rth@redhat.com>
13653
13654         * config/mn10300/mn10300.md (addsi3_flags): New.
13655         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13656         (subsi3_flags, subc_internal, subdi3): New.
13657         (subdi3_internal, *subdi3_degenerate): New.
13658         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13659
13660         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13661         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13662         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
13663         * config/mn10300/mn10300-protos.h: Update.
13664         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13665         (return_ret): Likewise.  Rename from return_internal_regs.
13666         (return_internal): Remove.
13667
13668         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13669         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13670         (mn10300_legitimate_constant_p): Likewise.
13671         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13672         (mn10300_frame_size): New.
13673         (mn10300_expand_prologue): Use it.
13674         (mn10300_expand_epilogue): Likewise.
13675         (mn10300_initial_offset): Likewise.
13676         * config/mn10300/mn10300-protos.h: Update.
13677         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13678         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13679         (prologue, epilogue, return_internal): Tidy output code.
13680         (mn10300_store_multiple_operation, return): Likewise.
13681         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13682         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13683         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13684         (load_pic, am33_load_pic): New.
13685         (mn10300_load_pic0, mn10300_load_pic1): New.
13686
13687         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13688         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13689         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13690         (cc_flags_for_mode, cc_flags_for_code): New.
13691         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13692         overflow flag is not valid.  Validate that the flags we need
13693         for the comparison are valid.
13694         (mn10300_output_cmp): Remove.
13695         (mn10300_output_add): New.
13696         (mn10300_select_cc_mode): Use cc_flags_for_code.
13697         (mn10300_split_cbranch): New.
13698         (mn10300_match_ccmode): New.
13699         (mn10300_split_and_operand_count): New.
13700         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13701         to the function.
13702         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13703         (addsi3): ... here.  Use mn10300_output_add.
13704         (*addsi3_flags): New.
13705         (*am33_subsi3, *mn10300_subsi3): Merge...
13706         (subsi3): ... here.  Use attribute isa.
13707         (*subsi3_flags): New.
13708         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
13709         when possible.
13710         (*am33_andsi3, *mn10300_andsi3): Merge...
13711         (andsi3): ... here.
13712         (*andsi3_flags): New.
13713         (andsi3 splitters): New.
13714         (*am33_iorsi3, *mn10300_iorsi3): Merge...
13715         (iorsi3): ... here.
13716         (*iorsi3_flags): New.
13717         (*am33_xorsi3, *mn10300_xorsi3): Merge...
13718         (xorsi3): ... here.
13719         (*xorsi3_flags): New.
13720         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13721         (one_cmplsi2): ... here.
13722         (*one_cmplsi2_flags): New.
13723         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
13724         instead of "dax" in constraints.  Use mn10300_split_cbranch.
13725         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
13726         use matching constraints to eliminate a self-comparison.
13727         (*integer_conditional_branch): Rename from integer_conditional_branch.
13728         Use int_mode_flags to match CC_REG.
13729         (*cbranchsi4_btst, *btstsi): New.
13730         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
13731         mn10300_split_cbranch.
13732         (*am33_cmpsf): Rename from am33_cmpsf.
13733         (*float_conditional_branch): Rename from float_conditional_branch.
13734         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13735         (zero_extendqisi2): ... here.
13736         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13737         (zero_extendhisi2): ... here.
13738         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13739         (extendqisi2): ... here.
13740         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13741         (extendhisi2): ... here.
13742         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13743         (ashlsi3): ... here.
13744         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13745         (lshrsi3): ... here.
13746         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13747         (ashrsi3): ... here.
13748         (consecutive add peephole): Remove.
13749         * config/mn10300/predicates.md (label_ref_operand): New.
13750         (int_mode_flags): New.
13751         (CCZN_comparison_operator): New.
13752
13753         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13754         (throughput_42_latency_43): New reservation.
13755         (mulsidi3, umulsidi3): New expanders.
13756         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
13757         the MDR register to allocation; separately allocate the low and
13758         high parts of the DImode result.
13759         (umulsidi3_internal): Similarly.
13760         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13761         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
13762         (udivsi3, umodsi3): Remove.
13763         (udivmodsi4, divmodsi4): New expanders.
13764         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
13765         (*divmodsi4): Simiarly.
13766         (ext_internal): New.
13767
13768         * config/mn10300/constraints.md ("z"): New constraint.
13769         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13770         (FIXED_REGISTERS): Don't fix MDR.
13771         (CALL_USED_REGSITERS): Reformat nicely.
13772         (REG_ALLOC_ORDER): Add MDR.
13773         (enum regclass): Add MDR_REGS.
13774         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13775         (IRA_COVER_CLASSES): Add MDR_REGS.
13776         (REGNO_REG_CLASS): Handle MDR_REG.
13777         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13778         (mn10300_register_move_cost): Likewise.
13779         * config/mn10300/mn10300.md (MDR_REG): New.
13780         (*movsi_internal): Handle moves to/from MDR_REGS.
13781
13782         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13783         POST_MODIFY.
13784         (mn10300_secondary_reload): Tidy combination reload classes.
13785         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13786         addresses for AM33.  Allow symbolic offsets for reg+imm.
13787         (mn10300_regno_in_class_p): New.
13788         (mn10300_legitimize_reload_address): New.
13789         * config/mn10300/mn10300.h (enum reg_class): Remove
13790         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13791         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
13792         SP_OR_GENERAL_REGS.
13793         (REG_CLASS_NAMES): Update to match.
13794         (REG_CLASS_CONTENTS): Likewise.
13795         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13796         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13797         (REGNO_IN_RANGE_P): Remove.
13798         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13799         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13800         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
13801         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
13802         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
13803         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
13804         (REGNO_GENERAL_P): New.
13805         (HAVE_POST_MODIFY_DISP): New.
13806         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
13807         (LEGITIMIZE_RELOAD_ADDRESS): New.
13808         * config/mn10300/mn10300-protos.h: Update.
13809
13810         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
13811         DATA_REGS for AM33 stack-pointer destination.
13812         (mn10300_preferred_output_reload_class): Likewise.
13813         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
13814         into a form appropriate for ...
13815         (TARGET_SECONDARY_RELOAD): New.
13816         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
13817         * config/mn10300/mn10300-protos.h: Update.
13818         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13819         reload_insi; use the "A" constraint for the scratch; handle AM33
13820         moves of sp to non-address registers.
13821
13822         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13823         (*movqi_internal): ... here.
13824         (*am33_movhi, *mn10300_movhi): Merge into...
13825         (*movhi_internal): ... here.
13826         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
13827         as the source/destination of moves from/to SP.
13828         (movsf): Only allow for AM33-2.
13829         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
13830         any integer constant constraint.  Only allow for AM33-2.  Tidy
13831         all of the alternative outputs.
13832         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13833         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
13834         for MN103.
13835         (udivsi3, umodsi3): New patterns for MN103 only.
13836
13837 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
13838
13839         * doc/tm.texi.in: Spell out that a lack of register class unions
13840         can lead to ICEs.
13841         * doc/tm.texi: Regenerate.
13842
13843 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13844
13845         PR rtl-optimization/47337
13846         * dce.c (check_argument_store): New function.
13847         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
13848
13849         PR tree-optimization/47290
13850         * tree-eh.c (infinite_empty_loop_p): New function.
13851         (cleanup_empty_eh): Use it.
13852
13853 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
13854
13855         PR target/46997
13856         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13857         (a64_expand_widen_sum): Ditto.
13858         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13859         (vec_extract_evenodd_help): Ditto.
13860         (vec_extract_evenv4hi): Ditto.
13861         (vec_extract_oddv4hi): Ditto.
13862         (vec_extract_evenv2si): Ditto.
13863         (vec_extract_oddv2si): Ditto.
13864         (vec_extract_evenv2sf): Ditto.
13865         (vec_extract_oddv2sf): Ditto.
13866         (vec_pack_trunc_v4hi: Ditto.
13867         (vec_pack_trunc_v2si): Ditto.
13868         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13869         (vec_interleave_highv8qi): Ditto.
13870         (mix1_r): Ditto.
13871         (vec_extract_oddv8qi): Ditto.
13872         (vec_interleave_lowv4hi): Ditto.
13873         (vec_interleave_highv4hi): Ditto.
13874         (vec_interleave_lowv2si): Ditto.
13875         (vec_interleave_highv2si): Ditto.
13876
13877 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13878
13879         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13880         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13881         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
13882         (pa_c_mode_for_suffix): New.
13883         (TARGET_EXPAND_BUILTIN): Define.
13884         (TARGET_C_MODE_FOR_SUFFIX): Define.
13885         (pa_builtins): Define.
13886         (pa_init_builtins): Register __float128 type and init new support
13887         builtins.
13888         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13889         * config/pa/quadlib.c (_U_Qfcopysign): New.
13890
13891 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13892
13893         PR middle-end/46894
13894         * explow.c (allocate_dynamic_stack_space): Do not assume more than
13895         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13896         are defined.
13897
13898 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13899
13900         PR tree-optimization/47179
13901         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13902         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13903
13904 2011-01-18  Richard Guenther  <rguenther@suse.de>
13905
13906         PR rtl-optimization/47216
13907         * emit-rtl.c: Include tree-flow.h.
13908         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13909         of replicating it with different semantics.
13910         * Makefile.in (emit-rtl.o): Adjust.
13911
13912 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13913
13914         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
13915         (cortex_a9_dp): Handle neon types correctly.
13916
13917 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
13918
13919         PR rtl-optimization/47299
13920         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
13921         subtarget.  Use normal multiplication if both operands are constants.
13922         * expmed.c (expand_widening_mult): Don't try to optimize constant
13923         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
13924         before using it.
13925
13926 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13927
13928         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
13929         spacing after 'e.g.', typos, comma, hyphenation.
13930
13931 2011-01-17  Richard Henderson  <rth@redhat.com>
13932
13933         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13934         (rx_restricted_mem_operand): New.
13935         (rx_shift_operand): Use register_operand.
13936         (rx_source_operand, rx_compare_operand): Likewise.
13937         * config/rx/rx.md (addsi3_flags): New expander.
13938         (adddi3): Rewrite as expander.
13939         (adc_internal, *adc_flags, adddi3_internal): New patterns.
13940         (subsi3_flags): New expander.
13941         (subdi3): Rewrite as expander.
13942         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13943
13944         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13945         (rx_init_builtins): Remove sat builtin.
13946         (rx_expand_builtin): Likewise.
13947         * config/rx/rx.md (ssaddsi3): New.
13948         (*sat): Rename from sat.  Represent the CC_REG input.
13949
13950         * config/rx/predicates.md (rshift_operator): New.
13951         * config/rx/rx.c (rx_expand_insv): Remove.
13952         * config/rx/rx-protos.h: Update.
13953         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
13954         operand to the canonical position.
13955         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13956         (*bitclr, *bitclr_in_memory): Similarly.
13957         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13958         (insv): Retain the zero_extract in the expansion.
13959
13960         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13961         (bswaphi2, bitinvert, revw): Likewise.
13962
13963         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13964         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13965         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13966         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13967         (bitset, bitset_in_memory): Likewise.
13968         (bitinvert, bitinvert_in_memory): Likewise.
13969         (bitclr, bitclr_in_memory): Likewise.
13970         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13971         (rx_strend, rx_cmpstrn): Likewise.
13972         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
13973         (bitop peep2 patterns): Remove.
13974
13975         * config/rx/rx.c (rx_match_ccmode): New.
13976         * config/rx/rx-protos.h: Update.
13977         * config/rx/rx.md (abssi2): Clobber, don't set flags.
13978         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13979         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13980         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13981         (fix_truncsfsi2, floatsisf2): Likewise.
13982         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13983         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13984         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13985         (*subsi3_flags, *xorsi3_flags): New.
13986
13987         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13988
13989         * config/rx/rx.c (rx_print_operand): Remove workaround for
13990         unsplit comparison operations.
13991
13992         * config/rx/rx.md (movsicc): Split after reload.
13993         (*movsicc): Merge *movsieq and *movsine via match_operator.
13994         (*stcc): New pattern.
13995
13996         * config/rx/rx.c (rx_float_compare_mode): Remove.
13997         * config/rx/rx.h (rx_float_compare_mode): Remove.
13998         * config/rx/rx.md (cstoresi4): Split after reload.
13999         (*sccc): New pattern.
14000
14001         * config/rx/predicates.md (label_ref_operand): New.
14002         (rx_z_comparison_operator): New.
14003         (rx_zs_comparison_operator): New.
14004         (rx_fp_comparison_operator): New.
14005         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
14006         Validate that the flags are set properly for the comparison.
14007         (rx_gen_cond_branch_template): Remove.
14008         (rx_cc_modes_compatible): Remove.
14009         (mode_from_flags): New.
14010         (flags_from_code): Rename from flags_needed_for_conditional.
14011         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
14012         (rx_select_cc_mode): Likewise.
14013         (rx_split_fp_compare): New.
14014         (rx_split_cbranch): New.
14015         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
14016         (*cbranchsi4): Use match_operator and rx_split_cbranch.
14017         (*cbranchsf4): Similarly.
14018         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
14019         match_operator and rx_split_cbranch.
14020         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
14021         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
14022         (*cmpsi): Rename from cmpsi.
14023         (*tstsi): Rename from tstsi.
14024         (*cmpsf): Rename from cmpsf; use CC_Fmode.
14025         (*conditional_branch): Rename from conditional_branch.
14026         (*reveresed_conditional_branch): Remove.
14027         (b<code>): Remove expander.
14028         * config/rx/rx-protos.h: Update.
14029
14030         * config/rx/rx.c (rx_compare_redundant): Remove.
14031         * config/rx/rx.md (cmpsi): Don't use it.
14032         * config/rx/rx-protos.h: Update.
14033
14034         * config/rx/rx-modes.def (CC_F): New mode.
14035         * config/rx/rx.c (rx_select_cc_mode): New.
14036         * config/rx/rx.h (SELECT_CC_MODE): Use it.
14037         * config/rx/rx-protos.h: Update.
14038
14039 2011-01-17  Richard Henderson  <rth@redhat.com>
14040
14041         * except.c (dump_eh_tree): Fix stray ; after for statement.
14042
14043 2011-01-17  Richard Guenther  <rguenther@suse.de>
14044
14045         PR tree-optimization/47313
14046         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
14047         handling before copying the body.  Properly deal with
14048         by-reference result in SSA form.
14049
14050 2011-01-17  Ian Lance Taylor  <iant@google.com>
14051
14052         PR target/47219
14053         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
14054         (struct_value_alias_set): Don't define.
14055         (sparc_option_override): Don't set sparc_sr_alias_set and
14056         struct_value_alias_set.
14057         (save_or_restore_regs): Use gen_frame_mem rather than calling
14058         set_mem_alias_set.
14059         (sparc_struct_value_rtx): Likewise.
14060
14061 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
14062
14063         PR target/47318
14064         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
14065         (_mm_maskstore_pd): Likewise.
14066         (_mm_maskload_ps): Likewise.
14067         (_mm_maskstore_ps): Likewise.
14068         (_mm256_maskload_pd): Change mask to __m256i.
14069         (_mm256_maskstore_pd): Likewise.
14070         (_mm256_maskload_ps): Likewise.
14071         (_mm256_maskstore_ps): Likewise.
14072
14073         * config/i386/i386-builtin-types.def: Updated.
14074         (ix86_expand_special_args_builtin): Likewise.
14075
14076         * config/i386/i386.c (bdesc_special_args): Update
14077         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14078         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14079         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14080         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14081
14082         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14083         Use <avxpermvecmode> on mask register.
14084         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14085
14086 2011-01-17  Olivier Hainque  <hainque@adacore.com>
14087             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
14088             Eric Botcazou  <ebotcazou@adacore.com>
14089
14090         PR target/46655
14091         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14092         if <= USHRT_MAX in 32-bit mode.
14093
14094 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14095
14096         * doc/install.texi (Configuration, Specific): Wrap long
14097         lines in examples.  Allow line wrapping in long options
14098         and URLs where beneficial for PDF output.
14099
14100 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
14101
14102         * config/mips/mips.c (mips_classify_symbol): Don't return
14103         SYMBOL_PC_RELATIVE for nonlocal labels.
14104
14105 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
14106
14107         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14108
14109 2011-01-15  Jan Hubicka  <jh@suse.cz>
14110
14111         PR tree-optimization/47276
14112         * ipa.c (function_and_variable_visibility): Do not try to mark alias
14113         declarations as needed.
14114
14115 2011-01-15  Martin Jambor  <mjambor@suse.cz>
14116
14117         * common.opt (fdevirtualize): New flag.
14118         * doc/invoke.texi (Option Summary): Document it.
14119         * opts.c (default_options_table): Add devirtualize flag.
14120         * ipa-prop.c (detect_type_change): Return immediately if
14121         devirtualize flag is not set.
14122         (detect_type_change_ssa): Likewise.
14123         (compute_known_type_jump_func): Likewise.
14124         (ipa_analyze_virtual_call_uses): Likewise.
14125
14126 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14127
14128         PR tree-optimization/45934
14129         PR tree-optimization/46302
14130         * ipa-prop.c (type_change_info): New type.
14131         (stmt_may_be_vtbl_ptr_store): New function.
14132         (check_stmt_for_type_change): Likewise.
14133         (detect_type_change): Likewise.
14134         (detect_type_change_ssa): Likewise.
14135         (compute_complex_assign_jump_func): Check for dynamic type change.
14136         (compute_complex_ancestor_jump_func): Likewise.
14137         (compute_known_type_jump_func): Likewise.
14138         (compute_scalar_jump_functions): Likewise.
14139         (ipa_analyze_virtual_call_uses): Likewise.
14140         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14141
14142 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14143
14144         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14145         * config/i386/i386.opt (msse5): New Alias.
14146
14147 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14148
14149         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14150         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14151         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14152         * config/sparc/sparc.h (CC1_SPEC): Likewise.
14153
14154 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14155
14156         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14157         -mcpu options.
14158         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14159         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14160         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14161         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14162         Likewise.
14163         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14164
14165 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14166
14167         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
14168
14169 2011-01-14  Mike Stump  <mikestump@comcast.net>
14170
14171         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14172         * config/fr30/fr30.md: Likweise
14173         (movsi_push): Likewise.
14174         (movsi_pop): Likewise.
14175         (enter_func): Likewise.
14176         * config/moxie/moxie.md (movsi_push): Likewise.
14177         (movsi_pop): Likewise.
14178
14179 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14180
14181         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14182         %{no_archive} %{exact_version}.
14183         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14184         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14185         %{no_archive} %{exact_version}.
14186         * config/mips/openbsd.h (LINK_SPEC): Likewise.
14187         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14188         * config/mips/vxworks.h: Likewise.
14189
14190 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14191
14192         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
14193
14194 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14195
14196         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14197         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14198
14199 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14200
14201         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14202         -nodefaultlib.
14203
14204 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14205
14206         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14207         for mcpu not cpu.
14208         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14209         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14210         not cpu.
14211         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14212         Don't handle -shlib.
14213
14214 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14215
14216         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14217         (CC1_SPEC): Don't handle -profile.
14218
14219 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14220
14221         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14222         * config/mips/mips.h (CC1_SPEC): Likewise.
14223
14224 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14225
14226         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14227         * config/mips/mips.h (CC1_SPEC): Likewise.
14228
14229 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14230
14231         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14232         * config/m32r/linux.h (LINK_SPEC): Likewise.
14233         * config/mips/linux.h (LINK_SPEC): Likewise.
14234         * config/mips/linux64.h (LINK_SPEC): Likewise.
14235         * config/sparc/linux.h (LINK_SPEC): Likewise.
14236         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14237         LINK_SPEC): Likewise.
14238         * config/xtensa/linux.h (LINK_SPEC): Likewise.
14239
14240 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14241
14242         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14243         %{version:-v}.
14244         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14245
14246 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14247
14248         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14249         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14250
14251 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14252
14253         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14254
14255 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14256
14257         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14258         supports -Bstatic/-Bdynamic.
14259         * configure: Regenerate.
14260
14261 2011-01-14  Jan Hubicka  <jh@suse.cz>
14262             Jack Howarth  <howarth@bromo.med.uc.edu>
14263
14264         PR target/46037
14265         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14266         when checking debug_info_level. Test write_symbols instead of
14267         debug_hooks->var_location when setting flag_var_tracking_uninit.
14268
14269 2011-01-14  Richard Guenther  <rguenther@suse.de>
14270
14271         PR tree-optimization/47179
14272         * target.def (ref_may_alias_errno): New target hook.
14273         * targhooks.h (default_ref_may_alias_errno): Declare.
14274         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14275         (default_ref_may_alias_errno): New function.
14276         * target.h (struct ao_ref_s): Declare.
14277         * tree-ssa-alias.c: Include target.h.
14278         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14279         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14280         (targhooks.o): Likewise.
14281         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14282         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14283
14284 2011-01-14  Richard Guenther  <rguenther@suse.de>
14285
14286         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
14287
14288 2011-01-14  Richard Guenther  <rguenther@suse.de>
14289
14290         PR tree-optimization/47280
14291         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14292         return CFG changes.
14293         (tree_ssa_forward_propagate_single_use_vars): Deal with
14294         CFG changes from associate_plusminus.
14295
14296 2011-01-14  Richard Guenther  <rguenther@suse.de>
14297
14298         PR middle-end/47281
14299         Revert
14300         2011-01-11  Richard Guenther  <rguenther@suse.de>
14301
14302         PR tree-optimization/46076
14303         * tree-ssa.c (useless_type_conversion_p): Conversions from
14304         unprototyped to empty argument list function types are useless.
14305
14306 2011-01-14  Richard Guenther  <rguenther@suse.de>
14307
14308         PR tree-optimization/47286
14309         * tree-ssa-structalias.c (new_var_info): Register variables are global.
14310
14311 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14312
14313         PR middle-end/46823
14314         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14315
14316 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
14317
14318         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14319         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14320         * config/xtensa/xtensa.c (xtensa_libcall_value,
14321         xtensa_function_value_regno_p): New functions.
14322         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14323
14324 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
14325
14326         PR c++/47213
14327         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14328         PE specific hook.
14329         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14330         New function prototype.
14331         * config/i386/winnt.c (i386_pe_assemble_visibility):
14332         Warn only if attribute was specified by user.
14333
14334 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
14335
14336         PR target/47251
14337         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14338         floating point.
14339         (floatunsdidf2_fcfidu): Ditto.
14340
14341 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14342
14343         * config/s390/s390.c (print_operand_address): Replace 'error' with
14344         'output_operand_lossage'.
14345         (print_operand): Likewise.
14346
14347 2011-01-13  Jeff Law  <law@redhat.com>
14348
14349         PR rtl-optimization/39077
14350         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14351         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14352         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14353         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14354         * gcse.c (prune_insertions_deletions): New function.
14355         (compute_pre_data): Use it.
14356
14357 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
14358
14359         PR debug/PR46973
14360         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14361         static function.
14362         (prune_unused_types_mark): Use it.
14363
14364 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
14365
14366         PR rtl-optimization/45352
14367         * sel-sched.c: Update copyright years.
14368         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
14369         in the advancing loop when we have issued issue_rate insns.
14370
14371 2011-01-12  Richard Henderson  <rth@redhat.com>
14372
14373         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14374         (TARGET_MD_ASM_CLOBBERS): New.
14375
14376         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14377         (TARGET_DELEGITIMIZE_ADDRESS): New.
14378
14379         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14380         (clzsi2, *bsch): New patterns.
14381
14382         * config/mn10300/mn10300.md (INT): New mode iterator.
14383         (*mov<INT>_clr): New pattern, and peep2 to generate it.
14384
14385         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14386         flag_split_wide_types.
14387
14388         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14389         (mn10300_trampoline_init): Rewrite without a template, an immediate
14390         load and a direct branch.
14391         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14392
14393 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
14394
14395         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14396         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14397         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14398         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14399
14400 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
14401
14402         PR debug/47209
14403         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14404         of type.
14405
14406 2011-01-12  Jan Hubicka  <jh@suse.cz>
14407
14408         PR driver/47244
14409         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14410         (PLUGIN_COND_CLOSE): New macro.
14411         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14412
14413 2011-01-12  Richard Guenther  <rguenther@suse.de>
14414
14415         PR lto/47259
14416         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14417         register variables in a MEM_REF.
14418
14419 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
14420
14421         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14422         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14423         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14424         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14425         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14426         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14427         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14428         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14429         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14430         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14431         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14432         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14433         * config/gnu-user.h: New.  Copied from linux.h.
14434         (LINUX_TARGET_STARTFILE_SPEC): Rename to
14435         GNU_USER_TARGET_STARTFILE_SPEC.
14436         (LINUX_TARGET_ENDFILE_SPEC): Rename to
14437         GNU_USER_TARGET_ENDFILE_SPEC.
14438         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14439         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14440         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14441         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14442         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14443         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14444         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14445         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14446         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14447         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14448         * config/arm/linux-eabi.h (CC1_SPEC): Use
14449         GNU_USER_TARGET_CC1_SPEC.
14450         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14451         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14452         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14453         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14454         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14455         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14456         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14457         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14458
14459 2011-01-12  Richard Guenther  <rguenther@suse.de>
14460
14461         PR other/46946
14462         * doc/invoke.texi (ffast-math): Document it is turned on
14463         with -Ofast.
14464
14465 2011-01-12  Jan Hubicka  <jh@suse.cz>
14466
14467         PR tree-optimization/47233
14468         * opts.c (common_handle_option): Disable ipa-reference with profile
14469         feedback.
14470
14471 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14472
14473         * c-parser.c (c_parser_objc_at_property_declaration): Improved
14474         error message.
14475
14476 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14477
14478         * c-parser.c (c_lex_one_token): Updated and reindented some
14479         comments.  No changes in code.
14480
14481 2011-01-11  Ian Lance Taylor  <iant@google.com>
14482
14483         * godump.c (go_output_var): Don't output the variable if there is
14484         already a type with the same name.
14485
14486 2011-01-11  Ian Lance Taylor  <iant@google.com>
14487
14488         * godump.c (go_format_type): Don't generate float80.
14489
14490 2011-01-11  Richard Henderson  <rth@redhat.com>
14491
14492         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14493         declaration.  Rewrite for both speed and size.
14494         (mn10300_address_cost_1): Remove.
14495         (mn10300_register_move_cost): New.
14496         (mn10300_memory_move_cost): New.
14497         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
14498         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
14499         extensions, shifts, BSWAP, CLZ.
14500         (mn10300_wide_const_load_uses_clr): Remove.
14501         (TARGET_REGISTER_MOVE_COST): New.
14502         (TARGET_MEMORY_MOVE_COST): New.
14503         * config/mn10300/mn10300-protos.h: Update.
14504         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14505
14506         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14507         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14508         * config/mn10300/mn10300-protos.h: Update.
14509         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14510         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14511         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14512         (*test_int_bitfield, *test_byte_bitfield): Remove.
14513         (*bit_test, *subreg_bit_test): Remove.
14514         * config/mn10300/predicates.md (const_8bit_operand): Remove.
14515
14516         * config/mn10300/constraints.md ("c"): Rename from "A".
14517         ("A", "D"): New constraint letters.
14518         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14519         (fmssf4, fnmasf4, fnmssf4): Likewise.
14520
14521         * config/mn10300/mn10300.md (isa): New attribute.
14522         (enabled): New attribute.
14523
14524         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14525         (abssf2, negsf2): Define only for hardware fp.
14526         (sqrtsf2): Reformat.
14527         (addsf3, subsf3, mulsf3): Merge expander and insn.
14528
14529         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14530         (DEBUGGER_AUTO_OFFSET): Remove.
14531         (DEBUGGER_ARG_OFFSET): Remove.
14532
14533         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14534         Emit register stores with the same offsets as the hardware.
14535         (mn10300_store_multiple_operation): Don't check that the register
14536         save offsets are monotonic.
14537         * config/mn10300/mn10300-protos.h: Update.
14538
14539         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14540
14541         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14542         in terms of the value on the stack, not the MDR register.
14543
14544 2011-01-11  Jan Hubicka  <jh@suse.cz>
14545
14546         PR lto/45721
14547         PR lto/45375
14548         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14549         (symbol_alias_set_destroy, symbol_alias_set_contains,
14550         propagate_aliases_backward): Declare.
14551         * lto-streamer-out.c (struct sets): New sturcture.
14552         (trivally_defined_alias): New function.
14553         (output_alias_pair_p): Rewrite.
14554         (output_unreferenced_globals): Fix output of alias pairs.
14555         (produce_symtab): Likewise.
14556         * ipa.c (function_and_variable_visibility): Set weak alias destination
14557         as needed in lto.
14558         * varasm.c (symbol_alias_set_t): Remove.
14559         (symbol_alias_set_destroy): Export.
14560         (propagate_aliases_forward, propagate_aliases_backward): New functions
14561         based on ...
14562         (compute_visible_aliases): ... this one; remove.
14563         (trivially_visible_alias): New
14564         (trivially_defined_alias): New.
14565         (remove_unreachable_alias_pairs): Rewrite.
14566         (finish_aliases_1): Reorganize code checking if alias is defined.
14567         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14568         in LTO mode.
14569
14570 2011-01-11  Richard Guenther  <rguenther@suse.de>
14571
14572         PR tree-optimization/46076
14573         * tree-ssa.c (useless_type_conversion_p): Conversions from
14574         unprototyped to empty argument list function types are useless.
14575
14576 2011-01-11  Richard Guenther  <rguenther@suse.de>
14577
14578         PR middle-end/45235
14579         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14580         volatile MEMs as MEM_READONLY_P.
14581
14582 2011-01-11  Richard Guenther  <rguenther@suse.de>
14583
14584         PR tree-optimization/47239
14585         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14586
14587 2011-01-11  Jeff Law  <law@redhat.com>
14588
14589         PR tree-optimization/47086
14590         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14591         IVs from statements that might throw.
14592
14593 2011-01-10  Jan Hubicka  <jh@suse.cz>
14594
14595         PR lto/45375
14596         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14597
14598 2011-01-10  Jan Hubicka  <jh@suse.cz>
14599
14600         PR lto/45375
14601         * profile.c (read_profile_edge_counts): Ignore profile inconistency
14602         when correcting profile.
14603
14604 2011-01-10  Jan Hubicka  <jh@suse.cz>
14605
14606         PR lto/46083
14607         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14608         DECL_FINI_PRIORITY.
14609         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14610         Restore DECL_FINI_PRIORITY.
14611
14612 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14613
14614         * doc/gimple.texi: Fix quoting of multi-word return values in
14615         @deftypefn statements.  Ensure presence of return value.  Wrap
14616         overlong @deftypefn lines.
14617         (is_gimple_operand, is_gimple_min_invariant_address): Remove
14618         descriptions of removed functions.
14619         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14620         of multi-word return value in @deftypefn statement.
14621
14622 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14623
14624         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14625         (Conditional Expressions, Logical Operators)
14626         (Statement and operand traversals): Do not indent smallexample
14627         code.  Fix duplicate function argument in example.
14628
14629 2011-01-10  Jeff Law  <law@redhat.com>
14630
14631         PR tree-optimization/47141
14632         * ipa-split.c (split_function): Handle case where we are
14633         returning a value and the return block has a virtual operand phi.
14634
14635 2011-01-10  Jan Hubicka  <jh@suse.cz>
14636
14637         PR tree-optimization/47234
14638         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14639         (pass_feedback_split_functions): Declare.
14640         * passes.c (init_optimization_passes): Add ipa-split as subpass of
14641         tree-profile.
14642         * ipa-split.c (gate_split_functions): Update comments; disable
14643         split-functions for profile_arc_flag and branch_probabilities.
14644         (gate_feedback_split_functions): New function.
14645         (execute_feedback_split_functions): New function.
14646         (pass_feedback_split_functions): New global var.
14647
14648 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
14649
14650         PR lto/46760
14651         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14652         calling gimple_call_set_cannot_inline.
14653
14654 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
14655
14656         * config/darwin-sections.def: Remove unused section.
14657
14658 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
14659
14660         PR c++/47218
14661         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14662
14663 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14664
14665         PR objc/47232
14666         * c-parser.c (c_parser_declaration_or_fndef): Improved
14667         error message.
14668
14669 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
14670
14671         * config/i386/winnt.c (i386_pe_start_function): Make sure
14672         to switch back to function's section.
14673
14674 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
14675
14676         PR gcc/46902
14677         PR testsuite/46912
14678         * plugin.c: Move include of dlfcn.h from here...
14679         * system.h: ... to here.
14680
14681 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14682
14683         * doc/cpp.texi (C++ Named Operators): Fix markup for header
14684         file name.
14685         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14686         two extra empty pages in PDF output.
14687
14688 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
14689
14690         PR objc/47078
14691         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14692         for error recovery purposes behave as if it was not specified so
14693         that the default type is usd.
14694
14695 2011-01-07  Jan Hubicka  <jh@suse.cz>
14696
14697         PR tree-optmization/46469
14698         * ipa.c (function_and_variable_visibility): Clear needed flags on
14699         nodes with external decls; handle weakrefs merging correctly.
14700
14701 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
14702
14703         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14704         not false.
14705
14706 2011-01-07  Jan Hubicka  <jh@suse.cz>
14707
14708         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
14709         and no longer claim that gold is required for linker plugin.
14710         * configure: Regenerate.
14711         * gcc.c (PLUGIN_COND): New macro.
14712         (LINK_COMMAND_SPEC): Use it.
14713         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14714         * config.in (HAVE_LTO_PLUGIN): New.
14715         * configure.ac (--with-lto-plugin): New parameter; autodetect
14716         HAVE_LTO_PLUGIN.
14717
14718 2011-01-07  Jan Hubicka  <jh@suse.cz>
14719
14720         PR tree-optimization/46367
14721         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14722         when we can update original.
14723         (cgraph_mark_inline_edge): Sanity check.
14724         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14725
14726 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14727
14728         * config/spu/spu.h (ASM_COMMENT_START): Define.
14729
14730 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
14731
14732         PR driver/42445
14733         * gcc.c (%>S): New.
14734         (SWITCH_KEEP_FOR_GCC): Likewise.
14735         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14736         (do_spec_1): Handle "%>".
14737
14738         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14739
14740 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
14741
14742         PR target/47201
14743         * config/i386/i386.c (ix86_delegitimize_address): If
14744         simplify_gen_subreg fails, return orig_x.
14745
14746         PR bootstrap/47187
14747         * value-prof.c (gimple_stringop_fixed_value): Handle
14748         lhs of the call properly.
14749
14750 2011-01-07  Jan Hubicka  <jh@suse.cz>
14751
14752         PR lto/45375
14753         * lto-opt.c (lto_reissue_options): Set flag_shlib.
14754
14755 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14756
14757         * target.def (function_switched_text_sections): New hook.
14758         * doc/tm.texi: Regenerated.
14759         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14760         * final.c (default_function_switched_text_sections): New.
14761         (final_scan_insn): Call function_switched_text_sections when a
14762         mid-function section change occurs.
14763         * output.h (default_function_switched_text_sections): Declare.
14764         * config/darwin-protos.h (darwin_function_switched_text_sections):
14765         Likewise.
14766         * config/darwin.c (darwin_function_switched_text_sections): New.
14767         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14768
14769 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14770
14771         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
14772         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
14773         the secondary code fragment when outputting for DWARF == 2.
14774
14775 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
14776
14777         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14778         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14779         Remove.
14780         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14781         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14782
14783 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
14784
14785         PR debug/46704
14786         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14787         when it is not empty.
14788
14789 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
14790
14791         Bobcat Enablement
14792         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
14793         (case ${target}): Add btver1.
14794         * config/i386/driver-i386.c (host_detect_local_cpu): Let
14795         -march=native recognize btver1 processors.
14796         * config/i386/i386-c.c (ix86_target_macros_internal): Add
14797         btver1 def_and_undef
14798         * config/i386/i386.c (struct processor_costs btver1_cost): New
14799         btver1 cost table.
14800         (m_BTVER1): New definition.
14801         (m_AMD_MULTIPLE): Includes m_BTVER1.
14802         (initial_ix86_tune_features): Add btver1 tune.
14803         (processor_target_table): Add btver1 entry.
14804         (static const char *const cpu_names): Add btver1 entry.
14805         (software_prefetching_beneficial_p): Add btver1.
14806         (ix86_option_override_internal): Add btver1 instruction sets.
14807         (ix86_issue_rate): Add btver1.
14808         (ix86_adjust_cost): Add btver1.
14809         * config/i386/i386.h (TARGET_BTVER1): New definition.
14810         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
14811         (enum processor_type): Add PROCESSOR_BTVER1.
14812         * config/i386/i386.md (define_attr "cpu"): Add btver1.
14813
14814 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14815
14816         PR target/43309
14817         * config/i386/i386.c (legitimize_tls_address)
14818         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14819         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14820         (tls_initial_exec_64_sun): New pattern.
14821
14822 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
14823
14824         * doc/invoke.texi (Overall Options): Improve wording and markup
14825         of the description of -wrapper.
14826
14827 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14828
14829         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14830         rdynamic, threads): New Driver options.
14831
14832 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14833
14834         PR target/38118
14835         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14836         if coming from .tdata.
14837         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14838
14839 2011-01-06  Jan Hubicka  <jh@suse.cz>
14840
14841         PR lto/47188
14842         * collect2.c (main): Do not enable LTOmode when plugin is active.
14843
14844 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14845
14846         PR other/45915
14847         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14848         --version output if supported.
14849         * configure: Regenerate.
14850
14851 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14852
14853         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14854         Driver options.
14855
14856 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
14857
14858         PR c/47150
14859         * c-convert.c (convert): When converting a complex expression
14860         other than COMPLEX_EXPR to a different complex type, ensure
14861         c_save_expr is called instead of save_expr, unless in_late_binary_op.
14862         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14863         when converting COMPLEX_TYPE.
14864
14865 2011-01-06  Ira Rosen  <irar@il.ibm.com>
14866
14867         PR tree-optimization/47139
14868         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14869         only the last reduction value is used outside the loop.  Update
14870         documentation.
14871
14872 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
14873
14874         * config/rtems.opt: New.
14875         * config.gcc (*-*-rtems*): Use rtems.opt.
14876
14877 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
14878
14879         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14880         processors do not support 3DNow instructions.
14881
14882 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14883
14884         * config/spu/spu.c (spu_option_override): Set parameter
14885         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14886
14887 2011-01-05  Jan Hubicka  <jh@suse.cz>
14888
14889         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14890         at the command line.
14891
14892 2011-01-05  Martin Jambor  <mjambor@suse.cz>
14893
14894         PR lto/47162
14895         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14896         deltas on streamed outgoing edges.
14897         (output_node_opt_summary): Output info for outgoing edges only when
14898         the node is in new parameter set.
14899         (output_cgraph_opt_summary): New parameter set, passed to the two
14900         aforementioned functions.  Update its forward declaration and its
14901         callee too.
14902
14903 2011-01-05  Tom Tromey  <tromey@redhat.com>
14904
14905         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14906         operator to c_finish_omp_atomic.
14907         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14908         (build_unary_op): Update.
14909         (build_modify_expr): Update.
14910         (build_asm_expr): Update.
14911
14912 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14913
14914         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14915         newly inserted insns.
14916         (pad_bb): Likewise.
14917         (spu_emit_branch_hint): Likewise.
14918         (insert_hbrp_for_ilb_runout): Likewise.
14919         (spu_machine_dependent_reorg): Call df_finish_pass after
14920         schedule_insns returns.
14921
14922 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14923
14924         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14925
14926 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14927
14928         PR tree-optimization/47005
14929         * tree-sra.c (struct access): Add 'non_addressable' bit.
14930         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14931         (decide_one_param_reduction): Return 0 if the parameter is passed by
14932         reference and one of the accesses in the group is non_addressable.
14933
14934 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14935
14936         PR tree-optimization/47056
14937         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14938         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
14939         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
14940
14941 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14942
14943         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14944         initializer.  Skip view conversions from aggregate types.
14945
14946 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
14947
14948         PR bootstrap/47055
14949         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14950
14951 2011-01-04  Philipp Thomas  <pth@suse.de>
14952
14953         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14954         obvious typo.
14955
14956 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14957
14958         * function.c (thread_prologue_and_epilogue_insns): Do not crash
14959         on empty epilogue sequences.
14960
14961 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
14962
14963         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14964         non-static): New Driver options.
14965
14966 2011-01-04  Jie Zhang  <jie@codesourcery.com>
14967
14968         PR driver/47137
14969         * gcc.c (default_compilers[]): Set combinable field to 0
14970         for all assembly languages.
14971
14972 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
14973
14974         * config/mips/loongson3a.md: New file.
14975         * config/mips/mips.md: Include loongson3a.md.
14976         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14977         TUNE_LOONGSON_3A.
14978
14979 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14980
14981         PR middle-end/47017
14982         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14983         instead of convert_memory_address_addr_space on the base expression.
14984
14985 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14986
14987         * config/spu/spu.c (spu_option_override): Update error text
14988         for bad -march= / -mtune= values.
14989
14990 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14991
14992         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14993         if branch-hint optimization will be performed.
14994
14995 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14996
14997         PR tree-optimization/47148
14998         * ipa-split.c (split_function): Convert arguments to
14999         DECL_ARG_TYPE if possible.
15000
15001         PR tree-optimization/47155
15002         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
15003         when computing uns.
15004
15005         PR rtl-optimization/47157
15006         * combine.c (try_combine): If undobuf.other_insn becomes
15007         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
15008         and set *new_direct_jump_p too.
15009
15010 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
15011
15012         PR tree-optimization/47021
15013         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
15014
15015 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
15016
15017         * gcc.c (process_command): Update copyright notice dates.
15018         * gcov.c (print_version): Likewise.
15019         * gcov-dump.c (print_version): Likewise.
15020         * mips-tfile.c (main): Likewise.
15021         * mips-tdump.c (main): Likewise.
15022
15023 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15024
15025         PR tree-optimization/46801
15026         * tree-sra.c (type_internals_preclude_sra_p): Check whether
15027         aggregate fields start at byte boundary instead of the bit-field flag.
15028
15029 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
15030
15031         PR driver/47137
15032         * gcc.c (main): Revert revision 168407.
15033
15034 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15035
15036         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
15037
15038 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15039
15040         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
15041         vector optab to expand vector/scalar shift, update gimple to vector.
15042
15043 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15044
15045         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
15046         a thunk.
15047
15048 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15049
15050         PR tree-optimization/46984
15051         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
15052         HOST_WIDE_INT.
15053         (cgraph_create_indirect_edge): Fixed line length.
15054         (cgraph_indirect_call_info): Declare.
15055         (cgraph_make_edge_direct) Update declaration.
15056         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
15057         (cgraph_create_indirect_edge): Use it.
15058         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
15059         callees.
15060         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
15061         the new thunk_delta representation.
15062         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
15063         HOST_WIDE_INT.
15064         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15065         (ipa_read_indirect_edge_info): Likewise.
15066         * lto-cgraph.c (output_edge_opt_summary): New function.
15067         (output_node_opt_summary): Call it on all outgoing edges.
15068         (input_edge_opt_summary): New function.
15069         (input_node_opt_summary): Call it on all outgoing edges.
15070
15071 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
15072
15073         PR driver/47137
15074         * gcc.c (main): Don't check have_o when settting combine_inputs.
15075
15076 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
15077
15078         * regrename.c: Add general comment describing the pass.
15079         (struct du_head): Remove 'length' field.
15080         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15081         (regrename_optimize): Do not sort chains.  Rework comments, add others.
15082         Force renaming to the preferred class (if any) in the first pass and do
15083         not consider registers that belong to it in the second pass.
15084         (create_new_chain): Do not set 'length' field.
15085         (scan_rtx_reg): Likewise.
15086
15087 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
15088
15089         PR tree-optimization/47140
15090         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15091         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15092         to bit_value_binop.
15093
15094         PR rtl-optimization/47028
15095         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15096         parm_birth_insn instead of at the beginning of first bb.
15097
15098 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
15099
15100         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15101         Remove the word "see" before "@pxref".
15102         * doc/rtl.texi: Remove the word "see" before "@pxref".
15103
15104 2011-01-01  Jan Hubicka  <jh@suse.cz>
15105
15106         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15107         memory.
15108
15109 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
15110
15111         PR target/38662
15112         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
15113
15114 \f
15115 Copyright (C) 2011 Free Software Foundation, Inc.
15116
15117 Copying and distribution of this file, with or without modification,
15118 are permitted in any medium without royalty provided the copyright
15119 notice and this notice are preserved.