OSDN Git Service

2011-05-22 Tom de Vries <tom@codesourcery.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-22  Tom de Vries  <tom@codesourcery.com>
2
3         PR target/45098
4         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fixed const test
5         for call to get_shiftadd_cost.
6
7 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
8
9         PR target/49104
10         * config/i386/cpuid.h (bit_MMXEXT): New define.
11
12 2011-05-22  Nick Clifton  <nickc@redhat.com>
13
14         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
15         initialisation of non-existant args[2] element.  Use args[] array
16         not arg[] array to pass arguments to build_function_type_list.
17
18 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
19
20         PR tree-optimization/49087
21         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
22
23 2011-05-21  Jason Merrill  <jason@redhat.com>
24
25         PR c++/49092
26         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
27         static storage duration.
28
29 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
30
31         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
32         frame pointer.
33
34 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
35
36         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
37         false if there are call-saved registers here...
38         (sparc_can_use_return_insn_p): ...but here instead.
39         (save_or_restore_regs): Fix thinko.
40         (sparc_expand_prologue): Use current_function_is_leaf.
41         (sparc_frame_pointer_required): Likewise.
42
43 2011-05-21  Nick Clifton  <nickc@redhat.com>
44
45         PR target/49098
46         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
47
48 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
49
50         * gengtype.c (walk_type): Implemented "atomic" GTY option.
51         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
52
53 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
54
55         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
56         * optc-gen.awk: Move common code to opt-read.awk.
57         * opth-gen.awk: Likewise.
58         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
59
60 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
61
62         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
63
64 2011-05-20  Tom de Vries  <tom@codesourcery.com>
65
66         PR target/45098
67         * tree-ssa-loop-ivopts.c: Include expmed.h.
68         (get_shiftadd_cost): New function.
69         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
70
71 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
72
73         PR bootstrap/49086
74         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
75         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
76
77 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
78
79         * Makefile.in: Update comment referring to $(OBJS-common).
80
81 2011-05-20  Ian Lance Taylor  <iant@google.com>
82
83         * godump.c (go_output_typedef): Put enum constants in the macro
84         hash table to avoid duplicate Go const definitions.
85
86 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
87
88         * Makefile.in (LIBDEPS): Add libcommon.a.
89         (LIBS): Likewise.
90         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
91         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
92         pretty-print.o and version.o.
93         (OBJS-libcommon): New.
94         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
95         (BACKEND): Add libcommon.a.
96         (MOSTLYCLEANFILES): Likewise.
97         (libcommon.a): New.
98         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
99         (cpp$(exeext)): Likewise.
100         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
101         pretty-print.o and input.o.
102         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
103         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
104         (errors.o): Remove.
105         (mips-tfile): Don't explicitly use version.o.
106         (mips-tdump): Likewise.
107         (gcov.o): Depend on $(DIAGNOSTIC_H).
108         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
109         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
110         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
111         * gcov-dump.c: Include intl.h and diagnostic.h.
112         (main): Initialize diagnostics.
113         * gcov.c: Include diagnostic.h.
114         (fnotice): Remove.
115         (main): Initialize diagnostics.
116         * lto-wrapper.c: Include diagnostic.h.
117         (main): Initialize diagnostics.
118
119 2011-05-20  Michael Matz  <matz@suse.de>
120
121         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
122
123 2011-05-20  Michael Matz  <matz@suse.de>
124             Richard Guenther  <rguenther@suse.de>
125
126         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
127         use lto_streamer_cache_append directly instead of returning a VEC.
128         (preload_common_node): Remove.
129         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
130         track seen nodes.
131         (lto_streamer_cache_create): Call lto_preload_common_nodes.
132
133 2011-05-20  Richard Guenther  <rguenther@suse.de>
134
135         PR tree-optimization/49079
136         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
137         MEM_REFs correctly for the trailing array access detection.
138         Special case constants the same way as decls for overall size
139         constraining.
140
141 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
142
143         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
144         argument expansion.
145
146 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
147
148         PR tree-optimization/49073
149         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
150         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
151         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
152
153 2011-05-20  Richard Guenther  <rguenther@suse.de>
154
155         PR middle-end/48849
156         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
157         of pointer types the same way the middle-end does.
158
159 2011-05-20  Richard Guenther  <rguenther@suse.de>
160
161         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
162         or pointer-to chains.  Delay all fixup to uniquify_nodes.
163
164 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
165
166         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
167         (fma4_fmaddsub): Likewise
168
169 2011-05-19  Jan Hubicka  <jh@suse.cz>
170
171         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
172         (GIMPLE_TYPE_PAIR_SIZE): New macro.
173         (type_pair_cache): New static var.
174         (lookup_type_pair): Use fixed sized custom hash; make inline.
175         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
176         calls of lookup_type_pair.
177         (print_gimple_types_stats): Remove cache stats.
178         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
179         and gtc_ob.
180
181 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
182
183         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
184         when TARGET_RDRND is active.
185         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
186         Generate dummy SImode target register when target is NULL.
187
188 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
189
190         * config/arm/arm-fpus.def: New.
191         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
192         arm-fpus.def.
193         * config/arm/arm-tables.opt: Regenerate.
194         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
195         (arm_option_override): Don't decode FPU name to string here.
196         * config/arm/arm.opt (mfpu=): Use Enum.
197         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
198         Update dependencies.
199
200 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
201
202         * collect2.c: Include diagnostic.h.
203         (fatal_perror, fatal, error, fancy_abort): Remove.
204         (main): Set progname.  Call xmalloc_set_program_name and
205         diagnostic_initialize.
206         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
207         scan_libraries, resolve_lib_name): Call fatal_error instead of
208         fatal and fatal_perror.
209         * collect2.h (error, fatal, fatal_perror): Don't declare.
210         * tlink.c: Include diagnostic-core.h.
211         (recompile_files): Call fatal_error instead of fatal_perror.
212         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
213         pretty-print.o and input.o.
214         (collect2.o, tlink.o): Update dependencies.
215
216 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
217
218         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
219
220 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
221
222         PR target/40483
223         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
224         COMDAT group syntax, both SPARC and x86 variants.
225         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
226         * configure: Regenerate.
227         * config/sol2.h (TARGET_SOLARIS): Define.
228         (PUSHSECTION_FORMAT): Remove.
229         (SECTION_NAME_FORMAT): Define.
230         * config/sol2.c: Include hashtab.h.
231         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
232         expansion, using SECTION_NAME_FORMAT.
233         (solaris_comdat_htab): New variable.
234         (struct comdat_entry): Define.
235         (comdat_hash): New function.
236         (comdat_eq): New function.
237         (solaris_elf_asm_comdat_section): New function.
238         (solaris_define_comdat_signature): New function.
239         (solaris_code_end): New function.
240         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
241         (solaris_code_end): Declare.
242         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
243         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
244         solaris_code_end.
245         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
246         Remove ATTRIBUTE_UNUSED.
247         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
248         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
249         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
250         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
251         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
252         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
253         (PUSHSECTION_FORMAT): Remove.
254         (SECTION_NAME_FORMAT): Redefine.
255
256 2011-05-19  Kai Tietz  <ktietz@redhat.com>
257
258         * tree-cfg.c (verify_gimple_assign_binary): Barf on
259         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
260         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
261
262 2011-05-19  Anatoly Sokolov <aesok@post.ru>
263             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
264
265         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
266
267 2011-05-19  Richard Guenther  <rguenther@suse.de>
268
269         PR middle-end/48985
270         * tree-object-size.c (addr_object_size): If the pointed-to
271         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
272
273 2011-05-19  Richard Guenther  <rguenther@suse.de>
274
275         * gimple.c (gimple_types_compatible_p_1): Compare names of
276         the types themselves.
277         (iterative_hash_gimple_type): And hash them that way.
278         (gimple_register_type_1): If we register a main variant properly
279         initialize the leader to ourselves.
280
281 2011-05-19  Tom de Vries  <tom@codesourcery.com>
282
283         PR target/45098
284         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
285         get_loop_invariant_expr_id.
286         (get_loop_invariant_expr_id): Use get_expr_id.
287         (parm_decl_cost): New function.
288         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
289         Improve bound cost estimation.  Use different inv_expr_id for elim and
290         express cases.
291
292 2011-05-19  Tom de Vries  <tom@codesourcery.com>
293
294         PR target/45098
295         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
296         cost_base.cost == 0.
297
298 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
299
300         PR target/49002
301         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
302         Properly handle load cast.
303
304 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
305
306         PR tree-optimization/49039
307         * tree-vrp.c (extract_range_from_binary_expr): For
308         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
309         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
310
311 2011-05-18  Tom de Vries  <tom@codesourcery.com>
312
313         PR target/45098
314         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
315
316 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
317
318         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
319         (*tls_global_dynamic_64): Ditto.
320         (*tls_local_dynamic_base_32_gnu): Ditto.
321         (*tls_local_dynamic_base_64): Ditto.
322         (tls_initial_exec_64_sun): Ditto.
323
324 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
325
326         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
327         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
328         bf592-none.
329         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
330         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
331         * config/bfin/bfin.c (bfin_cpus): Add bf592.
332         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
333         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
334         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
335         * config/bfin/elf.h (LIB_SPEC): Add bf592.
336
337 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
338
339         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
340         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
341         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
342         target_thread_pointer, arm_structure_size_boundary, struct
343         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
344         struct abi_name, arm_all_abis): Remove.
345         (arm_option_override) Don't process most enumerated option values here.
346         Don't process target_fpe_name here.  Work with integer not string for
347         structure size boundary; use separate diagnostics for each case.
348         * config/arm/arm.h (enum float_abi_type, enum
349         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
350         to arm-opts.h.
351         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
352         arm_structure_size_boundary): Remove.
353         * config/arm/arm.opt (mabi=): Use Enum and Init.
354         (arm_abi_type): New Enum and EnumValue entries.
355         (mfloat-abi=): Use Enum and Init.
356         (float_abi_type): New Enum and EnumValue entries.
357         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
358         (mfp16-format=): Use Enum and Init.
359         (arm_fp16_format_type): New Enum and EnumValue entries.
360         (mstructure-size-boundary=): Use UInteger and Init.
361         (mtp=): Use Enum and Init.
362         (arm_tp_type): New Enum and EnumValue entries.
363
364 2011-05-18  Richard Guenther  <rguenther@suse.de>
365
366         PR tree-optimization/49018
367         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
368         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
369         gimple_has_side_effects.
370
371 2011-05-18  Richard Guenther  <rguenther@suse.de>
372
373         * gimple.c (gimple_register_type_1): New function, split out from ...
374         (gimple_register_type): ... here.  Avoid infinite recursion.
375
376 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
377
378         PR tree-optimization/41881
379         * tree-vectorizer.h (struct _loop_vec_info): Add new field
380         reduction_chains along with a macro for its access.
381         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
382         (destroy_loop_vec_info): Free reduction chains.
383         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
384         (vect_is_slp_reduction): New function.
385         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
386         (vect_create_epilog_for_reduction): Support SLP reduction chains.
387         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
388         definition types for reduction chains.
389         (vect_supported_load_permutation_p): Don't allow permutations for
390         reduction chains.
391         (vect_analyze_slp_instance): Support reduction chains.
392         (vect_analyze_slp): Try to build SLP instance from reduction chains.
393         (vect_get_constant_vectors):  Handle reduction chains.
394         (vect_schedule_slp_instance): Mark the first statement of the
395         reduction chain as reduction.
396
397 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
398
399         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
400         names for group elements access.
401         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
402         reduction chains as well.  Remove data reference and interleaving
403         related words from the fields names.
404         * tree-vect-loop.c (vect_transform_loop): Use new names for group
405         elements access.
406         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
407         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
408         vect_update_interleaving_chain, vect_same_range_drs,
409         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
410         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
411         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
412         vect_analyze_group_access, vect_analyze_data_ref_access,
413         vect_create_data_ref_ptr, vect_transform_strided_load,
414         vect_record_strided_load_vectors): Likewise.
415         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
416         vect_model_load_cost, vectorizable_store, vectorizable_load,
417         vect_remove_stores, new_stmt_vec_info): Likewise.
418         * tree-vect-slp.c (vect_build_slp_tree,
419         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
420
421 2011-05-18  Richard Guenther  <rguenther@suse.de>
422
423         PR middle-end/48989
424         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
425         operand verification.
426         (verify_gimple_assign_binary): Likewise.
427         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
428         to non-1-precision BOOLEAN_TYPEs.
429
430 2011-05-18  Tom de Vries  <tom@codesourcery.com>
431
432         PR target/45098
433         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
434
435 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
436
437         PR tree-optimization/49000
438         * tree-ssa.c (execute_update_addresses_taken): Call
439         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
440         be rewritten and decl has been marked for renaming, reset
441         the debug stmt.
442
443 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
444
445         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
446         enum_opts_set when testing if attributes have set -mfpmath=.
447
448 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
449
450         * config/mips/mips.c (mips_handle_option): Remove unused variable.
451
452 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
453
454         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
455         info->entry with 0
456         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
457         id.transform_lang_insert_block with NULL.
458
459 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
460
461         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
462         (output_fp_compare): Change args 3 and 4 to bool.
463         (ix86_expand_call): Change arg 6 to bool.
464         (ix86_attr_length_immediate_default): Change arg 2 to bool.
465         (ix86_attr_length_vex_default): Change arg 3 to bool.
466         * config/i386/i386.md: Update all uses.
467         * config/i386/i386.c: Ditto.
468         (ix86_flags_dependent): Change return type to bool.
469
470 2011-05-17  Richard Guenther  <rguenther@suse.de>
471
472         * gimple.c (type_hash_pair_compare): Fix comparison.
473
474 2011-05-17  Richard Guenther  <rguenther@suse.de>
475
476         * gimple.c (iterative_hash_gimple_type): Simplify singleton
477         case some more, fix final hash value of the non-singleton case.
478
479 2011-05-17  Richard Guenther  <rguenther@suse.de>
480
481         PR bootstrap/49013
482         Revert
483         2011-05-16  Richard Guenther  <rguenther@suse.de>
484
485         * gimple.c (gimple_types_compatible_p_1): Use names of the
486         type itself, not its main variant.
487         (iterative_hash_gimple_type): Likewise.
488
489 2011-05-17  Richard Guenther  <rguenther@suse.de>
490
491         * gimple.c (gimple_register_canonical_type): Use the main-variant
492         leader for computing the canonical type.
493
494 2011-05-17  Nick Clifton  <nickc@redhat.com>
495
496         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
497         moves.
498
499         * config/rx/rx.md: Add peephole to remove redundant extensions
500         after loads.
501         (bitset_in_memory): Use rx_restricted_mem_operand.
502         (bitinvert_in_memory): Likewise.
503         (bitclr_in_memory): Likewise.
504
505 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
506             Nick Clifton  <nickc@redhat.com>
507
508         * config/rx/rx.md: Add peepholes to match a register move followed
509         by a comparison of the moved register.  Replace these with an
510         addition of zero that does both actions in one instruction.
511
512 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
513
514         PR target/48986
515         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
516         predicate to allow CONST_INT.
517         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
518
519 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
520
521         * opts-common.c (opt_enum_arg_to_value): New.
522         * opts.h (opt_enum_arg_to_value): Declare.
523         * config/i386/i386.opt (fpmath): Remove.
524         (mfpmath=): Use Enum, Init and Save.
525         (fpmath_unit): New Enum and EnumValue entries.
526         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
527         name for function fpmath state.
528         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
529         * config/i386/i386.c: Include diagnostic.h.
530         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
531         (ix86_target_string): Take enum fpmath_unit value instead of string.
532         (ix86_debug_options): Update call to ix86_target_string.
533         (ix86_option_override_internal): Don't process fpmath strings here.
534         (x86_function_specific_save, ix86_function_specific_restore):
535         Don't handle fpmath state specially.
536         (ix86_function_specific_print): Pass fpmath state to
537         ix86_target_string instead of printing in this function.
538         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
539         Handle enum attributes.
540         (IX86_ATTR_ENUM, ix86_opt_enum): New.
541         (ix86_valid_target_attribute_tree): Update option_strings
542         handling.  Handle fpmath as enum option.
543         (ix86_can_inline_p): Update field names for function fpmath state.
544         (ix86_expand_builtin): Update call to ix86_target_string.
545         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
546         (ix86_fpmath): Remove.
547         * config/i386/t-i386 (i386.o): Update dependencies.
548
549 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
550
551         PR preprocessor/48677
552         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
553         from decoded_options[0], not from itself.
554
555 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
556
557         * config/i386/constraints.md (z): New constraint.
558         * config/i386/i386.c (c): New mode attribute.
559         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
560         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
561         constraint for operand 0.
562         (*call_vzeroupper): Ditto.
563         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
564         (*call_rex64_ms_sysv_vzeroupper): Ditto.
565         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
566         Use "lzm" constraint for operand 0.
567         (*call_pop_vzeroupper): Ditto.
568         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
569         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
570         constraint for operand 0.
571         (*sibcall_vzeroupper): Ditto.
572         (*sibcall_rex64_ms_sysv): Ditto.
573         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
574         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
575         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
576         (*sibcall_pop_vzeroupper): Ditto.
577         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
578         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
579         mode iterator.  Use "<c>zm" constraint for operand 1.
580         (*call_value_vzeroupper): Ditto.
581         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
582         for operand 1.
583         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
584         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
585         *call_value_pop_1.  Use "lzm" constraint for operand 1.
586         (*call_value_pop_vzeroupper): Ditto.
587         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
588         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
589         mode iterator.  Use "Uz" constraint for operand 1.
590         (*sibcall_value_vzeroupper): Ditto.
591         (*sibcall_value_rex64_ms_sysv): Ditto.
592         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
593         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
594         constraint for operand 1.
595         (*sibcall_value_pop_vzeroupper): Ditto.
596         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
597         and "z" constraint for operand 2.
598         (*tls_global_dynamic_32_gnu): Ditto.
599         (*tls_local_dynamic_base_32_gnu): Ditto.
600         (*tls_local_dynamic_base_64): Ditto.
601         (*tls_local_dynamic_32_once): Ditto.
602         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
603         Update all callers.
604         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
605
606 2011-05-16  Richard Guenther  <rguenther@suse.de>
607
608         * gimple.c (gimple_types_compatible_p_1): Use names of the
609         type itself, not its main variant.
610         (iterative_hash_gimple_type): Likewise.
611
612 2011-05-16  Richard Guenther  <rguenther@suse.de>
613
614         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
615         always visit pointer target and function result and argument types.
616
617 2011-05-16  Jason Merrill  <jason@redhat.com>
618
619         PR c++/48999
620         * tree-inline.c (copy_statement_list): Put back recursion.
621
622 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
623
624         PR target/27663
625         PR target/41076
626         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
627         * config/avr/avr.md ("*ior<mode>qi.byte0",
628         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
629
630 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
631
632         PR target/45099
633         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
634         register is needed for a function argument.
635
636 2011-05-16  Richard Guenther  <rguenther@suse.de>
637
638         * gimple.c (struct type_hash_pair): New type.
639         (type_hash_pair_compare): New function.
640         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
641
642 2011-05-16  Revital Eres  <revital.eres@linaro.org>
643
644         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
645
646 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
647
648         * config/i386/i386.md (floating point move splitters): Fix
649         usage of standard_80387_constant_p.
650         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
651
652 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
653
654         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
655
656 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
657
658         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
659         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
660         (tree_ssa_lim_finalize): Likewise.
661
662 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
663
664         * config/i386/constraint.md (Yd, Yx): New register constraints.
665         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
666         Yd conditional register constraint.
667         (*movtf_internal): Use standard_sse_constant_opcode.
668         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
669         Yx conditional register constraint.
670         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
671         Yd conditional register constraint.  Use standard_sse_constant_p to
672         check for valid SSE constants and call standard_sse_constant_opcode to
673         output SSE insn.
674         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
675         constants and call standard_sse_constant_opcode to output SSE insn.
676         * config/i386/i386.c (ix86_option_ovverride_internal): Set
677         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
678         optimize_size is set.
679         (standard_sse_constant_opcode): Output conditional AVX insn templates.
680
681 2011-05-14  Tobias Burnus  <burnus@net-b.de>
682
683         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
684
685 2011-05-13  Martin Jambor  <mjambor@suse.cz>
686
687         * ipa-prop.c (ipa_cst_from_jfunc): New function.
688         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
689         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
690         (evaluate_conditions_for_ipcp_clone): Removed.
691         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
692         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
693         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
694
695 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
696
697         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
698         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
699         lieu of MAY_HAVE_DEBUG_STMTS.
700         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
701         debug statements if !MAY_HAVE_DEBUG_STMTS.
702
703 2011-05-13  Martin Thuresson  <martint@google.com>
704
705         PR gcov-profile/47793
706         * libgcov.c (gcov_exit): Support relative profile paths.
707         * doc/invoke.texi (-fprofile-dir): Update for above change.
708
709 2011-05-13  Richard Guenther  <rguenther@suse.de>
710
711         * gimple.c (gimple_canonical_types_compatible_p): Do not use
712         type-pair caching, do not compare hashes.
713
714 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
715
716         PR middle-end/48965
717         * tree-cfg.c (edge_to_cases_cleanup): Return true.
718         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
719
720 2011-05-13  Kai Tietz  <ktietz@redhat.com>
721
722         * gimplify.c (gimplify_expr): Make sure operand is boolified.
723         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
724         compatible type for TRUTH_NOT_EXPR.
725
726 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
727
728         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
729         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
730         can_create_pseudo_p ().
731
732 2011-05-13  Richard Guenther  <rguenther@suse.de>
733
734         PR lto/48978
735         * gimple.c (iterative_hash_gimple_type): Revert change in
736         pointer target and function result and argument hashing.
737
738 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
739
740         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
741         (*movxf_internal_nointeger): Ditto.
742         (*movdf_internal_rex64): Ditto.
743         (*movdf_internal): Ditto.
744         (*movdf_internal_nointeger): Ditto.
745         (*movsf_internal): Ditto.
746         (sincos splitters): Use can_create_pseudo ().
747
748 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
749
750         * config/i386/i386-opts.h: New.
751         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
752         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
753         ix86_section_threshold): Remove.
754         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
755         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
756         OPT_mbranch_cost_.
757         (ix86_option_override_internal): Don't decode strings for options
758         other than -march=, -mtune= and -mfpmath=.  Don't allow for
759         __attribute__ uses in remaining diagnostics for options with
760         string arguments.  Don't check for integer arguments being negative.
761         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
762         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
763         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
764         ix86_branch_cost, ix86_section_threshold): Remove.
765         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
766         HeaderInclude.
767         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
768         but not Var.
769         (masm=): Use Enum and Init.
770         (asm_dialect): New Enum and EnumValue entries.
771         (mbranch-cost=): Use UInteger.
772         (mlarge-data-threshold=): Use UInteger and Init.
773         (mcmodel=): Use Enum and Init.
774         (cmodel): New Enum and EnumValue entries.
775         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
776         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
777         mregparm=): Use UInteger.
778         (mstringop-strategy=): Use Enum and Init.
779         (stringop_alg): New Enum and EnumValue entries.
780         (mtls-dialect=): Use Enum and Init.
781         (tls_dialect): New Enum and EnumValue entries.
782         (mabi=): Use Enum and Init.
783         (calling_abi): New Enum and EnumValue entries.
784         (mveclibabi=): Use Enum and Init.
785         (ix86_veclibabi): New Enum and EnumValue entries.
786
787 2011-05-13  Nick Clifton  <nickc@redhat.com>
788
789         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
790         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
791
792 2011-05-13  Kai Tietz  <ktietz@redhat.com>
793
794         PR middle-end/48984
795         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
796         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
797         (gimple_boolify): Check for cast for boolean_type_node instead for
798         BOOLEAN_TYPE.
799
800 2011-05-13  Richard Guenther  <rguenther@suse.de>
801
802         PR tree-optimization/48172
803         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
804         multiplying by number of iterations for equal step.
805         (vect_create_cond_for_alias_checks): Likewise.
806
807 2011-05-13  Andreas Schwab  <schwab@redhat.com>
808
809         * configure.ac: Use AS_HELP_STRING throughout.
810         * configure: Regenerate.
811
812 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
813
814         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
815         (ix86_emit_restore_regs_using_mov): Likewise.
816         (ix86_emit_restore_sse_regs_using_mov): Likewise.
817
818 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
819
820         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
821         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
822         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
823         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
824         RTX_OK_FOR_OLO10_P): ...here.
825         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
826         SYMBOLIC_CONST.
827
828 2011-05-12  Kai Tietz  <ktietz@redhat.com>
829
830         * gimplify.c (gimple_boolify): Re-boolify expression
831         arguments even if expression type is of kind BOOLEAN_TYPE.
832         (gimplify_boolean_expr): Removed.
833         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
834         and XOR. Additional take care that we keep expression's type.
835         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
836         of TRUTH_AND|OR|XOR_EXPR.
837
838 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
839
840         PR tree-optimization/48975
841         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
842         on all bbs here and free and clear ifc_bbs at the end.
843
844 2011-05-12  Richard Guenther  <rguenther@suse.de>
845
846         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
847         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
848         until after simple checks.
849         (gimple_types_compatible_p): Likewise.
850         (iterative_hash_gimple_type): Always hash pointer targets
851         and function return and argument types.
852         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
853         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
854         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
855         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
856         completely in the simple compare section.
857         (gimple_register_canonical_type): Query the cache again after
858         registering.
859
860 2011-05-12  Richard Guenther  <rguenther@suse.de>
861
862         PR tree-optimization/48172
863         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
864         the number of iterations from the segment size calculation.
865         (vect_create_cond_for_alias_checks): Adjust.
866
867 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
868
869         PR debug/48967
870         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
871         if validate_subreg fails.
872
873 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
874
875         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
876         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
877         early.
878
879 2011-05-12  DJ Delorie  <dj@redhat.com>
880
881         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
882         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
883         created builtin into rx_builtins array.
884         (rx_builtin_decl): New function.
885         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
886
887 2011-05-12  DJ Delorie  <dj@redhat.com>
888             Nick Clifton  <nickc@redhat.com>
889
890         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
891         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
892         (rx_is_legitimate_address): Add pre-decrement and post-increment
893         addressing in HImode and QImode.  Fix test for out of range
894         REG+INT addressing.
895         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
896         (rx_align_for_label): Test label before extracting its usage count.
897         (rx_adjust_insn_lengths): Fix selection of insn codes.
898         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
899
900 2011-05-11  Jason Merrill  <jason@redhat.com>
901
902         * tree.c (type_hash_canon): Use struct tree_type_non_common.
903
904 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
905
906         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
907         reindent the subsequent block.
908
909 2011-05-11  Satoru Takabayashi  <satorux@google.com>
910             Paul Pluzhnikov  <ppluzhnikov@google.com>
911
912         * doc/install.texi (Configuration): Document --with-linker-hash-style.
913         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
914         * config.in: Add LINKER_HASH_STYLE.
915         * configure.ac: Add --with-linker-hash-style.
916         * configure: Regenerate.
917
918 2011-05-11  Richard Guenther  <rguenther@suse.de>
919
920         PR middle-end/48964
921         * gimple.c (iterative_hash_canonical_type): Fix typo.
922
923 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
924
925         * config/i386/i386.c (legitimize_tls_address)
926         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
927         expanders directly for TARGET_GNU2_TLS.  Determine pic and
928         __tls_get_addr symbol reference here.  Update call to
929         gen_tls_global_dynamic_{32,64} for added arguments.
930         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
931         expanders directly for TARGET_GNU2_TLS.  Determine
932         __tls_get_addr symbol reference here.  Update call to
933         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
934         unique UNSPEC REG_EQUIV to libcall block.
935         (ix86_tls_get_addr): Declare static.
936         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
937         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
938         Do not determine pic and __tls_get_addr symbol reference here. Do not
939         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
940         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
941         (tls_global_dynamic_64): Add operand 2.  Do not determine
942         __tls_get_addr symbol reference here.  Do not call
943         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
944         (tls_local_dynamic_base64): Ditto for operand 1.
945
946 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
947
948         * function.c (expand_function_start): Initialize stack_check_probe_note
949         only if the generic stack checking mechanism is used.
950
951 2011-05-11  Richard Guenther  <rguenther@suse.de>
952
953         PR tree-optimization/15256
954         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
955         (A & B) | C, combine (A op CST1) op CST2.
956         (tree_ssa_forward_propagate_single_use_vars): Only bother to
957         visit assigns that have uses.
958
959 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
960
961         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
962         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
963         (unpack_ts_type_common_value_fields): ...this.  Update comment.
964         (unpack_value_fields): Adjust for renaming.
965         (lto_input_ts_type_tree_pointers): Split into...
966         (lto_input_ts_type_common_tree_pointer): ...this and...
967         (lto_input_ts_type_non_common_tree_pointers): ...this.
968         (lto_input_tree_pointers): Adjust for above split.
969         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
970         (pack_ts_type_common_value_fields): ...this.  Update comment.
971         (lto_output_ts_type_tree_pointers): Split into...
972         (lto_output_ts_type_common_tree_pointers): ...this and...
973         (lto_output_ts_type_non_common_tree_pointers): ...this.
974         (lto_output_tree_pointers): Adjust for above split.
975         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
976         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
977         * stor-layout.c (vector_type_mode): Adjust location of mode field.
978         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
979         Define.
980         (struct tree_type): Split into...
981         (struct tree_type_common: ...this and...
982         (struct tree_type_with_lang_specific): ...this and...
983         (struct tree_type_non_common): ...this.  Adjust accessor macros
984         accordingly.
985         (TYPE_VALUES_RAW): Define.
986         (union tree_node): Update for above changes.
987         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
988         TS_TYPE_NON_COMMON.
989         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
990         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
991         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
992         * treestructu.def (TS_TYPE): Remove.
993         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
994         Define.
995
996 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
997
998         PR debug/48159
999         * tree-ssa.c (reset_debug_uses): New function.
1000         * tree-flow.h (reset_debug_uses): New prototype.
1001         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1002         * tree-loop-distribution.c (generate_loops_for_partition): Call
1003         reset_debug_uses on the stmts that will be removed.  Keep around
1004         all debug stmts, don't count them as bits in partition bitmap.
1005         (generate_builtin): Don't count debug stmts or labels as bits in
1006         partition bitmap.
1007
1008 2011-05-11  Richard Guenther  <rguenther@suse.de>
1009
1010         * gimple.c (gimple_type_hash_1): Merge with ...
1011         (gimple_type_hash): ... this.
1012         (gtc_visit): Remove mode parameter and simplify accordingly.
1013         (gimple_types_compatible_p_1): Likewise.
1014         (gimple_types_compatible_p): Likewise.
1015         (iterative_hash_gimple_type): Likewise.
1016         (visit): Likewise.
1017         (gimple_type_eq): Adjust.
1018
1019 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1020
1021         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1022         enters the branch create an anti edge in the opposite direction
1023         to prevent the creation of reg-moves.
1024         * modulo-sched.c: Adjust comment to reflect the fact we are
1025         scheduling closing branch.
1026         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1027         (stage_count): New field in struct partial_schedule.
1028         (calculate_stage_count): New function.
1029         (normalize_sched_times): Rename to reset_sched_times and handle
1030         incrementing the sched time of the nodes by a constant value
1031         passed as parameter.
1032         (duplicate_insns_of_cycles): Skip closing branch.
1033         (sms_schedule_by_order): Schedule closing branch.
1034         (ps_insn_find_column): Handle closing branch.
1035         (sms_schedule): Call reset_sched_times and adjust the code to
1036         support scheduling of the closing branch.
1037         (ps_insert_empty_row): Update calls to normalize_sched_times
1038         and rotate_partial_schedule functions.
1039
1040 2011-05-11  Richard Guenther  <rguenther@suse.de>
1041
1042         PR middle-end/48953
1043         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1044
1045 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
1046
1047         * opts.c (finish_options): Move warning settings from process_options.
1048         * toplev.c (process_options): Move warning settings to finish_options.
1049
1050 2011-05-11  Richard Guenther  <rguenther@suse.de>
1051
1052         PR tree-optimization/18041
1053         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1054         (simplify_bitwise_binary): ... this.  Handle operand conversions
1055         by applying them to the result instead.
1056         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
1057
1058 2011-05-11  Richard Guenther  <rguenther@suse.de>
1059
1060         * gimple.c (gimple_canonical_types_compatible_p): Split out
1061         from gimple_types_compatible_p and friends.  Do not recurse
1062         to pointed-to types.
1063         (gimple_canonical_type_eq): Use it.
1064         (iterative_hash_canonical_type): Split out from
1065         iterative_hash_gimple_type and friends.  Do not recurse
1066         to pointed-to types.
1067         (gimple_canonical_type_hash): Use it, allocate the hash here.
1068
1069 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1070
1071         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1072         recognizing doloop.
1073
1074 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1075
1076         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1077         instead of PREV_INSN.
1078
1079 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1080
1081         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1082         * loop-doloop.c (doloop_condition_get): Likewise.
1083         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1084         (doloop_end): New.
1085         * config/arm/arm.md (*addsi3_compare0): Remove "*".
1086
1087 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
1088
1089         * tree.def (CASE_LABEL_EXPR): Add an operand.
1090         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1091
1092 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1093
1094         * c-decl.c (c_override_global_bindings_to_false): Remove.
1095         (global_bindings_p): Don't check
1096         c_override_global_bindings_to_false.
1097         * c-tree.h (c_override_global_bindings_to_false): Remove.
1098         * c-typeck.c (composite_type): Don't set
1099         c_override_global_bindings_to_false.
1100
1101 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
1102
1103         PR target/48857, 48495
1104         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1105         (VSX_MODE): Ditto.
1106         (VSX_MOVE_MODE): Ditto.
1107         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1108         VSX vector types.  Add V2DImode.
1109         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1110         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1111         (MODES_TIEABLE_P): Ditto.
1112
1113         * config/rs6000/rs6000.c (rs6000_emit_move): Use
1114         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1115         VSX_VECTOR_MODE.
1116         (init_cumulative_args): Ditto.
1117         (rs6000_function_arg_boundary): Ditto.
1118         (rs6000_function_arg_advance_1): Ditto.
1119         (rs6000_function_arg): Ditto.
1120         (rs6000_function_ok_for_sibcall): Ditto.
1121         (emit_frame_save): Ditto.
1122         (rs6000_function_value): Ditto.
1123         (rs6000_libcall_value): Ditto.
1124
1125 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1126
1127         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1128         i386/darwin-lib.h to $libgcc_tm_file.
1129         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1130
1131 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1132
1133         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1134
1135 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1136
1137         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
1138         * config/rs6000/rs6000-tables.opt: New file (generated).
1139         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1140         rs6000/rs6000-tables.opt to extra_options.
1141         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1142         * config/rs6000/rs6000.c (rs6000_select): Remove.
1143         (processor_target_table): Move contents to rs6000-cpus.def.
1144         (darwin_rs6000_override_options): Check
1145         global_options_set.x_rs6000_cpu_index instead of
1146         rs6000_select[1].string.
1147         (rs6000_option_override_internal): Likewise.
1148         (rs6000_handle_option): Don't assert that global structures are in
1149         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
1150         (rs6000_default_cpu): New variable.
1151         (rs6000_file_start): Set it instead of local default_cpu.  Check
1152         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1153         global_options_set.x_rs6000_tune_index instead of rs6000_select.
1154         (rs6000_darwin_file_start): Check rs6000_default_cpu and
1155         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1156         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1157         rs6000_select): Remove.
1158         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1159         Remove.
1160         (mcpu=, mtune=): Use Var, Init, Enum and Save.
1161         * config/rs6000/t-rs6000
1162         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1163         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1164         global_options_set.x_rs6000_cpu_index instead of
1165         rs6000_select[1].string.
1166         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1167         global_options_set.x_rs6000_cpu_index instead of
1168         rs6000_select[1].string.
1169
1170 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1171
1172         * config.gcc (libgcc_tm_file): Define instead of including files
1173         from ../../libgcc/config/ in tm_file.
1174         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
1175         * configure: Regenerate.
1176         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1177         libgcc_tm.h, cs-libgcc_tm.h): New.
1178         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1179         (clean): Remove libgcc_tm.h.
1180         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1181         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1182         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1183
1184 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
1185
1186         PR target/48896
1187         * config/avr/avr.c (avr_ret_register): Return unsigned int
1188         instead of int.
1189         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1190         it to avr_libcall_value.
1191         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1192         expand_expr.
1193         (avr_expand_binop_builtin): Ditto.
1194         (avr_expand_unop_builtin): Ditto.
1195
1196 2011-05-10  DJ Delorie  <dj@redhat.com>
1197
1198         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1199         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1200         * config/rx/rx.c (rx_align_for_label): Add label and
1201         uses_threshold parameters.  Do not align when the label is not
1202         used enough.
1203         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1204
1205 2011-05-10  Richard Guenther  <rguenther@suse.de>
1206
1207         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1208         a series of conversions and apply foldings similar to what
1209         fold-const does.
1210         (tree_ssa_forward_propagate_single_use_vars): Call it.
1211
1212 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
1213
1214         PR tree-optimization/48611
1215         PR tree-optimization/48794
1216         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1217         referenced from RESX or EH_DISPATCH arguments.
1218
1219         PR debug/48928
1220         * dfp.c (decimal_to_decnumber): Handle conversion from
1221         dconst{1,2,m1,half}.
1222
1223 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1224
1225         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1226         for !flag_prefer_avx128.
1227         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1228
1229 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1230
1231         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1232         (fold_ternary_loc): Use expr_location_or.
1233
1234 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1235
1236         PR debug/48853
1237         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1238         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1239         Pmode and mem_mode is not VOIDmode.
1240
1241 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
1242
1243         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1244         TYPE_QUAL_RESTRICT): Convert to enum.
1245
1246 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1247
1248         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1249         (const_pow2_1_to_8_operand): Ditto.
1250         (const_pow2_1_to_128_operand): Ditto.
1251         (const_pow2_1_to_32768_operand): Ditto.
1252         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1253         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
1254         in insn constraint to check integer value of operand 3.
1255         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1256
1257         (PINSR_MODE): New mode iterator.
1258         (sse2p4_1): New mode attribute.
1259         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1260         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1261         iterator.  Use const_int_operand instead of
1262         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
1263         exact_log2 in insn constraint to check integer value of operand 3.
1264
1265 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1266
1267         * config/i386/sse.md (blendbits): Remove mode attribute.
1268         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1269         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1270         Check integer value of operand 3 in insn constraint.
1271
1272 2011-05-09  Richard Guenther  <rguenther@suse.de>
1273
1274         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1275         for diagnostics.
1276         (lto_symtab_merge): Likewise.  Do not register types here.
1277         (lto_symtab_merge_decls_2): Likewise.
1278         (lto_symtab_merge_decls_1): Likewise.
1279         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1280         * gimple.c (enum gtc_mode): Declare.
1281         (gimple_types_compatible_p): Make static.
1282
1283 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1284
1285         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1286         temporary register to match Pmode.
1287
1288 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1289
1290         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1291         and *vec_concatv4si_1_avx.
1292
1293 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1294
1295         PR rtl-optimization/48927
1296         * ira-conflicts.c (commutative_constraint_p): Use
1297         recog_data.alternative_enabled_p to disable alternatives where
1298         "enabled" attribute is false.
1299         (get_dup_num): Ditto.
1300         * ira-lives.c (single_reg_class): Ditto.
1301         (ira_implicitly_set_insn_hard_regs): Ditto.
1302
1303 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1304
1305         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1306         (dataflow_set_preserve_mem_locs): Likewise.
1307
1308 2011-05-09  Philipp Thomas  <pth@suse.de>
1309
1310         * config/mep/mep.c (mep_validate_vliw): Syntax description
1311         should not be translated.
1312
1313 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
1314
1315         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1316         * config/mips/mips-tables.opt: New file (generated).
1317         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
1318         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1319         MIPS_ARCH_OPTION_NATIVE): Define.
1320         * config/mips/mips.c (mips_cpu_info_table): Move contents to
1321         mips-cpus.def.
1322         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1323         mips_parse_cpu): Remove.
1324         (mips_cpu_info_from_opt, mips_default_arch): New.
1325         (mips_handle_option): Don't assert that global structures are in
1326         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1327         (mips_option_override): Use new variables and functions to set
1328         state of these options.  Use strcmp to check for individual CPU names.
1329         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1330         definition.
1331         * config/mips/mips.opt (march=): Use ToLower and Enum.
1332         (mips): Use ToLower, Enum and Var.
1333         (mtune=): Use ToLower and Enum.
1334         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1335
1336 2011-05-08  Jan Hubicka  <jh@suse.cz>
1337
1338         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1339         Arrange type pairs to be UID ordered.
1340         (gimple_lookup_type_leader): Make inline.
1341
1342 2011-05-09  Nick Clifton  <nickc@redhat.com>
1343
1344         PR target/48899
1345         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1346         PROCESSOR_DEFAULT.
1347
1348         PR target/48897
1349         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1350         variable 's'.
1351
1352 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
1353
1354         * combine.c (simplify_comparison): Abstract out parts into...
1355         (simplify_compare_const): ... new function.
1356         (try_combine): Generalize parallel arithmetic/compare combining
1357         to call simplify_compare_const() and CANONICALIZE_COMPARE().
1358
1359 2011-05-08  Jan Hubicka  <jh@suse.cz>
1360
1361         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
1362         (cgraph_create_virtual_clone): Call hooks once virtual clone
1363         is finished.
1364         * cgraph.h (cgraph_clone_node): Update prototype.
1365         * ipa-cp.c (ipcp_estimate_growth): Use
1366         estimate_ipcp_clone_size_and_time.
1367         * ipa-inline-transform.c (clone_inlined_nodes): Update.
1368         * lto-cgraph.c (input_node): Update.
1369         * ipa-inline.c (recursive_inlining): Update.
1370         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1371         (evaluate_conditions_for_known_args): Break out from ...
1372         (evaluate_conditions_for_edge): ... here.
1373         (evaluate_conditions_for_ipcp_clone): New function.
1374         (inline_node_duplication_hook): Update clone summary based
1375         on parameter map.
1376         (estimate_callee_size_and_time): Rename to ...
1377         (estimate_node_size_and_time): take NODE instead of EDGE;
1378         take POSSIBLE_TRUTHS as argument.
1379         (estimate_callee_size_and_time): Update.
1380         (estimate_ipcp_clone_size_and_time): New function.
1381         (do_estimate_edge_time): Update.
1382
1383 2011-05-08  Richard Guenther  <rguenther@suse.de>
1384
1385         PR middle-end/48908
1386         PR middle-end/48905
1387         * expmed.c (expand_shift_1): Compute adjusted constant shift
1388         amount manually.
1389
1390 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1391
1392         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1393
1394 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1395
1396         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1397
1398 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
1399
1400         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1401
1402 2011-05-07  Jan Hubicka  <jh@suse.cz>
1403
1404         * ipa-inline-transform.c (inline_call): Account when program size
1405         decreases.
1406         * ipa-inline.c (relative_time_benefit): New function.
1407         (edge_badness): Reorganize to be power 2 based; fix thinko when
1408         computing badness for negative growth; update comments to match
1409         reality; better dumps.
1410
1411 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
1412
1413         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1414         type to bool and adjust comment.
1415         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1416         (fold_mathfn_compare): Remove calls to global_bindings_p.
1417         (fold_inf_compare): Likewise.
1418         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1419         * c-tree.h (global_bindings_p): Adjust prototype.
1420         * c-decl.c (global_bindings_p): Return bool and simplify.
1421
1422 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
1423
1424         PR tree-optimization/48837
1425         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1426         when accumulator transformation is performed.
1427
1428 2011-05-06  Jan Hubicka  <jh@suse.cz>
1429
1430         * i386.h (ix86_tune_indices): Add
1431         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
1432         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
1433         * i386.c (initial_ix86_tune_features): Add
1434         X86_SOFTARE_PREFETCHING_BENEFICIAL.
1435         (software_prefetching_beneficial_p): Remove predicate.
1436         (ix86_option_override_internal): Use new macro.
1437
1438 2011-05-06  Jan Hubicka  <jh@suse.cz>
1439
1440         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1441
1442 2011-05-06  Jan Hubicka  <jh@suse.cz>
1443
1444         * cgraph.c (cgraph_add_thunk): Create real function node instead
1445         of alias node; finalize it and mark needed/reachale; arrange visibility
1446         to be right and add it into the corresponding same comdat group list.
1447         (dump_cgraph_node): Dump thunks.
1448         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
1449         cgraph_function_with_gimple_body_p,
1450         cgraph_first_function_with_gimple_body,
1451         cgraph_next_function_with_gimple_body): New functions.
1452         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1453         New macros.
1454         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1455         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1456         * cgraphunit.c (cgraph_finalize_function): Only look into possible
1457         devirtualization when optimizing.
1458         (verify_cgraph_node): Verify thunks.
1459         (cgraph_analyze_function): Analyze thunks.
1460         (cgraph_mark_functions_to_output): Output thunks only in combination
1461         with function they are assigned to.
1462         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1463         alias into normal node.
1464         (assemble_thunks): New functoin.
1465         (cgraph_expand_function): Use it.
1466         * lto-cgraph.c (lto_output_node): Stream thunks.
1467         (input_overwrite_node): Stream in thunks.
1468         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1469         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1470         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1471         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1472         (inline_analyze_function): Do not care about thunk jump functions.
1473         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
1474         * ipa-prop.c (ipa_prop_write_jump_functions): Use
1475         cgraph_function_with_gimple_body_p.
1476         * passes.c (do_per_function_toporder): Use
1477         cgraph_function_with_gimple_body_p.
1478         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1479         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1480         (function_called_by_processed_nodes_p): Likewise.
1481
1482 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1483
1484         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1485         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1486         entries.
1487         (mabi=): Replace with separate entries for mabi=altivec,
1488         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1489         mabi=ieeelongdouble and mabi=ibmlongdouble.
1490         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1491         check for -mabi=spe without SPE ABI support here.
1492         (rs6000_handle_option): Replace OPT_mabi_ handling with
1493         OPT_mabi_altivec and OPT_mabi_spe handling.
1494
1495 2011-05-06  Cary Coutant  <ccoutant@google.com>
1496
1497         * dwarf2out.c (contains_subprogram_definition): New function.
1498         (should_move_die_to_comdat): Call it.
1499
1500 2011-05-06  Jeff Law  <law@redhat.com>
1501
1502         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1503         remove_ctrl_stmt_and_useless_edges.
1504         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1505         (fixup_template_block, thread_single_edge): Likewise.
1506         (mark_threaded_blocks): Use THREAD_TARGET.
1507
1508 2011-05-06  Alan Modra  <amodra@gmail.com>
1509
1510         PR target/48900
1511         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1512         const0_rtx as the arg to the dummy __tls_get_addr libcall.
1513
1514 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1515
1516         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1517         constraint modifier to "r".
1518
1519 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1520
1521         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1522         fall through for OPT_mcmodel_.
1523
1524 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1525
1526         * config/s390/s390.c (s390_asm_trampoline_template): Comment
1527         instruction sizes.
1528         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
1529
1530 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1531
1532         PR target/47930
1533         * config/arm/arm.opt (marm): Document it.
1534         (mthumb): Reject negative variant.
1535
1536 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1537
1538         PR target/48898
1539         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1540         Fix typo in "ccvt" variable name.
1541
1542 2011-05-06  Tristan Gingold  <gingold@adacore.com>
1543
1544         PR target/48895
1545         * config/vms/vms-ar.c (main): Remove cwd variable.
1546
1547 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1548
1549         PR debug/48902
1550         * var-tracking.c (prepare_call_arguments): Move else before #endif.
1551
1552 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1553
1554         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1555         * gimplify.c (gimplify_switch_expr): Likewise.
1556         * omp-low.c (expand_omp_sections): Likewise.
1557         * tree-eh.c (lower_try_finally_switch): Likewise.
1558         (lower_eh_dispatch): Likewise.
1559         * tree.h (build_case_label): Declare.
1560         * tree.c (build_case_label): Define.
1561
1562 2011-05-05  Jason Merrill  <jason@redhat.com>
1563
1564         PR c++/40975
1565         * tree-inline.c (copy_tree_r): Use copy_statement_list.
1566         (copy_statement_list): Don't recurse.
1567         * stor-layout.c (copy_self_referential_tree_r): Don't allow
1568         STATEMENT_LIST.
1569
1570 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1571
1572         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1573         through from -mfpu= handling.
1574         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1575
1576 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
1577
1578         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1579         POST_MODIFY.
1580
1581 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
1582
1583         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1584         for 11.31.
1585         (hppa[12]*-*-hpux11*): Ditto.
1586         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1587         * config/ia64/hpux-unix2003.h: New.
1588         * config/pa/pa-hpux1131.opt: New.
1589         * config/pa/pa-hpux1131.h: New.
1590         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1591         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
1592         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
1593
1594 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1595
1596         PR debug/48853
1597         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1598         instead of mode as 3rd argument to recursive call.
1599         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1600         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1601         VOIDmode.
1602         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1603         don't give up if mode is Pmode and mem_mode is not VOIDmode.
1604         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1605         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1606
1607 2011-05-05  Julian Brown  <julian@codesourcery.com>
1608
1609         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1610         parenthesis in D-register case.
1611
1612 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1613
1614         * opt-functions.awk (var_type_struct): Handle Enum options.
1615         * optc-gen.awk: Don't check range of variables of character type.
1616         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1617         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1618         rs6000_sdata_name, rs6000_explicit_options): Remove.
1619         (rs6000_option_override_internal): Check for -malign-power here.
1620         Use global_options_set instead of rs6000_explicit_options.
1621         (rs6000_parse_fpu_option): Remove.
1622         (rs6000_handle_option): Access variables via opts and opts_set
1623         pointers.  Use error_at and warning_at.  Add fall-through
1624         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1625         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1626         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1627         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1628         here.  Don't use rs6000_parse_fpu_option.
1629         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1630         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1631         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1632         (mrecip=): Use Var.
1633         (mspe): Use Var and Save.
1634         (mtraceback=): Use Enum and Var.
1635         (rs6000_traceback_type): New Enum and EnumValue entries.
1636         (mfloat-gprs=): Use Enum, Var and Save.
1637         (rs6000_float_gprs): New Enum and EnumValue entries.
1638         (mlong-double-): use Var and Save.
1639         (msched-costly-dep=, minsert-sched-nops=): Use Var.
1640         (malign-): Use Enum and Var.
1641         (rs6000_alignment_flags): New Enum and EnumValue entries.
1642         (mfpu=): Use Enum.
1643         (fpu_type_t): New Enum and EnumValue entries.
1644         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1645         global_options_set instead of rs6000_explicit_options.
1646         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1647         global_options_set instead of rs6000_explicit_options.
1648         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1649         global_options_set instead of rs6000_explicit_options.
1650         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1651         global_options_set instead of rs6000_explicit_options.
1652         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1653         global_options_set instead of rs6000_explicit_options.
1654         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1655         global_options_set instead of rs6000_explicit_options.
1656         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1657         definition.
1658         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1659         global_options_set instead of rs6000_explicit_options.
1660         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1661         (rs6000_cmodel): New Enum and EnumValue entries.
1662         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1663         global_options_set instead of rs6000_explicit_options.
1664         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1665         (mtls-size=): Use Enum and Var.
1666         (rs6000_tls_size): New Enum and EnumValue entries.
1667
1668 2011-05-05  Michael Matz  <matz@suse.de>
1669
1670         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1671         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1672         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1673         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1674         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1675         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1676         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1677         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1678         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1679         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1680         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1681         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1682         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1683         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1684         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1685         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1686
1687 2011-05-05  Richard Guenther  <rguenther@suse.de>
1688
1689         * expmed.c (expand_variable_shift): Rename to ...
1690         (expand_shift_1): ... this.  Take an expanded shift amount.
1691         For rotates recurse directly not building trees for the shift amount.
1692         (expand_variable_shift): Wrap around expand_shift_1.
1693         (expand_shift): Adjust.
1694
1695 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1696
1697         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1698
1699 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1700
1701         * tree.h (get_pending_sizes): Remove prototype.
1702         (put_pending_size): Likewise.
1703         (put_pending_sizes): Likewise.
1704         * stor-layout.c (pending_sizes): Delete.
1705         (get_pending_sizes): Likewise.
1706         (put_pending_size): Likewise.
1707         (put_pending_sizes): Likewise.
1708         (variable_size): Do not call put_pending_size and tidy up.
1709         * function.h (struct function): Remove dont_save_pending_sizes_p.
1710         * lto-streamer-in.c (input_function): Do not stream it.
1711         * lto-streamer-out.c (output_function): Likewise.
1712         * tree-inline.c (initialize_cfun): Do not copy it.
1713         * c-decl.c (store_parm_decls): Do not set it.
1714         * omp-low.c (create_task_copyfn): Likewise.
1715         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1716
1717 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
1718
1719         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1720         conditions.
1721         (*movdf_internal): Ditto.
1722         (*movdf_internal_nointeger): Ditto.
1723         (*movsf_internal): Ditto.
1724
1725 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1726
1727         * c-decl.c (finish_decl): Don't call get_pending_sizes.
1728         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
1729         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
1730         (c_variable_size): Remove.
1731         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
1732         call put_pending_sizes.
1733         (get_parm_info): Add parameter expr.  Use it to set
1734         arg_info->pending_sizes.
1735         (store_parm_decls): Use arg_info->pending_sizes instead or calling
1736         get_pending_sizes.
1737         * c-parser.c (c_parser_parms_declarator): Update call to
1738         c_parser_parms_list_declarator.
1739         (c_parser_parms_list_declarator): Take parameter expr.  Update
1740         call to push_parm_decl.  Update recursive call.  Don't call
1741         get_pending_sizes.  Update calls to get_parm_info.
1742         (c_parser_objc_method_definition): Update calls to
1743         c_parser_objc_method_decl and objc_start_method_definition.
1744         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
1745         (c_parser_objc_method_decl): Add parameter expr.  Update call to
1746         grokparm.
1747         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
1748         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1749         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1750
1751 2011-05-05  Michael Hope  <michael.hope@linaro.org>
1752
1753         PR pch/45979
1754         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1755         __ARM_EABI__ hosts.
1756
1757 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1758
1759         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1760         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1761         (spu_output_mi_thunk): New function.
1762
1763 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1764
1765         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1766         targetm.asm_out.print_operand.
1767         * config/sol2.c: Include target.h.
1768
1769 2011-05-04  Jan Hubicka  <jh@suse.cz>
1770
1771         * ipa-inline.c (reset_edge_caches): New function.
1772         (update_caller_keys): Add check_inlinablity_for; do not
1773         reset edge caches; remove now unnecesary loop.
1774         (update_callee_keys): Add comments; reset node_growth_cache of callee.
1775         (update_all_callee_keys): Likewise.
1776         (inline_small_functions): Sanity check cache; update code
1777         recomputing it.
1778
1779 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
1780
1781         PR rtl-optimization/47612
1782         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1783         as the last insn of the sequence to be moved.
1784
1785 2011-05-04  Tobias Burnus  <burnus@net-b.de>
1786
1787         PR fortran/48864
1788         * doc/invoke.texi (Ofast): Document that it
1789         enables Fortran's -fno-protect-parens.
1790
1791 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1792
1793         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1794
1795 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1796
1797         * stor-layout.c (variable_size): Do not issue errors.
1798
1799 2011-05-04  Richard Guenther  <rguenther@suse.de>
1800
1801         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
1802         for array-ref indices.
1803         (tree_coverage_counter_addr): Likewise.
1804         (build_fn_info_type): Use size_int for index types.
1805         (build_gcov_info): Likewise.
1806
1807 2011-05-04  Richard Guenther  <rguenther@suse.de>
1808
1809         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
1810         to build_int_cst.
1811         * c-typeck.c (really_start_incremental_init): Use bitsize_int
1812         for constructor indices.
1813         (push_init_level): Likewise.
1814
1815 2011-05-04  Richard Guenther  <rguenther@suse.de>
1816
1817         * explow.c (promote_mode): Move variable declarations before code.
1818
1819 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1820
1821         * tree.h (build_function_type_array): Declare.
1822         (build_varargs_function_type_array): Declare.
1823         (build_function_type_vec, build_varargs_function_type_vec): Define.
1824         * tree.c (build_function_type_array_1): New function.
1825         (build_function_type_array): New function.
1826         (build_varargs_function_type_array): New function.
1827
1828 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
1829
1830         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1831         before setting STMT_VINFO_TYPE.
1832
1833 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1834
1835         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1836         instead of spu_pass_by_reference.
1837
1838 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1839
1840         * calls.c (emit_library_call_value_1): Invoke
1841         promote_function_mode hook on libcall arguments.
1842         * explow.c (promote_function_mode, promote_mode): Handle TYPE
1843         argument being NULL.
1844         * targhooks.c (default_promote_function_mode): Lisewise.
1845         * config/s390/s390.c (s390_promote_function_mode): Likewise.
1846         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1847
1848         * doc/tm.texi: Document that TYPE argument might be NULL.
1849
1850 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1851
1852         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1853
1854 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1855
1856         From Bernd Schmidt
1857         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1858
1859 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1860
1861         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1862         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1863         Move ...
1864         * mips-tfile.c: ... here.
1865         Don't include coretypes.h, tm.h, filenames.h.
1866         (saber_stop): Remove definition and all calls.
1867         [__SABER__]: Remove.
1868         (__LINE__): Remove default.
1869         (Size_t, Ptrdiff_t): Remove definitions.
1870         Replace by size_t, ptrdiff_t.
1871         [!MIPS_DEBUGGING_INFO]: Remove.
1872         (SHASH_SIZE, THASH_SIZE): Remove defaults.
1873         (progname): Add const.
1874         (STATIC): Remove.
1875         Replace all uses by static.
1876         (ALIGN_SYMTABLE_OFFSET): Remove default.
1877         * mips-tdump.c: Don't include coretypes.h, tm.h.
1878         Remove !MIPS_IS_STAB guard.
1879         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1880         $(TM_H), filenames.h dependencies.
1881         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1882
1883 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1884
1885         From Jie Zhang
1886         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1887         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1888
1889 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1890
1891         From Bernd Schmidt
1892         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1893         account and save/restore RETS.
1894         (PROFILE_BEFORE_PROLOGUE): Define.
1895         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
1896         the push insn to use predecrement.
1897
1898 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1899
1900         From Jie Zhang
1901         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1902
1903 2011-05-04  Nick Clifton  <nickc@redhat.com>
1904
1905         * config/mn10300/mn10300.c: Include cfgloop.h.
1906         (DUMP): New macro.
1907         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
1908         Lcc or a FLcc insn into the instruction stream.
1909         (mn10300_block_contains_call): New function.  Returns true if the
1910         given basic block contains a CALL insn.
1911         (mn10300_loop_contains_call_insn): New function.  Returns true if
1912         the given loop contains a CALL insn.
1913         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
1914         to use the SETLB and Lcc or FLcc insns.
1915         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1916         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1917         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
1918         disable the SETLB optimization.
1919         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1920         __SETLB__ or __NO_SETLB__.
1921         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1922         (movsf_internal): Handle MDR register.
1923         (cmpsi): Make visible.
1924         (setlb): New pattern.
1925         (Lcc): New pattern.
1926         (FLcc): New pattern.
1927
1928 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1929
1930         PR target/48860
1931         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1932         for reg<->xmm moves.
1933         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1934         (vec_concatv2di_rex64_sse): Ditto.
1935         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1936         (*vec_extractv2di_1_rex64): Ditto.
1937
1938         Revert:
1939         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1940
1941         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1942         reg<->xmm moves.
1943         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1944
1945 2011-05-04  Richard Guenther  <rguenther@suse.de>
1946
1947         * tree.h (int_const_binop): Remove notrunc argument.
1948         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
1949         create integer constants that are properly truncated.
1950         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1951         (const_binop): Remove zero notrunc argument to int_const_binop.
1952         (size_binop_loc): Likewise.
1953         (fold_div_compare): Likewise.
1954         (maybe_canonicalize_comparison_1): Likewise.
1955         (fold_comparison): Likewise.
1956         (fold_binary_loc): Likewise.
1957         (multiple_of_p): Likewise.
1958         * expr.c (store_constructor): Likewise.
1959         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1960         (maybe_fold_stmt_addition): Likewise.
1961         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1962         * stor-layout.c (layout_type): Likewise.
1963         * tree-data-ref.c (tree_fold_divides_p): Likewise.
1964         * tree-sra.c (build_ref_for_offset): Likewise.
1965         (build_user_friendly_ref_for_offset): Likewise.
1966         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1967         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1968         * tree-ssa-loop-niter.c (inverse): Likewise.
1969         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1970         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1971         * tree-switch-conversion.c (check_range): Likewise.
1972         (build_constructors): Likewise.
1973         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1974         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1975         (extract_range_from_assert): Likewise.
1976         (vrp_int_const_binop): Likewise.
1977         (extract_range_from_binary_expr): Likewise.
1978         (extract_range_from_unary_expr): Likewise.
1979         (check_array_ref): Likewise.
1980         (find_case_label_range): Likewise.
1981         (simplify_div_or_mod_using_ranges): Likewise.
1982         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1983         comparing case labels for merging.
1984
1985 2011-05-03  Mark Wielaard  <mjw@redhat.com>
1986
1987         * dwarf2out.c (debug_str_hash_forced): Removed.
1988         (gen_label_for_indirect_string): Removed.
1989         (get_debug_string_label): Removed.
1990         (AT_string_form): Generate label directly.
1991         (output_indirect_string): Test indirect_string_node for
1992         DW_FORM_strp instead of checking label and refcount.
1993         (prune_indirect_string): Removed.
1994         (prune_unused_types): Don't check debug_str_hash_forced or
1995         call prune_indirect_string.
1996
1997 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1998
1999         PR other/48093
2000         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2001
2002 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2003
2004         PR debug/47994
2005         PR debug/47919
2006         * combine.c (try_combine): Skip debug insns at m_split tests.
2007
2008 2011-04-26  Mark Wielaard  <mjw@redhat.com>
2009
2010         PR42288
2011         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2012         when info_section_emitted.
2013
2014 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
2015
2016         * config/mips/mips-opts.h: New.
2017         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2018         to mips-opts.h.
2019         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2020         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2021         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
2022         via opts pointer.
2023         * config/mips/mips.h (enum mips_code_readable_setting): Move to
2024         mips-opts.h.
2025         (mips_abi, mips_code_readable): Don't declare.
2026         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
2027         (mabi=): Use Enum and Var.
2028         (mips_abi): New Enum and EnumValue entries.
2029         (mcode-readable=): Use Enum and Var.
2030         (mips_code_readable_setting): New Enum and EnumValue entries.
2031         (mr10k-cache-barrier=): Use Enum and Var.
2032         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2033
2034 2011-05-03  Jan Hubicka  <jh@suse.cz>
2035
2036         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2037         replace hash by pointer map.
2038         (cgraph_node_set_element_def, cgraph_node_set_element,
2039         const_cgraph_node_set_element, varpool_node_set_element_def,
2040         varpool_node_set_element, const_varpool_node_set_element): Remove.
2041         (free_cgraph_node_set, free_varpool_node_set): New function.
2042         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2043         * tree-emutls.c: Free varpool node set.
2044         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2045         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2046         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2047         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2048         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2049         Move here from ipa.c; implement using pointer_map
2050         * ipa.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, varpool_node_set_new,
2053         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2054         dump_varpool_node_set, debug_varpool_node_set):
2055         Move to ipa-uitls.c.
2056         * passes.c (ipa_write_summaries): Update.
2057
2058 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2059
2060         From Mike Frysinger:
2061         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2062         bf542/bf544/bf547/bf548/bf549.
2063
2064 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2065
2066         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2067
2068 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2069
2070         From Bernd Schmidt:
2071         * config/bfin/bfin.md (MOVCC): New mode_macro.
2072         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2073         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
2074         comments from generated assembly.
2075
2076 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2077
2078         From Bernd Schmidt
2079         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2080         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2081         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2082         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2083         * config/bfin/lib1funcs.asm (___muldi3): New function.
2084
2085 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2086
2087         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2088         build_function_type_list instead of build_function_type.
2089         Rearrange initialization of `args' to do so.
2090
2091 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2092
2093         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2094         instead of build_function_type.
2095
2096 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2097
2098         * config/rs6000/rs6000.c (spe_init_builtins): Call
2099         build_function_type_list instead of build_function_type.
2100         (paired_init_builtins, altivec_init_builtins): Likewise.
2101         (builtin_function_type): Likewise.
2102
2103 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2104
2105         * config/sh/sh.c (sh_media_init_builtins): Call
2106         build_function_type_list instead of build_function_type.
2107
2108 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2109
2110         * config/sparc/sparc.c (sparc_file_end): Call
2111         build_function_type_list instead of build_function_type.
2112
2113 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2114
2115         * config/alpha/alpha.c (alpha_init_builtins): Call
2116         build_function_type_list instead of build_function_type.
2117
2118 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2119
2120         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2121         build_function_type_list instead of build_function_type.
2122
2123 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2124
2125         * config/iq2000/i2000.c (iq2000_init_builtins): Call
2126         build_function_type_list instead of build_function_type.
2127         Delete `endlink' variable.
2128
2129 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2130
2131         * config/avr/avr.c (avr_init_builtins): Call
2132         build_function_type_list instead of build_function_type.
2133
2134 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2135
2136         * config/picochip/picochip.c (picochip_init_builtins): Call
2137         build_function_type_list instead of build_function_type.
2138         Delete `endlink' variable.
2139
2140 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2141
2142         * config/bfin/bfin.c (bfin_init_builtins): Call
2143         build_function_type_list instead of build_function_type.
2144
2145 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2146
2147         From Bernd Schmidt
2148         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2149         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
2150
2151 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2152
2153         From Jie Zhang:
2154         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2155         libbffastfp overrides libgcc when -mfast-fp.
2156
2157 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2158
2159         Originally from Bernd Schmidt
2160         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2161         * config/bfin/bfin.c (override_options): Test it and error if
2162         TARGET_FDPIC.
2163
2164 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2165
2166         Originally From Bernd Schmidt
2167         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2168         FD-PIC.
2169
2170 2011-05-03  Jeff Law  <law@redhat.com>
2171
2172         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2173         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2174         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
2175         than accessing AUX field directly.  Free the AUX field before
2176         clearing it.
2177         (thread_block, thread_through_loop_header): Likewise.
2178         (thread_single_edge, mark_threaded_blocks): Likewise.
2179         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
2180         (register_jump_thread): Do not attempt to thread to a NULL edge.
2181
2182 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2183
2184         * function.c (init_function_start): Call decide_function_section.
2185         * varasm.c (decide_function_section): New function.
2186         (assemble_start_function): When not using
2187         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2188         or first_function_block_is_cold.
2189         * rtl.h (decide_function_section): Declare.
2190
2191 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2192             Jakub Jelinek  <jakub@redhat.com>
2193
2194         PR target/48774
2195         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2196         only succeed if req_mode is the same as set_mode.
2197
2198 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2199
2200         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2201         * genemit.c (gen_exp): Handle RETURN.
2202         * emit-rtl.c (verify_rtx_sharing): Likewise.
2203         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2204         * rtl.c (copy_rtx): RETURN is shared.
2205         * rtl.h (enum global_rtl_index): Add GR_RETURN.
2206         (ret_rtx): New.
2207         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2208         * config/s390/s390.c (s390_emit_epilogue): Likewise.
2209         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2210         * config/cris/cris.c (cris_expand_return): Likewise.
2211         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2212         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2213         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2214         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2215         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2216         Likewise.
2217         * config/v850/v850.c (expand_epilogue): Likewise.
2218         * config/bfin/bfin.c (bfin_expand_call): Likewise.
2219         * config/arm/arm.md (epilogue): Likewise.
2220         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2221         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2222         variable to ret_reg.
2223
2224 2011-05-03  Richard Guenther  <rguenther@suse.de>
2225
2226         PR lto/48846
2227         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2228         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2229         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2230
2231 2011-05-03  Richard Guenther  <rguenther@suse.de>
2232
2233         * c-decl.c (grokdeclarator): Instead of looking at
2234         TREE_OVERFLOW check if the constant fits in the index type.
2235
2236 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2237
2238         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2239         (vec_store_lanes<mode><mode>): Likewise.
2240
2241 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2242
2243         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2244         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2245         convert_optab_index values.
2246         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2247         * genopinit.c (optabs): Initialize the new optabs.
2248         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2249         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2250         (expand_STORE_LANES): New functions.
2251         * tree.h (build_array_type_nelts): Declare.
2252         * tree.c (build_array_type_nelts): New function.
2253         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2254         (vect_model_load_cost): Likewise.
2255         (vect_store_lanes_supported, vect_load_lanes_supported)
2256         (vect_record_strided_load_vectors): Declare.
2257         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2258         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2259         (vect_transform_strided_load): Split out statement recording into...
2260         (vect_record_strided_load_vectors): ...this new function.
2261         * tree-vect-stmts.c (create_vector_array, read_vector_array)
2262         (write_vector_array, create_array_ref): New functions.
2263         (vect_model_store_cost): Add store_lanes_p argument.
2264         (vect_model_load_cost): Add load_lanes_p argument.
2265         (vectorizable_store): Try to use store-lanes functions for
2266         interleaved stores.
2267         (vectorizable_load): Likewise load-lanes and loads.
2268         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2269         to vect_model_store_cost.
2270         (vect_build_slp_tree): Likewise vect_model_load_cost.
2271
2272 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2273
2274         * hooks.h (hook_bool_mode_uhwi_false): Declare.
2275         * hooks.c (hook_bool_mode_uhwi_false): New function.
2276         * target.def (array_mode_supported_p): New hook.
2277         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2278         * doc/tm.texi: Regenerate.
2279         * stor-layout.c (mode_for_array): New function.
2280         (layout_type): Use it.
2281         * config/arm/arm.c (arm_array_mode_supported_p): New function.
2282         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2283
2284 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2285
2286         PR target/48723
2287         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2288         for -fstack-check if the size to allocate is negative.
2289
2290 2011-05-02  Lawrence Crowl  <crowl@google.com>
2291
2292         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2293         (timevar_cond_start): New for starting a timer only when it is not
2294         already running.
2295         (timevar_cond_stop): New for stopping a timer when it was not already
2296         running.
2297
2298         * timevar.c (timevar_stop): Enable start/stop timers to start again.
2299         (timevar_cond_start): New as above.
2300         (timevar_cond_stop): New as above.
2301
2302         * timevar.def: Add start/stop timers for compiler phases,
2303         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2304         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2305         and TV_PHASE_FINALIZE.
2306         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2307         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2308         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2309         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2310         Make unused TV_OVERLOAD into a start/stop timer.
2311
2312         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2313         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2314         to indicate that they are start/stop timers.
2315
2316         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2317         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2318         Move initialization to do_compile.
2319         (do_compile): Add initialization from above.
2320         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2321
2322         * c-decl.c (c_write_global_declarations): Add start/stop of
2323         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2324
2325         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2326         or TV_PARSE_INLINE, as appropriate.
2327         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2328         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2329
2330 2011-05-02  Jason Merrill  <jason@redhat.com>
2331
2332         PR c++/40975
2333         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2334
2335 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
2336
2337         PR c/35445
2338         * c-decl.c (finish_decl): Only create a composite if the types are
2339         compatible.
2340
2341 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2342
2343         * config/fr30/fr30-protos.h (Mmode): Don't define.
2344         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
2345         definition where used.
2346         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2347         define.  Expand definitions where used.
2348         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2349         Expand definitions where used.
2350         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2351         rx_function_arg, rx_function_arg_advance,
2352         rx_function_arg_boundary): Expand definitions of those macros.
2353         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
2354         definition where used.
2355
2356 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2357
2358         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2359         reg<->xmm moves.
2360         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2361         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
2362         with *movv2sf_internal_rex64_avx.
2363         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2364         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2365         Use %v prefix in insn mnemonic to handle TARGET_AVX.
2366         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
2367         "vex" in "prefix" attribute calculation.
2368         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
2369
2370 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
2371
2372         PR target/47951
2373         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2374         inputs match the output.
2375
2376 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
2377
2378         PR target/47955
2379         * config/m68k/m68k.c (m68k_expand_prologue): Set
2380         current_function_static_stack_size.
2381
2382 2011-05-02   Jan Hubicka  <jh@suse.cz>
2383
2384         * lto-streamer.c (lto_streamer_cache_insert_1,
2385         lto_streamer_cache_lookup, lto_streamer_cache_create,
2386         lto_streamer_cache_delete): Use pointer map instead of hashtable.
2387         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2388
2389 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2390
2391         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2392         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2393         config/m68k/t-opts: New files.
2394         * config/m68k/m68k-tables.opt: New file (generated).
2395         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2396         extra_options and m68k/t-opts to tmake_file.
2397         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2398         (all_isas): Initialize using m68k-isas.def.
2399         (all_microarchs): Initialize using m68k-microarchs.def.
2400         (m68k_find_selection): Remove.
2401         (m68k_handle_option): Don't assert that global structures are in
2402         use.  Use error_at.  Access variables via opts pointer.  Don't
2403         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
2404         directly for -m68020-40 and -m68020-60.
2405         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2406         m68k_tune_entry here.
2407         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2408         to m68k-opts.h.
2409         (m68k_library_id_string): Remove declaration.
2410         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
2411         (m68k_library_id_string): New Variable.
2412         (march=, mcpu=, mtune=): Use Enum and Var.
2413
2414 2011-05-02  Richard Guenther  <rguenther@suse.de>
2415
2416         * varasm.c (output_constructor_regular_field): Compute zero-based
2417         index with double-ints.  Make sure to ICE instead of producing
2418         wrong code.
2419         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2420         in asserts.  Properly use a signed type.
2421
2422 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2423
2424         * config/i386/sse.md (V): New mode iterator.
2425         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
2426         TARGET_SSE2.
2427         (V_256): Rename from AVX256MODE.
2428         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
2429         condition to all users.
2430         (VF1): Ditto.
2431         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
2432         condition to all users.
2433         (VF_128): Make V4SF mode unconditional.
2434         (VF_256): Rename from AVX256MODEF2P.
2435         (VI4F_128): Rename from SSEMODE4S.
2436         (VI8F_128): Rename from SSEMODE2D.
2437         (VI4F_256): Rename from AVX256MODE8P.
2438         (VI8F_256): Rename from AVX256MODE4P.
2439         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2440         (ssescalarmodesuffix): Remove SF and DF modes.
2441         (SSEMODE124): Remove.
2442         (SSEMODE1248): Ditto.
2443         (SSEMODEF2P): Ditto.
2444         (AVXMODEF2P): Ditto.
2445         (AVXMODEFDP): Ditto.
2446         (AVXMODEFSP): Ditto.
2447         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2448         unconditional.
2449         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
2450         unconditional.
2451         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2452         xop_pcmov_<mode>256.  Use V mode iterator.
2453
2454         Adjust RTX patterns globally for renamed mode attributes.
2455
2456 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2457
2458         * haifa-sched.c (sched_emit_insn): Emit insn before first
2459         non-scheduled insn.  Inform back-end about new insn.  Add
2460         new insn to scheduled_insns list.
2461
2462 2011-05-02  Richard Guenther  <rguenther@suse.de>
2463
2464         PR tree-optimization/48822
2465         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2466         (process_scc): Indicate which iteration we start.
2467
2468 2011-05-02  Jan Hubicka  <jh@suse.cz>
2469
2470         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2471         (lto_section_overrun): New.
2472         * lto-section-out.c (append_block): Rename to ...
2473         (lto_append_block): ... this one; export.
2474         (lto_output_1_stream): Move lto lto-streamer.h
2475         (lto_output_data_stream): Update.
2476         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2477         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2478         functions.
2479
2480 2011-05-02  Richard Guenther  <rguenther@suse.de>
2481
2482         * tree.c (tree_code_counts): New global array.
2483         (record_node_allocation_statistics): Count individual tree codes.
2484         (dump_tree_statistics): Dump individual code stats.
2485
2486 2011-05-01  Jan Hubicka  <jh@suse.cz>
2487
2488         * ipa-inline.c (caller_growth_limits): Fix thinko when
2489         looking for largest stack frame.
2490         * ipa-inline.h (dump_inline_summary): Declare.
2491         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2492         on stack usage.
2493         (dump_inline_summary): Export.
2494         (debug_inline_summary): Declare as DEBUG_FUNCTION.
2495
2496 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
2497
2498         * reginfo.c (memory_move_cost): Change rclass argument type form
2499         'enum reg_class' to reg_class_t.
2500         * reload.h (memory_move_cost): Update prototype.
2501         * postreload.c reload_cse_simplify_set): Change type dclass var to
2502         reg_class_t.
2503         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2504         Update prototype.
2505         (ira_allocate_and_set_costs): Change aclass argument type form
2506         'enum reg_class' to reg_class_t.
2507         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
2508         Change aclass argument type to reg_class_t.
2509         (update_conflict_hard_reg_costs): Change type aclass and pref vars
2510         to reg_class_t.
2511         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2512         memory_move_cost call.
2513
2514         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2515         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2516         Change type tmp var to reg_class_t.
2517
2518 2011-04-30  Jan Hubicka  <jh@suse.cz>
2519
2520         * ipa-inline.c (can_inline_edge_p): Disregard limits when
2521         inlining into function with flatten attribute.
2522         (want_inline_small_function_p): Be more realistic about inlining
2523         cold calls where callee size grows.
2524
2525 2011-04-30  Jan Hubicka  <jh@suse.cz>
2526
2527         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2528         flags.
2529
2530 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
2531
2532         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2533         PRINT_OPERAND_PUNCT_VALID_P): Remove.
2534         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2535         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2536         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2537         (print_operand): Rename to...
2538         (sparc_print_operand): ...this. Make static. Adjust
2539         sparc_print_operand function call.
2540         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2541         functions.
2542
2543 2011-04-30  Jan Hubicka  <jh@suse.cz>
2544
2545         PR middle-end/48752
2546         * ipa-inline.c (early_inliner): Disable when doing late
2547         addition of function.
2548
2549 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
2550
2551         * dwarf2out.c (get_address_mode): New inline.
2552         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2553         if not dwarf_strict emit
2554         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2555         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2556         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
2557         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2558         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2559         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2560         mem_loc_descriptor callers.
2561         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2562         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2563         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2564         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2565         (base_types): New variable.
2566         (get_base_type_offset, calc_base_type_die_sizes,
2567         base_type_for_mode, mark_base_types, base_type_cmp,
2568         move_marked_base_types): New functions.
2569         (calc_die_sizes): Assert that die_offset is 0 or equal to
2570         next_die_offset.
2571         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2572         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
2573         callers.  If not dwarf_strict, call mem_loc_descriptor even for
2574         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2575         (gen_subprogram_die): Don't give up on call site parameters
2576         with non-integral or large integral modes.  Adjust
2577         mem_loc_descriptor callers.
2578         (prune_unused_types): Call prune_unused_types_mark on base_types
2579         vector entries.
2580         (resolve_addr): Call mark_base_types.
2581         (dwarf2out_finish): Call move_marked_base_types.
2582
2583         PR tree-optimization/48809
2584         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2585         type.
2586         (gen_inbound_check): Don't compute index_expr - range_min in utype
2587         again, instead reuse SSA_NAME initialized in build_arrays.
2588         Remove two useless gsi_for_stmt calls.
2589
2590 2011-04-29  Jeff Law  <law@redhat.com>
2591
2592         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2593
2594 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2595
2596         * cgraph.h (cgraph_postorder): Remove declaration.
2597         * ipa-utils.h (ipa_free_postorder_info): Declare.
2598         (ipa_reverse_postorder): Likewise.
2599         * cgraphunit.c: Include ipa-utils.h.
2600         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2601         * ipa-inline.c: Include ipa-utils.h.
2602         (ipa_inline): Update call to ipa_reverse_postorder.
2603         * ipa-pure-const.c (propagate_pure_const): Update call to
2604         ipa_reduced_postorder and ipa_print_order.  Call
2605         ipa_free_postorder_info to clean up.
2606         (propagate_nothrow): Likewise.
2607         * ipa-reference.c (propagate): Removed a useless call to
2608         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2609         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
2610         * ipa.c: Include ipa-utils.h.
2611         (ipa_profile): Update call to ipa_reverse_postorder.
2612         (cgraph_postorder): Moved to...
2613         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2614         (ipa_utils_print_order): Renamed to ipa_print_order.
2615         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2616         comments.
2617         (ipa_free_postorder_info): New function.
2618         * passes.c: Include ipa-utils.h.
2619         (do_per_function_toporder): Update call to ipa_reverse_postorder.
2620         (ipa_write_summaries): Likewise.
2621         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2622         (cgraphunit.o): Likewise.
2623         (ipa.o): Likewise.
2624         (ipa-inline.o): Likewise.
2625
2626 2011-04-29  Jan Hubicka  <jh@suse.cz>
2627
2628         * gcc.dg/tree-ssa/inline-10.c: New testcase.
2629         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2630         * ipa-inline.h (clause_t): Turn into unsigned int.
2631         * ipa-inline-analysis.c (add_clause): Do more simplification.
2632         (and_predicates): Shortcut more cases.
2633         (predicates_equal_p): Move forward; check that clauses are properly
2634         ordered.
2635         (or_predicates): Shortcut more cases.
2636         (edge_execution_predicate): Rewrite as...
2637         (set_cond_stmt_execution_predicate): ... this function; handle
2638         __builtin_constant_p.
2639         (set_switch_stmt_execution_predicate): New .
2640         (compute_bb_predicates): New.
2641         (will_be_nonconstant_predicate): Update TODO.
2642         (estimate_function_body_sizes): Use compute_bb_predicates
2643         and free them later, always try to estimate if stmt is constant.
2644         (estimate_time_after_inlining, estimate_size_after_inlining):
2645         Gracefully handle optimized out edges.
2646         (read_predicate): Fix off by one error.
2647
2648 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2649
2650         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2651
2652 2011-04-27  Xinliang David Li  <davidxl@google.com>
2653
2654         * tree-profile.c (init_ic_make_global_vars): Set
2655         tls attribute on ic vars.
2656         * coverage.c (coverage_end_function): Initialize
2657         function_list with zero.
2658
2659 2011-04-29  Richard Guenther  <rguenther@suse.de>
2660
2661         * builtins.c (fold_builtin_classify_type): Use integer_type_node
2662         for the type of the result.
2663         (fold_builtin_isascii): Likewise.
2664         (fold_builtin_toascii): Use integer_type_node where appropriate.
2665         (fold_builtin_logb): Likewise.
2666         (fold_builtin_frexp): Likewise.
2667         (fold_builtin_strstr): Likewise.
2668         (fold_builtin_strpbrk): Likewise.
2669         (fold_builtin_fputs): Likewise.
2670         (fold_builtin_sprintf): Likewise.
2671         (fold_builtin_snprintf): Likewise.
2672         (fold_builtin_printf): Likewise.
2673         (do_mpfr_remquo): Use a proper type for the assigned constant.
2674         (do_mpfr_lgamma_r): Likewise.
2675         * dwarf2out.c (resolve_one_addr): Use size_int.
2676         * except.c (init_eh): Likewise.
2677         (assign_filter_values): Use integer_type_node for filter values.
2678         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2679         indices.
2680         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2681         for EH region numbers.
2682         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2683         for the shift amount.
2684
2685 2011-04-29  Richard Guenther  <rguenther@suse.de>
2686
2687         * expr.h (expand_shift): Rename to ...
2688         (expand_variable_shift): ... this.
2689         (expand_shift): Take a constant shift amount.
2690         * expmed.c (expand_shift): Rename to ...
2691         (expand_variable_shift): ... this.
2692         (expand_shift): New wrapper around expand_variable_shift.
2693         * expr.c (convert_move, emit_group_load_1, emit_group_store,
2694         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2695         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2696         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2697         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2698         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2699         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2700         emit_store_flag_1, emit_store_flag): Likewise.
2701         * builtins.c (expand_builtin_signbit): Likewise.
2702         * calls.c (load_register_parameters): Likewise.
2703         * function.c (assign_parm_setup_block): Likewise.
2704         * lower-subreg.c (resolve_shift_zext): Likewise.
2705         * optabs.c (widen_bswap, expand_abs_nojump,
2706         expand_one_cmpl_abs_nojump, expand_float): Likewise.
2707         * spu/spu.c (spu_expand_extv): Likewise.
2708         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2709
2710 2011-04-29  Richard Guenther  <rguenther@suse.de>
2711
2712         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2713         for the remapped region number.
2714         * predict.c (build_predict_expr): Use integer_type_node for the
2715         predict kind.
2716         * fold-const.c (fold_binary_loc): Use integer_type_node for
2717         the shift amount.  Use a proper type for the PLUS_EXPR operand.
2718
2719 2011-04-29  Michael Matz  <matz@suse.de>
2720
2721         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2722         other trees that just builtins.
2723         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2724
2725 2011-04-29  Richard Guenther  <rguenther@suse.de>
2726
2727         * tree-nested.c (get_trampoline_type): Use size_int.
2728         (get_nl_goto_field): Likewise.
2729         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2730         for all indexes.
2731         (lower_eh_constructs_2): Likewise.
2732         (lower_resx): Likewise.
2733         (lower_eh_dispatch): Likewise.
2734         * tree-mudflap.c (mf_build_string): Use size_int.
2735         (mudflap_register_call): Use integer_type_node for the flag.
2736         (mudflap_enqueue_constant): Use size_int.
2737         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2738         instead of rebuilding it.
2739
2740 2011-04-29  Richard Guenther  <rguenther@suse.de>
2741
2742         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2743         Handle OBJ_TYPE_REF.
2744         (find_func_aliases_for_call): Use it more consistently.
2745
2746 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
2747
2748         * haifa-sched.c (last_nondebug_scheduled_insn): New.
2749         (rank_for_schedule): Use it.
2750         (schedule_block): Set it.
2751
2752 2011-04-28  David Li  <davidxl@google.com>
2753
2754         * tree.c (crc32_string): Use crc32_byte.
2755         (crc32_byte): New function.
2756         * tree.h (crc32_byte): New function.
2757         * gcov.c (read_graph_file): Handle new cfg_cksum.
2758         (read_count_file): Ditto.
2759         * profile.c (instrument_values): Ditto.
2760         (get_exec_counts): Ditto.
2761         (read_profile_edge_counts): Ditto.
2762         (compute_branch_probabilities): Ditto.
2763         (compute_value_histograms): Ditto.
2764         (branch_prob): Ditto.
2765         (end_branch_prob): Ditto.
2766         * coverage.c (read_counts_file): Ditto.
2767         (get_coverage_counts): Ditto.
2768         (tree_coverage_counter_addr): Ditto.
2769         (coverage_checksum_string): Ditto.
2770         (coverage_begin_output): Ditto.
2771         (coverage_end_function): Ditto.
2772         (build_fn_info_type): Ditto.
2773         (build_fn_info_value): Ditto.
2774         * libgcov.c (gcov_exit): Ditto.
2775         * gcov-dump.c (tag_function): Ditto.
2776         (compute_checksum): Remove.
2777
2778 2011-04-29  Alan Modra  <amodra@gmail.com>
2779
2780         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2781         unspec plus offset.  Tidy macho code.
2782
2783 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2784
2785         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2786         node instead of a decl.  Update all callers.
2787         * cgraph.h: Update declaration.
2788
2789 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
2790
2791         PR tree-optimization/48765
2792         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2793         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2794         to indicate if loop aware SLP is being used.  Scan the statements
2795         and update the vectorization factor according to the type of
2796         vectorization before statement analysis.
2797         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
2798         pass it to vect_analyze_loop_operations.
2799         (vectorizable_reduction): Set number of copies to 1 in case of pure
2800         SLP statement.
2801         * tree-vect-stmts.c (vectorizable_conversion,
2802         vectorizable_assignment, vectorizable_shift,
2803         vectorizable_operation, vectorizable_type_demotion,
2804         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
2805         Likewise.
2806         (vectorizable_condition): Move the check that it is not SLP
2807         vectorization before the number of copies check.
2808         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
2809         to vectorize the loop using SLP.
2810
2811 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
2812
2813         PR middle-end/48597
2814         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2815         inline asm.
2816
2817 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
2818
2819         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2820         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2821         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2822         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2823         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2824         linux*.h headers.
2825         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
2826         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2827         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2828         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2829         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2830         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2831         REG_NAME.
2832         * config/i386/linux.h (REG_NAME): Don't define.
2833         * config/i386/linux64.h (REG_NAME): Don't define.
2834         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2835         Undefine before defining.
2836
2837 2011-04-28  Jan Hubicka  <jh@suse.cz>
2838
2839         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2840         nonconstant_names array.
2841         (estimate_function_body_sizes): Build nonconstant_names array; handle
2842         BUILT_IN_CONSTANT_P.
2843
2844 2011-04-28  Richard Guenther  <rguenther@suse.de>
2845
2846         PR bootstrap/48804
2847         Revert
2848         2011-04-28  Richard Guenther  <rguenther@suse.de>
2849
2850         * tree-ssa-structalias.c (solve_constraints): Build succ graph
2851         as late as possible.
2852
2853 2011-04-28  Richard Guenther  <rguenther@suse.de>
2854
2855         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2856         (debug_constraint): Do it here.
2857         (dump_constraints): And here.
2858         (rewrite_constraints): And here.
2859         (dump_constraint_edge): Remove.
2860         (dump_constraint_graph): Rewrite to produce DOT output.
2861         (solve_constraints): Build succ graph as late as possible.
2862         Dump constraint graphs before and after solving.
2863
2864 2011-04-28  Richard Guenther  <rguenther@suse.de>
2865
2866         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2867         New function split out from ...
2868         (find_func_aliases): ... here.  Call it.
2869         (find_func_aliases_for_call): Likewise.
2870
2871 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2872
2873         * internal-fn.h (internal_fn_name_array): Declare.
2874         (internal_fn_flags_array): Likewise.
2875
2876 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2877
2878         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
2879         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2880         Move from sse.md.
2881         (ssemodefsuffix): Remove.
2882         (ssevecmodesuffix): New mode attribute.
2883         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2884         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2885         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2886         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2887         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2888         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2889         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2890         ssemodesuffix mode attribute.
2891         (float splitters): Use ssevecmodesuffix mode attribute.
2892         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2893         (sseinsmode): Rename from avxvecmode.
2894         (avxsizesuffix): Rename from avxmodesuffix.
2895         (sseintvecmode): Rename from avxpermvecmode.
2896         (ssedoublevecmode): Rename from ssedoublesizemode.
2897         (ssehalfvecmode): Rename from avxhalfvecmode.
2898         (ssescalarmode): Rename from avxscalarmode.
2899         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2900         templates for ssemodesuffix mode attribute.
2901         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2902         mode attribute.
2903
2904         Adjust RTX patterns globally for renamed mode attributes.
2905
2906 2011-04-27  Jan Hubcika  <jh@suse.cz>
2907
2908         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2909         * ipa-inline-analysis.c: Include alloc-pool.h.
2910         (edge_predicate_pool): New.
2911         (trye_predicate_p): New function
2912         (false_predicate_p): New function.
2913         (add_clause): Sanity check that false clauses are "optimized";
2914         never add clauses to predicate that is already known to be false.
2915         (and_predicate): Use flase_predicate_p.
2916         (evaulate_predicate): Rename to ...
2917         (evaluate_predicate): ... this one; update all callers; assert
2918         that false is not listed among possible truths.
2919         (dump_predicate): Use true_predicate_p.
2920         (account_size_time): Use false_predicate_p.
2921         (evaulate_conditions_for_edge): Rename to ...
2922         (evaluate_conditions_for_edge) ... this one.
2923         (edge_set_predicate): New function.
2924         (inline_edge_duplication_hook): Duplicate edge predicates.
2925         (inline_edge_removal_hook): Free edge predicates.
2926         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
2927         (dump_inline_summary): Update.
2928         (estimate_function_body_sizes): Set edge predicates.
2929         (estimate_calls_size_and_time): Handle predicates.
2930         (estimate_callee_size_and_time): Update.
2931         (remap_predicate): Add toplev_predicate; update comment.
2932         (remap_edge_predicates): New function.
2933         (inline_merge_summary): Compute toplev predicate; update.
2934         (read_predicate): New function.
2935         (read_inline_edge_summary): Use it.
2936         (inline_read_section): Likewise.
2937         (write_predicate): New function.
2938         (write_inline_edge_summary): Use it.
2939         (inline_write_summary): Likewise.
2940         (inline_free_summary): Free alloc pool and edge summary vec.
2941
2942 2011-04-27  Richard Guenther  <rguenther@suse.de>
2943
2944         * tree-ssa-structalias.c (changed_count): Remove.
2945         (changed): Use a bitmap.
2946         (unify_nodes): Adjust.
2947         (do_sd_constraint): Likewise.
2948         (do_ds_constraint): Likewise.
2949         (do_complex_constraint): Likewise.
2950         (solve_graph): Likewise.
2951
2952 2011-04-27  Jan Hubicka  <jh@suse.cz>
2953
2954         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2955
2956 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2957
2958         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2959         (avx_vperm2f128_*_operand): Ditto.
2960         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2961         Use avx_vpermilp_parallel in insn condition.
2962         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2963         Use avx_vperm2f128_parallel in insn condition.
2964
2965 2011-04-27  Richard Guenther  <rguenther@suse.de>
2966
2967         * Makefile.in (tree-ssa-structalias.o): Remove
2968         gt-tree-ssa-structalias.h dependency.
2969         (GTFILES): Remove tree-ssa-structalias.c.
2970         * tree.c (allocate_decl_uid): New function.
2971         (make_node_stat): Use it.
2972         (copy_node_stat): Likewise.
2973         * tree.h (allocate_decl_uid): Declare.
2974         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2975         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2976         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
2977         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
2978         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2979         (struct heapvar_map): Likewise.
2980         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2981         heapvar_insert): Likewise.
2982         (make_heapvar_for): Rename to ...
2983         (make_heapvar): ... this.  Simplify.
2984         (fake_var_decl_obstack): New global var.
2985         (build_fake_var_decl): New function.
2986         (make_constraint_from_heapvar): Adjust.
2987         (handle_lhs_call): Likewise.
2988         (create_function_info_for): Likewise.
2989         (intra_create_variable_infos): Likewise.
2990         (init_alias_vars): Allocate fake_var_decl_obstack.
2991         (init_alias_heapvars, delete_alias_heapvars): Remove.
2992         (compute_points_to_sets): Do not call init_alias_heapvars.
2993         (ipa_pta_execute): Likewise.
2994         (delete_points_to_sets): Free fake_var_decl_obstack.
2995
2996 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2997
2998         * config/spu/divmovti4.c (union qword_UTItype): New data type.
2999         (si_from_UTItype, si_to_UTItype): New functions.
3000         (__udivmodti4): Use them to implement type-punning.
3001         * config/spu/multi3.c (union qword_TItype): New data type.
3002         (si_from_TItype, si_to_TItype): New functions.
3003         (__multi3): Use them to implement type-punning.
3004
3005 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3006
3007         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
3008
3009 2011-04-27  Jan Hubicka  <jh@suse.cz>
3010
3011         * ipa-prop.c (function_insertion_hook_holder): New holder.
3012         (ipa_add_new_function): New function.
3013         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
3014         Register/deregister holder.
3015
3016 2011-04-27  Richard Guenther  <rguenther@suse.de>
3017
3018         PR tree-optimization/48772
3019         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
3020
3021 2011-04-27  Richard Guenther  <rguenther@suse.de>
3022
3023         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3024         TARGET_MEM_REF handling.
3025
3026 2011-04-27  Nick Clifton  <nickc@redhat.com>
3027
3028         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3029         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3030         (REG_CLASS_NAMES): Likewise.
3031         (REG_CLASS_CONTENTS): Likewise.
3032         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3033         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3034         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
3035         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
3036         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
3037         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3038         duplicate register classes.
3039         (frv_class_likely_spilled_p): Likewise.
3040         (frv_register_move_cost): Likewise.
3041
3042         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3043         end of the regno_reg_class array.
3044
3045 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
3046
3047         PR c/48742
3048         * c-typeck.c (build_binary_op): Don't wrap arguments if
3049         int_operands is true.
3050
3051 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
3052
3053         PR target/48767
3054         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3055         targetm.calls.must_pass_in_stack for void type.
3056
3057 2011-04-26  Jan Hubicka  <jh@suse.cz>
3058
3059         * cgraphbuild.c (build_cgraph_edges): Update call
3060         of cgraph_create_edge and cgraph_create_indirect_edge.
3061         * cgraph.c (cgraph_create_edge_including_clones,
3062         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3063         cgraph_update_edges_for_call_stmt_node): Do not take nest
3064         argument; do not initialize call_stmt_size/time.
3065         (dump_cgraph_node): Do not dump nest.
3066         (cgraph_clone_edge): Do not take loop_nest argument;
3067         do not propagate it; do not clone call_stmt_size/time.
3068         (cgraph_clone_node): Likewise.
3069         (cgraph_create_virtual_clone): Update.
3070         * cgraph.h (struct cgraph_edge): Remove
3071         call_stmt_size/call_stmt_time/loop_nest.
3072         (cgraph_create_edge, cgraph_create_indirect_edge,
3073         cgraph_create_edge_including_clones, cgraph_clone_node): Update
3074         prototype.
3075         * tree-emutls.c (gen_emutls_addr): Update.
3076         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3077         loop_nest; handle indirect calls, too.
3078         (clone_inlined_nodes): Do not care about updating inline summaries.
3079         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3080         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3081         stream call_stmt_size/call_stmt_time/loop_nest.
3082         * ipa-inline.c (edge_badness): Update.
3083         (ipa_inline): dump summaries after inlining.
3084         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
3085         New.
3086         (inline_edge_summary): New function.
3087         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3088         (inline_edge_removal_hook): Handle edge summaries.
3089         (inline_edge_duplication_hook): New hook.
3090         (inline_summary_alloc): Alloc hooks.
3091         (initialize_growth_caches): Do not register removal hooks.
3092         (free_growth_caches); Do not free removal hook.
3093         (dump_inline_edge_summary): New function.
3094         (dump_inline_summary): Use it.
3095         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3096         (inline_update_callee_summaries): New function.
3097         (inline_merge_summary): Use it.
3098         (do_estimate_edge_time, do_estimate_edge_growth): Update.
3099         (read_inline_edge_summary): New function.
3100         (inline_read_section): Use it.
3101         (write_inline_edge_summary): New function.
3102         (inline_write_summary): Use it.
3103         (inline_free_summary): Free edge new holders.
3104         * tree-inline.c (copy_bb): Update.
3105
3106 2011-04-26  Jason Merrill  <jason@redhat.com>
3107
3108         * tree-eh.c (lower_try_finally_switch): Create the label along with
3109         the CASE_LABEL_EXPR.
3110
3111 2011-04-26  David S. Miller  <davem@davemloft.net>
3112             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3113
3114         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3115         * configure: Regenerate.
3116
3117 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3118
3119         PR target/48258
3120         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3121         reduction.
3122         (VEC_reduc): New code iterator and splitters for vector reduction.
3123         (VEC_reduc_name): Ditto.
3124         (VEC_reduc_rtx): Ditto.
3125         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3126         (reduc_<VEC_reduc_name>_v4sf): Ditto.
3127
3128         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3129         support for extracting SF on VSX.
3130
3131         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3132         generating xscvspdp.
3133         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3134         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3135         double add, minimum, maximum vector reduction.
3136         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3137         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3138         optimize double vector reduction.
3139         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3140
3141 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
3142
3143         * config/fr30/fr30.h (inhibit_libc): Don't define.
3144         * config/m32r/m32r-protos.h: Correct comment.
3145         * config/v850/v850.h (GHS_default_section_names,
3146         GHS_current_section_names): Use tree, not union tree_node *.
3147
3148 2011-04-26  Xinliang David Li  <davidxl@google.com>
3149
3150         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
3151         * c-family/c-opts.c (c_common_handle_option): Set
3152         warn_maybe_uninitialized.
3153         * opts.c (common_handle_option): Ditto.
3154         * common.opt:  New option.
3155         * tree-ssa.c (warn_uninit): Add one more parameter.
3156         (warn_uninitialized_var): Pass warning code.
3157         * tree-flow.h: Interface change.
3158
3159
3160 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3161
3162         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
3163         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3164         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3165
3166 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3167
3168         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3169         * config/mips/mips.opt (mmips-tfile): Remove.
3170
3171         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3172         mips-tdump reference to ...
3173         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
3174         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3175         reference by Tru64 UNIX.
3176
3177 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
3178
3179         PR debug/48768
3180         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3181         is error_mark_node, set value to NULL.
3182
3183         PR tree-optimization/48734
3184         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3185         if return value from maybe_fold_*_comparsions isn't something
3186         the code is prepared to handle.
3187
3188 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
3189
3190         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3191         mode check.
3192         (ext_QIreg_nomode_operands): Remove.
3193         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3194         (*andsi_1): Ditto.
3195         (*andhi_1): Ditto.
3196
3197 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
3198
3199         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3200
3201 2011-04-26  Richard Guenther  <rguenther@suse.de>
3202
3203         * c-typeck.c (build_unary_op): Do not expand array-refs via
3204         pointer arithmetic.  Only adjust qualifiers for function types.
3205
3206 2011-04-26  Richard Guenther  <rguenther@suse.de>
3207
3208         PR middle-end/48694
3209         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3210         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
3211         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
3212         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
3213
3214 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
3215
3216         * doc/extend.texi: Document __underlying_type.
3217
3218 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
3219
3220         * config/rs6000/titan.md (automata_option "progress"): Remove.
3221
3222 2011-04-25  Jeff Law  <law@redhat.com>
3223
3224         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3225
3226 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
3227
3228         * system.h (ENUM_BITFIELD): Remove.
3229
3230 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
3231             Eric Botcazou  <ebotcazou@adacore.com>
3232
3233         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3234         for STORE_FLAG_VALUE==-1 case.
3235
3236 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
3237
3238         PR target/43804
3239         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3240         LEGITIMATE_PIC_OPERAND_P.
3241
3242 2011-04-24  Jan Hubicka  <jh@suse.cz>
3243
3244         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3245         WPA hack.
3246         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3247         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3248         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
3249         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3250         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3251         Sanity check predicate length.
3252         (remap_predicate): Likewise; sanity check jump functions.
3253         (inline_read_section, inline_write_summary): Sanity check
3254         predicate length.
3255
3256 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
3257
3258         PR other/48748
3259         * doc/extend.texi (Type Traits): Document __is_standard_layout,
3260         __is_literal_type, and __is_trivial; update throughout about
3261         possibly cv-qualified void types.
3262
3263 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3264
3265         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3266         testsuite and make it version agnostic.
3267
3268 2011-04-22  Jan Hubicka  <jh@suse.cz>
3269
3270         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3271
3272 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
3273
3274         PR c/48685
3275         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3276         to VOID_TYPE even around MODIFY_EXPR.
3277
3278 2011-04-22  Mike Stump  <mikestump@comcast.net>
3279
3280         * gensupport.c (read_md_rtx): Fix typo in comment.
3281         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3282         comment.
3283
3284 2011-04-22  Jan Hubicka  <jh@suse.cz>
3285
3286         * gengtype.c (open_base_files): Add ipa-inline.h include.
3287         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3288         ipa-prop.c; update all uses.
3289         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
3290         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3291         merge summary of inlined function into former caller.
3292         * ipa-inline.c (max_benefit): Remove.
3293         (edge_badness): Compensate for removal of benefits.
3294         (update_caller_keys): Use
3295         reset_node_growth_cache/reset_edge_growth_cache.
3296         (update_callee_keys): Likewise.
3297         (update_all_callee_keys): Likewise.
3298         (inline_small_functions): Do not collect max_benefit; do not reset
3299         estimated_growth; call free_growth_caches and initialize_growth_caches.
3300         * ipa-inline.h (struct condition, type clause_t, struct predicate,
3301         struct size_time_entry): New structures.
3302         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
3303         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3304         and estimated_growth.
3305         (edge_growth_cache_entry): New structure.
3306         (node_growth_cache, edge_growth_cache): New global vars.
3307         (estimate_growth): Turn into inline.
3308         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3309         initialize_growth_caches, free_growth_caches): Declare.
3310         (estimate_edge_growth): Rewrite.
3311         (estimate_edge_time): Implement as inline cache lookup.
3312         (reset_node_growth_cache, reset_edge_growth_cache): New inline
3313         functions.
3314         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3315         (NUM_CONDITIONS): New constant.
3316         (predicate_conditions): New enum.
3317         (IS_NOT_CONSTANT): New constant.
3318         (edge_removal_hook_holder): New var.
3319         (node_growth_cache, edge_growth_cache): New global vars.
3320         (true_predicate, single_cond_predicate, false_predicate,
3321         not_inlined_predicate, add_condition, add_clause, and_predicates,
3322         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3323         dump_clause, dump_predicate, account_size_time,
3324         evaulate_conditions_for_edge): New functions.
3325         (inline_summary_alloc): Move to heap.
3326         (inline_node_removal_hook): Clear condition and entry vectors.
3327         (inline_edge_removal_hook): New function.
3328         (initialize_growth_caches, free_growth_caches): New function.
3329         (dump_inline_summary): Update.
3330         (edge_execution_predicate): New function.
3331         (will_be_nonconstant_predicate): New function.
3332         (estimate_function_body_sizes): Compute BB and constantness predicates.
3333         (compute_inline_parameters): Do not clear estimated_growth.
3334         (estimate_edge_size_and_time): New function.
3335         (estimate_calls_size_and_time): New function.
3336         (estimate_callee_size_and_time): New function.
3337         (remap_predicate): New function.
3338         (inline_merge_summary): New function.
3339         (do_estimate_edge_time): New function based on...
3340         (estimate_edge_time): ... this one.
3341         (do_estimate_edge_growth): New function.
3342         (do_estimate_growth): New function based on....
3343         (estimate_growth): ... this one.
3344         (inline_analyze_function): Analyze after deciding on jump functions.
3345         (inline_read_section): New function.
3346         (inline_read_summary): Use it.
3347         (inline_write_summary): Write all the new data.
3348         * ipa-prop.c (ipa_get_param_decl_index): Export.
3349         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
3350         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3351         Declare.
3352         (ipa_get_lattice): Move here from ipa-cp.c
3353         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3354         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3355         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3356         cgraph_edge_inlinable_p): Remove.
3357         * cgraphunit.c: Include ipainline.h
3358         (cgraph_process_new_functions): Update call of
3359         compute_inline_parameters.
3360
3361 2011-04-22  Richard Guenther  <rguenther@suse.de>
3362
3363         * tree.c (build_int_cst): Properly create canonicalized integer
3364         constants.
3365         (build_int_cst_type): Remove scary comments.
3366
3367 2011-04-22  Xinliang David Li  <davidxl@google.com>
3368
3369         * toplev.c (process_options): Enable -Werror=coverage-mismatch
3370         by default when -Wno-error is not specified.
3371         * opts-global.c (decode_options): Remove call to
3372         control_warning_options.
3373
3374 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3375
3376         PR tree-optimization/48717
3377         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3378         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3379
3380 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
3381
3382         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
3383         definition where used.
3384
3385 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3386
3387         PR c/48716
3388         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3389         TREE_STATIC variables declared inside of some OpenMP construct.
3390
3391 2011-04-22  Martin Jambor  <mjambor@suse.cz>
3392
3393         PR middle-end/48585
3394         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
3395
3396 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
3397
3398         PR c/36750
3399         * c-typeck.c (pop_init_level): Do not warn about initializing
3400         with ` = {0}'.
3401
3402 2011-04-22  Alan Modra  <amodra@gmail.com>
3403
3404         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3405         when returning call_cookie.
3406         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3407         pointers, to functions with no more vector args than the current
3408         function, and some non-local calls for ABI_V4.
3409         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3410         sibcall_nonlocal_aix64): Combine to ..
3411         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
3412         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3413         (sibcall_value_nonlocal_aix<mode>): ..likewise.
3414         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3415         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
3416         operand.
3417         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3418         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3419         sibcall_value_symbolic_64): Delete.
3420
3421 2011-04-21  Xinliang David Li  <davidxl@google.com>
3422
3423         * cgraph.h: Remove pid.
3424         * cgraph.c: Remove pid.
3425         * value-prof.c (init_node_map): New function.
3426         (del_node_map): New function.
3427         (find_func_by_funcdef_no): New function.
3428         (gimple_ic_transform): Call new function.
3429         * cgraphunit.c (cgraph_finalize_function): Remove pid.
3430         * function.c (get_last_funcdef_no): New function.
3431         * function.h (get_last_funcdef_no): New function.
3432         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3433         to libgcov function.
3434         (tree-profiling): Call node map init and delete function.
3435
3436 2011-04-21  Ian Lance Taylor  <iant@google.com>
3437
3438         * godump.c (go_format_type): Use exported Go name for anonymous
3439         field name.
3440
3441 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3442
3443         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3444         Call builtin_function_type_list instead of builtin_function_type.
3445         (UNARY, BINARY, TRINARY, QUAD): Likewise.
3446
3447 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3448
3449         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3450         build_function_type_list instead of build_function_type.
3451         Delete variable `endlink'.
3452
3453 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3454
3455         * config/s390/s390.c (s390_init_builtins): Call
3456         build_function_type_list instead of build_function_type.
3457
3458 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3459
3460         * config/ia64/ia64.c (ia64_init_builtins): Call
3461         build_function_type_list instead of builtin_function_type.
3462
3463 2011-04-21  Easwaran Raman  <eraman@google.com>
3464
3465         * cfgexpand.c (stack_var): Remove OFFSET...
3466         (add_stack_var): ...and its reference here...
3467         (expand_stack_vars): ...and here.
3468         (stack_var_cmp): Sort by descending order of size.
3469         (partition_stack_vars): Change heuristic.
3470         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
3471         (dump_stack_var_partition): Add newline after each partition.
3472
3473 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
3474             Jeff Law  <law@redhat.com>
3475
3476         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
3477         * gengtype.c (matching_file_name_substitute): Likewise.
3478
3479 2011-04-21  Richard Guenther  <rguenther@suse.de>
3480
3481         PR lto/48703
3482         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
3483
3484 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3485
3486         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3487
3488 2011-04-21  Richard Guenther  <rguenther@suse.de>
3489
3490         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3491         file name.
3492
3493 2011-04-21  Richard Guenther  <rguenther@suse.de>
3494
3495         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3496         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3497         Use DECL_P, not SSA_VAR_P.
3498         (ptr_derefs_may_alias_p): Likewise.
3499         (ptr_deref_may_alias_ref_p_1): Likewise.
3500         (decl_refs_may_alias_p): Likewise.
3501         (refs_may_alias_p_1): Likewise.
3502         (ref_maybe_used_by_call_p_1): Likewise.
3503         (call_may_clobber_ref_p_1): Likewise.
3504         (indirect_ref_may_alias_decl_p): Assume indirect refrences
3505         are either MEM_REF or TARGET_MEM_REF.
3506         (indirect_refs_may_alias_p): Likewise.
3507         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3508         for MEM_EXPR of indirect calls.
3509
3510 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3511
3512         * vmsdbgout.c (write_srccorr): Compute file length from the string.
3513         (dst_file_info_struct): Remove flen field.
3514         (lookup_filename): Remove code that set flen field.
3515
3516 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3517
3518         * config/ia64/ia64.c (ia64_start_function): Add a guard.
3519
3520 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
3521
3522         PR target/48708
3523         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3524         vec_extract and vec_concat for non-SSE4_1 targets.
3525
3526 2011-04-21  Richard Guenther  <rguenther@suse.de>
3527
3528         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3529         return statements.
3530
3531 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3532
3533         * config/i386/cygming.h (union tree_node, TREE): Don't define or
3534         undefine.
3535         (FILE): Don't undefine.
3536
3537 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3538
3539         * config/alpha/alpha.c (struct machine_function): Use rtx, not
3540         struct rtx_def *.
3541         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3542         struct rtx_def *.
3543         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
3544         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
3545         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3546         rtx_def *.
3547         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
3548         definitions where used.
3549         * config/microblaze/microblaze.h (struct microblaze_args): Use
3550         rtx, not struct rtx_def *.
3551         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3552         rtx_def *.
3553         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3554         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
3555         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3556         not struct rtx_def *.
3557         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3558         struct rtx_def *.
3559         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3560         rtx_def *.
3561         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
3562
3563 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3564
3565         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3566         operand_equal_p to compare DR_BASE_ADDRESSes.
3567         (vect_check_interleaving): Likewise.
3568
3569 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3570
3571         PR target/46329
3572         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3573         for all Neon struct constants.
3574
3575 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3576
3577         * target.def (legitimate_constant_p): New hook.
3578         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3579         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3580         * doc/tm.texi: Regenerate.
3581         * hooks.h (hook_bool_mode_rtx_true): Declare.
3582         * hooks.c (hook_bool_mode_rtx_true): Define.
3583         * system.h (LEGITIMATE_CONSTANT_P): Poison.
3584         * calls.c (precompute_register_parameters): Replace uses of
3585         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3586         (emit_library_call_value_1): Likewise.
3587         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3588         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3589         * ira-costs.c (scan_one_insn): Likewise.
3590         * recog.c (general_operand, immediate_operand): Likewise.
3591         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3592         * reload1.c (init_eliminable_invariants): Likewise.
3593
3594         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3595         mode argument.
3596         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3597         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3598         argument.
3599         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3600         * config/alpha/predicates.md (input_operand): Update call to
3601         alpha_legitimate_constant_p.
3602
3603         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3604         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3605         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3606         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3607         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3608         (arm_legitimate_constant_p): New functions.
3609         (arm_cannot_force_const_mem): Make static.
3610
3611         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3612
3613         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3614         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3615         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3616         instead of bfin_legitimate_constant_p.
3617         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
3618         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3619
3620         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3621
3622         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3623
3624         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3625         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3626         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3627         (frv_legitimate_constant_p): Make static.  Add a mode argument.
3628
3629         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3630         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3631         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3632
3633         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3634         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3635         * config/i386/i386.c (legitimate_constant_p): Rename to...
3636         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
3637         argument.
3638         (ix86_cannot_force_const_mem): Update accordingly.
3639         (ix86_legitimate_address_p): Likewise.
3640         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3641         * config/i386/i386.md: Update commentary.
3642
3643         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3644         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3645         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3646         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
3647
3648         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3649
3650         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3651         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3652         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3653         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
3654
3655         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3656         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3657         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3658
3659         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3660         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3661         (m32r_legitimate_constant_p): New function.
3662
3663         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3664         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3665         LEGITIMATE_CONSTANT_P.
3666         (LEGITIMATE_CONSTANT_P): Delete.
3667         * config/m68k/m68k.c (m68k_expand_prologue): Call
3668         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3669         (m68k_legitimate_constant_p): New function.
3670         * config/m68k/m68k.md: Update comments.
3671
3672         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3673         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3674         (mcore_legitimate_constant_p): New function.
3675
3676         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3677         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3678         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3679         Add a mode argument.
3680         (mep_legitimate_address): Update accordingly.
3681         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3682
3683         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3684         Delete.
3685         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3686         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3687         static.  Check OP's mode for VOIDmode.
3688         (microblaze_legitimate_constant_p): New function.
3689         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3690
3691         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3692         * config/mips/mips.c (mips_legitimate_constant_p): New function.
3693         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3694         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3695         * config/mips/predicates.md: Update comments.
3696
3697         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3698         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3699         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3700         (mmix_legitimate_constant_p): Make static, return a bool, and take
3701         a mode argument.
3702         (mmix_print_operand_address): Update accordingly.
3703
3704         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3705         Delete.
3706         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
3707         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3708         static.  Add a mode argument.
3709         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3710
3711         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3712
3713         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3714         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3715         (pa_legitimate_constant_p): New function.
3716
3717         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3718
3719         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3720         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3721         (pdp11_legitimate_constant_p): New function.
3722
3723         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3724         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3725         (rs6000_legitimate_constant_p): New function.
3726
3727         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3728         (rx_legitimate_constant_p): ...this.
3729         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3730         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3731         (rx_legitimate_constant_p): ...this.
3732         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3733         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3734
3735         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3736         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3737         * config/s390/s390.c (legitimate_constant_p): Rename to...
3738         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
3739         and add a mode argument.
3740         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3741
3742         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3743
3744         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3745         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3746         (sh_legitimate_constant_p): New function.
3747
3748         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3749         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3750         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3751         (legitimate_constant_p): Rename to...
3752         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
3753         argument.
3754         (constant_address_p): Update accordingly.
3755
3756         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3757         argument and return a bool.
3758         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3759         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3760         (spu_legitimate_constant_p): Add a mode argument and return a bool.
3761         (spu_rtx_costs): Update accordingly.
3762         * config/spu/predicates.md (vec_imm_operand): Likewise.
3763
3764         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3765
3766         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3767         * config/v850/v850.c (v850_legitimate_constant_p): New function.
3768         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3769
3770         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3771         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3772         * config/vax/vax.c (legitimate_constant_p): Likewise.
3773
3774         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3775         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3776         (xtensa_legitimate_constant_p): New function.
3777
3778 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3779
3780         * target.def (cannot_force_const_mem): Add a mode argument.
3781         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3782         * doc/tm.texi: Regenerate.
3783         * hooks.h (hook_bool_mode_rtx_false): Declare.
3784         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3785         (hook_bool_mode_const_rtx_true): Likewise.
3786         (hook_bool_mode_rtx_false): New function.
3787         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3788         to be non-VOID.  Update call to cannot_force_const_mem.
3789         (find_reloads): Update accordingly.
3790         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3791         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3792         argument.
3793         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3794         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
3795         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
3796         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
3797         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
3798         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
3799         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
3800         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3801         (m68k_cannot_force_const_mem): ...this new function.
3802         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
3803         argument.
3804         (mips_const_insns, mips_legitimize_const_move): Update calls.
3805         (mips_secondary_reload_class): Likewise.
3806         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3807         (pa_cannot_force_const_mem): ...this new function.
3808         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
3809         (rs6000_cannot_force_const_mem): ...this new function.
3810         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
3811         argument.
3812         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3813         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3814         to...
3815         (xtensa_cannot_force_const_mem): ...this new function.
3816
3817 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3818
3819         * config/mips/mips.c (mips16_build_function_stub): Call
3820         build_function_type_list instead of build_function_type.
3821         (mips16_build_call_stub): Likewise.
3822
3823 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3824
3825         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3826         instead of build_function_type.
3827
3828 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3829
3830         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3831         instead of build_function_type.
3832
3833 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
3834
3835         PR target/48678
3836         * config/i386/i386.md (insv): Change operand 0 constraint to
3837         "register_operand".  Change operand 1 and 2 constraint to
3838         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
3839         * config/i386/sse.md (sse4_1_pinsrb): Export.
3840         (sse2_pinsrw): Ditto.
3841         (sse4_1_pinsrd): Ditto.
3842         (sse4_1_pinsrq): Ditto.
3843         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3844         * config/i386/i386.c (ix86_expand_pinsr): New.
3845
3846 2011-04-20  Easwaran Raman  <eraman@google.com>
3847
3848         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3849         containing union type only with -fstrict-aliasing.
3850
3851 2011-04-20  Jim Meyering  <meyering@redhat.com>
3852
3853         Remove useless if-before-free tests.
3854         * calls.c (expand_call, save_area): Likewise.
3855         * cfgcleanup.c (try_forward_edges): Likewise.
3856         * collect2.c (collect_execute): Likewise.
3857         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3858         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3859         * coverage.c (coverage_checksum_string): Likewise.
3860         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3861         * cselib.c (cselib_init): Likewise.
3862         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3863         (df_set_clean_cfg): Likewise.
3864         * function.c (free_after_compilation): Likewise.
3865         * gcc.c (do_spec_1, main): Likewise.
3866         * gcov.c (create_file_names): Likewise.
3867         * gensupport.c (identify_predicable_attribute): Likewise.
3868         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3869         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3870         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3871         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3872         * ipa-pure-const.c (local_pure_const): Likewise.
3873         * ipa-reference.c (propagate): Likewise.
3874         * ira-costs.c (free_ira_costs): Likewise.
3875         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3876         * matrix-reorg.c (mat_free): Likewise.
3877         * prefix.c (get_key_value): Likewise.
3878         * profile.c (compute_value_histograms): Likewise.
3879         * reload1.c (free_reg_equiv): Likewise.
3880         * sched-deps.c (free_deps): Likewise.
3881         * sel-sched-ir.c (fence_clear): Likewise.
3882         * sese.c (set_rename, if_region_set_false_region): Likewise.
3883         * tree-data-ref.c (free_rdg): Likewise.
3884         * tree-eh.c (lower_try_finally): Likewise.
3885         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3886         * tree-ssa-live.c (delete_var_map): Likewise.
3887         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3888         * tree-ssa-pre.c (phi_trans_add): Likewise.
3889
3890 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
3891
3892         PR tree-optimization/48611
3893         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3894         beyond ERT_MUST_NOT_THROW region.
3895
3896 2011-04-20  Catherine Moore  <clm@codesourcery.com>
3897
3898         * config/mips/mips.opt (mfix-24k): New.
3899         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3900         * config/mips/mips.md (length): Increase by 4 for stores if
3901         fixing 24K errata.
3902         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3903         all noreorder if fixing 24K errata.
3904         * doc/invoke.texi: Document mfix-24k.
3905
3906 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
3907
3908         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
3909         quad-word modes, reduce to 9-bit index range when above 1016 limit.
3910
3911 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3912
3913         * config/arm/arm.c (arm_gen_constant): Move movw support ....
3914         (const_ok_for_op): ... to here.
3915
3916 2011-04-20  Kai Tietz  <ktietz@redhat.com>
3917
3918         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3919         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
3920
3921 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3922
3923         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3924
3925 2011-04-20  Richard Guenther  <rguenther@suse.de>
3926
3927         PR tree-optimization/47892
3928         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3929         are if-convertible.
3930
3931 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3932
3933         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3934
3935 2011-04-20  Tristan Gingold  <gingold@adacore.com>
3936
3937         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3938
3939 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
3940
3941         PR target/18145
3942
3943         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3944         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3945         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3946         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3947         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3948
3949         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3950         New prototype.
3951
3952         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3953         (avr_asm_named_section, avr_asm_output_aligned_common,
3954         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3955         New functions to update...
3956         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3957         (avr_asm_init_sections): Overwrite section callbacks for
3958         data_section, bss_section.
3959         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3960         from here to...
3961         (avr_file_end): ...here.
3962
3963 2011-04-20  Richard Guenther  <rguenther@suse.de>
3964
3965         PR middle-end/48695
3966         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
3967         objects and types here.  Adjust for their offset before comparing.
3968
3969 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3970
3971         * tree-vect-stmts.c (vectorizable_store): Only chain one related
3972         statement per copy.
3973
3974 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3975
3976         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3977         (GIMPLE_H): Include $(INTERNAL_FN_H).
3978         (OBJS-common): Add internal-fn.o.
3979         (internal-fn.o): New rule.
3980         * internal-fn.def: New file.
3981         * internal-fn.h: Likewise.
3982         * internal-fn.c: Likewise.
3983         * gimple.h: Include internal-fn.h.
3984         (GF_CALL_INTERNAL): New gf_mask.
3985         (gimple_statement_call): Put fntype into a union with a new
3986         internal_fn field.
3987         (gimple_build_call_internal): Declare.
3988         (gimple_build_call_internal_vec): Likewise.
3989         (gimple_call_same_target_p): Likewise.
3990         (gimple_call_internal_p): New function.
3991         (gimple_call_internal_fn): Likewise.
3992         (gimple_call_fntype): Return null for internal calls.
3993         (gimple_call_set_fntype): Assert that the function is not internal.
3994         (gimple_call_set_fn): Likewise.
3995         (gimple_call_set_fndecl): Likewise.
3996         (gimple_call_set_internal_fn): New function.
3997         (gimple_call_addr_fndecl): Handle null functions.
3998         (gimple_call_return_type): Likewise null types.
3999         * gimple.c (gimple_build_call_internal_1): New function.
4000         (gimple_build_call_internal): Likewise.
4001         (gimple_build_call_internal_vec): Likewise.
4002         (gimple_call_same_target_p): Likewise.
4003         (gimple_call_flags): Handle calls to internal functions.
4004         (gimple_call_fnspec): New function.
4005         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
4006         (gimple_has_side_effects): Handle null functions.
4007         (gimple_rhs_has_side_effects): Likewise.
4008         (gimple_call_copy_skip_args): Handle calls to internal functions.
4009         * cfgexpand.c (expand_call_stmt): Likewise.
4010         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
4011         * gimple-fold.c (gimple_fold_call): Handle null functions.
4012         (gimple_fold_stmt_to_constant_1): Don't fold
4013         calls to internal functions.
4014         * gimple-low.c (gimple_check_call_args): Handle calls to internal
4015         functions.
4016         * gimple-pretty-print.c (dump_gimple_call): Likewise.
4017         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
4018         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
4019         (do_warn_unused_result): Likewise.
4020         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
4021         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
4022         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
4023         the target of a call.
4024         (initialize_hash_element): Update accordingly.
4025         (hashable_expr_equal_p): Use gimple_call_same_target_p.
4026         (iterative_hash_hashable_expr): Handle calls to internal functions.
4027         (print_expr_hash_elt): Likewise.
4028         * tree-ssa-pre.c (can_value_number_call): Likewise.
4029         (eliminate): Handle null functions.
4030         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
4031         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
4032         (find_func_aliases): Likewise.
4033         * value-prof.c (gimple_ic_transform): Likewise.
4034         (gimple_indirect_call_to_profile): Likewise.
4035         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4036         * lto-streamer-out.c (output_gimple_stmt): Likewise.
4037
4038 2011-04-19  Jan Hubicka  <jh@suse.cz>
4039
4040         * ipa-inline-transform.c (save_inline_function_body): Add comments.
4041         * ipa-inline.c (inline_small_functions): Compute summaries first,
4042         populate heap later.
4043
4044 2011-04-19  Jan Hubicka  <jh@suse.cz>
4045
4046         * cgraph.h (save_inline_function_body): Remove.
4047         * ipa-inline-transform.c: New file, broke out of...
4048         * ipa-inline.c: ... this one; Update toplevel comment.
4049         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
4050         make global.
4051         (update_noncloned_frequencies): Move to ipa-inline-transform.c
4052         (cgraph_mark_inline_edge): Rename to inline_call; move to
4053         ipa-inline-transform.c.
4054         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
4055         move to ipa-inline-transform.c
4056         (recursive_inlining, inline_small_functions, flatten_function,
4057         ipa_inline, inline_always_inline_functions,
4058         early_inline_small_functions): Update.
4059         (inline_transform): Move to ipa-inline-transform.c.
4060         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4061         Declare.
4062         * Makefile.in (ipa-inline-transform.o): New file.
4063         * cgraphunit.c (save_inline_function_body): Move to
4064         ipa-inline-transform.c
4065
4066 2011-04-19  DJ Delorie  <dj@redhat.com>
4067
4068         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4069         registers if we already know there aren't any.
4070         (m32c_emit_epilogue): Don't emit a barrier here.
4071         (m32c_emit_eh_epilogue): Likewise.
4072         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4073         operands at expand time.
4074         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4075         int" wchar type.
4076         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4077         duplicates.  Provide aliases instead.
4078         * config/m32c/prologue.md (eh_return): Emit a barrier here.
4079         (eh_epilogue): Add a "(return)" here as a hint to other parts of
4080         the compiler.
4081
4082 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
4083
4084         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4085         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4086         (general_or_i64_p, sparc_register_move_cost): New function.
4087
4088 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4089
4090         * doc/install.texi (Configuration, --enable-threads): Remove mach.
4091         Add lynx, mipssde.  Sort table.
4092
4093 2011-04-19  Xinliang David Li  <davidxl@google.com>
4094
4095         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4096         not negative.
4097
4098 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
4099
4100         PR target/48678
4101         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4102         is a SUBREG with non-MODE_INT mode inside of it.
4103
4104 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4105
4106         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4107         also according to actual contants.
4108         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4109         (gimple_fold_call): Use it.
4110         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4111
4112 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4113
4114         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4115         non-pointer assignments.
4116
4117 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4118
4119         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4120         account anc_offset and otr_type from the indirect edge info.
4121         * ipa-prop.c (get_ancestor_addr_info): New function.
4122         (compute_complex_ancestor_jump_func): Assignment analysis moved to
4123         get_ancestor_addr_info, call it.
4124         (ipa_note_param_call): Do not initialize information about polymorphic
4125         calls, return the indirect call graph edge.  Remove the last
4126         parameter, adjust all callers.
4127         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4128         parameters.  Initialize polymorphic information in the indirect edge.
4129
4130 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4131
4132         PR lto/48148
4133         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4134         the types if they have different enumeration identifiers.
4135
4136 2011-04-19  Jan Hubicka  <jh@suse.cz>
4137
4138         * cgraph.h (cgraph_optimize_for_size_p): Declare.
4139         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4140         * predict.c (cgraph_optimize_for_size_p): Break out from ...
4141         (optimize_function_for_size_p) ... here.
4142
4143 2011-04-19  Richard Guenther  <rguenther@suse.de>
4144
4145         PR lto/48207
4146         * tree.c (free_lang_data): Do not reset the decl-assembler-name
4147         langhook.
4148
4149 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4150
4151         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4152         if DECL_NO_INLINE_WARNING_P is set on the function.
4153
4154 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
4155
4156         PR fortran/47976
4157         * reload1.c (inc_for_reload): Return void. All callers changed.
4158         (emit_input_reload_insns): Don't try to delete previous output
4159         reloads to a register, or record spill_reg_store for autoincs.
4160
4161 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
4162
4163         * gengtype.h: Updated copyright year.
4164         (struct input_file_st): Add inpisplugin field.
4165         (type_fileloc): New function.
4166         * gengtype.c
4167         (write_typed_struct_alloc_def): Add gcc_assert.
4168         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4169         (write_typed_alloc_defns): Don't output for plugin files.
4170         (input_file_by_name): Clear inpisplugin field.
4171         (main): Set inpisplugin field for plugin files.
4172
4173 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
4174
4175         * gengtype-state.c (string_eq): New.
4176         (read_state): Use string_eq instead of strcmp when creating the
4177         state_ident_tab.
4178
4179 2011-04-19  Wei Guozhi  <carrot@google.com>
4180
4181         PR target/47855
4182         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4183         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4184         linkage.
4185         * config/arm/constraints.md (Uu): New constraint.
4186         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4187
4188 2011-04-19  Tristan Gingold  <gingold@adacore.com>
4189
4190         * config.gcc (-*-*-*vms): Added.
4191         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4192         definitions moved.
4193         * config/vms/vms-ld.c: New file.
4194         * config/vms/vms-ar.c: New file.
4195         * config/vms/t-vmsnative: New file.
4196
4197 2011-04-18  Xinliang David Li  <davidxl@google.com>
4198
4199         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4200
4201 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4202
4203         PR middle-end/48661
4204         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4205         if TREE_TYPE (v) is non-NULL.
4206
4207         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4208         gimple_get_virt_mehtod_for_binfo.
4209         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4210         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4211         callers.
4212         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4213
4214 2011-04-18  Michael Matz  <matz@suse.de>
4215             Steve Ellcey  <sje@cup.hp.com>
4216
4217         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4218         use its mode as source mode if it isn't VOIDmode.
4219
4220 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
4221
4222         * doc/passes.texi: Fill crossref nodes.
4223
4224 2011-04-18  Jim Meyering  <meyering@redhat.com>
4225
4226         Fix doubled-word typos in comments and strings
4227         * config/alpha/vms-unwind.h: s/for for/for/
4228         * config/arm/unwind-arm.h: Likewise.
4229         * config/microblaze/microblaze.c: Likewise.
4230         * config/sh/constraints.md: s/in in/in/
4231         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4232
4233 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
4234
4235         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4236         (AVX_FLOAT_MODE_P): Ditto.
4237         (AVX128_VEC_FLOAT_MODE_P): Ditto.
4238         (AVX256_VEC_FLOAT_MODE_P): Ditto.
4239         (AVX_VEC_FLOAT_MODE_P): Ditto.
4240         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4241         (UNSPEC_MASKSTORE): Ditto.
4242         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4243         Merge from <sse>_movmsk<ssemodesuffix> and
4244         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
4245         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
4246         iterator.
4247         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4248         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4249         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4250
4251 2011-04-18  Jan Hubicka  <jh@suse.cz>
4252
4253         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4254
4255         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4256         (want_inline_function_called_once_p): Break out the logic from
4257         ipa_inline.
4258         (edge_badness): Ensure that profile is not misupdated.
4259         (lookup_recursive_calls): Prioritize by call frequencies.
4260         (inline_small_functions): Move program size estimates here;
4261         actually process whole queue even when unit growth has been
4262         met. (to properly compute inline_failed reasons and for the
4263         case unit size decrease.) Revisit comments on recursive inlining.
4264         (ipa_inline): Remove unit summary code; first inline hot calls
4265         of functions called once, cold calls next.
4266         (order, nnodes): Remove unused variables.
4267         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4268         (GTFILES): Remove ipa-inline.c
4269         * sel-sched.c (fill_insns): Silence uninitialized var warning.
4270
4271 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4272
4273         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4274
4275 2011-04-18  Jie Zhang  <jie@codesourcery.com>
4276             Richard Earnshaw  <rearnsha@arm.com>
4277
4278         * arm.c (neon_builtin_type_bits): Remove.
4279         (typedef enum neon_builtin_mode): New.
4280         (T_MAX): Don't define.
4281         (typedef enum neon_builtin_datum): Remove bits, codes[],
4282         num_vars and base_fcode.  Add mode, code and fcode.
4283         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4284         VAR10): Change accordingly.
4285         (neon_builtin_data[]): Change accordingly
4286         (arm_init_neon_builtins): Change accordingly.
4287         (neon_builtin_compare): Remove.
4288         (locate_neon_builtin_icode): Remove.
4289         (arm_expand_neon_builtin): Change accordingly.
4290
4291         * arm.h (enum arm_builtins): Move to ...
4292         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4293
4294         * arm.c (arm_builtin_decl): Declare.
4295         (TARGET_BUILTIN_DECL): Define.
4296         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4297         (arm_builtin_decls[]): New.
4298         (arm_init_neon_builtins): Store builtin declarations in
4299         arm_builtin_decls[].
4300         (arm_init_tls_builtins): Likewise.
4301         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
4302         (arm_builtin_decl): New.
4303
4304 2011-04-18  Richard Guenther  <rguenther@suse.de>
4305
4306         * tree.c (upper_bound_in_type): Build properly canonicalized
4307         INTEGER_CSTs.
4308         (lower_bound_in_type): Likewise.
4309
4310 2011-04-18  Richard Guenther  <rguenther@suse.de>
4311
4312         * gimple.h (gimple_call_addr_fndecl): New function.
4313         (gimple_call_fndecl): Use it.
4314         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4315         for direct calls.
4316         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4317         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4318
4319 2011-04-18  Richard Guenther  <rguenther@suse.de>
4320
4321         PR middle-end/48650
4322         * tree.c (build_string): STRING_CST is now derived from tree_typed.
4323
4324 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4325
4326         PR lto/48492
4327         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4328         DECL_IN_CONSTANT_POOL without RTL.
4329
4330 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
4331             Ira Rosen  <ira.rosen@linaro.org>
4332
4333         PR target/48252
4334         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4335         to match neon_vzip/vuzp/vtrn_internal.
4336         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4337         outputs explicitly dependent on both inputs.
4338         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4339
4340 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4341
4342         PR tree-optimization/48616
4343         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4344         whether the shift is by scalar or vector based on whether all SLP
4345         scalar stmts have the same rhs.
4346
4347 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
4348
4349         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4350         memory operands.
4351
4352 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
4353
4354         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4355         registers.
4356
4357 2011-04-17  Jan Hubicka  <jh@suse.cz>
4358
4359         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
4360         * cgrpahunit.c (cgraph_finalize_function): Do not set
4361         finalized_by_frontend.
4362         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4363         finalized_by_frontend.
4364
4365 2011-04-17  Jan Hubicka  <jh@suse.cz>
4366
4367         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4368         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4369         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
4370         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4371         method.
4372         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4373         gimple-fold.c
4374         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4375
4376 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4377
4378         PR lto/48538
4379         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4380         is non-null before accessing it.
4381         (input_cgraph): Remove trailing spaces.
4382
4383 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4384
4385         * params.def (sms-min-sc): New param flag.
4386         * modulo-sched.c (sms_schedule): Use it.
4387         * doc/invoke.texi (sms-min-sc): Document it.
4388
4389 2011-04-17  Jan Hubicka  <jh@suse.cz>
4390
4391         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4392         present, also set gimple_call_set_cannot_inline.
4393         * ipa-inline.c: Update toplevel comment.
4394         (MAX_TIME): Remove.
4395         (cgraph_clone_inlined_nodes): Fix linebreaks.
4396         (cgraph_check_inline_limits): Restructure to ...
4397         (caller_growth_limits): ... this one; be more tolerant
4398         on growth in nested inline chains; add explanatory comment;
4399         fix stack accounting thinko introduced by previous patch.
4400         (cgraph_default_inline_p): Remove.
4401         (report_inline_failed_reason): New function.
4402         (can_inline_edge_p): New function.
4403         (can_early_inline_edge_p): New function.
4404         (leaf_node_p): Move upwards in file.
4405         (want_early_inline_function_p): New function.
4406         (want_inline_small_function_p): New function.
4407         (want_inline_self_recursive_call_p): New function.
4408         (cgraph_edge_badness): Rename to ...
4409         (edge_badness) ... this one; fix linebreaks.
4410         (update_edge_key): Update call of edge_baddness; add
4411         detailed dump about queue updates.
4412         (update_caller_keys): Use can_inline_edge_p and
4413         want_inline_small_function_p.
4414         (cgraph_decide_recursive_inlining): Rename to...
4415         (recursive_inlining): Use can_inline_edge_p and
4416         want_inline_self_recursive_call_p; simplify and remove no longer
4417         valid FIXME.
4418         (cgraph_set_inline_failed): Remove.
4419         (add_new_edges_to_heap): Use can_inline_edge_p and
4420         want_inline_small_function_p.
4421         (cgraph_decide_inlining_of_small_functions): Rename to ...
4422         (inline_small_functions): ... this one; cleanup; use
4423         can/want predicates; cleanup debug ouput; work edges till fibheap
4424         is exhausted and do not stop once unit growth is reached; remove
4425         later loop processing remaining edges.
4426         (cgraph_flatten): Rename to ...
4427         (flatten_function): ... this one; use can_inline_edge_p
4428         and can_early_inline_edge_p predicates.
4429         (cgraph_decide_inlining): Rename to ...
4430         (ipa_inline): ... this one; remove unreachable nodes before
4431         inlining functions called once; simplify the pass.
4432         (cgraph_perform_always_inlining): Rename to ...
4433         (inline_always_inline_functions): ... this one; use
4434         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4435         (cgraph_decide_inlining_incrementally): Rename to ...
4436         (early_inline_small_functions): ... this one; simplify
4437         using new predicates; cleanup; make dumps prettier.
4438         (cgraph_early_inlining): Rename to ...
4439         (early_inliner): newer inline regular functions into always-inlines;
4440         fix updating of call stmt summaries.
4441         (pass_early_inline): Update for new names.
4442         (inline_transform): Fix formating.
4443         (gate_cgraph_decide_inlining): Rename to ...
4444         (pass_ipa_inline): ... this one.
4445         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4446         * ipa-inline-analysis.c (dump_inline_summary): Update.
4447         (compute_inline_parameters): Do not compute disregard_inline_limits;
4448         look for mismatching arguments.
4449         (estimate_growth): Fix handlig of non-trivial self recursion.
4450         (inline_read_summary): Do not read info->disregard_inline_limits.
4451         (inline_write_summary): Do not write info->disregard_inline_limits.
4452         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4453         and move all checks into can_inline_edge_p predicate; re-enable code
4454         comparing optimization levels.
4455         (expand_call_inline): Do not test inline_forbidden_into_p.
4456         * Makefile.in (ipa-inline.o): Update arguments.
4457
4458 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4459
4460         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4461
4462 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4463
4464         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4465
4466 2011-04-17  Michael Matz  <matz@suse.de>
4467
4468         PR tree-optimization/48622
4469         PR lto/48645
4470         * ipa-inline-analysis.c (inline_read_summary): Read size/time
4471         in same order as they're written.
4472
4473 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4474
4475         * config/pa/predicates.md: Reorganize and simplify predicates.
4476         Eliminate duplicate code checks.
4477         (arith_operand): Rename to arith14_operand
4478         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4479         * config/pa/pa.md: Use renamed operands.
4480         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4481         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4482         arith11_operand, adddi3_operand, indexed_memory_operand,
4483         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4484         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4485         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4486         move_dest_operand, move_src_operand, prefetch_cc_operand,
4487         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4488         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4489         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4490         div_operand, int5_operand, movb_comparison_operator,
4491         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4492         arith_double_operand, ireg_operand, lhs_lshift_operand,
4493         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4494         integer_store_memory_operand): Likewise.
4495         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4496         (integer_store_memory_operand, read_only_operand,
4497         function_label_operand, borx_reg_operand,
4498         non_hard_reg_operand): Likewise.
4499         (eq_neq_comparison_operator): Delete unused operator.
4500         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4501         function_label_operand.
4502         (emit_move_sequence): Likewise.
4503
4504 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4505
4506         * config/i386/sse.md (sseunpackmode): New mode attribute.
4507         (ssepackmode): Ditto.
4508         (vec_pack_trunc_<mode>): Macroize expander from
4509         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4510         (vec_unpacks_lo_<mode>): Macroize expander from
4511         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4512         (vec_unpacks_hi_<mode>): Macroize expander from
4513         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4514         (vec_unpacku_lo_<mode>): Macroize expander from
4515         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4516         (vec_unpacku_hi_<mode>): Macroize expander from
4517         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4518         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4519         ix86_expand_sse4_unpack.
4520         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4521
4522 2011-04-16  Jan Hubicka  <jh@suse.cz>
4523
4524         * cgraphbuild.c: Include ipa-inline.h.
4525         (reset_inline_failed): Use initialize_inline_failed.
4526         * cgraph.c: Include ipa-inline.h.
4527         (cgraph_create_node_1): Do not initialize estimated_growth.
4528         (initialize_inline_failed): More to ipa-inline-analysis.c
4529         (dump_cgraph_node): Do not dump inline flags.
4530         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4531         and disregard_inline_limits flags.
4532         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4533         time, size, estimated_growth.
4534         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4535         Update.
4536         * cgraphunit.c (cgraph_decide_is_function_needed): Use
4537         DECL_DISREGARD_INLINE_LIMITS.
4538         (cgraph_analyze_function): Do not initialize
4539         node->local.disregard_inline_limits.
4540         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4541         inlinable, versionable and disregard_inline_limits.
4542         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4543         cgraph_check_inline_limits, cgraph_default_inline_p,
4544         cgraph_edge_badness, update_caller_keys, update_callee_keys,
4545         add_new_edges_to_heap): Update.
4546         (cgraph_decide_inlining_of_small_function): Update; set
4547         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
4548         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4549         cgraph_decide_inlining_incrementally): Update.
4550         * ipa-inline.h (inline_summary): Add inlinable, versionable,
4551         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4552         time, size and estimated_growth parameters.
4553         (estimate_edge_growth): Update.
4554         (initialize_inline_failed): Declare.
4555         * ipa-split.c: Include ipa-inline.h
4556         (execute_split_functions): Update.
4557         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4558         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4559         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4560         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4561         estimated_growth to INT_MIN.
4562         (inline_node_duplication_hook): Likewise.
4563         (dump_inline_summary): Dump new fields.
4564         (compute_inline_parameters): Update.
4565         (estimate_edge_time, estimate_time_after_inlining,
4566         estimate_size_after_inlining, estimate_growth, inline_read_summary,
4567         inline_write_summary):
4568         (initialize_inline_failed): Move here from cgraph.c.
4569         * tree-sra.c: Include ipa-inline.h.
4570         (ipa_sra_preliminary_function_checks): Update.
4571         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4572         ipa-inline.h.
4573
4574 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4575
4576         * config/i386/sse.md (V16): New mode iterator.
4577         (VI1, VI8): Ditto.
4578         (AVXMODEQI, AVXMODEDI): Remove.
4579         (sse2, sse3): New mode attribute.
4580         (mov<mode>): Use V16 mode iterator.
4581         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4582         (push<mode>1): Use V16 mode iterator.
4583         (movmisalign<mode>): Ditto.
4584         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4585         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4586         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4587         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4588         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4589         avx_movdqu<avxmodesuffix>.
4590         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4591         *avx_movdqu<avxmodesuffix>.
4592         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4593         avx_lddqu<avxmodesuffix>.
4594         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4595         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4596         avx_movnt<AVXMODEDI:mode>.
4597         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4598         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4599
4600 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4601
4602         PR target/48629
4603         * haifa-sched.c (prune_ready_list, schedule_block): Use
4604         sched_pressure_p rather than flag_sched_pressure.
4605
4606 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4607
4608         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4609         cgraph_get_node instead of cgraph_get_create_node.
4610
4611 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
4612
4613         * cfgexpand.c (expand_debug_expr): Use
4614         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4615
4616 2011-04-15  Michael Matz  <matz@suse.de>
4617
4618         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4619         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4620         * function.c (gimplify_parameters): Ditto.
4621         * gimplify.c (gimplify_vla_decl): Ditto.
4622
4623         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4624         (gimple_call_set_alloca_for_var): New inline function.
4625         (gimple_call_alloca_for_var_p): Ditto.
4626         * gimple.c (gimple_build_call_from_tree): Remember
4627         CALL_ALLOCA_FOR_VAR_P state.
4628         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4629
4630         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4631         calls if they were for VLA objects.
4632
4633 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4634
4635         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4636         of ADR_EXPRs.
4637
4638 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4639
4640         PR middle-end/48601
4641         * tree-emutls.c (lower_emutls_function_body): Call
4642         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
4643         result is non-NULL.
4644
4645 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4646
4647         * c-decl.c (detect_field_duplicates): Call
4648         objc_detect_field_duplicates instead of objc_get_interface_ivars.
4649
4650 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
4651
4652         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4653         * gimple.c (gimple_asm_clobbers_memory_p): Define.
4654         * ipa-pure-const.c (check_stmt): Call it.
4655         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4656
4657 2011-04-15  Richard Guenther  <rguenther@suse.de>
4658
4659         PR tree-optimization/48290
4660         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4661         Properly decide inhibiting propagation based on the valueized
4662         operand.  Do loop-closed SSA form preserving here ...
4663         (init_copy_prop): ... not here.
4664
4665 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4666
4667         PR target/48612
4668         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4669         (*ieee_smax<mode>3): Likewise.
4670
4671 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4672
4673         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4674         Replace match_operand with match_dup for the third operand in
4675         these expanders.
4676
4677 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4678
4679         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4680         to track processing of conditionals.  Update all callers.
4681         (try_combine, simplify_if_then_else): Update.
4682
4683 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4684
4685         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4686         -fsched-pressure.
4687
4688 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
4689
4690         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4691         instead of match_operand for operand 3.
4692
4693 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
4694
4695         * recog.h (insn_operand_data): Add an "allows_mem" field.
4696         * genoutput.c (output_operand_data): Initialize it.
4697         * optabs.c (maybe_legitimize_operand_same_code): New function.
4698         (maybe_legitimize_operand): Use it when matching the original
4699         op->value.
4700
4701 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4702
4703         * gimplify.c: Fix issues in comments throughout.
4704         (voidify_wrapper_expr): Fix long line.
4705         (build_stack_save_restore): Likewise.
4706         (gimplify_loop_expr): Likewise.
4707         (gimplify_compound_lval): Likewise.
4708         (gimplify_init_ctor_eval): Likewise.
4709         (gimplify_modify_expr_rhs): Likewise.
4710         (omp_notice_threadprivate_variable): Likewise.
4711
4712 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4713
4714         * cfgexpand.c (expand_call_stmt): Convert the function type to the
4715         original one if this is not a builtin function.
4716
4717 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
4718
4719         PR target/48605
4720         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4721         offset it as needed based on top 2 bits in operands[3], change
4722         MEM mode to SFmode and mask those 2 bits away from operands[3].
4723
4724 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4725
4726         * c-parser.c (c_parser_objc_protocol_definition): Updated for
4727         change from objc_declare_protocols() to objc_declare_protocol().
4728
4729 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
4730
4731         * config/i386/sse.md (sse4_1): New mode attribute.
4732         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4733         avx_blend<ssemodesuffix><avxmodesuffix> and
4734         sse4_1_blend<ssemodesuffix> using VF mode iterator.
4735         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4736         avx_blendv<ssemodesuffix><avxmodesuffix> and
4737         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4738         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4739         avx_dp<ssemodesuffix><avxmodesuffix> and
4740         sse4_1_dp<ssemodesuffix> using VF mode iterator.
4741         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4742         (sse4_1_packusdw): Merge with *avx_packusdw.
4743         (sse4_1_pblendvb): Merge with *avx_pblendvb.
4744         (sse4_1_pblendw): Merge with *avx_pblendw.
4745         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4746         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4747         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4748         VF mode iterator.
4749         (sse4_1_round<ssescalarmodesuffix>): Merge with
4750         *avx_round<ssescalarmodesuffix>.
4751         (aesenc): Merge with *avx_aesenc.
4752         (aesenclast): Merge with *avx_aesenclast.
4753         (aesdec): Merge with *avx_aesdec.
4754         (aesdeclast): Merge with *avx_aesdeclast.
4755         (pclmulqdq): Merge with *pclmulqdq.
4756         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4757         New predicate.
4758         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4759
4760 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4761
4762         PR middle-end/48608
4763         * cfgexpand.c (get_decl_align_unit): Renamed to ...
4764         (align_local_variable): This.  Update DECL_ALIGN.
4765         (add_stack_var): Updated.
4766         (expand_one_stack_var): Likewise.
4767
4768 2011-04-14  Richard Guenther  <rguenther@suse.de>
4769
4770         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4771         Remove.
4772         (dse_initialize_block_local_data, dse_leave_block,
4773         record_voperand_set, get_stmt_uid): Likewise.
4774         (dse_possible_dead_store_p): Allow any kind of killing stmt.
4775         (dse_optimize_stmt): Remove voperand set handling code.
4776         Simplify and improve to handle any kind of killing stmt.
4777         (dse_record_phi): Remove.
4778         (dse_enter_block): Simplify.
4779         (tree_ssa_dse): Likewise.
4780         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4781
4782 2011-04-14  Jan Hubicka  <jh@suse.cz>
4783
4784         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4785         * cgraph.h (struct inline_summary): Move to ipa-inline.h
4786         (cgraph_local_info): Remove inline_summary.
4787         * ipa-cp.c: Include ipa-inline.h.
4788         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4789         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4790         accesor.
4791         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4792         (input_overwrite_node): Do not set inline summary.
4793         (input_node): Do not stream inline summary.
4794         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
4795         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
4796         growth; we do not have inline parameters computed for that anyway.
4797         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
4798         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
4799         (inline_summary_t): New type and VECtor.
4800         (debug_inline_summary, dump_inline_summaries): Declare.
4801         (inline_summary): Use VOCtor.
4802         (estimate_edge_growth): Kill hack computing call stmt size directly.
4803         * lto-section-in.c (lto_section_name): Add inline section.
4804         * ipa-inline-analysis.c: Include lto-streamer.h
4805         (node_removal_hook_holder, node_duplication_hook_holder): New holders
4806         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
4807         (inline_summary_vec): Define.
4808         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
4809         dump_inline_summaries): New functions.
4810         (estimate_function_body_sizes): Properly compute size/time of outgoing
4811         calls.
4812         (compute_inline_parameters): Alloc inline_summary; do not compute
4813         size/time of incomming calls.
4814         (estimate_edge_time): Avoid missing time summary hack.
4815         (inline_read_summary): Read inline summary info.
4816         (inline_write_summary): Write inline summary info.
4817         (inline_free_summary): Free all hooks and inline summary vector.
4818         * lto-streamer.h: Add LTO_section_inline_summary section.
4819         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4820         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4821
4822 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4823
4824         * tree-vectorizer.h (vect_strided_store_supported): Add a
4825         HOST_WIDE_INT argument.
4826         (vect_strided_load_supported): Likewise.
4827         (vect_permute_store_chain): Return void.
4828         (vect_transform_strided_load): Likewise.
4829         (vect_permute_load_chain): Delete.
4830         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4831         count argument.  Check that the count is a power of two.
4832         (vect_strided_load_supported): Likewise.
4833         (vect_permute_store_chain): Return void.  Update after above changes.
4834         Assert that the access is supported.
4835         (vect_permute_load_chain): Likewise.
4836         (vect_transform_strided_load): Return void.
4837         * tree-vect-stmts.c (vectorizable_store): Update calls after
4838         above interface changes.
4839         (vectorizable_load): Likewise.
4840         (vect_analyze_stmt): Don't check for strided powers of two here.
4841
4842 2011-04-14  Richard Guenther  <rguenther@suse.de>
4843
4844         PR tree-optimization/48590
4845         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4846         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4847         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4848         BUILT_IN_STACK_SAVE.
4849         * tree-ssa-dce.c (propagate_necessity): Handle
4850         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4851
4852 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4853
4854         * c-parser.c (c_parser_objc_class_declaration): Updated call to
4855         objc_declare_class.
4856
4857 2011-04-14  Richard Guenther  <rguenther@suse.de>
4858
4859         * tree.h (get_object_alignment_1): Declare.
4860         * builtins.c (get_object_alignment_1): Split out worker from ...
4861         (get_object_alignment): ... here.
4862         * fold-const.c (get_pointer_modulus_and_residue): Use
4863         get_object_alignment_1.
4864
4865 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4866
4867         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4868         type parameter.
4869         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4870         parameter.  Generalise code to handle arrays as well as vectors.
4871         (vect_setup_realignment): Update accordingly.
4872         * tree-vect-stmts.c (vectorizable_store): Likewise.
4873         (vectorizable_load): Likewise.
4874
4875 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4876
4877         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4878         within the per-copy loop.
4879
4880 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4881
4882         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4883         in the dump file.
4884
4885 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4886
4887         * doc/options.texi (Negative): Explicitly mention that the
4888         Negative chain must be circular.
4889
4890 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
4891
4892         * function.h (block_chainon): Declare.
4893         * function.c (block_chainon): Define.
4894
4895 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
4896             Eric Weddington  <eric.weddington@atmel.com>
4897             Georg-Johann Lay  <avr@gjlay.de>
4898
4899         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
4900         New Includes
4901         (avr_init_builtins, avr_expand_builtin,
4902         avr_expand_delay_cycles, avr_expand_unop_builtin,
4903         avr_expand_binop_builtin ): New functions.
4904         (avr_builtin_id): New enum
4905         (struct avr_builtin_description): New struct
4906         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4907         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
4908
4909         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
4910         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
4911         UNSPECV_DELAY_CYCLES): new enumeration values
4912         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4913         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4914         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4915         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4916         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4917         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4918         "fmulsu"): New insns
4919
4920         * config/avr/avr-c.c: fix line endings
4921         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4922         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4923         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4924         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4925         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
4926
4927         * doc/extend.texi (AVR Built-in Functions): New node
4928         (Target Builtins): Add documentation of AVR
4929         built-in functions.
4930
4931 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
4932
4933         PR target/44643
4934         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4935         alone. Error if non-const data has attribute progmem.
4936
4937 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4938
4939         * tree.h (struct tree_constructor): Include tree_typed instead of
4940         tree_common.
4941         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4942         TS_TYPED instead of TS_COMMON.
4943
4944 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4945
4946         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4947         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4948         (sse2_psadbw): Merge with *avx_psadbw.
4949         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4950         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4951         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4952         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4953         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4954         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4955         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4956         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4957         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4958         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4959         (ssse3_palignrti): Merge with *avx_palignrti.
4960
4961 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4962
4963         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4964         * tree-ssanames.c (fini_ssanames): VEC_free it.
4965         (make_ssa_name_fn): Update for VECness of free_ssanames.
4966         (release_ssa_name, release_dead_ssa_names): Likewise.
4967         * tree.h (struct tree_ssa_name): Include tree_typed instead of
4968         tree_common.
4969         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4970         TS_TYPED instead of TS_COMMON.
4971
4972 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4973
4974         * postreload-gcse.c (gcse_after_reload_main): Add calls to
4975         statistics_counter_event.
4976         * tree-ssa-copyrename.c (stats): Define.
4977         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
4978         statistics_counter_event.
4979         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4980         (bswap_stats, widen_mul_stats): Define.
4981         (insert_reciprocals): Increment rdivs_inserted.
4982         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
4983         rfuncs_inserted.  Add calls to statistics_counter_event.
4984         (execute_cse_sincos_1): Increment inserted.
4985         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
4986         statistics_counter_event.
4987         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
4988         of bswap_stats.  Add calls to statistics_counter_event.
4989         (convert_mult_to_widen): Increment widen_mults_inserted.
4990         (convert_plusminus_to_widen): Increment maccs_inserted.
4991         (convert_mult_to_fma): Increment fmas_inserted.
4992         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
4993         calls to statistics_counter_event.
4994
4995 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4996
4997         PR rtl-optimization/48455
4998         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
4999         `temp_costs->mem_cost'.
5000
5001 2011-04-13  Jan Hubicka  <jh@suse.cz>
5002
5003         * ipa-inline.h: New file.
5004         * ipa-inline-analysis.c: New file. Broken out of ...
5005         * ipa-inline.c: ... this file; update toplevel comment;
5006         include ipa-inline.h
5007         (inline_summary): Move to ipa-inline.h
5008         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
5009         ipa-inline-analysis.c.
5010         (cgraph_estimate_time_after_inlining): Rename to
5011         estiamte_time_after_inlining; move to ipa-inline-analysis.c
5012         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
5013         to estimate_edge_growth.
5014         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
5015         rename to estimate_size_after_inlining.
5016         (cgraph_mark_inline_edge): Update for new naming convention.
5017         (cgraph_check_inline_limits): Likewise.
5018         (cgraph_edge_badness): Likewise.
5019         (cgraph_decide_recursive_inlining): Likewise.
5020         (cgraph_decide_inlining_of_small_functions): Likewise.
5021         (cgraph_decide_inlining_incrementally): Likewise.
5022         (cgraph_estimate_growth): Rename to estimate_growth; move to
5023         ipa-inline-analysis.c.
5024         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
5025         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
5026         (compute_inline_parameters): Likewise.
5027         (compute_inline_parameters_for_current): Likewise.
5028         (pass_inline_parameters): Likewise.
5029         (inline_indirect_intraprocedural_analysis): Likewise.
5030         (analyze_function): Rename to inline_analyze_function; likewise.
5031         (add_new_function): Move to ipa-inline-analysis.c.
5032         (inline_generate_summary): Likewise.
5033         (inline_read_summary): Likewise.
5034         (inline_write_summary): Likewise.
5035         * Makefile.in (ipa-inline-analysis.c): New file.
5036
5037 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5038
5039         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
5040         * configure: Regenerate.
5041
5042 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5043
5044         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
5045         instead of tree_common.
5046         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
5047         Likewise.
5048         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
5049         TS_TYPED rather than TS_COMMON.
5050         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
5051
5052 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
5053
5054         PR target/45263
5055         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
5056         r20 around calls of __tablejump_elpm__
5057
5058 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
5059
5060         PR middle-end/48591
5061         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5062         NULL.
5063         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5064
5065 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
5066
5067         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5068         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5069         (cfi_vec): New typedef.
5070         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5071         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5072         (cie_cfi_vec): New static variable.
5073         (cie_cfi_head): Delete.
5074         (add_cfi): Accept a cfi_vec * as first argument. All callers and
5075         declaration changed. Use vector rather than list operations.
5076         (new_cfi): Don't initialize the dw_cfi_next field.
5077         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5078         rather than list operations.
5079         (lookup_cfa): Use vector rather than list operations.
5080         (output_cfis): New argument upto. Accept a cfi_vec rather than
5081         a dw_cfi_ref list head as argument. All callers changed.
5082         Iterate over the vector using upto as a maximum index.
5083         (output_all_cfis): New static function.
5084         (output_fde): Use vector rather than list operations. Use the
5085         new upto argument for output_cfis rather than manipulating a
5086         list.
5087         (dwarf2out_begin_prologue): Change initializations to match
5088         new struct members.
5089         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5090         from the vector length rather than searching for the end of a list.
5091         Use output_all_cfis.
5092         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5093
5094 2011-04-13  Nick Clifton  <nickc@redhat.com>
5095
5096         * config/rx/rx.md (movmemsi): Do not use this pattern when
5097         volatile pointers are involved.
5098
5099 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
5100
5101         * config/i386/sse.md (pinsrbits): Remove.
5102         (sse2_packsswb): Merge with *avx_packsswb.
5103         (sse2_packssdw): Merge with *avx_packssdw.
5104         (sse2_packuswb): Merge with *avx_packuswb.
5105         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5106         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5107         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5108         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5109         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5110         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5111         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5112         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5113         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5114         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5115         (sse2_loadld): Merge with *avx_loadld.
5116         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5117         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5118         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5119         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5120         (vec_concatv2di): Merge with *vec_concatv2di_avx.
5121
5122 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
5123
5124         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5125         calling TREE_CHAIN.
5126         * print-tree.c (print_node): Likewise.
5127         * tree-inline.c (copy_tree_r): Likewise.
5128         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5129         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5130         instead of TS_COMMON.
5131         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5132         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5133         (copy_node_stat): Zero TREE_CHAIN only if necessary.
5134         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5135         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5136         ...and these...
5137         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5138         * tree.h: ...here.
5139         (TREE_CHAIN): Check for a TS_COMMON structure.
5140         (TREE_TYPE): Check for a TS_TYPED structure.
5141
5142 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
5143
5144         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5145         cgraph_get_create_node instead of cgraph_node.
5146
5147 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5148
5149         * c-parser.c (c_parser_initelt): Updated call to
5150         objc_build_message_expr.
5151         (c_parser_postfix_expression): Likewise.
5152
5153 2011-04-12  Kai Tietz  <ktietz@redhat.com>
5154
5155         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5156         MASK_MS_BITFIELD_LAYOUT bit.
5157
5158 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5159
5160         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5161         assert it is always true.
5162         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5163         moves.
5164
5165 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5166
5167         * c-parser.c (c_lex_one_token): Rewritten conditional used when
5168         compiling Objective-C to be more efficient.
5169
5170 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
5171
5172         * opts-common.c (decode_cmdline_options_to_array): Remove variable
5173         argv_copied.
5174
5175 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5176
5177         * recog.h, genoutput.c, optabs.c: Revert last patch.
5178
5179 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5180
5181         PR target/48090
5182         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
5183
5184 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5185
5186         * recog.h (insn_operand_data): Add an "allows_mem" field.
5187         * genoutput.c (output_operand_data): Initialize it.
5188         * optabs.c (maybe_legitimize_operand_same_code): New function.
5189         (maybe_legitimize_operand): Use it when matching the original
5190         op->value.
5191
5192 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5193
5194         * genpreds.c (process_define_predicate): Move most processing
5195         to gensupport.c.  Continue to validate the expression.
5196         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5197         (process_define_predicate): Move processing to gensupport.c.
5198         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5199         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5200         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
5201         argument.
5202         (valid_predicate_name_p): New function, split out from old
5203         genpreds.c:process_define_predicate.
5204         (process_define_predicate): New function, combining code from
5205         old genpreds.c and genrecog.c functions.
5206         (process_rtx): Call it for DEFINE_PREDICATE and
5207         DEFINE_SPECIAL_PREDICATE.
5208
5209 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5210
5211         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5212         size of a '%A' memory reference.
5213         (T_DREG, T_QREG): New neon_builtin_type_bits.
5214         (arm_init_neon_builtins): Assert that the load and store operands
5215         are neon_struct_operands.
5216         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5217         (NEON_ARG_MEMORY): New builtin_arg.
5218         (neon_dereference_pointer): New function.
5219         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5220         Handle NEON_ARG_MEMORY.
5221         (arm_expand_neon_builtin): Update after above interface changes.
5222         Use NEON_ARG_MEMORY for loads and stores.
5223         * config/arm/predicates.md (neon_struct_operand): New predicate.
5224         * config/arm/iterators.md (V_two_elem): Tweak formatting.
5225         (V_three_elem): Use BLKmode for accesses that have no associated mode.
5226         (V_four_elem): Tweak formatting.
5227         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5228         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5229         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5230         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5231         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5232         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5233         (neon_vst4<mode>): Replace pointer operand with a memory operand.
5234         Use %A in the output template.
5235         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5236         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5237         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5238         the width of the memory access.  Remove post-increment.
5239         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5240
5241 2011-04-12  Nick Clifton  <nickc@redhat.com>
5242
5243         * config/v850/v850.c (expand_prologue): Do not use the CALLT
5244         instruction for interrupt handlers if the target is the basic V850
5245         architecture.
5246         (expand_epilogue): Likewise.
5247
5248 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5249
5250         PR rtl-optimization/48549
5251         * combine.c (propagate_for_debug): Also stop after BB_END of
5252         this_basic_block.  Process LAST and just stop processing after it.
5253         (combine_instructions): If last_combined_insn has been deleted,
5254         set last_combined_insn to its PREV_INSN.
5255
5256 2011-04-12  Richard Guenther  <rguenther@suse.de>
5257
5258         PR tree-optimization/46076
5259         * gimple.h (struct gimple_statement_call): Add fntype field.
5260         (gimple_call_fntype): Adjust.
5261         (gimple_call_set_fntype): New function.
5262         * gimple.c (gimple_build_call_1): Set the call function type.
5263         * gimplify.c (gimplify_call_expr): Preserve the function
5264         type the frontend used for the call.
5265         (gimplify_modify_expr): Likewise.
5266         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5267         function type.
5268         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5269         function type.
5270         * tree-ssa.c (useless_type_conversion_p): Function pointer
5271         conversions are useless.
5272
5273 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5274
5275         * cgraph.h (cgraph_node): Remove function declaration.
5276         (cgraph_create_node): Declare.
5277         (cgraph_get_create_node): Likewise.
5278         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5279         Updated all callers.
5280         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5281         the decl does not already exist.  Call cgraph_get_create_node instead
5282         of cgraph_node.
5283         (cgraph_get_create_node): New function.
5284         (cgraph_same_body_alias): Update comment.
5285         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5286         assert it does not return NULL.
5287         (cgraph_update_edges_for_call_stmt): Likewise.
5288         (cgraph_clone_edge): Likewise.
5289         (cgraph_create_virtual_clone): Likewise.
5290         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5291         instead of cgraph_node.
5292         (cgraph_add_new_function): Call cgraph_create_node or
5293         cgraph_get_create_node instead of cgraph_node.
5294         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5295         instead of cgraph_node.
5296         (record_eh_tables): Likewise.
5297         (mark_address): Likewise.
5298         (mark_load): Likewise.
5299         (build_cgraph_edges): Call cgraph_get_create_node instead
5300         of cgraph_node.
5301         (rebuild_cgraph_edges): Likewise.
5302         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5303         instead of cgraph_node.
5304         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5305         cgraph_node.
5306         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5307         cgraph_create_node instead of cgraph_node.
5308         * c-decl.c (finish_function): Call cgraph_get_create_node instead
5309         of cgraph_node.
5310         * lto-cgraph.c (input_node): Likewise.
5311         * lto-streamer-in.c (input_function): Likewise.
5312         * varasm.c (mark_decl_referenced): Likewise.
5313         (assemble_alias): Likewise.
5314
5315 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5316
5317         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5318         instead of cgraph_node and assert it does not return NULL.
5319         * lto-streamer-in.c (lto_read_body): Likewise.
5320         * omp-low.c (new_omp_context): Likewise.
5321         (create_task_copyfn): Likewise.
5322         * tree-emutls.c (lower_emutls_function_body): Likewise.
5323         * matrix-reorg.c (transform_allocation_sites): Likewise.
5324
5325 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5326
5327         PR c/48552
5328         * c-typeck.c (build_asm_expr): Error out on attempts to use
5329         void type outputs or inputs for constraints that allow reg or
5330         don't allow memory.
5331
5332 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
5333             Richard Earnshaw  <rearnsha@arm.com>
5334
5335         PR target/48250
5336         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5337         to use sign-magnitude offsets. Reject unsupported unaligned
5338         cases. Add detailed description in comments.
5339         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5340         condition from TARGET_32BIT to TARGET_ARM.
5341
5342 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
5343
5344         * tree.h (struct typed_tree): New.
5345         (struct tree_common): Include it instead of tree_base.
5346         (TREE_TYPE): Update for new location of type field.
5347         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5348         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5349         (union tree_node): Add typed field.
5350         * treestruct.def (TS_TYPED): New.
5351         * lto-streamer.c (check_handled_ts_structures): Handle it.
5352         * tree.c (MARK_TS_TYPED): New macro.
5353         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5354
5355 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
5356
5357         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5358         (force_nonfallthru): Do not alter the loop nest if no basic block
5359         was created.
5360
5361 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5362
5363         * config/i386/sse.md (VI): New mode iterator.
5364         (SSEMODEI): Remove.
5365         (AVX256MODEI): Ditto.
5366         (AVXMODEF4P): Ditto.
5367         (avxvecpsmode): Ditto.
5368         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
5369         (sse2_andnot<mode>3): New expander.
5370         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5371         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
5372         (<any_logic:code><mode>3): Use VI mode iterator.
5373         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5374         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
5375         (*andnottf3): Handle AVX three-operand constraints.
5376         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5377
5378 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5379             Robert Millan  <rmh@gnu.org>
5380
5381         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5382         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5383         GNU_USER_DYNAMIC_LINKER64): Define.
5384         (REG_NAME): Don't undefine.
5385         (MD_UNWIND_SUPPORT): Undefine.
5386         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5387         (REG_NAME): Don't undefine.
5388         (MD_UNWIND_SUPPORT): Undefine.
5389         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
5390
5391 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5392
5393         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5394         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5395
5396 2011-04-11  Xinliang David Li  <davidxl@google.com>
5397
5398         * value-profile.c (check_ic_target): New function.
5399         (gimple_ic_transform): Sanity check indirect call target.
5400         * gimple-low.c (gimple_check_call_args): Interface change.
5401         (gimple_check_call_matching_types): New function.
5402         * tree-inline.c (tree_can_inline_p): Call new function.
5403
5404 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
5405
5406         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5407         tree-pretty-print.h & realmpfr.h.
5408
5409 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
5410
5411         PR middle-end/48464
5412         * ira.c (setup_pressure_classes): Fix typo in loop condition.
5413         (setup_allocno_and_important_classes): Ditto.
5414
5415 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5416
5417         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5418         GNU_USER_DYNAMIC_LINKER.
5419         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5420         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5421         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5422         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5423         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5424         GNU_USER_TARGET_OS_CPP_BUILTINS.
5425         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5426         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5427         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5428         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5429         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5430         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5431         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5432         GNU_USER_TARGET_OS_CPP_BUILTINS.
5433         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5434         GNU_USER_DYNAMIC_LINKER.
5435         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5436         GNU_USER_TARGET_OS_CPP_BUILTINS.
5437         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5438         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5439         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5440         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5441         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5442         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5443         GNU_USER_DYNAMIC_LINKER64): Remove.
5444         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5445         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5446         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5447         GNU_USER_DYNAMIC_LINKER.
5448         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5449         GNU_USER_TARGET_OS_CPP_BUILTINS.
5450         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5451         GNU_USER_TARGET_OS_CPP_BUILTINS.
5452         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5453         to GNU_USER_TARGET_OS_CPP_BUILTINS.
5454         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5455         GNU_USER_TARGET_OS_CPP_BUILTINS.
5456         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5457         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5458         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5459         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5460         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5461         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5462         GNU_USER_DYNAMIC_LINKER.
5463         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5464         GNU_USER_TARGET_OS_CPP_BUILTINS.
5465         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5466         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5467         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5468         GNU_USER_DYNAMIC_LINKER.
5469         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5470         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5471         * config/mips/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/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5476         GNU_USER_DYNAMIC_LINKERN32.
5477         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5478         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
5479         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
5480         GNU_USER_DYNAMIC_LINKER32.
5481         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5482         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5483         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5484         GNU_USER_DYNAMIC_LINKER.
5485         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5486         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5487         * config/pa/pa-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 GNU_USER_DYNAMIC_LINKER.
5490         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5491         GNU_USER_DYNAMIC_LINKER32.
5492         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5493         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5494         GNU_USER_DYNAMIC_LINKER.
5495         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5496         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5497         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5498         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
5499         GNU_USER_DYNAMIC_LINKER64.
5500         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5501         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5502         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5503         GNU_USER_DYNAMIC_LINKER.
5504         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5505         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5506         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5507         GNU_USER_DYNAMIC_LINKER.
5508         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5509         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5510         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5511         GNU_USER_DYNAMIC_LINKER32.
5512         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5513         GNU_USER_DYNAMIC_LINKER64.
5514         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5515         GNU_USER_DYNAMIC_LINKER64.
5516         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5517         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5518         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5519         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5520         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5521
5522 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5523
5524         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
5525         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5526         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5527         GNU_USER_DYNAMIC_LINKER.
5528         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5529         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
5530         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5531         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5532         GNU_USER_DYNAMIC_LINKER64.
5533         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5534         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5535         GNU_USER_LINK_EMULATION.
5536         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5537         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5538         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5539         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5540         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5541         CPP_SPEC, CC1_SPEC): Remove.
5542         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5543         (GNU_USER_DYNAMIC_LINKER): Define.
5544         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5545         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5546         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5547         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5548         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5549         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5550         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5551         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5552         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5553         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5554         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5555         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5556         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5557         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5558         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5559         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5560         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5561         GNU_USER_DYNAMIC_LINKER.
5562         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5563         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5564         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5565         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5566         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5567         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5568         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5569         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5570         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
5571         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
5572
5573 2011-04-11  Kai Tietz  <ktietz@redhat.com>
5574
5575         PR target/9601
5576         PR target/11772
5577         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5578         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5579         comment.
5580         (ix86_is_msabi_thiscall): Removed.
5581         (ix86_is_type_thiscall): Likewise.
5582         (ix86_get_callcvt): New function.
5583         (ix86_comp_type_attributes): Simplify check.
5584         (ix86_function_regparm): Use ix86_get_callcvt for calling
5585         convention attribute checks.
5586         (ix86_return_pops_args): Likewise.
5587         (ix86_static_chain): Likewise.
5588         (x86_this_parameter): Likewise.
5589         (x86_output_mi_thunk): Likewise.
5590         (ix86_function_type_abi): Optimize check for types without attributes.
5591         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5592         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5593         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5594         by flag-values.
5595         (IX86_BASE_CALLCVT): Helper macro.
5596         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5597         Use ix86_get_callcvt for calling convention attribute checks and avoid
5598         symbol-decoration for stdcall in TARGET_RTD case.
5599         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5600         Likewise.
5601         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5602         for declaration.
5603
5604 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5605
5606         * config/i386/sse.md (VI_128): New mode iterator.
5607         (VI12_128): Rename from SSEMODE12.
5608         (VI14_128): Rename from SSEMODE14.
5609         (VI124_128): New mode iterator.
5610         (VI24_128): Rename from SSEMODE248.
5611         (VI248_128): Rename from SSEMODE248.
5612         (SSEMODE124C8): Remove.
5613         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5614         (*sse2_<plusminus_insn><mode>3): Merge with
5615         *avx_<plusminus_insn><mode>3.
5616         (*mulv8hi3): Merge with *avx_mulv8hi3.
5617         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5618         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5619         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5620         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5621         (ashr<mode>3): Merge with *avx_ashr<mode>3.
5622         (lshr<mode>3): Merge with *avx_lshr<mode>3.
5623         (ashl<mode>3): Merge with *avx_ashl<mode>3.
5624         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5625         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5626         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5627         (*<smaxmin:code>v8hi3): Ditto.
5628         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5629         (*<smaxmin:code>v16qi3): Ditto.
5630         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5631         (*sse2_eq<mode>3): Ditto.
5632         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5633         (*sse2_gt<mode>3): Ditto.
5634         (vcondv2di): Split out of vcond<mode>.
5635         (vconduv2di): Split out of vcondu<mode>.
5636
5637 2011-04-11  Richard Guenther  <rguenther@suse.de>
5638
5639         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5640         before calling tree_low_cst.
5641
5642 2011-04-11  Richard Guenther  <rguenther@suse.de>
5643
5644         * stor-layout.c (layout_type): Compute all array index size operations
5645         in the original type.
5646         (initialize_sizetypes): Add comment.
5647         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5648
5649 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5650
5651         * common.opt (Tbss=, Tdata=, Ttext=): New options.
5652
5653 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5654
5655         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5656         of cgraph_node, handle NULL return value.
5657         (cgraph_global_info): Likewise.
5658         (cgraph_rtl_info): Likewise.
5659         * tree-inline.c (estimate_num_insns): Likewise.
5660         * gimplify.c (unshare_body): Likewise.
5661         (unvisit_body): Likewise.
5662         (gimplify_body): Likewise.
5663         * predict.c (optimize_function_for_size_p): Likewise.
5664         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5665         (call_may_clobber_ref_p_1): Likewise.
5666         * varasm.c (function_section_1): Likewise.
5667         (assemble_start_function): Likewise.
5668
5669 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5670
5671         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5672         of cgraph_node.
5673         * final.c (rest_of_clean_state): Likewise.
5674         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5675         * passes.c (pass_init_dump_file): Likewise.
5676         (execute_all_ipa_transforms): Likewise.
5677         (function_called_by_processed_nodes_p): Likewise.
5678         * predict.c (maybe_hot_frequency_p): Likewise.
5679         (probably_never_executed_bb_p): Likewise.
5680         (compute_function_frequency): Likewise.
5681         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5682         (unnest_nesting_tree_1): Likewise.
5683         (lower_nested_functions): Likewise.
5684         * tree-optimize.c (execute_fixup_cfg): Likewise.
5685         (tree_rest_of_compilation): Likewise.
5686         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5687         * tree-sra.c (ipa_early_sra): Likewise.
5688         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5689         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5690         * ipa.c (record_cdtor_fn): Likewise.
5691         * ipa-inline.c (cgraph_early_inlining): Likewise.
5692         (compute_inline_parameters_for_current): Likewise.
5693         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5694         * ipa-pure-const.c (local_pure_const): Likewise.
5695         * ipa-split.c (split_function): Likewise.
5696         (execute_split_functions): Likewise.
5697         * cgraphbuild.c (build_cgraph_edges): Likewise.
5698         (rebuild_cgraph_edges): Likewise.
5699         (cgraph_rebuild_references): Likewise.
5700         (remove_cgraph_callee_edges): Likewise.
5701         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5702         (verify_cgraph_node): Likewise.
5703         (cgraph_analyze_functions): Likewise.
5704         (cgraph_preserve_function_body_p): Likewise.
5705         (save_inline_function_body): Likewise.
5706         (save_inline_function_body): Likewise.
5707         * tree-inline.c (copy_bb): Likewise.
5708         (optimize_inline_calls): Likewise.
5709
5710 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5711
5712         PR tree-optimization/48195
5713         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5714         ipa_check_create_edge_args.
5715         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5716         ipa_check_create_edge_args.
5717         * ipa-inline.c (inline_generate_summary): Do not call
5718         ipa_check_create_node_params and ipa_check_create_edge_args.
5719         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5720         ipa_check_create_edge_args.
5721
5722 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
5723
5724         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5725         instead of loop.
5726         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5727         * function.c (record_hard_reg_sets): Likewise.
5728         * ira.c (compute_regs_asm_clobbered): Likewise.
5729         * sched-deps.c (sched_analyze_1): Likewise.
5730         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5731
5732 2011-04-09  Xinliang David Li  <davidxl@google.com>
5733
5734         PR tree-optimization/PR48484
5735         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5736         has_valid_pred lazily
5737
5738 2011-04-09  Duncan Sands  <baldrick@free.fr>
5739
5740         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5741
5742 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5743
5744         * combine.c (combine_validate_cost): Adjust comments.  Set registered
5745         cost of I0 to zero at the end, if any.
5746
5747 2011-04-08  Xinliang David Li  <davidxl@google.com>
5748
5749         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5750         to insane profile data.
5751
5752 2011-04-08  Xinliang David Li  <davidxl@google.com>
5753
5754         * ipa-cp.c (ipcp_update_profiling): Correct
5755          negative scale factor due to insane profile data.
5756
5757 2011-04-08  Xinliang David Li  <davidxl@google.com>
5758
5759         * final.c (dump_basic_block_info): New function.
5760         (final): Dump basic block.
5761         (final_scan_insn): Remove old dump.
5762
5763 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
5764
5765         PR target/47829
5766         * config.gcc (i386-*-freebsd): Disable unwind table generation for
5767         crtbegin/crtend.
5768
5769 2011-04-08  Michael Matz  <matz@suse.de>
5770
5771         PR middle-end/48389
5772         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5773         functions.
5774         (rebuild_jump_labels): Call rebuild_jump_labels_1.
5775         * rtl.h (rebuild_jump_labels_chain): Declare.
5776         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5777         insns inserted on edges.
5778
5779 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
5780
5781         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5782         * config/arm/arm-arches.def: New.
5783         * config/arm/arm-opts.h: New.
5784         * config/arm/genopt.sh: New.
5785         * config/arm/arm-tables.opt: New (generated).
5786         * config/arm/arm.c (arm_handle_option, arm_target_help,
5787         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5788         (all_architectures): Get most table contents from arm-arches.def.
5789         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5790         arm_selected_tune here.
5791         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5792         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5793         (march=, mcpu=, mtune=): Use Enum and Var.
5794         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
5795         (arm.o): Update dependencies.
5796
5797 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
5798
5799         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
5800         of header_file.
5801         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
5802         (write_typed_alloc_defns): Likewise.
5803         (main): Calls write_typed_alloc_defns with output_header.
5804
5805 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
5806
5807         PR inline-asm/48435
5808         * ira-color.c (setup_profitable_hard_regs): Add comments.
5809         Don't take prohibited hard regs into account.
5810         (setup_conflict_profitable_regs): Rename to
5811         get_conflict_profitable_regs.
5812         (check_hard_reg_p): Check prohibited hard regs.
5813
5814 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
5815
5816         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5817         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5818         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5819
5820 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5821
5822         PR target/48366
5823         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
5824         move from floating point to shift amount register.
5825         (emit_move_sequence): Remove secondary reload support for floating
5826         point to shift amount amount register copies.
5827         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5828         amount register copies.
5829         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5830         register, return false if mode isn't a scalar integer mode.
5831         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5832
5833 2011-04-08  Richard Guenther  <rguenther@suse.de>
5834
5835         * gimple.c (gimple_call_flags): Remove kludge.
5836
5837 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5838
5839         * sel-sched.c (sel_region_init): Move call to
5840         sel_setup_region_sched_flags after setup_current_loop_nest.
5841
5842 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
5843
5844         PR rtl-optimization/48272
5845         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5846         init_insn_reg_pressure_info.  Adjust a caller.
5847         * sched-int.h (init_insn_reg_pressure_info): Declare.
5848         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5849         when sched-pressure is enabled.
5850
5851 2011-04-08  Richard Guenther  <rguenther@suse.de>
5852
5853         * gimple.c (gimple_set_modified): Do not queue calls to
5854         MODIFIED_NORETURN_CALLS here ...
5855         * tree-ssa-operands.c (update_stmt_operands): ... but here.
5856
5857 2011-04-08  Richard Guenther  <rguenther@suse.de>
5858
5859         PR lto/48467
5860         * toplev.c (lang_dependent_init): Do not open asm_out_file
5861         in WPA mode, nor perform debug machinery initialization.
5862         (finalize): Do not unlink asm_out_file in WPA mode.
5863
5864 2011-04-08  Richard Guenther  <rguenther@suse.de>
5865
5866         * gimple.h (gimple_call_fntype): New function.
5867         (gimple_call_return_type): Use it.
5868         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5869         * gimple-low.c (gimple_check_call_args): Likewise.
5870         * gimple.c (gimple_call_flags): Likewise.
5871         (gimple_call_arg_flags): Likewise.
5872         (gimple_call_return_flags): Likewise.
5873         * tree-cfg.c (verify_gimple_call): Likewise.
5874         (do_warn_unused_result): Likewise.
5875         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5876         * value-prof.c (gimple_ic_transform): Fix fndecl check.
5877
5878 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
5879
5880         PR rtl-optimization/48235
5881         * sel-sched.c (code_motion_process_successors): Recompute the last
5882         insn in basic block if control flow changed.
5883         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
5884         Update condition for ilist_remove.
5885
5886 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5887
5888         PR rtl-optimization/48302
5889         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5890         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
5891         it to record added preheader blocks.
5892         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
5893         on to sel_add_loop_preheaders.
5894         (sel_region_init): Move call to setup_current_loop_nest after
5895         sel_init_bbs.
5896
5897 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5898
5899         PR target/48273
5900         * cfgloop.h (loop_has_exit_edges): New helper.
5901         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5902         non-clonable.
5903         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5904         that have no exit edges.
5905
5906 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5907
5908         PR rtl-optimization/48442
5909         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
5910         all callers.  Adjust assert.
5911
5912 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
5913
5914         PR tree-optimization/48377
5915         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5916         is_packed to true even for types with smaller TYPE_ALIGN than
5917         TYPE_SIZE.
5918
5919 2011-04-08  Richard Guenther  <rguenther@suse.de>
5920
5921         PR bootstrap/48513
5922         * doc/tm.texi: Re-generate.
5923
5924 2011-04-08  Wei Guozhi  <carrot@google.com>
5925
5926         PR target/47855
5927         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5928         * config/arm/arm.c (arm_attr_length_push_multi): New function.
5929         * config/arm/arm.md (*push_multi): Change the length computation to
5930         call a C function.
5931
5932 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
5933
5934         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5935         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5936         * doc/tm.texi: Regenerate.
5937         * system.h (ASM_OUTPUT_BSS): Poison.
5938         * varasm.c (asm_output_bss): Remove function.
5939         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
5940
5941         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5942         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5943         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5944         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5945         Likewise.
5946         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5947         Likewise.
5948         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5949         Likewise.
5950         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5951
5952 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5953
5954         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5955         EnumValue lines.
5956
5957 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5958
5959         * config/m68k/m68k.c (m68k_handle_option): Don't handle
5960         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5961         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5962         OPT_mcpu32.
5963         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5964         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5965         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5966         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5967         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5968         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5969         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5970         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5971         options.  Don't map other m68k options manually.  Don't handle
5972         old-style options as canonical.
5973         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5974         * doc/install.texi (m68k-*-*): Document binutils version requirement.
5975
5976 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5977
5978         * basic-block.h (force_nonfallthru): Move to...
5979         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5980         (force_nonfallthru): ...here.
5981         * cfghooks.c (force_nonfallthru): New function.
5982         * cfgrtl.c (force_nonfallthru): Rename into...
5983         (rtl_force_nonfallthru): ...this.
5984         (commit_one_edge_insertion): Do not set AUX field.
5985         (commit_edge_insertions): Do not discover new basic blocks.
5986         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5987         (cfg_layout_rtl_cfg_hooks): Likewise.
5988         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5989         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
5990         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5991
5992 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
5993
5994         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5995         Remove macros.
5996
5997 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
5998
5999         * config/i386/sse.md: Update copyright year.
6000         (avxcvtvecmode): Remove.
6001         (sse_movhlps): Merge with *avx_movhlps.
6002         (sse_movlhps): Merge with *avx_movlhps.
6003         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
6004         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
6005         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
6006         (sse_loadhps): Merge with *avx_loadhps.
6007         (sse_storelps): Merge with *avx_storelps.
6008         (sse_loadlps): Merge with *avx_loadlps.
6009         (sse_movss): Merge with *avx_movss.
6010         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
6011         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
6012         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
6013         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
6014         (vec_set<mode>_0): Ditto.
6015         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
6016         (sse4_1_insertps): Merge with *avx_insertps.
6017         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
6018         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
6019         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
6020         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
6021         (sse2_storehpd): Merge with *avx_storehpd.
6022         (sse2_loadhpd): Merge with *avx_loadhpd.
6023         (sse2_loadlpd): Merge with *avx_loadlpd.
6024         (sse2_movsd): Merge with *avx_movsd.
6025         (*vec_concatv2df): Merge with *vec_concatv2df.
6026
6027 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
6028
6029         PR debug/48343
6030         * combine.c (combine_instructions): Add last_combined_insn,
6031         update it if insn is after it, pass it to all try_combine calls.
6032         (try_combine): Add last_combined_insn parameter, pass it instead of
6033         i3 to propagate_for_debug.
6034
6035 2011-04-07  Nick Clifton  <nickc@redhat.com>
6036
6037         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
6038         to handle MDR <-> data register transfers.
6039         (movhi_internal): Likewise.
6040
6041 2011-04-07  Alan Modra  <amodra@gmail.com>
6042
6043         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
6044         previous stack info.
6045
6046 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6047
6048         PR target/43920
6049         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
6050         flow_find_cross_jump.  Swap variables to implement backward replacement.
6051         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
6052
6053 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6054
6055         PR target/43920
6056         * cfgcleanup.c (walk_to_nondebug_insn): New function.
6057         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
6058         and bb2.
6059         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6060         src1 or src2.  Redirect edges to the last basic block.  Update
6061         frequency and count on multiple basic blocks in case of fallthru.
6062
6063 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6064
6065         PR target/43920
6066         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6067         function.
6068         (old_insns_match_p): Change return type.  Replace return false/true
6069         with return dir_none/dir_both.  Use can_replace_by.
6070         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
6071         direction from dir_p.  Register replacement direction in dir, last_dir
6072         and afterlast_dir.  Handle new return type of old_insns_match_p using
6073         merge_dir.  Return replacement direction in dir_p.
6074         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6075         return type of old_insns_match_p.
6076         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6077         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6078         flow_find_cross_jump.
6079         * basic-block.h (enum replace_direction): New type.
6080         (flow_find_cross_jump): Add parameter to declaration.
6081
6082 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6083
6084         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6085         (AVXMODEDCVTPS2DQ): Ditto.
6086         (VEC_FLOAT_MODE): Ditto.
6087         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
6088         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6089         (<any_logic:code><mode>3): Use VF mode iterator.
6090         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6091         Use VF mode iterator.
6092         (copysign<mode>3): Use VF mode iterator.
6093         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
6094         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6095         (*<any_logic:code><MODEF:mode>3): Merge with
6096         *avx_<any_logic:code><MODEF:mode>3.
6097         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6098         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6099         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6100         (avx_cvtdq2ps<avxmodesuffix>): Remove.
6101         (sse2_cvtdq2ps): Use %v modifier.
6102         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6103         (avx_cvtps2dq<avxmodesuffix>): Remove.
6104         (sse2_cvtps2dq): Use %v modifier.
6105         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6106         (avx_cvttps2dq<avxmodesuffix>): Remove.
6107         (sse2_cvttps2dq): Use %v modifier.
6108         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6109         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6110         (sse2_cvtsd2siq): Fix insn template.
6111         (sse2_cvtsd2siq_2): Ditto.
6112         (sse2_cvttsd2siq): Ditto.
6113         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6114         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6115
6116 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6117
6118         * gcov-io.c: Use GCC Runtime Library Exception.
6119
6120 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
6121
6122         PR debug/48466
6123         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6124         as base_reg whatever register reg has been eliminated to, instead
6125         of hardcoding STACK_POINTER_REGNUM.
6126
6127 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6128
6129         * doc/tm.texi.in: Document C target hooks as separate from general
6130         target hooks.
6131         * doc/tm.texi: Regenerate.
6132         * genhooks.c (struct hook_desc): Add docname field.
6133         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
6134         docname field.
6135         (hook_array): Include c-target.def.
6136         (emit_documentation): Use docname field in output.
6137         (emit_init_macros): Take docname argument.  Only emit definitions
6138         for hooks matching docname.
6139         (main): Expect additional arguments in all cases.  Pass argument
6140         to emit_init_macros.
6141         * target.def: Move initial macro definitions and comments to
6142         target-hooks-macros.h.
6143         (gcc_targetcm): Move to c-family/c-target.def.
6144         * target.h (targetcm): Move declaration to c-family/c-target.h.
6145         * targhooks.c (default_handle_c_option): Move to
6146         c-family/c-opts.c.
6147         * targhooks.h (default_handle_c_option): Move declaration to
6148         c-family/c-common.h.
6149         * target-hooks-macros.h: New file.
6150         * config.gcc (target_has_targetcm): Define and use to add to
6151         c_target_objs and cxx_target_objs.
6152         * config/default-c.c: New file.
6153         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6154         of target.h and target-def.h.
6155         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6156         (darwin_objc_construct_string, darwin_cfstring_ref_p,
6157         darwin_check_cfstring_format_arg): Make static.
6158         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6159         TARGET_STRING_OBJECT_REF_TYPE_P,
6160         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6161         * config/darwin-protos.h (darwin_objc_construct_string,
6162         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6163         declare.
6164         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6165         TARGET_STRING_OBJECT_REF_TYPE_P,
6166         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
6167         * config/t-darwin (darwin-c.o): Update dependencies.
6168         * system.h (TARGET_HAS_TARGETCM): Poison.
6169         * Makefile.in (TARGET_H): Update.
6170         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6171         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6172         (default-c.o): New target.
6173         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
6174         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
6175         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
6176         c-target.def.
6177         (build/genhooks.o): Update dependencies.
6178
6179 2011-04-06  Richard Guenther  <rguenther@suse.de>
6180
6181         * ipa-inline.c (enum inlining_mode): Remove.
6182         (cgraph_flatten): Use some other token.
6183         (cgraph_edge_early_inlinable_p): New function, split out from ...
6184         (cgraph_perform_always_inlining): New function, split out from ...
6185         (cgraph_decide_inlining_incrementally): ... here.
6186         (cgraph_mark_inline_edge): Adjust.
6187         (cgraph_early_inlining): Re-structure.
6188         (pass_early_inline): Require SSA form.
6189
6190 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
6191             Julian Brown  <julian@codesourcery.com>
6192             Mark Shinwell  <shinwell@codesourcery.com>
6193
6194         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6195         LO_REGS only for Thumb-1.
6196         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6197         be used in short instructions when optimising for size on Thumb-2.
6198
6199 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6200
6201         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6202         associated with user returns to be preserved.
6203
6204 2011-04-06  Tristan Gingold  <gingold@adacore.com>
6205
6206         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6207         symbol_queue_size, DBXOUT_DECR_NESTING,
6208         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6209         if XCOFF_DEBUGGING_INFO.
6210
6211 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6212
6213         * config/i386/i386.md (attribute isa): New.
6214         (attribute enabled): New.
6215         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6216         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6217         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6218         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6219         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6220         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6221         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6222         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6223
6224         * config/i386/sse.md (VF): New mode iterator.
6225         (VF1): Ditto.
6226         (VF2): Ditto.
6227         (VF_128): Ditto.
6228         (SSEMODEF4): Remove.
6229         (attribute sse): Handle V8SF and V4DF modes.
6230         (<absneg:code><mode>2): Use VF mode iterator.
6231         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
6232         mode iterator.
6233         (<plusminus_insn><mode>3): Use VF mode iterator.
6234         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6235         Use VF mode iterator.
6236         (<sse>_vm<plusminus_insn><mode>3): Merge with
6237         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
6238         (mul<mode>3): Use VF mode iterator.
6239         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
6240         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
6241         mode iterator.
6242         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6243         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6244         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
6245         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
6246         mode iterator.
6247         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6248         Use VF1 mode iterator.
6249         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6250         (sqrt<VF2:mode>2): New expander.
6251         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6252         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6253         and sqrtv2df2.  Use VF mode iterator.
6254         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
6255         mode iterator.
6256         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6257         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6258         Use VF1 mode iterator.
6259         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6260         (<smaxmin:code><mode>3): Use VF mode iterator.
6261         (*<smaxmin:code><mode>3_finite): Merge with
6262         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
6263         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6264         (<sse>_vm<smaxmin:code><mode>2): Merge with
6265         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
6266         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
6267         mode iterator.
6268         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
6269         mode iterator.
6270         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6271         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6272         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6273         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6274         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
6275         VF mode iterator.
6276         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6277         Use VF_128 mode iterator.
6278         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
6279         mode iterator.
6280         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
6281         VF_128 mode iterator.
6282         (vcond<mode>): Use VF mode iterator.
6283         * config/i386/predicates.md (sse_comparison_operator): Merge with
6284         avx_comparison_float_operator.  Do not declare as special_predicate.
6285         * config/i386/i386.c (struct builtin_description): Update for renamed
6286         compare patterns.
6287         (ix86_expand_args_builtin): Ditto.
6288         (ix86_expand_sse_compare_mask): Ditto.
6289
6290 2011-04-06  Richard Guenther  <rguenther@suse.de>
6291
6292         * tree-inline.c (estimate_num_insns): For calls simply account
6293         for all passed arguments and a used return value.
6294
6295 2011-04-06  Richard Guenther  <rguenther@suse.de>
6296
6297         PR tree-optimization/47663
6298         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6299         call_stmt_time fields.
6300         (cgraph_edge_inlinable_p): Declare.
6301         (cgraph_edge_recursive_p): New inline function.
6302         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6303         (cgraph_clone_edge): Copy it.
6304         * ipa-inline.c (cgraph_estimate_edge_time): New function.
6305         Account for call stmt time.
6306         (cgraph_estimate_time_after_inlining): Take edge argument.
6307         (cgraph_estimate_edge_growth): Account call stmt size.
6308         (cgraph_estimate_size_after_inlining): Take edge argument.
6309         (cgraph_mark_inline_edge): Adjust.
6310         (cgraph_check_inline_limits): Likewise.
6311         (cgraph_recursive_inlining_p): Remove.
6312         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6313         (cgraph_decide_recursive_inlining): Take edge argument and
6314         adjust.
6315         (cgraph_decide_inlining_of_small_functions): Do not avoid
6316         diags for recursive inlining here.
6317         (cgraph_flatten): Adjust.
6318         (cgraph_decide_inlining_incrementally): Likewise.
6319         (estimate_function_body_sizes): Remove call cost handling.
6320         (compute_inline_parameters): Initialize caller edge call costs.
6321         (cgraph_estimate_edge_growth): New function.
6322         (cgraph_estimate_growth): Use it.
6323         (cgraph_edge_badness): Likewise.
6324         (cgraph_check_inline_limits): Take an edge argument.
6325         (cgraph_decide_inlining_of_small_functions): Adjust.
6326         (cgraph_decide_inlining): Likewise.
6327         * tree-inline.c (estimate_num_insns): Only account for call
6328         return value if it is used.
6329         (expand_call_inline): Avoid diagnostics on recursive inline
6330         functions here.
6331         * lto-cgraph.c (lto_output_edge): Output edge call costs.
6332         (input_edge): Input edge call costs.
6333
6334 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6335
6336         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6337
6338 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
6339
6340         * doc/invoke.texi (Spec Files): Fix typo.
6341
6342 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6343
6344         * profile.c (branch_prob): Move declaration of local variable.  Remove
6345         obsolete ??? comment.  Expand the location explicitly instead of using
6346         the LOCATION_FILE and LOCATION_LINE macros.
6347
6348 2011-04-06  Wei Guozhi  <carrot@google.com>
6349
6350         PR target/47855
6351         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6352         (arm_cond_branch): Likewise.
6353         (arm_cond_branch_reversed): Likewise.
6354         (arm_jump): Likewise.
6355         (push_multi): Likewise.
6356         * config/arm/constraints.md (Py): New constraint.
6357
6358 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6359
6360         PR bootstrap/48471
6361         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6362         Move these...
6363         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6364         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6365         #ifdef DBX_DEBUGGING_INFO.
6366
6367 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
6368
6369         PR bootstrap/48403
6370         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6371         if old and new states differ.
6372
6373 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6374
6375         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6376         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6377         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6378         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6379         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6380         mcfv4e): Use Alias.
6381         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6382         ColdFire options to -mcpu= options.
6383
6384 2011-04-05  Jeff Law  <law@redhat.com>
6385
6386         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6387         check if BB is a successor of LOOP->header and return
6388         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6389
6390 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6391
6392         * cprop.c (struct reg_use): Remove.
6393         (reg_use_table): Make an array of RTX.
6394         (find_used_regs, constprop_register, local_cprop_pass,
6395         bypass_block): Simplify users of reg_use_table.
6396         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
6397         on one of the uses found by find_used_regs.
6398
6399 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6400
6401         PR bootstrap/48469
6402         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6403         declaration.
6404
6405 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6406
6407         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6408         as an rtx.
6409         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6410
6411 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6412
6413         PR middle-end/48441
6414         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6415
6416 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6417
6418         * combine.c: Include obstack.h.
6419         (struct insn_link): Define.
6420         (uid_log_links): Adjust type.
6421         (FOR_EACH_LOG_LINK): New macro.
6422         (insn_link_obstack): Declare.
6423         (alloc_insn_link): Define.
6424         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
6425         type of link variables.
6426         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6427         (try_combine, record_promoted_values, distribute_notes): Likewise.
6428         (distribute_links): Likewise.  Tweak prototype.
6429         (clear_log_links): Delete.
6430         (adjust_for_new_dest): Call alloc_insn_link.
6431         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6432
6433 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6434
6435         * gcse.c (modify_mem_list): Convert to an array of VECs.
6436         (canon_modify_mem_list, compute_transp): Tweak formatting.
6437         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
6438         (load_killed_in_block_p): Likewise.
6439         (record_last_mem_set_info): Likewise.
6440         (clear_modify_mem_tables): Likewise.
6441
6442 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6443
6444         PR middle-end/48461
6445         * function.c (emit_use_return_register_into_block): Only define if
6446         HAVE_return.
6447
6448 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
6449
6450         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6451
6452 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6453
6454         * config/rx/rx-opts.h: New.
6455         * config/rx/rx.c (rx_cpu_type): Remove.
6456         (rx_handle_option): Don't assert that global structures are in
6457         use.  Access variables via opts pointer.  Defer most handling of
6458         OPT_mint_register_.  Use error_at.
6459         (rx_option_override): Handle deferred OPT_mint_register_ here.
6460         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6461         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6462         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6463         (rx_cpu_types): New Enum and EnumValue entries.
6464         (mint-register=): Use Defer and use Var accordingly.
6465
6466 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6467
6468         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6469         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6470         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6471         Move these...
6472         (debug_free_queue, debug_nesting, symbol_queue_index):
6473         ...and these...
6474         * dbxout.c: ...to here.  Make static.
6475
6476 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6477
6478         * gcse.c (modify_pair): Define.  Define a VEC of it.
6479         (canon_modify_mem_list): Convert to an array of VECs.
6480         (free_insn_expr_list_list): Delete.
6481         (clear_modify_mem_tables): Call VEC_free instead.
6482         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6483         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6484         (canon_list_insert, compute_transp): Likewise.
6485
6486 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6487
6488         PR target/43920
6489         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6490         for size.
6491
6492 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6493
6494         PR target/43920
6495         * function.c (emit_use_return_register_into_block): New function.
6496         (thread_prologue_and_epilogue_insns): Use
6497         emit_use_return_register_into_block.
6498
6499 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6500
6501         PR target/43920
6502         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6503         insn.
6504
6505 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6506
6507         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6508
6509 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
6510
6511         * config/arm/arm.md (define_constants for unspec): Replace with
6512         define_c_enum.
6513         (define_constants for unspecv): Replace with define_c_enum.
6514         * config/arm/neon.md (define_constants for unspec): Replace with
6515         define_c_enum.
6516
6517 2011-04-04  Richard Henderson  <rth@redhat.com>
6518
6519         PR bootstrap/48400
6520         * dwarf2out.c (output_line_info): Always emit line info from
6521         at least one section.
6522         (dwarf2out_init): Create text_section_line_info here ...
6523         (set_cur_line_info_table): ... not here.
6524
6525 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
6526
6527         PR target/48380
6528         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
6529         not called.
6530
6531         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
6532
6533 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
6534
6535         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6536         (expr_equiv_p): Remove.
6537         (insert_set_in_table): Look at <dest, src> pair instead of expr.
6538         (hash_scan_set): Update call to insert_set_in_table.
6539         (dump_hash_table): Dump <dest, src> pair.
6540         (lookup_set): Simplify.  Lookup <dest, src> pair.
6541         (compute_transp): Remove, fold heavily simplified code into...
6542         (compute_local_properties): ...here.  Expect COMP and TRANSP
6543         unconditionally.
6544         (find_avail_set): Take set directly from struct expr.
6545         (find_bypass-set): Likewise.
6546         (bypass_block): Likewise.
6547         (cprop_insn): Likewise.  Remove redundant INSN_P test.
6548
6549         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6550         checks on form of COND from find_implicit_sets to here.
6551         (find_implicit_sets): Cleanup control flow. Split critical edges
6552         if it exposes implicit sets.  Allocate/resize implicit_sets as
6553         necessary.
6554         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6555         changed something.  Run df_analyze after find_implicit_sets if any
6556         edges were split.  Do not allocate implicit_sets here.
6557
6558         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6559         (gcse_obstack): Renamed to cprop_obstack.
6560         (GNEW, GNEWVEC, GNEWVAR): Remove.
6561         (gmalloc): Remove.
6562         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6563         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6564         (gcse_alloc): Likewise, and rename to cprop_alloc.
6565         (alloc_gcse_men, free_gcse_mem): Remove.
6566         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6567         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6568         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6569
6570         * cprop.c (oprs_not_set_p): Remove.
6571         (mark_set, mark_clobber): Remove.
6572         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6573         (reg_not_set_p): New function.
6574         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6575         (cprop_insn): Likewise.
6576         (cprop_jump): Use FOR_EACH_EDGE.
6577
6578 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
6579
6580         PR bootstrap/48403
6581         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6582         (rank_for_schedule): Use scheduled_insns vector instead of
6583         last_scheduled_insn.
6584         (ok_for_early_queue_removal): Likewise.
6585         (queue_to_ready): Search forward in nonscheduled_insns_begin if
6586         we have a dbg_cnt.
6587         (choose_ready): Likewise.
6588         (commit_schedule): Use VEC_iterate.
6589         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
6590         a dbg_cnt, use it and ensure the first insn is in the ready list.
6591         (haifa_sched_init): Allocate scheduled_insns.
6592         (sched_extend_ready_list): Don't allocate it; reserve space.
6593         (haifa_sched_finish): Free it.
6594
6595 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6596
6597         * optc-gen.awk: Always remove type from Variable entry before
6598         recording in var_seen.
6599
6600 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
6601
6602         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6603         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6604         call to tidy_fallthru_edges.
6605
6606 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6607
6608         * doc/options.texi (ToLower): Document.
6609         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
6610         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6611         * opts.h (cl_option): Add cl_tolower field.
6612         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6613         arguments with lowercase strings.
6614         * config/rx/rx.opt (mcpu=): Add ToLower.
6615         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6616         argument.
6617
6618 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6619
6620         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6621
6622 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6623
6624         * config/vax/vax.c: Include reload.h.
6625
6626 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
6627
6628         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6629         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6630         (sparc_preferred_reload_class): New function.
6631
6632 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
6633
6634         PR debug/48401
6635         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6636         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6637
6638 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
6639
6640         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6641         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6642
6643 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
6644
6645         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6646         (ASM_OUTPUT_ALIGNED_BSS): Define.
6647
6648 2011-04-03  Michael Matz  <matz@suse.de>
6649
6650         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6651         and next_slot members.
6652         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6653         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6654         (lto_streamer_cache_append): Declare.
6655         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6656         unsigned index, remove offset parameter, ensure that we append
6657         or update existing entries.
6658         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6659         parameter, update next_slot for append.
6660         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6661         parameter.
6662         (lto_streamer_cache_insert_at): Likewise.
6663         (lto_streamer_cache_append): New function.
6664         (lto_streamer_cache_lookup): Use unsigned index.
6665         (lto_streamer_cache_get): Likewise.
6666         (lto_record_common_node): Don't test tree_node_can_be_shared.
6667         (preload_common_node): Adjust call to lto_streamer_cache_insert.
6668         (lto_streamer_cache_delete): Don't free offsets member.
6669         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6670         (lto_output_string_with_length): Use lto_output_data_stream.
6671         (lto_output_tree_header): Remove ix parameter, don't write it.
6672         (lto_output_builtin_tree): Likewise.
6673         (lto_write_tree): Adjust callers to above, don't track and write
6674         offset, write unsigned index.
6675         (output_unreferenced_globals): Don't emit all global vars.
6676         (write_global_references): Use unsigned indices.
6677         (lto_output_decl_state_refs): Likewise.
6678         (write_symbol): Likewise.
6679         * lto-streamer-in.c (lto_input_chain): Move earlier.
6680         (input_function): Use unsigned index.
6681         (input_alias_pairs): Don't read and then ignore all global vars.
6682         (lto_materialize_tree): Remove ix_p parameter, don't read index,
6683         don't pass it back, use lto_streamer_cache_append.
6684         (lto_register_var_decl_in_symtab): Use unsigned index.
6685         (lto_register_function_decl_in_symtab): Likewise.
6686         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6687         index.
6688         (lto_get_builtin_tree): Don't read index, use
6689         lto_streamer_cache_append.
6690         (lto_read_tree): Adjust call to lto_materialize_tree.
6691
6692         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6693         don't use function calls in arguments to MIN.
6694
6695         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6696         twice.
6697
6698         * gimple.c (gimple_type_leader_entry): Mark deletable.
6699
6700 2011-04-03  Alan Modra  <amodra@gmail.com>
6701
6702         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6703
6704 2011-04-03  Michael Matz  <matz@suse.de>
6705
6706         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6707         an integer.
6708         * tree.h (tree_decl_non_common.vindex): Adjust comment.
6709
6710 2011-04-03  Michael Matz  <matz@suse.de>
6711
6712         * cgraphbuild.c (record_reference): Canonicalize constructor values.
6713         * gimple-fold.c (canonicalize_constructor_val): Accept being called
6714         without function context.
6715         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6716         current_function_decl and cfun.
6717
6718 2011-04-03  Michael Matz  <matz@suse.de>
6719
6720         * tree.c (decl_init_priority_insert): Don't create entry for
6721         default priority.
6722         (decl_fini_priority_insert): Ditto.
6723         (fields_compatible_p, find_compatible_field): Remove.
6724         * tree.h (fields_compatible_p, find_compatible_field): Remove.
6725         * gimple.c (gimple_compare_field_offset): Adjust block comment.
6726
6727 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
6728
6729         * combine.c (try_combine): Remove useless local variable.
6730
6731 2011-04-03  Richard Guenther  <rguenther@suse.de>
6732             Ira Rosen  <ira.rosen@linaro.org>
6733
6734         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6735         non-variable offsets and compare the remaining bases of the two
6736         accesses instead of looking for exact same data-ref.
6737
6738 2011-04-02  Kai Tietz  <ktietz@redhat.com>
6739
6740         PR target/48416
6741         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6742
6743         * i386.c (ix86_is_msabi_thiscall): New helper function.
6744         (ix86_is_type_thiscall): New helper function.
6745         (ix86_comp_type_attributes): Handle thiscall for method-functions
6746         special.
6747         (init_cumulative_args): Likewise.
6748         (find_drap_reg): Likewise.
6749         (ix86_static_chain): Likewise.
6750         (x86_this_parameter): Likewise.
6751         (x86_output_mi_thunk): Likewise.
6752
6753 2011-04-01  Olivier Hainque  <hainque@adacore.com>
6754             Nicolas Setton  <setton@adacore.com>
6755             Eric Botcazou  <ebotcazou@adacore.com>
6756
6757         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6758         (add_gnat_descriptive_type_attribute): New function.
6759         (gen_array_type_die): Call it.
6760         (gen_enumeration_type_die): Likewise.
6761         (gen_struct_or_union_type_die): Likewise.
6762         (modified_type_die): Likewise.
6763         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6764         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6765         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6766
6767 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6768
6769         PR bootstrap/48148
6770         * dwarf2out.c (resolve_addr): Don't call force_decl_die
6771         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6772
6773         Revert:
6774         2011-03-17  Richard Guenther  <rguenther@suse.de>
6775
6776         PR bootstrap/48148
6777         * lto-cgraph.c (input_overwrite_node): Clear the abstract
6778         origin for decls in other ltrans units.
6779         (input_varpool_node): Likewise.
6780
6781 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6782
6783         PR middle-end/48335
6784         * expr.c (expand_assignment): Handle all possibilities
6785         if TO_RTX is CONCAT.
6786         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
6787         (store_split_bit_field): If SUBREG_REG (op0) or
6788         op0 itself has smaller mode than word, return it
6789         for offset 0 and const0_rtx for out-of-bounds stores.
6790         If word is const0_rtx, skip it.
6791
6792 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
6793
6794         * config/h8300/h8300.c (print_operand_address): Rename to...
6795         (h8300_print_operand_address): ...this. Make static. Adjust comments.
6796         Call h8300_print_operand and h8300_print_operand_address instead of
6797         print_operand and print_operand_address. Declare.
6798         (print_operand): Renake to...
6799         (h8300_print_operand): ...this. Make static. Adjust comments.
6800         Call h8300_print_operand instead of print_operand. Declare.
6801         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
6802         (h8300_register_move_cost): Likewise.
6803         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
6804         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
6805         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
6806         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
6807         * config/h8300/h8300-protos.h (print_operand): Delete.
6808         (print_operand_address): Delete.
6809
6810 2011-04-01  Richard Henderson  <rth@redhat.com>
6811
6812         PR 48400
6813         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6814         in strict mode before dwarf4.  Re-order tests to early out
6815         before switching sections.
6816
6817 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
6818
6819         * config/h8300/constraints.md: New file.
6820         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
6821         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6822         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6823         * config/h8300/predicates.md (bit_operand): Likewise.
6824         (incdec_operand): Use satisfies_constraint_M and
6825         satisfies_constraint_O.  Don't use C code block.
6826         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6827         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6828         (compute_mov_length): Use satisfies_constraint_G.
6829         (fix_bit_operand): Use satisfies_constraint_U.
6830         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6831         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6832         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6833         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6834         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6835         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6836         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6837         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6838         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6839         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6840         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6841         (EXTRA_MEMORY_CONSTRAINT): Delete.
6842
6843 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
6844             Michael Meissner  <meissner@linux.vnet.ibm.com>
6845
6846         PR target/48262
6847         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6848         operands, as per the specifications.
6849
6850         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6851         (vec_extract_evenv4sf): Ditto.
6852         (vec_extract_evenv8hi): Ditto.
6853         (vec_extract_evenv16qi): Ditto.
6854         (vec_extract_oddv4si): Ditto.
6855
6856 2011-03-31  Mark Wielaard  <mjw@redhat.com>
6857
6858         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6859         high_pc attribute if the CU has no associated code. Only output
6860         DW_AT_entry_pc for CU if not generating strict dwarf and
6861         dwarf_version < 4.
6862
6863 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
6864
6865         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6866         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6867         out of ...
6868         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6869         * final.c (final_start_function): Call the new function rather
6870         than using a NULL argument for dwarf2out_frame_debug.
6871
6872         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6873         that contains the prologue.
6874
6875         * haifa-sched.c (queue_insn): New arg REASON.  All callers
6876         changed.  Print it in debugging output.
6877
6878         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6879
6880         * sched-ebb.c (begin_schedule_ready): Remove second argument.
6881         Split most of the code into...
6882         (begin_move_insn): ... here.  New function.
6883         (ebb_sched_info): Add a pointer to it.
6884         * haifa-sched.c (scheduled_insns): New static variable.
6885         (sched_extend_ready_list): Allocate it.
6886         (schedule_block): Use it to record the order of scheduled insns.
6887         Perform RTL changes to move insns only after all scheduling
6888         decisions have been made.
6889         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6890         begin_move_insn field.
6891         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6892         * sched-int.h (struct haifa_sched_info): Remove second argument
6893         from begin_schedule_ready hook.  Add new member begin_move_insn.
6894         * sched-rgn.c (begin_schedule_ready): Remove second argument.
6895         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6896
6897         * haifa-sched.c (prune_ready_list): New function, broken out of
6898         schedule_block.
6899         (schedule_block): Use it.
6900
6901 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6902
6903         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6904
6905 2011-04-01  Kai Tietz  <ktietz@redhat.com>
6906
6907         * config.gcc (*-*-mingw*): Allow as option the
6908         posix threading model.
6909         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
6910         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6911         definition.
6912         (CPP_SPEC): Add pthread/no-pthread handling.
6913         (LIB_SPEC): Likewise.
6914         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6915         (LIB_SPEC): Likewise.
6916         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6917         flag to pass -pthread option for shared libgcc build.
6918         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6919         for shared libgcc build.
6920         * config/i386/t-mingw-pthread: New file.
6921         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6922         New define to enable use of library pthread by default.
6923         * config/i386/mingw.opt (pthread): New driver option.
6924         (no-pthread): New driver option.
6925         * config/i386/cygming.opt: Make sure trailing empty line is retained.
6926         * config/i386/mingw-w64.opt: Likewise.
6927
6928 2011-04-01  Gary Funck  <gary@intrepid.com>
6929
6930         * c-decl.c (grokdeclarator): Fix formatting.
6931
6932 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6933
6934         * expr.c (emit_block_move_via_movmem): Use n_generator_args
6935         instead of n_operands.
6936         (set_storage_via_setmem): Likewise.
6937         * optabs.c (maybe_gen_insn): Likewise.
6938         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6939         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6940         (mips_expand_builtin_direct): Likewise.
6941         * config/spu/spu.c (expand_builtin_args): Likewise.
6942
6943 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6944
6945         * recog.h (insn_data_d): Add n_generator_args.
6946         * genoutput.c (data): Likewise.
6947         (output_insn_data): Print it.
6948         (max_opno, num_dups): Delete.
6949         (scan_operands): Just fill in "d->operand[...]".
6950         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6951
6952 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6953
6954         * gensupport.h (pattern_stats): New structure.
6955         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6956         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6957         (max_operand_1, max_operand_vec): Delete.
6958         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6959
6960 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
6961
6962         * emit-rtl.c (emit_pattern_after_setloc): New function.
6963         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6964         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6965         (emit_pattern_after): New function.
6966         (emit_insn_after, emit_jump_insn_after): Call it.
6967         (emit_call_insn_after, emit_debug_insn_after): Likewise.
6968         (emit_pattern_before_setloc): New function.
6969         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6970         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6971         Likewise.
6972         (emit_pattern_before): New function.
6973         (emit_insn_before, emit_jump_insn_before): Call it.
6974         (emit_call_insn_before, emit_debug_insn_before): Likewise.
6975
6976 2011-03-31  Richard Henderson  <rth@redhat.com>
6977
6978         * dwarf2out.c (dw_separate_line_info_ref): Remove.
6979         (dw_separate_line_info_entry): Remove.
6980         (enum dw_line_info_opcode): New.
6981         (dw_line_info_entry): Use it.
6982         (dw_line_info_table, dw_line_info_table_p): New.
6983         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6984         (line_info_table, line_info_label_num): Remove.
6985         (line_info_table_in_use): Remove.
6986         (separate_line_info_table): Remove.
6987         (separate_line_info_table_allocated): Remove.
6988         (separate_line_info_table_in_use): Remove.
6989         (LINE_INFO_TABLE_INCREMENT): Remove.
6990         (line_info_label_num): New.
6991         (cur_line_info_table): New.
6992         (text_section_line_info, cold_text_section_line_info): New.
6993         (separate_line_info): New.
6994         (SEPARATE_LINE_CODE_LABEL): Remove.
6995         (print_dwarf_line_table): Remove.
6996         (debug_dwarf): Don't dump it.
6997         (output_one_line_info_table): New.
6998         (output_line_info): Use it.
6999         (new_line_info_table): New.
7000         (set_cur_line_info_table): New.
7001         (dwarf2out_switch_text_section): Use it.
7002         (dwarf2out_begin_function): Likewise.
7003         (push_dw_line_info_entry): New.
7004         (dwarf2out_source_line): Rewrite for new line info tables.
7005         (dwarf2out_init): Remove dead initailizations.
7006
7007 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7008
7009         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
7010         various flags.
7011         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
7012         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
7013         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
7014         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
7015         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
7016         * opt-functions.awk (flag_init, switch_bit_fields): New.
7017         (switch_flags): Don't handle flags moved to bit-fields.  Don't
7018         generate CL_MISSING_OK or CL_SAVE.
7019         * optc-gen.awk: Update to generate bit-field output as well as
7020         flags field.
7021         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
7022         bit-field instead of CL_REJECT_DRIVER flag.
7023         * opts-common.c (generate_canonical_option,
7024         decode_cmdline_option): Use bit-fields instead of CL_* flags.
7025         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
7026         instead of CL_REJECT_NEGATIVE flag.
7027         * toplev.c (print_switch_values): Use cl_report bit-field instead
7028         of CL_REPORT flag.
7029
7030 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7031
7032         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
7033         a zero minimum index only if it is redundant.
7034
7035 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
7036
7037         PR rtl-optimization/48381
7038         * ira-color.c (assign_hard_reg): Use hard reg set intersection
7039         instead of ira_class_hard_reg_index for calculating conflicting
7040         hard registers.
7041
7042 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
7043
7044         * cprop.c: Clean up hash table building.
7045         (reg_avail_info): Remove.
7046         (oprs_available_p): Remove.
7047         (record_last_reg_set_info): Remove.
7048         (record_last_set_info): Remove.
7049         (reg_available_p): New function.
7050         (gcse_constant_p): Do not treat unfolded conditions as constants.
7051         (make_set_regs_unavailable): New function.
7052         (hash_scan_set): Simplify with new reg_available_p.
7053         (compute_hash_table_work): Traverse insns stream only once.
7054         Do not compute reg_avail_info. Traverse insns in reverse order.
7055         Record implicit sets after recording explicit sets from the block.
7056
7057 2011-03-31  Michael Matz  <matz@suse.de>
7058
7059         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
7060
7061 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
7062
7063         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7064         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7065         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7066         (h8300_mode_dependent_address_p): New function.
7067         (h8300_get_index): Make static.
7068
7069 2011-03-31  Jeff Law  <law@redhat.com>
7070
7071         * reload1.c (elimination_effects): Fix typo in recent change.
7072
7073         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
7074         typo potentially leading to null pointer dereference.
7075
7076         * caller-save.c (new_saved_hard_reg): Eliminate return value.
7077         (setup_save_areas): Corresponding changes to avoid useless
7078         assignments.
7079
7080         * jump.c (reversed_comparison_code_parts): Avoid successive return
7081         statements when REVERSE_CONDITION is defined.
7082
7083         * expr.c (expand_assignment): Avoid useless assignments.
7084         (expand_expr_real_1): Likewise.
7085         (expand_expr_real_2): Avoid useless statements.
7086
7087         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7088
7089         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7090
7091         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7092         statements.
7093
7094         * stmt.c (expand_expr_stmt): Avoid useless assignment.
7095
7096 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7097
7098         PR target/47109
7099         * doc/tm.texi.in (TARGET_VERSION): Remove.
7100         * doc/tm.texi: Regenerate.
7101         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7102         * collect2.c (main): Don't use TARGET_VERSION.
7103         * mips-tdump.c (main): Don't use TARGET_VERSION.
7104         * mips-tfile.c (main): Don't use TARGET_VERSION.
7105         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
7106         * config/rs6000/vxworksae.h: Remove.
7107         * config/alpha/alpha.h (TARGET_VERSION): Remove.
7108         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7109         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7110         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7111         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7112         * config/arm/arm.h (TARGET_VERSION): Remove.
7113         * config/arm/coff.h (TARGET_VERSION): Remove.
7114         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7115         * config/arm/elf.h (TARGET_VERSION): Remove.
7116         * config/arm/freebsd.h (TARGET_VERSION): Remove.
7117         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7118         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7119         * config/arm/pe.h (TARGET_VERSION): Remove.
7120         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7121         * config/arm/semi.h (TARGET_VERSION): Remove.
7122         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7123         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7124         * config/arm/vxworks.h (TARGET_VERSION): Remove.
7125         * config/avr/avr.h (TARGET_VERSION): Remove.
7126         * config/bfin/bfin.h (TARGET_VERSION): Remove.
7127         * config/fr30/fr30.h (TARGET_VERSION): Remove.
7128         * config/frv/frv.h (TARGET_VERSION): Remove.
7129         * config/h8300/h8300.h (TARGET_VERSION): Remove.
7130         * config/i386/cygwin.h (TARGET_VERSION): Remove.
7131         * config/i386/darwin.h (TARGET_VERSION): Remove.
7132         * config/i386/darwin64.h (TARGET_VERSION): Remove.
7133         * config/i386/djgpp.h (TARGET_VERSION): Remove.
7134         * config/i386/freebsd.h (TARGET_VERSION): Remove.
7135         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7136         * config/i386/gnu.h (TARGET_VERSION): Remove.
7137         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7138         * config/i386/i386elf.h (TARGET_VERSION): Remove.
7139         * config/i386/linux.h (TARGET_VERSION): Remove.
7140         * config/i386/linux64.h (TARGET_VERSION): Remove.
7141         * config/i386/lynx.h (TARGET_VERSION): Remove.
7142         * config/i386/mingw32.h (TARGET_VERSION): Remove.
7143         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7144         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7145         * config/i386/netware.h (TARGET_VERSION): Remove.
7146         * config/i386/nto.h (TARGET_VERSION): Remove.
7147         * config/i386/openbsd.h (TARGET_VERSION): Remove.
7148         * config/i386/vxworks.h (TARGET_VERSION): Remove.
7149         * config/ia64/elf.h (TARGET_VERSION): Remove.
7150         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7151         * config/ia64/hpux.h (TARGET_VERSION): Remove.
7152         * config/ia64/linux.h (TARGET_VERSION): Remove.
7153         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7154         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7155         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7156         * config/lm32/lm32.h (TARGET_VERSION): Remove.
7157         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7158         * config/m32c/m32c.h (TARGET_VERSION): Remove.
7159         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7160         * config/m32r/m32r.h (TARGET_VERSION): Remove.
7161         * config/m68k/linux.h (TARGET_VERSION): Remove.
7162         * config/m68k/m68k.h (TARGET_VERSION): Remove.
7163         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7164         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7165         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7166         * config/mep/mep.h (TARGET_VERSION): Remove.
7167         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7168         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7169         * config/mips/iris6.h (MACHINE_TYPE): Remove.
7170         * config/mips/linux.h (TARGET_VERSION): Remove.
7171         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7172         * config/mips/vxworks.h (TARGET_VERSION): Remove.
7173         * config/mmix/mmix.h (TARGET_VERSION): Remove.
7174         * config/mn10300/linux.h (TARGET_VERSION): Remove.
7175         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7176         * config/pa/pa.h (TARGET_VERSION): Remove.
7177         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7178         * config/picochip/picochip.h (TARGET_VERSION): Remove.
7179         * config/rs6000/aix.h (TARGET_VERSION): Remove.
7180         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7181         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7182         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7183         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7184         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7185         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7186         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7187         * config/rs6000/linux.h (TARGET_VERSION): Remove.
7188         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7189         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7190         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7191         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7192         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7193         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7194         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7195         * config/s390/linux.h (TARGET_VERSION): Remove.
7196         * config/s390/s390.h (TARGET_VERSION): Remove.
7197         * config/s390/tpf.h (TARGET_VERSION): Remove.
7198         * config/score/score.h (TARGET_VERSION): Remove.
7199         * config/sh/linux.h (TARGET_VERSION): Remove.
7200         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7201         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7202         * config/sh/sh.h (TARGET_VERSION): Remove.
7203         * config/sh/sh64.h (TARGET_VERSION): Remove.
7204         * config/sh/superh.h (TARGET_VERSION): Remove.
7205         * config/sh/vxworks.h (TARGET_VERSION): Remove.
7206         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7207         * config/sparc/linux.h (TARGET_VERSION): Remove.
7208         * config/sparc/linux64.h (TARGET_VERSION): Remove.
7209         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7210         TARGET_NAME32, TARGET_NAME): Remove.
7211         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7212         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7213         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7214         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7215         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7216         * config/spu/spu.h (TARGET_VERSION): Remove.
7217         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7218         * config/v850/v850.h (TARGET_VERSION): Remove.
7219         * config/vax/linux.h (TARGET_VERSION): Remove.
7220         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7221         * config/xtensa/elf.h (TARGET_VERSION): Remove.
7222         * config/xtensa/linux.h (TARGET_VERSION): Remove.
7223
7224 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7225
7226         PR target/48142
7227         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7228         frame-related from frame-unrelated adjustments to the stack pointer.
7229
7230 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
7231
7232         * common.opt (fdebug-types-section): Move earlier.
7233         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7234
7235 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
7236
7237         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7238         var.
7239
7240 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
7241
7242         * tree.h (CASE_CHAIN): Define.
7243         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7244         (gimple_redirect_edge_and_branch): Likewise.
7245
7246 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7247
7248         PR middle-end/48367
7249         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7250         calculation.
7251
7252 2011-03-30  Jeff Law  <law@redhat.com>
7253
7254         * PR bootstrap/48371
7255         * reload1.c (reload): Fix botch in last change.
7256
7257         * reload.h (struct reload): Fix typo introduced in last change.
7258
7259 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7260
7261         * config/arm/arm.opt (mhard-float, msoft-float): Mark
7262         Undocumented.  Remove help text.
7263         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7264         -mhard-float.
7265
7266 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7267
7268         * doc/options.texi (NegativeAlias): Document.
7269         (Alias): Mention NegativeAlias.
7270         * opt-functions.awk: Handle NegativeAlias.
7271         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
7272         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7273         * opts.h (CL_NEGATIVE_ALIAS): Define.
7274         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7275         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7276         OPT_mspe_.
7277         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7278         Alias entries.
7279         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7280         mno-spe and mno-isel instead of mspe=no and -misel=no.
7281
7282 2011-03-29  Mark Wielaard  <mjw@redhat.com>
7283
7284         * common.opt (fdebug-types-section): New flag.
7285         * doc/invoke.texi: Document new -fno-debug-types-section flag.
7286         * dwarf2out.c (use_debug_types): New define.
7287         (struct die_struct): Mark die_id with GTY desc use_debug_types.
7288         (print_die): Guard output of type unit signatures using
7289         use_debug_types.
7290         (build_abbrev_table): Replace assert of dwarf_version >= 4
7291         with assert on use_debug_types.
7292         (size_of_die): Likewise.
7293         (unmark_dies): Likewise.
7294         (value_format): Decide AT_ref_external form on use_debug_types.
7295         (output_die): Replace dwarf_version version check guard with
7296         use_debug_types where appropriate.
7297         (modified_type_die): Likewise.
7298         (gen_reference_type_die): Likewise.
7299         (dwarf2out_start_source_file): Likewise.
7300         (dwarf2out_end_source_file): Likewise.
7301         (prune_unused_types_walk_attribs): Likewise.
7302         (dwarf2out_finish): Likewise.
7303
7304 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7305
7306         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7307
7308 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7309
7310         PR rtl-optimization/48332
7311         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7312         mode of input operand N and modeN to its actual mode.
7313
7314 2011-03-30  Jeff Law  <law@redhat.com>
7315
7316         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7317         define accessor macro.
7318         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7319         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7320         (reg_equiv_init): Likewise.
7321         (reg_equivs_size): New variable.
7322         (reg_equiv_init_size): Remove.
7323         (allocate_initial_values): Move prototype to here from....
7324         * integrate.h (allocate_initial_values): Remove prototype.
7325         * integrate.c: Include reload.h.
7326         (allocate_initial_values): Corresponding changes.
7327         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7328         (fix_reg_equiv_init, no_equiv): Corresponding changes.
7329         (update_equiv_regs): Corresponding changes.
7330         (ira): Corresponding changes.
7331         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7332         (push_secondary_reload): Corresponding changes.
7333         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7334         (make_memloc, find_reloads_address): Corresponding changes.
7335         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7336         (find_reloads_address_1): Corresponding changes.
7337         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7338         (refers_to_regno_for_reload_p): Corresponding changes.
7339         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7340         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7341         * reload1.c: Include ggc.h.
7342         (grow_reg_equivs): New function.
7343         (replace_pseudos_in, reload): Corresponding changes.
7344         (calculate_needs_all_insns, alter_regs): Corresponding changes.
7345         (eliminate_regs_1, elimination_effects): Corresponding changes.
7346         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7347         (delete_output_reload): Likewise.
7348         * caller-save.c (mark_referenced_regs): Corresponding changes.
7349         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7350         * frv/predicates.md (frv_load_operand): Corresponding changes.
7351         * microblaze/microblaze.c (double_memory_operand): Corresponding
7352         changes.
7353         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7354         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
7355         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
7356         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7357         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7358         changes.
7359         * pa/pa.c (emit_move_sequence): Corresponding changes.
7360         * vax/vax.c (nonindexed_address_p): Corresponding changes.
7361
7362 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7363
7364         PR target/47551
7365         * config/arm/arm.c (coproc_secondary_reload_class): Handle
7366         structure modes.  Don't check neon_vector_mem_operand for
7367         vector or structure modes.
7368
7369 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7370             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7371
7372         PR target/43590
7373         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7374         operand 1 and reshuffle the operands to match.
7375         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7376
7377 2011-03-30  Christian Schüler  <cschueler@gmx.de>
7378
7379         PR driver/48208
7380         * config/c.opt (F): Added 'Driver' to -F option.
7381
7382         PR driver/48260
7383         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7384           handler function.
7385         * config/darwin.opt: Added '-arch' option.
7386
7387 2011-03-30  Nick Clifton  <nickc@redhat.com>
7388
7389         * config/rx/rx.md: Add peepholes and patterns to combine
7390         extending loads and simple arithmetic instructions.
7391         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
7392         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7393         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
7394         modes to use pre-decrement and post-increment addressing.
7395         (rx_is_restricted_memory_address): Add range checking of REG+INT
7396         addresses.
7397         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
7398         (rx_memory_move_cost): Adjust cost of stores.
7399         (rx_adjust_insn_length): New function.
7400
7401 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
7402
7403         PR c/48305
7404         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7405         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7406         matching arg00/arg01 types.
7407
7408 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7409
7410         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7411         last_location to UNKNOWN_LOCATION.
7412
7413 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7414
7415         PR target/48349
7416         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7417         FLOAT_SSE_REGS.
7418
7419 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7420             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7421
7422         PR bootstrap/48337
7423         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7424         Init(PROCESSOR_V7).
7425         (sparc_cpu): Likewise.
7426         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7427         PROCESSOR_V7.
7428
7429 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7430
7431         PR target/48336
7432         PR middle-end/48342
7433         PR rtl-optimization/48345
7434         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7435         hard regs for given mode from profitable regs when doing secondary
7436         allocation.
7437
7438 2011-03-29  Jeff Law  <law@redhat.com>
7439
7440         PR bootstrap/48327
7441         * tree-ssa-threadupdate.c (struct redirection_data): Remove
7442         do_not_duplicate field.
7443         (lookup_redirection_data): Corresponding changes.
7444         (create_duplicates): Always create a template block.
7445         (redirect_edges): Remove code which reused the original block
7446         when it was going to become unreachable code.
7447         (thread_block): Don't set do_not_duplicate field.
7448
7449 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
7450
7451         * lto-opts.c (register_user_option_p, lto_register_user_option):
7452         Make type argument unsigned.
7453         * lto-streamer.h (lto_register_user_option): Make type argument
7454         unsigned.
7455         * opth-gen.awk: Make CL_* macros unsigned.
7456         * opts-common.c (find_opt): Make lang_mask argument unsigned.
7457         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7458         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7459         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7460         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7461         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7462         (find_opt): Make lang_mask argument unsigned.
7463
7464 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7465
7466         PR rtl-optimization/48331
7467         PR rtl-optimization/48334
7468         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7469         for any used algorithm.
7470
7471 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7472
7473         * ira-conflicts.c (build_object_conflicts): Add unused attribute
7474         to parent_max.
7475
7476 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
7477
7478         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7479         (alpha_option_override): Don't set alpha_sr_alias_set.
7480         (emit_frame_store_1): Use gen_frame_mem rather than calling
7481         set_mem_alias_set.
7482         (alpha_expand_epilogue): Ditto.
7483
7484 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
7485
7486         PR tree-optimization/48290
7487         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7488         vectorization, check that relevant phis in the basic block after
7489         the inner loop are really inner loop's exit phis.
7490
7491 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
7492
7493         PR debug/48190
7494         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7495         (cached_dw_loc_list_def): New structure.
7496         (cached_dw_loc_list): New typedef.
7497         (cached_dw_loc_list_table): New variable.
7498         (cached_dw_loc_list_table_hash): New function.
7499         (cached_dw_loc_list_table_eq): Likewise.
7500         (add_location_or_const_value_attribute): Take a bool cache_p.
7501         Cache the list when the parameter is true.
7502         (gen_formal_parameter_die): Update caller.
7503         (gen_variable_die): Likewise.
7504         (dwarf2out_finish): Likewise.
7505         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7506         while generating debug info for the decl.
7507         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7508         (dwarf2out_init): Initialize cached_dw_loc_list_table.
7509         (resolve_addr): Cache the result of resolving a chain of
7510         location lists.
7511
7512 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7513
7514         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7515         conflict object hard regset nodes have intersecting hard reg sets.
7516
7517         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7518         after regstat_init_n_sets_and_refs.
7519
7520         * ira.c: Add more comments at the top.
7521         (setup_stack_reg_pressure_class, setup_pressure_classes):
7522         Add comments how we compute the register pressure classes.
7523         (setup_allocno_and_important_classes): Add more comments.
7524         (setup_class_translate_array, reorder_important_classes)
7525         (setup_reg_class_relations): Add comments.
7526
7527         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
7528         start of the file.
7529
7530         * ira-color.c: Add 2011 to the Copyright line.
7531         (assign_hard_reg):  Add more comments.
7532         (improve_allocation): Ditto.
7533
7534         * ira-costs.c: Add 2011 to the Copyright line.
7535         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7536         comments.
7537         (setup_regno_cost_classes_by_mode): Ditto.
7538
7539         Initial patches from ira-improv branch:
7540
7541         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7542
7543         * ira-build.c (ira_create_object): Remove initialization of
7544         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
7545         (ira_create_allocno): Remove initialization of
7546         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7547         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7548         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7549         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7550         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7551         Initialize ALLOCNO_ADD_DATA.
7552         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7553         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7554         ALLOCNO_REG.
7555         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
7556         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7557
7558         * ira.c (ira_reallocate): Remove.
7559         (setup_pressure_classes): Call
7560         ira_init_register_move_cost_if_necessary.  Use
7561         ira_register_move_cost instead of ira_get_register_move_cost.
7562         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7563         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7564
7565         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7566         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7567         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7568         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7569         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7570         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7571         Fix formatting.
7572         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
7573         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7574         (struct allocno_color_data): New.
7575         (allocno_color_data_t): New typedef.
7576         (allocno_color_data): New definition.
7577         (ALLOCNO_COLOR_DATA): New macro.
7578         (struct object_color_data): New.
7579         (object_color_data_t): New typedef.
7580         (object_color_data): New definition.
7581         (OBJECT_COLOR_DATA): New macro.
7582         (update_copy_costs, calculate_allocno_spill_cost): Call
7583         ira_init_register_move_cost_if_necessary.  Use
7584         ira_register_move_cost instead of ira_get_register_move_cost.
7585         (move_spill_restore, update_curr_costs): Ditto.
7586         (allocno_spill_priority): Make it inline.
7587         (color_pass): Allocate and free allocno_color_dat and object_color_data.
7588         (struct coalesce_data, coalesce_data_t): New.
7589         (allocno_coalesce_data): New definition.
7590         (ALLOCNO_COALESCE_DATA): New macro.
7591         (merge_allocnos, coalesced_allocno_conflict_p): Use
7592         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7593         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7594         (coalesce_allocnos): Ditto.
7595         (setup_coalesced_allocno_costs_and_nums): Ditto.
7596         (collect_spilled_coalesced_allocnos): Ditto.
7597         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7598         (setup_slot_coalesced_allocno_live_ranges): Ditto.
7599         (coalesce_spill_slots): Ditto.
7600         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
7601         free allocno_coalesce_data.
7602
7603         * ira-conflicts.c: Fix formatting.
7604         (process_regs_for_copy): Call
7605         ira_init_register_move_cost_if_necessary.  Use
7606         ira_register_move_cost instead of ira_get_register_move_cost.
7607         (build_object_conflicts): Optimize.
7608
7609         * ira-costs.c (record_reg_classes): Optimize.  Call
7610         ira_init_register_move_cost_if_necessary.  Use
7611         ira_register_move_cost, ira_may_move_in_cost, and
7612         ira_may_move_out_cost instead of ira_get_register_move_cost and
7613         ira_get_may_move_cost.
7614         (record_address_regs): Ditto.
7615         (scan_one_insn): Optimize.
7616         (find_costs_and_classes): Optimize.
7617         (process_bb_node_for_hard_reg_moves): Call
7618         ira_init_register_move_cost_if_necessary.  Use
7619         ira_register_move_cost instead of ira_get_register_move_cost.
7620
7621         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7622         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7623         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7624         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7625         definitions.
7626         (ira_initiate_emit_data, ira_finish_emit_data)
7627         (create_new_allocno): New functions.
7628         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
7629         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7630         Use ira_register_move_cost instead of ira_get_register_move_cost.
7631
7632         * ira-int.h: Fix some comments.
7633         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7634         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7635         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7636         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
7637         add_data.
7638         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
7639         bitfield after mode.  Make hard_regno a short int.  Make
7640         hard_regno short.  Remove first_coalesced_allocno and
7641         next_coalesced_allocno.  Move mem_optimized_dest_p,
7642         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7643         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
7644         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7645         temp, colorable_p.  Add new member add_data.
7646         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7647         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7648         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7649         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7650         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7651         (ALLOCNO_ADD_DATA): New macro.
7652         (ira_emit_data_t): New typedef.
7653         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
7654         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7655         from struct ira_allocno.
7656         (ALLOCNO_EMIT_DATA): New macro.
7657         (ira_allocno_emit_data, allocno_emit_reg): New.
7658         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7659         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
7660         (OBJECT_ADD_DATA): New macro.
7661         (ira_reallocate): Remove.
7662         (ira_initiate_emit_data, ira_finish_emit_data): New.
7663         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7664         (ira_init_register_move_cost_if_necessary): New.
7665         (ira_object_conflict_iter_next): Merge into
7666         ira_object_conflict_iter_cond.
7667         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
7668
7669         * ira-live.c (process_single_reg_class_operands): Call
7670         ira_init_register_move_cost_if_necessary.  Use
7671         ira_register_move_cost instead of ira_get_register_move_cost.
7672
7673         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7674
7675         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7676
7677         * ira-costs.c: Fix formatting.
7678         (cost_classes, cost_classes_num): Remove.
7679         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7680         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7681         (cost_classes_del, cost_classes_htab): New.
7682         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7683         (initiate_regno_cost_classes, setup_cost_classes): New.
7684         (setup_regno_cost_classes_by_aclass): New.
7685         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
7686         (record_reg_classes): Use regno_cost_classes instead of
7687         cost_classes.  Move checking opposite operand up.
7688         (record_address_regs): Use regno_cost_classes
7689         instead of cost_classes.
7690         (scan_one_insn): Ditto.  Use always general register.
7691         (print_allocno_costs): Use regno_cost_classes instead of
7692         cost_classes.
7693         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
7694         (find_costs_and_classes): Set up cost classes for each registers.
7695         Use also their mode for this.  Use regno_cost_classes instead of
7696         cost_classes.
7697         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7698         cost_classes.
7699         (free_ira_costs, ira_init_costs): Don't use cost_classes.
7700         (ira_costs, ira_set_pseudo_classes): Call
7701         initiate_regno_cost_classes and finish_regno_cost_classes.
7702
7703         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7704
7705         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7706
7707         * target.def (ira_cover_classes): Remove.
7708
7709         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
7710
7711         * doc/tm.texi.in: Ditto.
7712
7713         * ira-conflicts.c: Remove mentioning cover classes from the file.
7714         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
7715         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
7716
7717         * targhooks.c (default_ira_cover_classes): Remove.
7718
7719         * targhooks.h (default_ira_cover_classes): Ditto.
7720
7721         * haifa-sched.c: Remove mentioning cover classes from the file.
7722         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7723         ira_pressure_classes and ira_pressure_classes_num instead of
7724         ira_reg_class_cover_size and ira_reg_class_cover.  Use
7725         sched_regno_pressure_class instead of sched_regno_cover_class.
7726         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7727         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7728
7729         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
7730         classes from the file.
7731         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7732         (struct object_hard_regs, struct object_hard_regs_node): New.
7733         (struct ira_object): New members profitable_hard_regs,
7734         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7735         (struct ira_allocno): Rename cover_class to aclass.  Rename
7736         cover_class_cost and updated_cover_class_cost to class_cost and
7737         updated_class_cost.  Remove splay_removed_p and
7738         left_conflict_size.  Add new members colorable_p.
7739         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7740         (ALLOCNO_COLORABLE_P): New macro.
7741         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7742         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7743         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7744         (OBJECT_...): Rename parameter C to O.
7745         (OBJECT_PROFITABLE_HARD_REGS): New macro.
7746         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7747         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7748         (struct target_ira_int): New members x_ira_max_memory_move_cost,
7749         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7750         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7751         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7752         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
7753         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
7754         x_ira_reg_class_subunion.
7755         (ira_max_memory_move_cost, ira_max_register_move_cost)
7756         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7757         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7758         (ira_important_class_nums, ira_reg_class_superunion): New macros.
7759         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
7760         (ira_reg_class_union): Rename to ira_reg_class_subunion.
7761         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7762         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7763         (ira_tune_allocno_costs_and_cover_classes): Rename to
7764         ira_tune_allocno_costs.
7765         (ira_debug_hard_regs_forest): New.
7766         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7767         (ira_object_conflict_iter_next): Fix comments.
7768         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
7769         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7770         cover_class to aclass.
7771         (ira_allocate_and_accumulate_costs): Ditto.
7772         (ira_allocate_and_set_or_copy_costs): Ditto.
7773
7774         * opts.c (decode_options): Remove ira_cover_class check.
7775
7776         * ira-color.c: Remove mentioning cover classes from the file.  Use
7777         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7778         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7779         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7780         (splay-tree.h): Remove include.
7781         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7782         before copy_freq_compare_func.
7783         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7784         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7785         New definitions.
7786         (hard_regs_roots, hard_regs_node_vec): Ditto.
7787         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7788         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7789         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7790         (create_new_object_hard_regs_node): Ditto.
7791         (add_new_object_hard_regs_node_to_forest): Ditto.
7792         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
7793         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7794         Ditto.
7795         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
7796         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
7797         (remove_unused_object_hard_regs_nodes): Ditto.
7798         (enumerate_object_hard_regs_nodes): Ditto.
7799         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
7800         (object_hard_regs_subnode_t): Ditto.
7801         (struct object_hard_regs_subnode): Ditto.
7802         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
7803         (setup_object_hard_regs_subnode_index): Ditto.
7804         (get_object_hard_regs_subnodes_num): Ditto.
7805         (form_object_hard_regs_nodes_forest): Ditto.
7806         (finish_object_hard_regs_nodes_tree): Ditto.
7807         (finish_object_hard_regs_nodes_forest): Ditto.
7808         (allocnos_have_intersected_live_ranges_p): Rename to
7809         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7810         (pseudos_have_intersected_live_ranges_p): Rename to
7811         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7812         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7813         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7814         (update_copy_costs): Remove assert.  Skip cost update if the hard
7815         reg does not belong the class.
7816         (assign_hard_reg): Process only profitable hard regs.
7817         (uncolorable_allocnos_num): Make it scalar.
7818         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7819         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7820         and ira_reg_class_max_nregs.
7821         (bucket_allocno_compare_func): Check frequency first.
7822         (sort_bucket): Add compare function as a parameter.
7823         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7824         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7825         (push_allocno_to_stack): Rewrite for checking new allocno
7826         colorability.
7827         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
7828         (push_only_colorable): Pass new parameter to sort_bucket.
7829         (push_allocno_to_spill): Remove.
7830         (allocno_spill_priority_compare): Make it inline and rewrite.
7831         (splay_tree_allocate, splay_tree_free): Remove.
7832         (allocno_spill_sort_compare): New function.
7833         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
7834         build and use splay tree.  Choose first allocno in uncolorable
7835         allocno bucket to spill.  Remove setting spill cost.
7836         (all_conflicting_hard_regs): Remove.
7837         (setup_allocno_available_regs_num): Check only profitable hard
7838         regs.  Print info about hard regs nodes.
7839         (setup_allocno_left_conflicts_size): Remove.
7840         (put_allocno_into_bucket): Don't call
7841         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
7842         (improve_allocation): New.
7843         (color_allocnos): Call setup_profitable_hard_regs,
7844         form_object_hard_regs_nodes_forest, improve_allocation,
7845         finish_object_hard_regs_nodes_forest.  Setup spill cost.
7846         (print_loop_title): Use pressure classes.
7847         (color_allocnso): Ditto.
7848         (do_coloring): Remove allocation and freeing splay_tree_node_pool
7849         and allocnos_for_spilling.
7850         (ira_sort_regnos_for_alter_reg): Don't setup members
7851         {first,next}_coalesced_allocno.
7852         (color): Remove allocating and freeing removed_splay_allocno_vec.
7853         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7854         prohibited_class_mode_regs.
7855
7856         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
7857         formatting.
7858         (update_allocno_pressure_excess_length): Use pressure classes.
7859         (inc_register_pressure, dec_register_pressure): Check for pressure
7860         class.
7861         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7862         pressure class.  Use ira_reg_class_nregs instead of
7863         ira_reg_class_max_nregs.
7864         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7865         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7866         (single_reg_class): Use ira_reg_class_nregs instead of
7867         ira_reg_class_max_nregs.
7868         (process_bb_node_lives): Use pressure classes.
7869
7870         * ira-emit.c: Remove mentioning cover classes from the file.  Use
7871         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7872         (change_loop): Use pressure classes.
7873         (modify_move_list): Call ira_set_allocno_class instead of
7874         ira_set_allocno_cover_class.
7875
7876         * ira-build.c: Remove mentioning cover classes from the file.  Use
7877         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7878         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
7879         ALLOCNO_UPDATED_CLASS_COST instead of
7880         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7881         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7882         (ira_create_allocno): Remove initialization of
7883         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
7884         ALLOCNO_COLORABLE_P.
7885         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7886         Update conflict regs for the objects.
7887         (create_cap_allocno): Remove assert.  Don't propagate
7888         ALLOCNO_AVAILABLE_REGS_NUM.
7889         (ira_free_allocno_costs): New function.
7890         (finish_allocno): Change a part of code into call of
7891         ira_free_allocno_costs.
7892         (low_pressure_loop_node_p): Use pressure classes.
7893         (object_range_compare_func): Don't compare classes.
7894         (setup_min_max_conflict_allocno_ids): Ditto.
7895
7896         * loop-invariant.c: Remove mentioning cover classes from the file.
7897         Use ira_pressure_classes and ira_pressure_classes_num instead of
7898         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
7899         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7900         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7901         Use reg_allocno_class instead of reg_cover_class.
7902         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7903         STACK_REG_COVER_CLASS.
7904         (get_regno_cover_class): Rename to get_regno_pressure_class.
7905         (move_loop_invariants): Initialize and finalize regstat.
7906
7907         * ira.c: Remove mentioning cover classes from the file.  Add
7908         comments about coloring without cover classes.  Use ALLOCNO_CLASS
7909         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7910         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7911         setup_class_subset_and_memory_move_costs.
7912         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7913         (setup_cover_and_important_classes): Rename to
7914         setup_allocno_and_important_classes.
7915         (setup_class_translate_array): New.
7916         (setup_class_translate): Call it for allocno and pressure classes.
7917         (cover_class_order): Rename to allocno_class_order.
7918         (comp_reg_classes_func): Use ira_allocno_class_translate instead
7919         of ira_class_translate.
7920         (reorder_important_classes): Set up ira_important_class_nums.
7921         (setup_reg_class_relations): Set up ira_reg_class_superunion.
7922         (print_class_cover): Rename to print_classes.  Add parameter.
7923         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7924         Print pressure classes too.
7925         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
7926         setup_reg_subclasses.
7927         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7928         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7929         (setup_prohibited_class_mode_regs): Use
7930         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
7931         (clarify_prohibited_class_mode_regs): New function.
7932         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7933         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7934         (ira_init_once): Initialize them.
7935         (free_register_move_costs): Process them.
7936         (ira_init): Move calls of find_reg_classes and
7937         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7938         Call clarify_prohibited_class_mode_regs.
7939         (ira_no_alloc_reg): Remove.
7940         (too_high_register_pressure_p): Use pressure classes.
7941
7942         * sched-deps.c: Remove mentioning cover classes from the file.
7943         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7944         ira_pressure_classes and ira_pressure_classes_num instead of
7945         ira_reg_class_cover_size and ira_reg_class_cover.
7946         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7947         sched_regno_pressure_class instead of sched_regno_cover_class.
7948         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
7949         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7950
7951         * ira.h: Add 2010 to Copyright.
7952         (ira_no_alloc_reg): Remove external.
7953         (struct target_ira): Rename x_ira_hard_regno_cover_class,
7954         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7955         x_ira_class_translate to x_ira_hard_regno_allocno_class,
7956         x_ira_allocno_classes_num, x_ira_allocno_classes, and
7957         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
7958         x_ira_pressure_classes, x_ira_pressure_class_translate, and
7959         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
7960         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
7961         x_ira_no_alloc_regs.
7962         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7963         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7964         ira_allocno_classes_num and ira_allocno_classes.
7965         (ira_class_translate): Rename to ira_allocno_class_translate.
7966         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7967         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7968         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7969         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7970         (ira_no_alloc_regs): New.
7971
7972         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
7973         classes from the file.  Use ALLOCNO_CLASS instead of
7974         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
7975         ALLOCNO_COVER_CLASS_COST.
7976         (regno_cover_class): Rename to regno_aclass.
7977         (record_reg_classes): Use ira_reg_class_subunion instead of
7978         ira_reg_class_union.
7979         (record_address_regs): Check overflow.
7980         (scan_one_insn): Ditto.
7981         (print_allocno_costs): Print total mem cost fore regional allocation.
7982         (print_pseudo_costs): Use REG_N_REFS.
7983         (find_costs_and_classes): Use classes intersected with them on the
7984         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
7985         ira_reg_class_union.  Use ira_allocno_class_translate and
7986         regno_aclass instead of ira_class_translate and regno_cover_class.
7987         Modify code for finding regno_aclass.  Setup preferred classes for
7988         the next pass.
7989         (setup_allocno_cover_class_and_costs): Rename to
7990         setup_allocno_class_and_costs.  Use regno_aclass instead of
7991         regno_cover_class.  Use ira_set_allocno_class instead of
7992         ira_set_allocno_cover_class.
7993         (init_costs, finish_costs): Use regno_aclass instead of
7994         regno_cover_class.
7995         (ira_costs): Use setup_allocno_class_and_costs instead of
7996         setup_allocno_cover_class_and_costs.
7997         (ira_tune_allocno_costs_and_cover_classes): Rename to
7998         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
7999         by processing objects.  Use ira_reg_class_max_nregs instead of
8000         ira_reg_class_nregs.
8001
8002         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
8003
8004         * sched-int.h: Remove mentioning cover classes from the file.
8005         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
8006
8007         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
8008         classes from the file.
8009         (struct reg_pref): Rename coverclass into allocnoclass.
8010         (reg_cover_class): Rename to reg_allocno_class.
8011
8012         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
8013
8014         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
8015
8016         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8017
8018         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
8019
8020         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
8021
8022         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
8023
8024         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
8025
8026         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
8027
8028         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
8029
8030         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
8031
8032         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
8033         (i386_ira_cover_classes): Ditto.
8034
8035         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8036
8037         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
8038
8039         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
8040
8041         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
8042
8043         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
8044
8045         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
8046
8047         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
8048         (mips_ira_cover_classes): Ditto.
8049
8050         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
8051
8052         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
8053
8054         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
8055
8056         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
8057
8058         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8059
8060         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8061         (IRA_COVER_CLASSES_VSX): Ditto.
8062
8063         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8064         (rs6000_ira_cover_classes): Ditto.
8065
8066         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8067
8068         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8069
8070         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8071
8072         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8073
8074         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8075
8076         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8077
8078         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8079
8080         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8081
8082         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8083
8084         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8085
8086 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
8087
8088         PR debug/48253
8089         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8090         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8091         dw_fde_unlikely_section_end_label, cold_in_std_section,
8092         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8093         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8094         fields.
8095         (output_fde): Use dw_fde_second_{begin,end} if second is
8096         true, otherwise dw_fde_{begin,end}.
8097         (output_call_frame_info): Test dw_fde_second_begin != NULL
8098         instead of dw_fde_switched_sections.
8099         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8100         fields, initialize new fields.  Initialize in_std_section
8101         unconditionally from the first partition.
8102         (dwarf2out_end_epilogue): Don't override dw_fde_end when
8103         dw_fde_second_begin is non-NULL.
8104         (dwarf2out_switch_text_section): Stop initializing removed
8105         dw_fde_struct fields, initialize new fields, initialize
8106         also dw_fde_end here.  Set dw_fde_switch_cfi even when
8107         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
8108         (struct var_loc_list_def): Add last_before_switch field.
8109         (arange_table, arange_table_allocated, arange_table_in_use,
8110         ARANGE_TABLE_INCREMENT, add_arange): Removed.
8111         (size_of_aranges): Count !in_std_section and !second_in_std_section
8112         hunks in fdes, instead of looking at arange_table_in_use.
8113         (output_aranges): Add aranges_length argument, don't call
8114         size_of_aranges here.  Instead of using aranges_table*
8115         emit ranges for fdes when !in_std_section resp.
8116         !second_in_std_section.
8117         (dw_loc_list): Break ranges crossing section switch.
8118         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
8119         use dw_fde_second_end instead of dw_fde_end as end of last range.
8120         (gen_subprogram_die): Don't call add_arange.  Use
8121         dw_fde_{begin,end} for first partition and if switched
8122         section dw_fde_second_{begin,end} for the second.
8123         (var_location_switch_text_section_1,
8124         var_location_switch_text_section): New functions.
8125         (dwarf2out_begin_function): Initialize cold_text_section even
8126         when function_section () isn't text_section.
8127         (prune_unused_types): Don't walk arange_table.
8128         (dwarf2out_finish): Don't needlessly test
8129         flag_reorder_blocks_and_partition when testing cold_text_section_used.
8130         If info_section_emitted, call size_of_aranges and if it indicates
8131         non-empty .debug_aranges, call output_aranges with the computed
8132         size.  Stop using removed dw_fde_struct fields, use
8133         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8134         for second.
8135
8136         PR debug/48203
8137         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8138         create ENTRY_VALUE if incoming or address of incoming's MEM
8139         is a hard REG.
8140         * dwarf2out.c (mem_loc_descriptor): Don't emit
8141         DW_OP_GNU_entry_value of DW_OP_fbreg.
8142         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8143         on ENTRY_VALUE is able to find the canonical parameter VALUE.
8144         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8145         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8146         ENTRY_VALUE_EXPs.
8147         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8148         is a REG_P or MEM_P with REG_P address, compute hash directly
8149         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8150         (preserve_only_constants): Don't clear VALUES forwaring
8151         ENTRY_VALUE to some other VALUE.
8152
8153 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
8154
8155         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8156         instead of GEN_INT.
8157
8158 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8159
8160         * cfgexpand.c (expand_gimple_cond): Always set the source location and
8161         block before expanding the statement.
8162         (expand_gimple_stmt_1): Likewise.  Set them here...
8163         (expand_gimple_stmt): ...and not here.  Tidy.
8164         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8165         unknown.
8166
8167 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8168
8169         * Makefile.in: New rule for cprop.o.
8170         * gcse.c: Move constant/copy propagation to cprop.c.
8171         (compute_local_properties): Only handle expression tables.
8172         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8173         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8174         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8175         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
8176         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
8177         compute_cprop_data, find_used_regs, try_replace_reg,
8178         find_avail_set, cprop_jump, constprop_register, cprop_insn,
8179         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8180         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8181         find_bypass_set, reg_killed_on_edge, bypass_block,
8182         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8183         execute_rtl_cprop, pass_rtl_cprop): Move to...
8184         * cprop.c: ...here.  New file, constant/copy propagation for RTL
8185         moved from gcse.c to here with minor cleanups in duplicated code.
8186
8187 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8188
8189         * config/i386/i386.c (flag_opts): Fix a typo in
8190         -mavx256-split-unaligned-store.
8191
8192 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8193
8194         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8195         LIBCALL_VALUE): Remove macros.
8196         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8197         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8198         (h8300_function_value, h8300_libcall_value,
8199         h8300_function_value_regno_p): New functions.
8200
8201 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8202
8203         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8204
8205 2011-03-28  Jeff Law  <law@redhat.com>
8206
8207         * tree-ssa-threadupdate.c (redirect_edges): Call
8208         create_edge_and_update_destination_phis as needed.
8209         (create_edge_and_update_destination_phis): Accept new BB argument.
8210         All callers updated.
8211         (thread_block): Do not update the profile when threading around
8212         intermediate blocks.
8213         (thread_single_edge): Likewise.
8214         (determine_bb_domination_status): If BB is not a successor of the
8215         loop header, return NONDOMINATING.
8216         (register_jump_thread): Note when we register a jump thread around
8217         an intermediate block.
8218         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8219         (thread_across_edge): Use it.
8220
8221 2011-03-28  Tristan Gingold  <gingold@adacore.com>
8222
8223         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8224         when for_return is 2.
8225
8226 2011-03-28  Jeff Law  <law@redhat.com>
8227
8228         * var-tracking.c (canonicalize_values_mark): Delete unused
8229         lhs assignment.
8230         (canonicalize_values_star, set_variable_part): Likewise.
8231         (clobber_variable_part, delete_variable_part): Likewise.
8232
8233 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8234
8235         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8236
8237 2011-03-28  Martin Jambor  <mjambor@suse.cz>
8238
8239         * tree-inline.c (expand_call_inline): Do not check that destination
8240         node is analyzed.
8241         (optimize_inline_calls): Assert that destination node is analyzed.
8242         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8243         not call tree_lowering_passes.
8244         * cgraph.h (cgraph_analyze_function): Declare.
8245         * cgraphunit.c (cgraph_analyze_function): Make public.
8246
8247 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
8248
8249         * config/sparc/sparc-opts.h: New.
8250         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8251         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8252         (sparc_option_override): Store processor_type enumeration rather
8253         than string in cpu_default.  Remove name and enumeration from
8254         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
8255         without using sparc_select.  Use target_flags_explicit instead of
8256         fpu_option_set.
8257         * config/sparc/sparc.h (enum processor_type): Move to
8258         sparc-opts.h.
8259         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8260         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8261         HeaderInclude entry.
8262         (mcpu=, mtune=): Use Var and Enum.
8263         (sparc_processor_type): New Enum and EnumValue entries.
8264
8265 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8266             Iain Sandoe  <iains@gcc.gnu.org>
8267
8268         PR target/48245
8269         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8270
8271 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8272
8273         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8274         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8275         Insert new statements at it in lieu of STMT.
8276         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8277         * tree-vect-stmts.c (vectorizable_store): Likewise.
8278         (vectorizable_load): Likewise.
8279
8280 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
8281
8282         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8283         (divtf3): Ditto.
8284         (multf3): Ditto.
8285         (subtf3): Ditto.
8286
8287 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8288
8289         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8290         unaligned 256bit load/store.
8291         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8292         (*avx_movdqu<avxmodesuffix>): Likewise.
8293
8294 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8295
8296         PR target/48288
8297         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8298         * config/pa/pa.md (iordi3): Use new predicate in expander.
8299         (iorsi3): Likewise.
8300
8301 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
8302
8303         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
8304         FUNCTION_VALUE_REGNO_P): Remove macros.
8305         * config/mips/mips-protos.h (mips_function_value): Remove.
8306         * config/mips/mips.c (mips_function_value): Rename to...
8307         (mips_function_value_1): ... this. Make static.  Handle receiving
8308         the function type in 'fn_decl_or_type' argument.
8309         (mips_function_value, mips_libcall_value,
8310         mips_function_value_regno_p): New function.
8311         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8312         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8313
8314 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8315
8316         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8317         and -mavx256-split-unaligned-store.
8318         (ix86_option_override_internal): Split 32-byte AVX unaligned
8319         load/store by default.
8320         (ix86_avx256_split_vector_move_misalign): New.
8321         (ix86_expand_vector_move_misalign): Use it.
8322
8323         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8324         -mavx256-split-unaligned-store.
8325
8326         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8327         256bit load/store.  Generate unaligned store on misaligned memory
8328         operand.
8329         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8330         256bit load/store.
8331         (*avx_movdqu<avxmodesuffix>): Likewise.
8332
8333         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8334         -mavx256-split-unaligned-store.
8335
8336 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8337
8338         PR target/38598
8339         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8340         Update commentary.
8341
8342 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8343
8344         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8345         opno arguments with an expand_operand.  Use create_input_operand.
8346         (mips_prepare_builtin_target): Delete.
8347         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8348         functions.
8349         (mips_expand_builtin_direct): Use create_output_operand and
8350         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
8351         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
8352         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8353
8354 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
8355
8356         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8357         function.
8358         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8359
8360 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8361
8362         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8363         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
8364         basic blocks and call commit_edge_insertions directly.
8365         (fixup_abnormal_edges): Move from here to...
8366         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
8367         on the edges and return whether some have actually been inserted.
8368         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8369         compensation code.
8370
8371 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
8372
8373         PR rtl-optimization/48144
8374         * sel-sched-ir.c (merge_history_vect): Factor out from ...
8375         (merge_expr_data): ... here.
8376         (av_set_intersect): Rename to av_set_code_motion_filter.
8377         Update all callers.  Call merge_history_vect when an expression
8378         is found in both sets.
8379         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8380
8381 2011-03-26  Alan Modra  <amodra@gmail.com>
8382
8383         * config/rs6000/predicates.md (word_offset_memref_op): Handle
8384         cmodel medium addresses.
8385         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8386         64-bit gpr loads and stores.
8387         (rs6000_secondary_reload_ppc64): New function.
8388         * config/rs6000/rs6000-protos.h: Declare it.
8389         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8390
8391 2011-03-26  Alan Modra  <amodra@gmail.com>
8392
8393         PR target/47487
8394         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8395         GNU Go in traceback table.
8396
8397 2011-03-25  Richard Henderson  <rth@redhat.com>
8398
8399         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8400         if there are exactly 6 operands.
8401         (set_storage_via_setmem): Similarly.
8402
8403 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8404
8405         * collect2.c (write_c_file_stat): Handle backslash
8406         as right-hand directory separator.
8407         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8408         checking just for slash.
8409         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8410         instead of checking for trailing slash.
8411         * gcc.c (record_temp_file): Use filename_cmp instead
8412         of strcmp.
8413         (do_spec_1): Likewise.
8414         (replace_outfile_spec_function): Likewise.
8415         (is_directory): Use filename_ncmp instead of strncmp.
8416         (print_multilib_info): Likewise.
8417         * gcov.c (find_source): Use filename_cmp instead
8418         instead of strcmp.
8419         (make_gcov_file_name): Fix order of slash/backslash
8420         checks.
8421         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8422         (add_standard_paths): Likewise.
8423         * mips-tfile.c (saber_stop): Handle backslash.
8424         * prefix.c (update_path): Use filename_ncmp instead of
8425         strncmp.
8426         * profile.c (output_location): Use filename_cmp instead
8427         of strcmp.
8428         * read-md.c (handle_toplevel_file): Handle backslash.
8429         * tlink.c (frob_extension):  Likewise.
8430         * tree-cfg.c (same_line_p): Use filename_cmp instead of
8431         strcmp.
8432         * tree-dump.c (dequeue_and_dump): Handle backslash.
8433         * tree.c (get_file_function_name): Likewise.
8434         * gengtype.c (read_input_list): Likewise.
8435         (get_file_realbasename): Likewise.
8436         (get_output_file_with_visibility): Use filename_cmp
8437         instead of strcmp.
8438
8439 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
8440
8441         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8442         case to VFPv1.
8443
8444 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8445
8446         * fold-const.c (expr_location_or): New function.
8447         (fold_truth_not_expr): Call it.
8448
8449 2011-03-25  Jeff Law  <law@redhat.com>
8450
8451         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8452         va_end.
8453         * c-family/c-common.c (def_fn_type): Likewise.
8454         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8455         * emit-rtl.c (gen_rtvec): Likewise.
8456         * lto/lto-lang.c (def_fn_type): Likewise.
8457
8458 2011-03-25  Richard Guenther  <rguenther@suse.de>
8459
8460         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8461         also generate copies.
8462         (fini_copy_prop): Handle constant values properly.
8463
8464 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
8465
8466         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8467         mode size instead of bitsize with DWARF2_ADDR_SIZE.
8468         (hash_loc_operands, compare_loc_operands): Handle
8469         DW_OP_GNU_entry_value.
8470
8471 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8472
8473         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8474         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8475         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8476         comment and use macro TARGET_64BIT_MS_ABI instead.
8477         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8478         and change default behavior for 32-bit MS_ABI.
8479         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8480         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8481         32-bit, too.
8482         (ix86_cfun_abi): Likewise.
8483         (ix86_maybe_switch_abi): Adjust comment.
8484         (init_cumulative_args): Check for bit-ness in MS_ABI case.
8485         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8486         instead of checking for SYSV_ABI.
8487         (ix86_nsaved_sseregs): Likewise.
8488         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8489         to 16 bytes.
8490         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8491         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8492         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8493         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8494         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8495
8496 2011-03-25  Richard Guenther  <rguenther@suse.de>
8497
8498         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8499         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8500         (verify_gimple): Remove.
8501         * tree-cfg.c (verify_gimple_call): Merge verification
8502         from verify_stmts.
8503         (verify_gimple_phi): Merge verification from verify_stmts.
8504         (verify_gimple_label): New function.
8505         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8506         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8507         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8508         (verify_stmts): Rename to verify_gimple_in_cfg.
8509         (verify_gimple_in_cfg): New function.
8510         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8511         * tree-ssa.c (verify_ssa): Likewise.
8512         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8513
8514 2011-03-25  Richard Guenther  <rguenther@suse.de>
8515
8516         * passes.c (init_optimization_passes): Add FRE pass after
8517         early SRA.
8518
8519 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
8520             Andrew Stubbs  <ams@codesourcery.com>
8521
8522         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8523         for Cortex-A8.
8524         (arm_movdi_vfp_cortexa8): New pattern.
8525         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8526         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8527         instructions when tuning for Cortex-A8.  Set attribute "arch".
8528         * config/arm/arm.md: Move include arm-tune.md up a bit.
8529         (define_attr "arch"): Add "onlya8" and "nota8" values.
8530         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8531
8532 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8533
8534         PR bootstrap/48282
8535         Revert:
8536         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8537
8538         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8539         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8540         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8541         * passes.c (init_optimization_passes): Move
8542         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8543
8544 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8545
8546         * c-typeck.c (comptypes_internal): Replace target
8547         hook call of comp_type_attributes by version in tree.c file.
8548         * gimple.c (gimple_types_compatible_p_1): Likewise.
8549         * tree-ssa.c (useless_type_conversion_p): Likewise.
8550         * tree.c (build_type_attribute_qual_variant): Likewise.
8551         (attribute_value_equal): New static helper function.
8552         (comp_type_attributes): New function.
8553         (merge_attributes): Use attribute_value_equal for comparison.
8554         (attribute_list_contained): Likewise.
8555         * tree.h (comp_type_attributes): New prototype.
8556
8557 2011-03-25  Richard Guenther  <rguenther@suse.de>
8558
8559         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8560         of complex types at -O0.
8561         (verify_gimple_assign_binary): Likewise.
8562         (verify_gimple_assign_ternary): Likewise.
8563
8564 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8565
8566         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8567         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8568
8569 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8570
8571         PR debug/48041
8572         * dwarf2out.c (output_abbrev_section): Only write table when
8573         abbrev_die_table_in_use > 1.
8574
8575 2011-02-24  Richard Henderson  <rth@redhat.com>
8576
8577         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8578         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8579         (alpha_expand_unaligned_load_words): Use extql.
8580         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8581         (emit_insxl): Handle all modes for consistency.
8582
8583 2011-02-24  Richard Henderson  <rth@redhat.com>
8584
8585         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8586         (alpha_expand_unaligned_load): Likewise.
8587         (alpha_expand_unaligned_store): Likewise.
8588         (alpha_expand_unaligned_load_words): Likewise.
8589         (alpha_expand_unaligned_store_words): Likewise.
8590         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8591         (alpha_split_lock_test_and_set_12): Likewise.
8592         (print_operand, alpha_fold_builtin_extxx): Likewise.
8593         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8594         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8595         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8596         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8597         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8598         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8599         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8600         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8601         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8602         (extwl, extll, extql): Similarly.
8603         (inswh, inslh, insqh): Similarly.
8604         (mskbl, mskwl, mskll, mskql): Similarly.
8605         (mskwh, msklh, mskqh): Similarly.
8606
8607 2011-02-24  Richard Henderson  <rth@redhat.com>
8608
8609         * config/alpha/alpha.md (attribute isa): Add er, ner.
8610         (attribute enabled): Handle them.
8611         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8612
8613 2011-02-24  Richard Henderson  <rth@redhat.com>
8614
8615         * config/alpha/alpha.md (attribute isa): Add vms.
8616         (attribute enabled): Handle it.
8617         (*movsf): Merge *movsf_{nofix,fix,nofp}.
8618         (*movdf): Merge *movdf_{nofix,fix,nofp}.
8619         (*movtf): Rename from *movtf_internal for consistency.
8620         (*movsi): Merge with *movsi_nt_vms.
8621         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8622         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8623         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8624         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8625
8626 2011-02-24  Richard Henderson  <rth@redhat.com>
8627
8628         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8629         (extendqisi2, extendhisi2): Likewise.
8630         (extendqidi2): Simplify BWX/non-BWX expansions.
8631         (extendhidi2): Similarly.
8632
8633 2011-02-24  Richard Henderson  <rth@redhat.com>
8634
8635         * config/alpha/alpha.md (attribute isa): New.
8636         (attribute enabled): New.
8637         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8638         (zero_extendqisi2, zero_extendqidi2): Similarly.
8639         (zero_extendhisi2, zero_extendhidi2): Similarly.
8640         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8641
8642 2011-02-24  Richard Henderson  <rth@redhat.com>
8643
8644         * config/alpha/predicates.md (input_operand): Revert last change;
8645         update comment to mention 32-bit VMS rather than Windows.
8646
8647 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8648
8649         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8650         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8651         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8652         * passes.c (init_optimization_passes): Move
8653         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8654
8655 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8656
8657         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8658
8659 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8660
8661         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8662         correctly.
8663
8664 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
8665
8666         PR debug/48204
8667         * simplify-rtx.c (simplify_const_unary_operation): Call
8668         real_convert when changing mode class with FLOAT_EXTEND.
8669
8670 2011-03-24  Nick Clifton  <nickc@redhat.com>
8671
8672         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8673         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8674         * config/rx/rx.c (rx_option_override): Set align_jumps,
8675         align_loops and align_labels if not set by the user.
8676         (rx_align_for_label): New function.
8677         (rx_max_skip_for_label): New function.
8678         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8679         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8680         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8681         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8682         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8683
8684 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8685
8686         PR rtl-optimization/48263
8687         * optabs.c (expand_binop_directly): Reinstate convert_modes code
8688         and original commutative_p handling.  Use maybe_gen_insn.
8689
8690 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8691
8692         * reload.c (find_reloads_subreg_address): Add address_reloaded
8693         parameter and return true there if the full address has been
8694         reloaded.
8695         (find_reloads_toplev): Pass address_reloaded flag.
8696         (find_reloads_address_1): Don't use address_reloaded parameter.
8697
8698 2011-03-24  Jeff Law  <law@redhat.com>
8699
8700         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8701         unused variable "ann".
8702         (remove_unused_locals): Likewise.
8703
8704         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8705         statement.
8706
8707         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8708         after it is freed.
8709
8710 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8711
8712         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8713         for invalid symbolic addresses.
8714         (s390_secondary_reload): Don't use s390_check_symref_alignment for
8715         larl operands.
8716
8717 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8718
8719         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8720         the argument in calls to fold_truth_not_expr.
8721
8722 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8723
8724         * tree.c (record_node_allocation_statistics): New function.
8725         (make_node_stat, copy_node_stat, build_string): Call it.
8726         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8727         (build1_stat, build_omp_clause): Likewise.
8728
8729 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8730
8731         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8732         last commit.
8733
8734 2011-03-24  Richard Guenther  <rguenther@suse.de>
8735
8736         PR tree-optimization/48271
8737         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8738         blocks that still exist.
8739
8740 2011-03-24  Richard Guenther  <rguenther@suse.de>
8741
8742         PR tree-optimization/48270
8743         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8744         not free datarefs before ddrs.
8745
8746 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8747
8748         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8749         from the address built for a reference with variable offset.
8750
8751 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8752
8753         PR target/48237
8754         * config/i386/i386.md (*movdf_internal_rex64): Do not split
8755         alternatives that can be handled with movq or movabsq insn.
8756         (*movdf_internal): Disable for !TARGET_64BIT.
8757         (*movdf_internal_nointeger): Ditto.
8758         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8759
8760 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8761
8762         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8763         (FUNCTION_ARG_ADVANCE): Likewise.
8764         * tm.texi.in: Change references to them to hook references.
8765         * tm.texi: Regenerate.
8766         * targhooks.c (default_function_arg): Eliminate check for target macro.
8767         (default_function_incoming_arg): Likewise.
8768         (default_function_arg_advance): Likewise.
8769         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8770         (function_arg_advance): Likewise.
8771         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8772
8773 2011-03-24  Richard Guenther  <rguenther@suse.de>
8774
8775         PR middle-end/48269
8776         * tree-object-size.c (addr_object_size): Do not double-account
8777         for MEM_REF offsets.
8778
8779 2011-03-24  Diego Novillo  <dnovillo@google.com>
8780
8781         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
8782         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
8783         (lto_input_data_block): Move from lto-opts.c.  Make extern.
8784         Update all users.
8785         (lto_input_string): Rename from input_string.  Make extern.
8786         Update all users.
8787         * lto-streamer-out.c (lto_output_string_with_length): Rename from
8788         output_string_with_length.
8789         Output 0 to indicate a non-NULL string.  Update all callers to
8790         not emit 0.
8791         (lto_output_string): Rename from output_string.  Make extern.
8792         Update all users.
8793         (lto_output_decl_state_streams): Make extern.
8794         (lto_output_decl_state_refs): Make extern.
8795         * lto-streamer.h (lto_input_string): Declare.
8796         (lto_input_data_block): Declare.
8797         (lto_output_string): Declare.
8798         (lto_output_string_with_length): Declare.
8799         (lto_output_decl_state_streams): Declare.
8800         (lto_output_decl_state_refs): Declare.
8801
8802 2011-03-24  Richard Guenther  <rguenther@suse.de>
8803
8804         PR tree-optimization/46562
8805         * tree.c (build_invariant_address): New function.
8806         * tree.h (build_invariant_address): Declare.
8807         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
8808         a renamed function moved ...
8809         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
8810         Take valueization callback parameter.
8811         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8812         * gimple-fold.h: New file.
8813         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8814         (ccp_fold, fold_const_aggregate_ref,
8815         fold_ctor_reference, fold_nonarray_ctor_reference,
8816         fold_array_ctor_reference, fold_string_cst_ctor_reference,
8817         get_base_constructor): Move ...
8818         * gimple-fold.c: ... here.
8819         (gimple_fold_stmt_to_constant_1): New function
8820         split out from ccp_fold.  Take a valueization callback parameter.
8821         Valueize all operands.
8822         (gimple_fold_stmt_to_constant): New wrapper function.
8823         (fold_const_aggregate_ref_1): New function split out from
8824         fold_const_aggregate_ref.  Take a valueization callback parameter.
8825         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8826         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8827         invariant POINTER_PLUS_EXPRs to invariant form.
8828         (vn_valueize): New function.
8829         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8830         * tree-vrp.c (vrp_valueize): New function.
8831         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8832         to fold statements to constants.
8833         * tree-ssa-pre.c (eliminate): Properly guard propagation of
8834         function declarations.
8835         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8836         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8837
8838 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8839
8840         * config/h8300/predicates.md (jump_address_operand): Fix register
8841         mode check.
8842
8843 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
8844
8845         * doc/invoke.texi (max-stores-to-sink): Document.
8846         * params.h (MAX_STORES_TO_SINK): Define.
8847         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8848         if either vectorization or if-conversion is disabled.
8849         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8850         tree-vect-data-refs.c vect_equal_offsets.
8851         (dr_equal_offsets_p): New function.
8852         (find_data_references_in_bb): Remove static.
8853         * tree-data-ref.h (find_data_references_in_bb): Declare.
8854         (dr_equal_offsets_p): Likewise.
8855         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8856         (vect_drs_dependent_in_basic_block): Update calls to
8857         vect_equal_offsets.
8858         (vect_check_interleaving): Likewise.
8859         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8860         (cond_if_else_store_replacement): Rename to...
8861         (cond_if_else_store_replacement_1): ... this.  Change arguments and
8862         documentation.
8863         (cond_if_else_store_replacement): New function.
8864         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8865         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8866
8867 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
8868
8869         PR target/46934
8870         * config/arm/arm.md (casesi): Use the gen_int_mode() function
8871         to subtract lower bound instead of GEN_INT().
8872
8873 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
8874
8875         PR other/48179
8876         PR other/48221
8877         PR other/48234
8878         * doc/extend.texi (Alignment): Move section to match order in TOC.
8879         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8880         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8881
8882 2011-03-23  Jeff Law  <law@redhat.com>
8883
8884         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8885         before removing the edge.
8886
8887         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8888         it may have been freed by redirect_branch_edge or
8889         redirect_edge_succ_nodup.
8890
8891 2011-03-23  Richard Guenther  <rguenther@suse.de>
8892
8893         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
8894         (check_va_list_escapes): Likewise.
8895         (check_all_va_list_escapes): Likewise.
8896
8897 2011-03-23  Richard Guenther  <rguenther@suse.de>
8898
8899         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8900         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8901         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8902         (alias.o): Likewise.
8903         (ipa-type-escape.o): Remove.
8904         (ipa-struct-reorg.o): Likewise.
8905         (GTFILES): Remove ipa-struct-reorg.c.
8906         * alias.c: Do not include ipa-type-escape.h.
8907         * tree-ssa-alias.c: Likewise.
8908         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8909         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8910         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8911         and ipa-type-escape passes.
8912         * tree-pass.h (pass_ipa_type_escape): Remove.
8913         (pass_ipa_struct_reorg): Likewise.
8914         * ipa-struct-reorg.h: Remove.
8915         * ipa-struct-reorg.c: Likewise.
8916         * ipa-type-escape.h: Likewise.
8917         * ipa-type-escape.c: Likewise.
8918         * doc/invoke.texi (-fipa-struct-reorg): Remove.
8919         (--param struct-reorg-cold-struct-ratio): Likewise.
8920         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8921         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8922         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8923
8924 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8925
8926         * config/s390/2084.md: Enable all insn reservations also for z9_ec
8927         cpu attribute value.
8928         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8929         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8930         * config/s390/s390.c (processor_flags_table): New constant array.
8931         (s390_handle_arch_option): Remove.
8932         (s390_handle_option): Remove s390_handle_arch_option invocations
8933         and OPT_mwarn_framesize_ handling.
8934         (s390_option_override): Remove s390_handle_arch_option invocation.
8935         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8936         warnings.
8937         * config/s390/s390.md (cpu attribute): Add z9_ec value.
8938         * config/s390/s390.opt (s390_tune, s390_arch)
8939         (march=): Replace s390_arch_option enum and values with
8940         processor_type.  Set variable name to s390_arch.  Set
8941         initialization value.
8942         (mtune=): Replace s390_arch_option with processor_type.  Set
8943         variable name to s390_tune.  Set initialization value.
8944
8945 2011-03-23  Julian Brown  <julian@codesourcery.com>
8946
8947         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8948         accesses which are not naturally aligned.
8949
8950 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8951
8952         PR target/47553
8953         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8954
8955 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8956
8957         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8958         parameter from "int" to "enum insn_code".
8959         (expand_operand_type): New enum.
8960         (expand_operand): New structure.
8961         (create_expand_operand): New function.
8962         (create_fixed_operand, create_output_operand): Likewise
8963         (create_input_operand, create_convert_operand_to): Likewise.
8964         (create_convert_operand_from, create_address_operand): Likewise.
8965         (create_integer_operand): Likewise.
8966         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8967         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8968         (expand_insn, expand_jump_insn): Likewise.
8969         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8970         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8971         (expand_movstr, expand_builtin___clear_cache): Likewise.
8972         (expand_builtin_lock_release): Likewise.
8973         * explow.c (allocate_dynamic_stack_space): Likewise.
8974         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
8975         and use the default handling in that case.
8976         * expmed.c (check_predicate_volatile_ok): Delete.
8977         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8978         (emit_cstore): Likewise.
8979         * expr.c (emit_block_move_via_movmem): Likewise.
8980         (set_storage_via_setmem, expand_assignment): Likewise.
8981         (emit_storent_insn, try_casesi): Likewise.
8982         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
8983         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8984         (expand_vec_shift_expr, expand_binop_directly): Likewise.
8985         (expand_twoval_unop, expand_twoval_binop): Likewise.
8986         (expand_unop_direct, emit_indirect_jump): Likewise.
8987         (emit_conditional_move, vector_compare_rtx): Likewise.
8988         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8989         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8990         (expand_sync_lock_test_and_set): Likewise.
8991         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
8992         (emit_unop_insn): Likewise.
8993         (expand_copysign_absneg): Change icode to an insn_code.
8994         (create_convert_operand_from_type): New function.
8995         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
8996         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8997         (expand_insn, expand_jump_insn): Likewise.
8998         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
8999         than const_int_operand for operand 2.
9000
9001 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9002
9003         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
9004         if possible.
9005
9006 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9007
9008         * emit-rtl.c (emit_pattern_before_noloc): New function.
9009         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
9010         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
9011         (emit_pattern_after_noloc): New function.
9012         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
9013         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
9014
9015 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9016
9017         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
9018         (__ffsDI2): Likewise.
9019
9020 2011-03-22  Richard Henderson  <rth@redhat.com>
9021
9022         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
9023         of !TARGET_ABI_OPEN_VMS.
9024         (alpha_trampoline_init, alpha_start_function): Likewise.
9025         (alpha_expand_epilogue, alpha_file_start): Likewise.
9026         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
9027         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
9028         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
9029         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
9030         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
9031
9032 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9033
9034         * config/s390/s390-opts.h: New.
9035         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
9036         s390_arch_flags, s390_warn_framesize, s390_stack_size,
9037         s390_stack_guard): Remove.
9038         (s390_handle_arch_option): Return void.  Take enum
9039         s390_arch_option value instead of string and searching array.
9040         (s390_handle_option): Don't assert that global structures are in
9041         use.  Access variables via opts pointer.  Use error_at.  Don't use
9042         sscanf for -mstack-guard= or -mstack-size=.  Update call to
9043         s390_handle_arch_option.
9044         (s390_option_override): Update call to s390_handle_arch_option.
9045         (s390_emit_prologue): Use %d format for s390_stack_size in
9046         diagnostic.  Use %wd for HOST_WIDE_INT.
9047         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
9048         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
9049         * config/s390/s390.opt (config/s390/s390-opts.h): New
9050         HeaderInclude entry.
9051         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
9052         s390_arch_flags, s390_warn_framesize): New Variable entries.
9053         (s390_arch_option): New Enum and EnumValue entries.
9054         (march=): Use Enum instead of Var.
9055         (mstack-guard=, mstack-size=): Use UInteger and Var.
9056         (mtune=): Use Enum.
9057
9058 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9059
9060         * config/score/score.c (score_handle_option): Don't assert that
9061         global structures are in use.  Access target_flags via opts
9062         pointer.  Use value of -march= option to determine target_flags
9063         settings.
9064         * config/score/score.opt (march=): Use Enum.
9065         (score_arch): New Enum and EnumValue entries.
9066
9067 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9068
9069         * config/mep/mep.c (option_mtiny_specified): Remove.
9070         (mep_option_override): Move register handling for -mivc2 from
9071         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
9072         instead of option_mtiny_specified.
9073         (mep_handle_option): Access target_flags via opts pointer.  Don't
9074         assert that global structures are in use.  Defer part of -mivc2
9075         handling and move it to mep_option_override.
9076         * config/mep/mep.opt (IVC2): New Mask entry.
9077         (mivc2): Use Var and Defer instead of Mask.
9078
9079 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9080
9081         * config/v850/v850-opts.h: New.
9082         * config/v850/v850.c (small_memory): Replace with
9083         small_memory_physical_max array.  Make that array static const.
9084         (v850_handle_memory_option): Take integer value of argument.  Take
9085         gcc_options pointer, option text and location.  Return void.
9086         Update for changes to small memory structures.
9087         (v850_handle_option): Access target_flags via opts pointer.  Don't
9088         assert that global structures are in use.  Update calls to
9089         v850_handle_memory_option.
9090         (v850_encode_data_area): Update references to small memory settings.
9091         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
9092         (enum small_memory_type): Move to v850-opts.h.
9093         * config/v850/v850.opt (config/v850/v850-opts.h): New
9094         HeaderInclude entry.
9095         (small_memory_max): New Variable entry.
9096         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
9097         (mtda, mzda): Likewise.
9098
9099 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9100
9101         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9102         pointer.  Don't assert that global structures are in use.
9103
9104 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9105
9106         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9107         via opts pointer.  Don't assert that global structures are in use.
9108
9109 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9110
9111         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9112         (munix=93): Use Var.
9113         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9114         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9115         * config/pa/pa-opts.h: New.
9116         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9117         (pa_handle_option): Don't assert that global structures are in
9118         use.  Access target_flags via opts pointer.  Don't handle
9119         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9120         OPT_munix_98 here.
9121         (pa_option_override): Handle deferred OPT_mfixed_range_.
9122
9123 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9124
9125         * config/mn10300/mn10300-opts.h: New.
9126         * config/mn10300/mn10300.c (mn10300_processor,
9127         mn10300_tune_string): Remove.
9128         (mn10300_handle_option): Don't assert that global structures are
9129         in use.  Access mn10300_processor via opts pointer.  Don't handle
9130         OPT_mtune_ here.
9131         * config/mn10300/mn10300.h (enum processor_type): Move to
9132         mn10300-opts.h.
9133         (mn10300_processor): Remove.
9134         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9135         HeaderInclude entry.
9136         (mn10300_processor): New Variable entry.
9137         (mtune=): Use Var.
9138
9139 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9140
9141         * config/microblaze/microblaze.c: Don't include opts.h.
9142         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9143         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9144         (mno-clearbss): Use Var and Warn.
9145
9146 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9147
9148         * config/m32r/m32r-opts.h: New.
9149         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9150         (m32r_handle_option): Don't assert that global structures are in
9151         use.  Access target_flags and m32r_cache_flush_func via opts
9152         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
9153         OPT_mno_flush_trap here.
9154         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9155         include of m32r-opts.h.
9156         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9157         HeaderInclude entry.
9158         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9159         (mmodel=): Use Enum and Var.
9160         (m32r_model): New Enum and EnumValue entries.
9161         (mno-flush-trap): Use Var.
9162         (msdata=): Use Enum and Var.
9163         (m32r_sdata): New Enum and EnumValue entries.
9164
9165 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9166
9167         * config/m32c/m32c.c: Don't include opts.h.
9168         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9169         m32c_handle_option): Remove.
9170         (m32c_option_override): Check global_options_set.x_target_memregs
9171         instead of target_memregs_set.
9172         * config/m32c/m32c.h (target_memregs): Remove.
9173         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9174         variable.
9175
9176 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9177
9178         * config/iq2000/iq2000-opts.h: New.
9179         * config/iq2000/iq2000.c: Don't include opts.h.
9180         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
9181         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
9182         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9183         HeaderInclude entry.
9184         (iq2000_tune): New Variable entry.
9185         (march=): Add comment.  Use Enum.
9186         (iq2000_arch): New Enum and EnumValue entries.
9187         (mcpu=): Use Enum and Var.
9188         (iq2000_tune): New Enum and EnumValue entries.
9189
9190 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9191
9192         * config/ia64/ia64-opts.h: New.
9193         * config/ia64/ia64.c (ia64_tune): Remove.
9194         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9195         here.  Use error_at.
9196         (ia64_option_override): Handle deferred OPT_mfixed_range_.
9197         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9198         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9199         HeaderInclude entry.
9200         (ia64_tune): New Variable entry.
9201         (mfixed-range=): Use Defer and Var.
9202         (mtune=): Use Enum and Var.
9203         (ia64_tune): New Enum and EnumValue entries.
9204
9205 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9206
9207         * config/frv/frv-opts.h: New.
9208         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9209         frv-opts.h.
9210         (frv_cpu_type): Remove.
9211         * config/frv/frv.c: Don't include opts.h.
9212         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
9213         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
9214         (frv_cpu_type): New Variable entry.
9215         (frv_cpu): New Enum and EnumValue entries.
9216
9217 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9218
9219         * config/cris/cris.c (cris_handle_option): Access target_flags via
9220         opts pointer.  Don't assert that global structures are in use.
9221         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9222         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9223
9224 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9225
9226         * config/bfin/bfin-opts.h: New.
9227         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9228         bfin_si_revision, bfin_workarounds): Remove.
9229         (bfin_cpus): Make static const.
9230         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9231         not bfin_lib_id_given.
9232         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
9233         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
9234         pointer. Use error_at.  Don't assert that global structures are in use.
9235         * config/bfin/bfin.h: Include bfin-opts.h.
9236         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9237         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9238         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9239         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9240         entries.
9241
9242 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9243
9244         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9245         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9246         or -msoft-float here.
9247         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9248         -msoft-float and -mhard-float.
9249         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
9250         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9251         msoft-float.
9252         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9253         -msoft-float.
9254         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9255         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9256         not mhard-float.
9257         (LIBGCC_SPEC): Don't handle -msoft-float.
9258         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9259         -mhard-float.
9260         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9261         msoft-float.
9262         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9263         -mfloat-abi=*, not -msoft-float and -mhard-float.
9264         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9265         -msoft-float.
9266         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9267         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9268         mhard-float and msoft-float.
9269         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9270         mfloat-abi=soft in comments, not mhard-float and msoft-float.
9271         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9272         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9273         mhard-float.
9274         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9275         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9276         msoft-float.
9277         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9278         not mhard-float.
9279         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9280         not msoft-float.
9281
9282 2011-03-22  Richard Henderson  <rth@redhat.com>
9283
9284         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9285         TARGET_ABI_WINDOWS_NT.
9286         (alpha_output_function_end_prologue): Likewise.
9287         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9288         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9289         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9290         (trap, *movsi_nt_vms): Likewise.
9291         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9292         (*tablejump_osf_nt_internal): Remove.
9293         * config/alpha/predicates.md (input_operand): Only test Pmode.
9294
9295 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9296
9297         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9298         via opts pointer.  Use error_at.  Don't assert that global
9299         structures are in use.
9300
9301 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9302
9303         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9304         (ix86_handle_option): Access ix86_isa_flags and
9305         ix86_isa_flags_explicit via opts pointer.  Don't assert that
9306         global structures are in use.
9307         (ix86_function_specific_save, ix86_function_specific_restore):
9308         Update ix86_isa_flags_explicit field name.
9309         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
9310         (ix86_isa_flags_explicit): Rename TargetSave entry to
9311         x_ix86_isa_flags_explicit.
9312
9313 2011-03-22  Richard Henderson  <rth@redhat.com>
9314
9315         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9316         (alpha_option_override, direct_return): Likewise.
9317         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9318         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9319         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9320         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9321         (alpha_expand_epilogue, alpha_end_function): Likewise.
9322         (alpha_init_libfuncs): Likewise.
9323         (struct machine_function): Remove unicosmk members.
9324         (print_operand) ['t']: Remove.
9325         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9326         unicosmk_output_module_name, unicosmk_output_common,
9327         current_section_align, unicosmk_output_text_section_asm_op,
9328         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9329         unicosmk_section_type_flags, unicosmk_unique_section,
9330         unicosmk_asm_named_section, unicosmk_insert_attributes,
9331         unicosmk_output_align, unicosmk_defer_case_vector,
9332         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9333         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9334         unicosmk_output_ssib, unicosmk_add_call_info_word,
9335         unicosmk_extern_head, unicosmk_output_default_externs,
9336         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9337         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9338         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9339         * config/alpha/alpha-protos.h: Update.
9340         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9341         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9342         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9343         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9344         (*mulsi_se, mulvsi3): Likewise.
9345         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9346         (*divmodsi_internal, call, call_value, realign): Likewise.
9347         (moddi3, umoddi3): Likewise; remove duplicate expander.
9348         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9349         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9350         (*movdi_nofix): Remove r/U alternative.
9351         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9352         * config/alpha/constraints.md ("U"): Remove.
9353         * config/alpha/predicates.md (call_operand"): Don't test
9354         TARGET_ABI_UNICOSMK.
9355
9356 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9357
9358         * target.def (handle_option): Take gcc_options and
9359         cl_decoded_option pointers and location_t.
9360         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9361         * doc/tm.texi: Regenerate.
9362         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9363         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9364         * lto-opts.c (lto_reissue_options): Generate option structure for
9365         targetm.handle_option call.
9366         * opts.c (target_handle_option): Update call to
9367         targetm.handle_option.  Remove assertions about values now passed
9368         down to hook.
9369         * targhooks.c (default_target_handle_option): New.
9370         * targhooks.h (default_target_handle_option): Declare.
9371         * config/alpha/alpha.c: Include opts.h.
9372         (alpha_handle_option): Update to new hook interface.
9373         * config/arm/arm.c: Include opts.h.
9374         (arm_handle_option): Update to new hook interface.
9375         * config/arm/t-arm (arm.o): Update dependencies.
9376         * config/bfin/bfin.c: Include opts.h.
9377         (bfin_handle_option): Update to new hook interface.
9378         * config/cris/cris.c: Include opts.h.
9379         (cris_handle_option): Update to new hook interface.
9380         * config/frv/frv.c: Include opts.h.
9381         (frv_handle_option): Update to new hook interface.
9382         * config/i386/i386.c: Include opts.h.
9383         (ix86_handle_option): Update to new hook interface.
9384         (ix86_valid_target_attribute_inner_p): Generate option structure
9385         for call to ix86_handle_option.
9386         * config/i386/t-i386 (i386.o): Update dependencies.
9387         * config/ia64/ia64.c: Include opts.h.
9388         (ia64_handle_option): Update to new hook interface.
9389         * config/ia64/t-ia64 (ia64.o): Update dependencies.
9390         * config/iq2000/iq2000.c: Include opts.h.
9391         (iq2000_handle_option): Update to new hook interface.
9392         * config/m32c/m32c.c: Include opts.h.
9393         (m32c_handle_option): Update to new hook interface.
9394         * config/m32r/m32r.c: Include opts.h.
9395         (m32r_handle_option): Update to new hook interface.
9396         * config/m68k/m68k.c: Include opts.h.
9397         (m68k_handle_option): Update to new hook interface.
9398         * config/mep/mep.c: Include opts.h.
9399         (mep_handle_option): Update to new hook interface.
9400         * config/microblaze/microblaze.c: Include opts.h.
9401         (microblaze_handle_option): Update to new hook interface.
9402         * config/mips/mips.c: Include opts.h.
9403         (mips_handle_option): Update to new hook interface.
9404         * config/mn10300/mn10300.c: Include opts.h.
9405         (mn10300_handle_option): Update to new hook interface.
9406         * config/pa/pa.c: Include opts.h.
9407         (pa_handle_option): Update to new hook interface.
9408         * config/pdp11/pdp11.c: Include opts.h.
9409         (pdp11_handle_option): Update to new hook interface.
9410         * config/rs6000/rs6000.c: Include opts.h.
9411         (rs6000_handle_option): Update to new hook interface.
9412         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9413         * config/rx/rx.c: Include opts.h.
9414         (rx_handle_option): Update to new hook interface.
9415         * config/s390/s390.c: Include opts.h.
9416         (s390_handle_option): Update to new hook interface.
9417         * config/score/score.c: Include opts.h.
9418         (score_handle_option): Update to new hook interface.
9419         * config/sh/sh.c: Include opts.h.
9420         (sh_handle_option): Update to new hook interface.
9421         * config/sparc/sparc.c: Include opts.h.
9422         (sparc_handle_option): Update to new hook interface.
9423         * config/v850/v850.c: Include opts.h.
9424         (v850_handle_option): Update to new hook interface.
9425
9426 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9427
9428         * gcc.c (driver_unknown_option_callback): Only permit and save
9429         unknown -Wno- options.
9430         (driver_wrong_lang_callback): Save options directly instead of via
9431         driver_unknown_option_callback.
9432
9433 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9434
9435         * combine.c (simplify_set): Try harder to find the best CC mode when
9436         simplifying a nested COMPARE on the RHS.
9437
9438 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9439
9440         * config/alpha/gnu.h: Remove.
9441         * config/arc: Remove directory.
9442         * config/arm/netbsd.h: Remove.
9443         * config/arm/t-pe: Remove.
9444         * config/crx: Remove directory.
9445         * config/i386/netbsd.h: Remove.
9446         * config/m68hc11: Remove directory.
9447         * config/m68k/uclinux-oldabi.h: Remove.
9448         * config/mcore/mcore-pe.h: Remove.
9449         * config/mcore/t-mcore-pe: Remove.
9450         * config/netbsd-aout.h: Remove.
9451         * config/rs6000/gnu.h: Remove.
9452         * config/sh/sh-symbian.h: Remove.
9453         * config/sh/symbian-base.c: Remove.
9454         * config/sh/symbian-c.c: Remove.
9455         * config/sh/symbian-cxx.c: Remove.
9456         * config/sh/symbian-post.h: Remove.
9457         * config/sh/symbian-pre.h: Remove.
9458         * config/sh/t-symbian: Remove.
9459         * config/svr3.h: Remove.
9460         * config/vax/netbsd.h: Remove.
9461         * config.build: Don't handle i[34567]86-*-pe.
9462         * config.gcc: Remove handling of deprecations for most deprecated
9463         targets.
9464         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9465         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9466         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9467         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9468         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9469         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9470         Remove cases.
9471         * config.host: Don't handle i[34567]86-*-pe.
9472         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9473         (ASM_SPEC32): Don't handle -mcall-gnu.
9474         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9475         -mcall-gnu.
9476         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9477         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9478         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9479         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9480         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9481         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9482         conditional on SYMBIAN.
9483         * configure.ac: Don't handle powerpc*-*-gnu*.
9484         * configure: Regenerate.
9485         * doc/extend.texi (interrupt attribute): Don't mention CRX.
9486         * doc/install-old.texi (m6811, m6812): Don't mention.
9487         * doc/install.texi (arc-*-elf*): Don't document multilib option.
9488         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9489         (m68k-uclinuxoldabi): Don't mention.
9490         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9491         Remove.
9492         (-mcall-gnu): Remove.
9493         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9494         families): Remove constraint documentation.
9495
9496 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
9497
9498         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9499         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9500         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9501
9502 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9503
9504         PR target/48226
9505         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9506         vector when peeking at the next token for vector, don't expand the
9507         keywords.
9508
9509 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
9510
9511         * config/avr/avr-protos.h (expand_epilogue): Change prototype
9512         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9513         * config/avr/avr.c (init_cumulative_args)
9514         (avr_function_arg_advance): Use it.
9515         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9516         sibcall epilogues.
9517         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9518         (avr_function_ok_for_sibcall): ...this new function.
9519         (avr_lookup_function_attribute1): New static Function.
9520         (avr_naked_function_p, interrupt_function_p)
9521         (signal_function_p, avr_OS_task_function_p)
9522         (avr_OS_main_function_p): Use it.
9523         * config/avr/avr.md ("sibcall", "sibcall_value")
9524         ("sibcall_epilogue"): New expander.
9525         ("*call_insn", "*call_value_insn"): New insn.
9526         ("call_insn", "call_value_insn"): Remove
9527         ("call", "call_value", "epilogue"): Change expander to handle
9528         sibling calls.
9529
9530 2011-03-21  Nick Clifton  <nickc@redhat.com>
9531
9532         * doc/invoke.texi (Overall Options): Move closing brace to end of
9533         options list.
9534         (Optimization Options): Add missing @gol.
9535         (Directory Options): Likewise.
9536         (i386 and x86-64 Options): Likewise.
9537         (RS6000 and PowerPC Options): Likewise.
9538         (i386 and x86-64 Windows Options): Likewise.
9539         (V850 Options): Add text missing from descriptions.
9540
9541 2011-03-22  Richard Henderson  <rth@redhat.com>
9542
9543         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9544         (avr_incoming_return_addr_rtx): New.
9545         (emit_push_byte): New.
9546         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
9547         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
9548         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
9549         (emit_pop_byte): New.
9550         (expand_epilogue): Use it.  Pop frame pointer by bytes.
9551         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9552         (INCOMING_RETURN_ADDR_RTX): New.
9553         (INCOMING_FRAME_SP_OFFSET): New.
9554         (ARG_POINTER_CFA_OFFSET): New.
9555         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9556         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9557         (pophi): Remove.
9558
9559         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9560
9561 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9562
9563         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9564         (FUNCTION_ARG_ADVANCE): Likewise.
9565         * tm.texi.in: Change references to them to hook references.
9566         * tm.texi: Regenerate.
9567         * targhooks.c (default_function_arg): Eliminate check for target
9568         macro.
9569         (default_function_incoming_arg): Likewise.
9570         (default_function_arg_advance): Likewise.
9571         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9572         (function_arg_advance): Likewise.
9573         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9574
9575 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9576
9577         * tree.c (build_call_1): New function.
9578         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9579
9580 2011-03-22  Richard Guenther  <rguenther@suse.de>
9581
9582         PR tree-optimization/48228
9583         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9584         for single-arg PHIs.
9585
9586 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
9587
9588         PR rtl-optimization/48143
9589         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9590         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9591         sse2_cvtps2pd): Likewise.
9592
9593 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9594
9595         * recog.c (canonicalize_change_group): Use validate_unshare_change.
9596
9597 2011-03-22  Richard Guenther  <rguenther@suse.de>
9598
9599         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9600         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9601         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9602         and REALIGN_LOAD_EXPR.
9603         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9604         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9605         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9606         DOT_PROD_EXPR case ...
9607         (expand_expr_real_2): ... here.
9608         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9609         and REALIGN_LOAD_EXPR.
9610         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9611         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9612         (vect_create_epilog_for_reduction): Likewise.
9613         (vectorizable_reduction): Likewise.
9614         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9615         * tree-vect-stmts.c (vectorizable_load): Likewise.
9616
9617 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9618
9619         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9620
9621 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9622
9623         * config/s390/s390.c (s390_delegitimize_address): Fix offset
9624         handling for PLTOFF/GOTOFF.
9625
9626 2011-03-22  Nick Clifton  <nickc@redhat.com>
9627
9628         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9629         trailing backslash from the end of the macro definition.
9630
9631 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9632
9633         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9634         and PLT unspecs.
9635
9636 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
9637
9638         * expr.h (prepare_operand): Move to...
9639         * optabs.h (prepare_operand): ...here and change the insn code
9640         parameter from "int" to "enum insn_code".
9641         (insn_operand_matches): Declare.
9642         * expr.c (init_expr_target): Use insn_operand_matches.
9643         (compress_float_constant): Likewise.
9644         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9645         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9646         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
9647         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9648         Likewise.
9649         (gen_cond_trap): Likewise.
9650         (prepare_operand): Likewise.  Change icode to an insn_code.
9651         (insn_operand_matches): New function.
9652         * reload.c (find_reloads_address_1): Use insn_operand_matches.
9653         * reload1.c (gen_reload): Likewise.
9654         * targhooks.c (default_secondary_reload): Likewise.
9655
9656 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9657
9658         * config/alpha/alpha.md (unspec): New define_c_enum.
9659         (unspecv): Ditto.
9660
9661 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9662
9663         PR debug/48214
9664         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9665         between a call and its CALL_ARG_LOCATION note.
9666
9667 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
9668
9669         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9670
9671 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9672
9673         PR c/42544
9674         PR c/48197
9675         * c-common.c (shorten_compare): If primopN is first sign-extended
9676         to opN and then zero-extended to result type, set primopN to opN.
9677
9678 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
9679
9680         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9681         for barrier handlers.
9682
9683 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9684
9685         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9686         UNSPEC constants to be in the unspec enumeration, and redefine
9687         all UNSPECV constants to be in the unspecv enumeration, so that
9688         dumps print which unspec/unspec_volatile this is.
9689         * config/rs6000/vector.md (UNSPEC_*): Ditto.
9690         * config/rs6000/paired.md (UNSPEC_*): Ditto.
9691         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9692         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9693         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9694
9695         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9696         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9697         UNSPECV_LWSYNC, since these are used as unspec_volatile.
9698         * config/rs6000/sync.md (isync, lwsync): Ditto.
9699
9700 2011-03-21  Richard Guenther  <rguenther@suse.de>
9701
9702         * params.def (lto-min-partition): Fix typo.
9703
9704 2011-03-21  Richard Guenther  <rguenther@suse.de>
9705
9706         PR c/47939
9707         * c-decl.c (grokdeclarator): Drop to the main variant only
9708         for array types.  Drop flag_gen_aux_info check.
9709
9710 2011-03-21  Richard Guenther  <rguenther@suse.de>
9711
9712         PR translation/47911
9713         * params.def (lto-partitions): Fix typo.
9714         (lto-min-partition): Fix wording.
9715
9716 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
9717
9718         * config/rs6000/t-freebsd: Remove duplication from file.
9719
9720 2011-03-21  Richard Guenther  <rguenther@suse.de>
9721
9722         PR middle-end/47661
9723         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9724
9725 2011-03-21  Richard Guenther  <rguenther@suse.de>
9726
9727         PR lto/48210
9728         * params.def (lto-partitions): Require at least 1 partition.
9729
9730 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9731
9732         * gthr-solaris.h: Remove.
9733         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9734         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9735         (LIB_SPEC): Likewise.
9736         * config/sol2.opt (threads): Remove.
9737         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
9738         (sparc*-*-solaris2*): Likewise.
9739         * configure.ac (enable_threads): Enable solaris support.
9740         * configure: Regenerate.
9741         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
9742         * doc/install.texi (Configuration, --enable-threads=lib): Remove
9743         solaris.
9744
9745 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9746
9747         * config.gcc: Obsolete *-*-solaris2.8*.
9748         * doc/install.texi (Specific, *-*-solaris2*): Document it.
9749
9750 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9751
9752         PR bootstrap/48135
9753         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9754         reference.  Solaris 8 perl works.
9755
9756 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9757
9758         PR bootstrap/48135
9759         * doc/install.texi (Prerequisites): Move jar etc. up.
9760         Explain support library version requirements.
9761
9762 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9763
9764         PR bootstrap/48135
9765         * doc/install.texi (Prerequisites): Move Perl to build
9766         requirements.  Always necessary on Solaris 2 with Sun ld.
9767
9768 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9769
9770         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9771         binutils 2.21.
9772         (Specific, i?86-*-solaris2.[89]): Likewise.
9773         (Specific, i?86-*-solaris2.10): Likewise.
9774         (Specific, mips-sgi-irix6): Likewise.
9775         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9776         Update for binutils 2.21.
9777
9778 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9779
9780         * configure.ac (gcc_cv_lto_plugin): Fix typo.
9781         Allow -fuse-linker-plugin for non-default plugin linker.
9782         * configure: Regenerate.
9783
9784 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9785
9786         PR bootstrap/48167
9787         * gengtype.c (files_rules): Added rule for cp/parser.h.
9788
9789 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9790
9791         PR target/48213
9792         * config/s390/s390.c (s390_delegitimize_address): Don't call
9793         lowpart_subreg if orig_x has BLKmode.
9794
9795 2011-03-21  Kai Tietz  <ktietz@redhat.com>
9796
9797         PR target/12171
9798         * doc/plugins.texi: Adjust documentation for plugin register_callback.
9799         * tree.h (attribute_spec): Add new member affects_type_identity.
9800         * attribs.c (empty_attribute_table): Adjust attribute_spec
9801         initializers.
9802         * config/alpha/alpha.c: Likewise.
9803         * config/arc/arc.c: Likewise.
9804         * config/arm/arm.c: Likewise.
9805         * config/avr/avr.c: Likewise.
9806         * config/bfin/bfin.c: Likewise.
9807         * config/crx/crx.c: Likewise.
9808         * config/darwin.h: Likewise.
9809         * config/h8300/h8300.c: Likewise.
9810         * config/i386/cygming.h: Likewise.
9811         * config/i386/i386.c: Likewise.
9812         * config/ia64/ia64.c: Likewise.
9813         * config/m32c/m32c.c: Likewise.
9814         * config/m32r/m32r.c: Likewise.
9815         * config/m68hc11/m68hc11.c: Likewise.
9816         * config/m68k/m68k.c: Likewise.
9817         * config/mcore/mcore.c: Likewise.
9818         * config/mep/mep.c: Likewise.
9819         * config/microblaze/microblaze.c: Likewise.
9820         * config/mips/mips.c: Likewise.
9821         * config/rs6000/rs6000.c: Likewise.
9822         * config/rx/rx.c: Likewise.
9823         * config/sh/sh.c: Likewise.
9824         * config/sol2.h: Likewise.
9825         * config/sparc/sparc.c: Likewise.
9826         * config/spu/spu.c: Likewise.
9827         * config/stormy16/stormy16.c: Likewise.
9828         * config/v850/v850.c: Likewise.
9829
9830 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
9831
9832         * simplify-rtx.c (simplify_binary_operation_1): Handle
9833         (xor (and A B) C) case when B and C are both constants.
9834
9835 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
9836
9837         * tree-dfa.c (add_referenced_var): Fix typo in comment.
9838
9839 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
9840
9841         PR bootstrap/48168
9842         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9843
9844 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
9845
9846         PR rtl-optimization/48156
9847         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9848         assume df and df_lr are not NULL.
9849
9850 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9851
9852         PR debug/48023
9853         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9854         between a call and its CALL_ARG_LOCATION note.
9855
9856 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
9857
9858         PR debug/48178
9859         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9860         between a call and its corresponding CALL_ARG_LOCATION note.
9861
9862 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
9863
9864         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9865         instead of loop. Use HARD_REGISTER_NUM_P predicate.
9866         * haifa-sched.c (setup_ref_regs): Ditto.
9867         * caller-save.c (add_used_regs_1): Ditto.
9868         * dse.c (look_for_hardregs): Ditto.
9869         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9870         * sched-rgn.c (check_live_1): Ditto.
9871
9872 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9873
9874         * c-decl.c (diagnose_mismatched_decls): Give an error for
9875         redefining a typedef with variably modified type.
9876
9877 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9878
9879         * c-decl.c (grokfield): Don't allow typedefs for structures or
9880         unions with no tag by default.
9881         * doc/extend.texi (Unnamed Fields): Update.
9882
9883 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
9884
9885         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9886         Rewrite using indirect functions.
9887         (lwp_slwpcb): Ditto.
9888         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9889         (avx_vinsertf128<mode>): Ditto.
9890
9891 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9892
9893         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9894         unspecs.
9895
9896 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9897
9898         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9899         splitting between a call and its corresponding CALL_ARG_LOCATION note.
9900
9901 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9902
9903         PR rtl-optimization/48170
9904         * gcse.c (hoist_code): Remove bogus asserts.
9905
9906 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
9907
9908         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9909         computation for prologue/epilogue.
9910
9911 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9912
9913         * Makefile.in (check-consistency): Remove.
9914
9915 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
9916
9917         PR debug/48176
9918         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9919         arange_table_in_use is 0, but either text_section_used or
9920         cold_text_section_used is true.  Don't call it if
9921         !info_section_emitted.
9922
9923 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
9924
9925         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9926         FUNCTION_VALUE_REGNO_P): Remove.
9927         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9928         Remove.
9929         * config/avr/avr.c (avr_ret_register): Make static inline.
9930         (avr_function_value_regno_p): New function.
9931         (avr_libcall_value): Make static. Add 'func' argument.
9932         (avr_function_value): Make static. Rename 'func' argument to
9933         'fn_decl_or_type', forward it to avr_libcall_value. Call
9934         avr_ret_register function instead of RET_REGISTER macro.
9935         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9936
9937 2011-03-18  Jason Merrill  <jason@redhat.com>
9938
9939         PR c++/23372
9940         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9941
9942 2011-03-18  Richard Guenther  <rguenther@suse.de>
9943
9944         * doc/install.texi (--enable-gold): Remove.
9945         (--with-plugin-ld): Document.
9946         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9947
9948 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
9949
9950         PR middle-end/47790
9951         * expr.c (optimize_bitfield_assignment_op): Revamp to work
9952         again after expansion changes.
9953
9954 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
9955
9956         * combine.c (try_combine): Do simplification only call of
9957         subst() on i2 even when i1 is present. Update comments.
9958
9959 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9960
9961         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9962         and UNSPEC_PCREL_SYMOFF.
9963
9964 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9965
9966         * config/s390/s390.md: Use define_c_enum for the unspec constant
9967         definitions.
9968
9969 2011-03-18  Richard Henderson  <rth@redhat.com>
9970             Jakub Jelinek  <jakub@redhat.com>
9971
9972         PR bootstrap/48161
9973         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9974         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9975
9976 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9977
9978         PR middle-end/47725
9979         * combine.c (cant_combine_insn_p): Don't check zero/sign
9980         extended hard registers.
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): Check zero/sign extended
9986         hard registers.
9987
9988 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
9989
9990         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9991         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9992         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9993         Change return type to bool.
9994         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9995
9996 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9997
9998         PR debug/48163
9999         * var-tracking.c (prepare_call_arguments): If CALL target
10000         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
10001         pc instead of looking it up using cselib_lookup and use
10002         Pmode for it if x has VOIDmode.
10003         * dwarf2out.c (gen_subprogram_die): If also both first and
10004         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
10005
10006         PR debug/48163
10007         * function.c (assign_parms): For data.passed_pointer parms
10008         use MEM of data.entry_parm instead of data.entry_parm itself
10009         as DECL_INCOMING_RTL.
10010         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
10011         also when passed and declared mode is the same, DECL_RTL
10012         is a MEM with pseudo as address and DECL_INCOMING_RTL is
10013         a MEM too.
10014
10015 2011-03-16  Jeff Law  <law@redhat.com>
10016
10017         PR rtl-optimization/37273
10018         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10019         handle them like argument loads from stack slots.  Do not double
10020         count memory for memory constants and argument loads from stack slots.
10021
10022 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10023
10024         PR debug/48160
10025         * var-tracking.c (prepare_call_arguments): Check SUBREG.
10026
10027 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10028
10029         PR target/48171
10030         * config/i386/i386.opt: Add Save to -mavx and -mfma.
10031
10032 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10033
10034         PR bootstrap/48153
10035         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
10036         if dwarf_strict.
10037         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
10038         Clear call_arg_locations and call_arg_loc_last always.
10039
10040         PR middle-end/48152
10041         * var-tracking.c (prepare_call_arguments): If argument needs to be
10042         passed by reference, adjust argtype and mode.
10043
10044 2011-03-17  Richard Guenther  <rguenther@suse.de>
10045
10046         PR middle-end/48134
10047         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
10048         a value make sure to fold the statement.
10049
10050 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
10051
10052         PR target/43872
10053         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
10054         return condition with !cfun->calls_alloca.
10055
10056 2011-03-17  Richard Guenther  <rguenther@suse.de>
10057
10058         PR bootstrap/48148
10059         * lto-cgraph.c (input_overwrite_node): Clear the abstract
10060         origin for decls in other ltrans units.
10061         (input_varpool_node): Likewise.
10062
10063 2011-03-17  Richard Guenther  <rguenther@suse.de>
10064
10065         PR middle-end/48165
10066         * tree-object-size.c (compute_object_offset): Properly return
10067         the offset operand of MEM_REFs as sizetype.
10068
10069 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10070
10071         PR rtl-optimization/48141
10072         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10073         * dse.c: Include params.h.
10074         (active_local_stores_len): New variable.
10075         (add_wild_read, dse_step1): Clear it when setting active_local_stores
10076         to NULL.
10077         (record_store, check_mem_read_rtx): Decrease it when removing
10078         from the chain.
10079         (scan_insn): Likewise.  Increase it when adding to chain, if it
10080         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10081         set active_local_stores to NULL before the addition.
10082         * Makefile.in (dse.o): Depend on $(PARAMS_H).
10083
10084         PR rtl-optimization/48141
10085         * dse.c (record_store): If no positions are needed in an insn
10086         that cannot be deleted, at least unchain it from active_local_stores.
10087
10088 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
10089
10090         PR debug/47510
10091         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10092         (lookup_type_die_strip_naming_typedef): ... here.
10093         (get_context_die): Use it.
10094         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10095         the anonymous struct named by the naming typedef.
10096
10097 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
10098
10099         PR target/48154
10100         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10101         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10102
10103 2011-03-16  Jeff Law  <law@redhat.com>
10104
10105         * tree-vrp.c (identify_jump_threads): Slightly simplify type
10106         check for operands of conditional.  Allow type to be a pointer.
10107
10108 2011-03-16  Richard Guenther  <rguenther@suse.de>
10109
10110         PR tree-optimization/48149
10111         * fold-const.c (fold_binary_loc): Fold
10112         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10113
10114 2011-03-16  Richard Guenther  <rguenther@suse.de>
10115
10116         PR tree-optimization/26134
10117         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10118         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10119         (non_rewritable_mem_ref_base): Handle complex type component
10120         accesses, constrain offsets for vector and complex extracts
10121         more properly.
10122
10123 2011-03-16  Richard Guenther  <rguenther@suse.de>
10124
10125         PR tree-optimization/48146
10126         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10127         operands avoiding the need for renaming.
10128
10129 2011-03-16  Richard Guenther  <rguenther@suse.de>
10130
10131         * gimple-fold.c (maybe_fold_reference): Open-code relevant
10132         constant folding.  Move MEM_REF canonicalization first.
10133         Rely on fold_const_aggregate_ref for initializer folding.
10134         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10135
10136 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10137
10138         PR middle-end/48136
10139         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10140         arg0/arg1 or their arguments are always fold converted to matching
10141         types.
10142
10143         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10144         to nargs.
10145
10146 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10147
10148         PR lto/46944
10149         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10150         Handle in-tree gold.
10151         (ld_vers): Extract binutils version for gold.
10152         (gcc_cv_ld_hidden): Handle gold here.
10153         (gcc_cv_lto_plugin): Determine level of linker plugin support.
10154         * configure: Regenerate.
10155         * config.in: Regenerate.
10156         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10157         -fuse-linker-plugin otherwise.
10158         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
10159         (LINK_COMMAND_SPEC): Use it.
10160         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10161
10162 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10163
10164         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10165         * calls.c: Remove debug.h include.
10166         (emit_call_1): Don't call virtual_call_token debug hook.
10167         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10168         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10169         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10170         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10171         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10172         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10173         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10174         dwarf2out_virtual_call): Remove.
10175         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10176         copy_call_info and virtual_call hooks.
10177         (dwarf2out_init): Don't initialize vcall_insn_table,
10178         debug_dcall_section and debug_vcall_section.
10179         (prune_unused_types): Don't mark nodes from dcall_table.
10180         (dwarf2out_finish): Don't output dcall or vcall tables.
10181         * final.c (final_scan_insn): Don't call direct_call or
10182         virtual_call debug hooks.
10183         * debug.h (struct gcc_debug_hooks): Remove direct_call,
10184         virtual_call_token, copy_call_info and virtual_call hooks.
10185         (debug_nothing_uid): Remove prototype.
10186         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10187         copy_call_info and virtual_call hooks.
10188         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10189         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10190         * debug.c (do_nothing_debug_hooks): Likewise.
10191         (debug_nothing_uid): Remove.
10192         * doc/invoke.texi (-fenable-icf-debug): Remove.
10193         * common.opt (-fenable-icf-debug): Likewise.
10194
10195         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10196         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10197         call's MEM.  Handle functions returning aggregate through a hidden
10198         first pointer.  For virtual calls add clobbered pc to call arguments
10199         chain.
10200         * dwarf2out.c (gen_subprogram_die): Emit
10201         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10202         can't be emitted.
10203
10204         PR debug/45882
10205         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10206         * rtl.h (ENTRY_VALUE_EXP): Define.
10207         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10208         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10209         * print-rtl.c (print_rtx): Likewise.
10210         * gengtype.c (adjust_field_rtx_def): Likewise.
10211         * var-tracking.c (vt_add_function_parameter): Adjust
10212         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10213         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10214         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10215         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10216         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10217
10218         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10219         Call var_location debug hook even on CALL_INSNs.
10220         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10221         * rtl.def (ENTRY_VALUE): New.
10222         * dwarf2out.c: Include cfglayout.h.
10223         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10224         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10225         (struct call_arg_loc_node): New type.
10226         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10227         tail_call_site_count): New variables.
10228         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10229         DW_TAG_GNU_call_site_parameter.
10230         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10231         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10232         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10233         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10234         and DW_AT_GNU_all_source_call_sites.
10235         (mem_loc_descriptor): Handle ENTRY_VALUE.
10236         (add_src_coords_attributes): Don't add enything if
10237         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10238         (dwarf2out_abstract_function): Save and clear call_arg_location,
10239         call_site_count and tail_call_site_count around dwarf2out_decl call.
10240         (gen_call_site_die): New function.
10241         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10242         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10243         (dwarf2out_function_decl): Clear call_arg_locations,
10244         call_arg_loc_last, set call_site_count and tail_call_site_count
10245         to -1 and free block_map.
10246         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10247         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
10248         followed by any real instructions.
10249         (dwarf2out_begin_function): Set call_site_count and
10250         tail_call_site_count to 0.
10251         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10252         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10253         attempt to force a DIE for it and worst case remove the attribute.
10254         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10255         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10256         the decl itself.
10257         * var-tracking.c: Include tm_p.h.
10258         (vt_stack_adjustments): For calls call note_register_arguments.
10259         (argument_reg_set): New variable.
10260         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10261         ensure the VALUE is resolved.
10262         (call_arguments): New variable.
10263         (prepare_call_arguments): New function.
10264         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10265         (struct expand_loc_callback_data): Add ignore_cur_loc field.
10266         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10267         always use the best expression.
10268         (vt_expand_loc): Add ignore_cur_loc argument.
10269         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10270         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10271         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10272         note for all calls.
10273         (vt_add_function_parameter): Use cselib_lookup_from_insn.
10274         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10275         argument.  Don't call cselib_preserve_only_values and
10276         cselib_reset_table.
10277         (note_register_arguments): New function.
10278         (vt_initialize): Compute argument_reg_set.  Call
10279         vt_add_function_parameters before processing basic blocks instead of
10280         afterwards.  For calls call prepare_call_arguments before calling
10281         cselib_process_insn.
10282         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10283         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10284         (var-tracking.o): Depend on $(TM_P_H).
10285         * cfglayout.h (insn_scope): New prototype.
10286         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10287         * cfglayout.c (insn_scope): No longer static.
10288         * insn-notes.def (CALL_ARG_LOCATION): New.
10289         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10290         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10291         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10292         nothing for DECL_EXTERNAL BLOCK_VARS.
10293
10294 2011-03-16  Alan Modra  <amodra@gmail.com>
10295
10296         PR target/45844
10297         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10298         create invalid offset address for vsx splat insn.
10299         * config/rs6000/predicates.md (splat_input_operand): New.
10300         * config/rs6000/vsx.md (vsx_splat_*): Use it.
10301
10302 2011-03-15  Xinliang David Li  <davidxl@google.com>
10303
10304         PR c/47837
10305         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10306         (normalize_preds): New function.
10307         (is_use_properly_guarded): Normalize def predicates.
10308
10309 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10310
10311         PR target/46788
10312         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10313         in the output template.
10314
10315 2011-03-15  Richard Guenther  <rguenther@suse.de>
10316
10317         PR middle-end/47650
10318         * tree-pretty-print.c (dump_function_declaration): Properly
10319         dump unprototyped and varargs function types.
10320
10321 2011-03-15  Richard Guenther  <rguenther@suse.de>
10322
10323         PR tree-optimization/13954
10324         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10325         and friends.
10326
10327 2011-03-15  Richard Guenther  <rguenther@suse.de>
10328
10329         PR tree-optimization/48037
10330         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10331         selects into BIT_FIELD_REFs.
10332         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10333         vector select.
10334
10335 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
10336
10337         PR tree-optimization/48129
10338         * builtins.c (fold_builtin_snprintf): Convert to type of
10339         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10340         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10341
10342 2011-03-15  Richard Guenther  <rguenther@suse.de>
10343
10344         PR tree-optimization/41490
10345         * tree-ssa-dce.c (propagate_necessity): Handle returns without
10346         value but with VUSE.
10347         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10348         return statements.
10349         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10350         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10351         * tree-tailcall.c (find_tail_calls): Ignore returns.
10352
10353 2011-03-15  Richard Guenther  <rguenther@suse.de>
10354
10355         PR middle-end/48031
10356         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10357         or variable-indexed array accesses when in gimple form.
10358
10359 2011-03-15  Richard Guenther  <rguenther@suse.de>
10360
10361         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
10362
10363 2011-03-15  Alan Modra  <amodra@gmail.com>
10364
10365         PR target/48032
10366         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10367         presume symbol_refs without a symbol_ref_decl are suitably
10368         aligned, nor other trees we may see here.  Handle anchor symbols.
10369         (legitimate_constant_pool_address_p): Comment.  Add mode param.
10370         Check cmodel=medium addresses.  Adjust all calls.
10371         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10372         creating cmodel=medium optimized access to locals.
10373         * config/rs6000/constraints.md (R): Pass QImode to
10374         legitimate_constant_pool_address_p.
10375         * config/rs6000/predicates.md (input_operand): Pass mode to
10376         legitimate_constant_pool_address_p.
10377         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10378         Update prototype.
10379
10380 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10381
10382         PR target/48053
10383         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10384         64-bit constants being loaded into registers other than GPRs such
10385         as loading 0 into a VSX register.
10386
10387 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10388
10389         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
10390
10391 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10392
10393         PR middle-end/47917
10394         * builtins.c (fold_builtin_snprintf): New function.
10395         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10396         (fold_builtin_4): Likewise.
10397
10398         PR middle-end/38878
10399         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10400         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
10401         and C - X == X also strip nops from +/-/p+ operand.
10402         When optimizing -X == C, fold C to arg0's type.
10403
10404         PR debug/47946
10405         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10406         emit it as add_AT_int instead of add_AT_unsigned.
10407
10408 2011-03-14  Tom Tromey  <tromey@redhat.com>
10409
10410         * unwind-dw2.c: Include sys/sdt.h if it exists.
10411         (_Unwind_DebugHook): Use STAP_PROBE2.
10412         * config.in, configure: Rebuild.
10413         * configure.ac: Check for sys/sdt.h.
10414
10415 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
10416
10417         * config/i386/i386.md (ROUND_FLOOR): New constant.
10418         (ROUND_CEIL): Ditto.
10419         (ROUND_TRUNC): Ditto.
10420         (ROUND_MXCSR): Ditto.
10421         (ROUND_NO_EXC): Ditto.
10422         (rint<mode>2): Use new defines instead of numerical constants.
10423         (floor<mode>2): Ditto.
10424         (ceil<mode>2): Ditto.
10425         (btrunc<mode>2): Ditto.
10426         * config/i386/i386-builtin-types.def: Define ROUND function type
10427         aliases.
10428         * config/i386/i386.c (enum ix86_builtins): Add
10429         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10430         (struct builtin_description): Add
10431         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10432         (ix86_expand_sse_round): New static function.
10433         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10434         function types.
10435         (ix86_builtin_vectorized_function): Handle
10436         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10437
10438 2011-03-14  Tom Tromey  <tromey@redhat.com>
10439
10440         * c-parser.c (c_parser_asm_string_literal): Clear
10441         warn_overlength_strings.
10442
10443 2011-03-14  Tom Tromey  <tromey@redhat.com>
10444
10445         * c-parser.c (disable_extension_diagnostics): Save
10446         warn_overlength_strings.
10447         (restore_extension_diagnostics): Restore warn_overlength_strings.
10448
10449 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10450
10451         * BASE-VER: Change to 4.7.0.
10452
10453 2011-03-14  Richard Guenther  <rguenther@suse.de>
10454
10455         PR middle-end/48098
10456         * tree.c (build_vector_from_val): Adjust assert to requirements
10457         and reality.
10458
10459 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10460
10461         PR bootstrap/48102
10462         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
10463
10464 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
10465
10466         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
10467         terms of target_flags_explicit. Adjust copyright year.
10468
10469         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10470         * config/rs6000/t-freebsd: New file. Add override for
10471         LIB2FUNCS_EXTRA.
10472
10473 2011-03-13  Chris Demetriou  <cgd@google.com>
10474
10475         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10476         (-fno-diagnostics-show-option): this, to reflect current default.
10477         (-Werror=): Update text about -fno-diagnostics-show-option.
10478
10479 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
10480
10481         PR target/48053
10482         * config/rs6000/predicates.md (easy_vector_constant_add_self,
10483         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10484         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10485         mode is not V2DImode or V2DFmode.
10486         (vspltis_constant): Do not handle V2DImode and V2DFmode.
10487         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10488         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10489         registers to 0.
10490         (movdi_internal64): Likewise.
10491
10492 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
10493
10494         PR tree-optimization/47127
10495         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10496         parameter.
10497         (set_cloog_options): Same.
10498         (scop_to_clast): Same.
10499         (print_clast_stmt): Do not call cloog_state_malloc and
10500         cloog_state_free.
10501         (print_generated_program): Same.
10502         (gloog): Same.
10503         * graphite-clast-to-gimple.h (cloog_state): Declared.
10504         (scop_to_clast): Adjust declaration.
10505         * graphite.c (cloog_state): Defined here.
10506         (graphite_initialize): Call cloog_state_malloc.
10507         (graphite_finalize): Call cloog_state_free.
10508
10509 2011-03-11  Jason Merrill  <jason@redhat.com>
10510
10511         * attribs.c (lookup_attribute_spec): Take const_tree.
10512         * tree.h: Adjust.
10513
10514 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
10515
10516         * config/sparc/sparc.c (sparc_option_override): Use
10517         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10518
10519 2011-03-11  Richard Guenther  <rguenther@suse.de>
10520
10521         PR tree-optimization/48067
10522         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10523         multiplication result will be only used once on the target
10524         stmt.
10525
10526 2011-03-11  Richard Guenther  <rguenther@suse.de>
10527
10528         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10529
10530 2011-03-11  Richard Guenther  <rguenther@suse.de>
10531
10532         PR lto/48073
10533         * tree.c (find_decls_types_r): Do not walk types only reachable
10534         from IDENTIFIER_NODEs.
10535
10536 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10537
10538         PR middle-end/48044
10539         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10540         all vnode->force_output nodes as needed.
10541
10542 2011-03-11  Jason Merrill  <jason@redhat.com>
10543
10544         PR c++/48069
10545         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10546         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10547
10548 2011-03-11  Martin Jambor  <mjambor@suse.cz>
10549
10550         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10551         cgraph_node.
10552
10553 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10554
10555         PR tree-optimization/48063
10556         * ipa-inline.c (cgraph_decide_inlining): Don't try to
10557         inline functions called once if !tree_can_inline_p (node->callers).
10558
10559 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
10560
10561         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10562         extra_objs.
10563         * config/score/score3.c: Delete.
10564         * config/score/score3.h: Delete.
10565         * config/score/mul-div.S: Delete.
10566         * config/score/sfp-machine.h: Add new file.
10567         * config/score/constraints.md: Add new file.
10568         * config/score/t-score-softfp: Add new file.
10569         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
10570         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10571         (score7_extra_constraint): Delete.
10572         (score7_option_override): Remove unused code.
10573         * config/score/score.c: Remove score3 and score5 define and code.
10574         * config/score/score.h: Remove score3 and score5 define and code.
10575         * config/score/score.md: Remove score3 template and unusual insn.
10576         * config/score/score.opt: Remove score3 and score5 options.
10577
10578 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10579
10580         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10581         when _HPUX_SOURCE is defined.
10582         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10583
10584 2011-03-10  Jason Merrill  <jason@redhat.com>
10585
10586         PR c++/48029
10587         * stor-layout.c (layout_type): Don't set structural equality
10588         on arrays of incomplete type.
10589         * tree.c (type_hash_eq): Handle comparing them properly.
10590
10591 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
10592
10593         PR debug/48043
10594         * config/s390/s390.c (s390_delegitimize_address): Make sure the
10595         result mode matches original rtl mode.
10596
10597 2011-03-10  Nick Clifton  <nickc@redhat.com>
10598
10599         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
10600         (andsi3, andsi3_flags): Fix timings for three operand alternative.
10601
10602 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
10603
10604         PR rtl-optimization/47866
10605         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10606         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10607         if target wasn't scalar.
10608         * function.c (assign_stack_temp_for_type): Assert that neither
10609         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10610         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10611         macro.
10612         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10613
10614 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10615
10616         * config/s390/s390-protos.h (s390_label_align): New prototype.
10617         * config/s390/s390.c (s390_label_align): New function.
10618         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10619
10620 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10621
10622         PR target/47755
10623         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10624         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
10625         (output_vec_const_move): Ditto.
10626
10627 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
10628
10629         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10630         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10631         * config/mips/mips.c (mips_preferred_reload_class): Make static.
10632         Change 'rclass' argument and result type to reg_class_t.
10633         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10634
10635 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
10636
10637         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10638         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10639         (TARGET_MEMORY_MOVE_COST): Define.
10640         (avr_register_move_cost, avr_memory_move_cost): New Functions.
10641
10642 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
10643
10644         PR debug/47881
10645         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10646         removed anything.
10647
10648         PR tree-optimization/48022
10649         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10650         for EQ/NE_EXPR.
10651
10652 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
10653
10654         PR debug/47991
10655         * var-tracking.c (find_use_val): Return NULL for
10656         cui->sets && cui->store_p BLKmode MEMs.
10657
10658 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
10659
10660         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10661         Remove.
10662         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10663         xstormy16_print_operand_address): Remove.
10664         * config/stormy16/stormy16.c (xstormy16_print_operand,
10665         xstormy16_print_operand_address): Make static.
10666         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10667
10668 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
10669
10670         PR target/47862
10671         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10672         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10673         before definition.
10674
10675 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
10676
10677         PR bootstrap/48000
10678         * cfgloopmanip.c (fix_bb_placements): Return immediately
10679         if FROM is BASE_LOOP's header.
10680
10681 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
10682
10683         * gimplify.c (gimplify_function_tree): Fix building calls
10684         to __builtin_return_address.
10685
10686 2011-03-07  Alan Modra  <amodra@gmail.com>
10687
10688         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10689         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10690         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10691         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10692         return_mode args.
10693         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10694         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10695         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10696         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10697         * config/rs6000/rs6000.c
10698         (rs6000_elf_end_indicate_exec_stack): Rename to..
10699         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
10700         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
10701         (rs6000_file_start): ..here.
10702         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10703         file scope variables.
10704         (call_ABI_of_interest): New function.
10705         (init_cumulative_args): Set above vars when function return value
10706         is a float, vector, or small struct.
10707         (rs6000_function_arg_advance_1): Likewise for function args.
10708         (rs6000_va_start): Set rs6000_passes_float if variable arg function
10709         references float args.
10710
10711 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
10712
10713         * doc/cfg.texi: Remove "See" before @ref.
10714         * doc/invoke.texi: Likewise.
10715
10716 2011-03-05  Jason Merrill  <jason@redhat.com>
10717
10718         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10719
10720 2011-03-05  Anthony Green  <green@moxielogic.com>
10721
10722         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10723
10724 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
10725
10726         PR rtl-optimization/47899
10727         * cfgloopmanip.c (fix_bb_placements): Fix first argument
10728         to flow_loop_nested_p when moving the loop upward.
10729
10730 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
10731
10732         PR target/47719
10733         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
10734
10735 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
10736
10737         PR tree-optimization/47967
10738         * ipa-cp.c (build_const_val): Return NULL instead of creating
10739         VIEW_CONVERT_EXPR for mismatching sizes.
10740         (ipcp_create_replace_map): Return NULL if build_const_val failed.
10741         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10742         give up on versioning.
10743
10744 2011-03-05  Alan Modra  <amodra@gmail.com>
10745
10746         PR target/47986
10747         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10748         full cmodel medium/large lo_sum + high addresses.
10749
10750 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10751
10752         * config/s390/s390.c (s390_decompose_address): Reject non-literal
10753         pool references in UNSPEC_LTREL_OFFSET.
10754
10755 2011-03-04  Jan Hubicka  <jh@suse.cz>
10756
10757         PR lto/47497
10758         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10759         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
10760         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10761         Add node pointers.
10762         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10763         cgraph_add_thunk): Add node pointers.
10764         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10765         associated to right node.
10766         (input_node): Update use of cgraph_same_body_alias
10767         and cgraph_add_thunk.
10768
10769 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
10770
10771         * config/i386/i386.opt (mprefer-avx128): New flag.
10772         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10773         modes when the flag -mprefer-avx128 is on.
10774
10775 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
10776
10777         * dwarf2out.c (compare_loc_operands): Fix address handling.
10778
10779 2011-03-04  Alan Modra  <amodra@gmail.com>
10780
10781         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10782
10783 2011-03-04  Richard Guenther  <rguenther@suse.de>
10784
10785         PR middle-end/47968
10786         * expmed.c (extract_bit_field_1): Prefer vector modes that
10787         vec_extract patterns can handle.
10788
10789 2011-03-04  Richard Guenther  <rguenther@suse.de>
10790
10791         PR middle-end/47975
10792         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10793
10794 2011-03-04  Richard Henderson  <rth@redhat.com>
10795
10796         * explow.c (emit_stack_save): Remove 'after' parameter.
10797         (emit_stack_restore): Likewise.
10798         * expr.h: Update to match.
10799         * builtins.c, calls.c, stmt.c: Likewise.
10800         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
10801         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
10802         * function.c (expand_function_end): Insert the emit_stack_save
10803         sequence before parm_birth_insn instead of after.
10804
10805 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
10806
10807         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
10808         (ssse3_pmaddubsw128): Ditto.
10809         (ssse3_pmaddubsw): Ditto.
10810
10811 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
10812
10813         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10814
10815 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
10816
10817         PR c/47963
10818         * gimplify.c (omp_add_variable): Only call omp_notice_variable
10819         on TYPE_SIZE_UNIT if it is a DECL.
10820
10821         PR debug/47283
10822         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10823         first operand is not is_gimple_mem_ref_addr, try to fold it.
10824         If the operand still isn't is_gimple_mem_ref_addr, clear
10825         MEM_EXPR on op0.
10826
10827 2011-03-03  Richard Guenther  <rguenther@suse.de>
10828
10829         PR middle-end/47283
10830         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10831         match comment.
10832         (refs_may_alias_p_1): For release branches return true if
10833         we are confused by our input.
10834
10835 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10836
10837         * config/s390/s390.c (s390_function_value): Rename to ...
10838         (s390_function_and_libcall_value): ... this.
10839         (s390_function_value): New function.
10840         (s390_libcall_value): New function.
10841         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
10842         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10843         target macro definitions.
10844         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10845
10846 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
10847
10848         * config/i386/freebsd64.h (CC1_SPEC): Define.
10849         * config/i386/linux64.h (CC1_SPEC): Define.
10850         * config/i386/x86-64.h (CC1_SPEC): Don't define.
10851
10852 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
10853
10854         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10855         Remove.
10856         * config/stormy16/stormy16.c: Include reload.h.
10857         (xstormy16_memory_move_cost): New function.
10858         (TARGET_MEMORY_MOVE_COST): Define.
10859
10860 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
10861
10862         PR rtl-optimization/47925
10863         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10864         with side effects.  Remove the more-specific check for volatile asms.
10865
10866 2011-03-02  Alan Modra  <amodra@gmail.com>
10867
10868         PR target/47935
10869         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10870         toc relative addresses for valid offsets.
10871
10872 2011-03-01  Richard Guenther  <rguenther@suse.de>
10873
10874         PR tree-optimization/47890
10875         * tree-vect-loop.c (get_initial_def_for_induction): Set
10876         related stmt properly.
10877
10878 2011-03-01  Richard Guenther  <rguenther@suse.de>
10879
10880         PR lto/47924
10881         * lto-streamer.c (lto_record_common_node): Also register
10882         the canonical type.
10883
10884 2011-03-01  Richard Guenther  <rguenther@suse.de>
10885
10886         PR lto/46911
10887         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10888         Do not stream DECL_ABSTRACT_ORIGIN.
10889         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10890         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10891         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10892         Do not stream DECL_ABSTRACT_ORIGIN.
10893         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10894         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10895
10896 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
10897
10898         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10899         FUNCTION_VALUE_REGNO_P): Remove.
10900         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
10901         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10902         Add 'outgoing' argument.
10903         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10904         function.
10905         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10906         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10907
10908 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
10909
10910         PR debug/28047
10911         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10912         (lookup_filename): Likewise.
10913         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
10914
10915 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
10916             Jakub Jelinek  <jakub@redhat.com>
10917
10918         PR middle-end/47893
10919         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10920         (assign_stack_local_1): Change last argument type to int.
10921         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10922         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
10923         don't record padding space into frame_space_list nor use those areas.
10924         (assign_stack_local): Adjust caller.
10925         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10926         of assign_stack_local, pass 0 as last argument.
10927         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10928         callers.
10929
10930 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
10931
10932         PR debug/47283
10933         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10934         Use target address_mode and pointer_mode hooks instead of hardcoded
10935         Pmode and ptr_mode.  Handle some simple cases of extending if
10936         POINTERS_EXTEND_UNSIGNED < 0.
10937         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10938         Call convert_debug_memory_address.
10939         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10940         convert_debug_memory_address.
10941
10942         PR middle-end/46790
10943         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10944         * configure: Regenerated.
10945         * config.in: Regenerated.
10946         * varasm.c (default_function_section): Return NULL
10947         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
10948
10949 2011-02-28  Martin Jambor  <mjambor@suse.cz>
10950
10951         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10952         the description to match the printed values.
10953
10954 2011-02-28  Richard Guenther  <rguenther@suse.de>
10955
10956         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10957         of the copied scope tree.
10958
10959 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10960
10961         * doc/extend.texi (Function Attributes): Avoid deeply (and
10962         wrongly) nested tables.
10963
10964 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
10965
10966         PR middle-end/47903
10967         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10968         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10969         r isn't op0 nor op1.
10970
10971 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10972
10973         * config/avr/avr.md: Remove magic comment for emacs.
10974
10975 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10976
10977         PR target/45261
10978         * config/avr/avr.c (avr_option_override): Use error on bad options.
10979         (avr_help): New function.
10980         (TARGET_HELP): Define.
10981
10982 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
10983
10984         PR target/42240
10985         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10986         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10987
10988 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
10989
10990         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10991         (ARM Options): Ditto.
10992         (i386 and x86-64 Options): Ditto.
10993         (RX Options): Ditto.
10994         (SPARC Options): Ditto.
10995
10996 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
10997
10998         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
10999         FreeBSD 6 and later.  Generally use cpu generic.
11000
11001 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
11002
11003         * doc/cpp.texi: Update copyright years.
11004
11005 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
11006
11007         PR target/46898
11008         * config/lm32/lm32.md (ashrsi3): Added needed variable.
11009
11010 2011-02-25  Jon Beniston  <jon@beniston.com>
11011
11012         PR target/46898
11013         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
11014         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
11015         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
11016         (lm32_block_move_inline): Add type cast to remove warning.
11017         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
11018         (gen_int_relational): Move declarations to start of function.
11019
11020 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11021
11022         PR tree-optimization/45470
11023         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11024         can throw internally only.
11025         * tree-vect-stmts.c (vectorizable_call): Likewise.
11026
11027 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
11028
11029         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
11030         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11031         * config/stormy16/stormy16-protos.h
11032         (xstormy16_preferred_reload_class): Remove.
11033         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
11034         static. Change 'rclass' argument and return type to reg_class_t.
11035         (TARGET_PREFERRED_RELOAD_CLASS,
11036         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11037
11038 2011-02-24  Richard Guenther  <rguenther@suse.de>
11039
11040         * lto-streamer-in.c (input_bb): Do not find referenced vars
11041         in debug statements.
11042
11043 2011-02-23  Jason Merrill  <jason@redhat.com>
11044
11045         * common.opt (fabi-version): Document v5 and v6.
11046
11047 2011-02-23  Richard Guenther  <rguenther@suse.de>
11048
11049         PR tree-optimization/47849
11050         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
11051
11052 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11053
11054         * opts-common.c (decode_cmdline_option): Print empty string
11055         argument as "" in decoded->orig_option_with_args_text.
11056         * gcc.c (execute): Print empty string argument as ""
11057         in the verbose output.
11058         (do_spec_1): Keep empty string argument.
11059
11060 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
11061
11062         * config.gcc: Declare score-* and crx-* obsolete.
11063
11064 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11065
11066         PR rtl-optimization/47763
11067         * web.c (web_main): Ignore naked clobber when replacing register.
11068
11069 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
11070
11071         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11072         Remove.
11073
11074 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11075
11076         PR doc/47848
11077         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11078
11079 2011-02-22  Mike Stump  <mikestump@comcast.net>
11080
11081         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11082         assembler.
11083         * configure: Regenerate.
11084
11085 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
11086
11087         PR rtl-optimization/46002
11088         * ira-color.c (update_copy_costs): Change class intersection
11089         test to reg_class_contents[] test of 'hard_regno'.
11090
11091 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
11092
11093         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11094         than Driver option.
11095         * config/hpux11.opt (mt): Likewise.
11096         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11097         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11098         * config/vax/elf.opt (mno-asm-pic): Likewise.
11099         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11100
11101 2011-02-21  Mike Stump  <mikestump@comcast.net>
11102
11103         PR target/47822
11104         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11105         tree so we can get save the type.
11106         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11107         for CFString instead of trying to use past the end of the builtins.
11108         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11109         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11110         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11111         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11112         Rename to darwin_builtin_cfstring.
11113         (darwin_init_cfstring_builtins): Return the built type.
11114
11115 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
11116
11117         PR target/47840
11118         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11119         (_mm256_insert_epi64): Use _mm_insert_epi64.
11120
11121 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
11122
11123         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11124         * config/stormy16/stormy16-protos.h
11125         (xstormy16_mode_dependent_address_p): Remove.
11126         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11127         Make static. Change return type to bool. Change argument type to
11128         const_rtx. Remove dead code.
11129         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11130
11131 2011-02-21  Richard Guenther  <rguenther@suse.de>
11132
11133         PR lto/47820
11134         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11135         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11136         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11137         TUs context.
11138         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11139         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11140
11141 2011-02-20  Richard Guenther  <rguenther@suse.de>
11142
11143         PR lto/47822
11144         * tree.c (free_lang_data_in_decl): Clean builtins from
11145         the TU decl BLOCK_VARS.
11146
11147 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
11148
11149         PR debug/47620
11150         PR debug/47630
11151         * haifa-sched.c (fix_tick_ready): Skip tick computation
11152         for debug insns.
11153
11154 2011-02-19  Richard Guenther  <rguenther@suse.de>
11155
11156         PR lto/47647
11157         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11158         Remove lazy BLOCK_VARS streaming.
11159         (lto_input_ts_block_tree_pointers): Likewise.
11160         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11161
11162 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11163
11164         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11165
11166 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11167
11168         * config/i386/biarch32.h, config/i386/mach.h,
11169         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11170
11171 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
11172
11173         PR target/47800
11174         * config/i386/i386.md (peephole2 for shift and plus): Use
11175         operands[1] original mode in the first insn.
11176
11177 2011-02-18  Mike Stump  <mikestump@comcast.net>
11178
11179         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
11180
11181 2011-02-18  Jan Hubicka  <jh@suse.cz>
11182
11183         PR middle-end/47788
11184         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11185         to zero when the function is not inlinable at all.
11186
11187 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11188
11189         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11190         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11191         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11192         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11193         * config/pa/t-pa64: Likewise.
11194         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11195
11196 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11197
11198         PR driver/47787
11199         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11200
11201 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11202
11203         PR target/47792
11204         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11205
11206 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
11207
11208         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11209         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11210         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11211         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11212         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11213         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11214         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11215         m32r_load_postinc_p, m32r_store_preinc_predec_p,
11216         m32r_legitimate_address_p): New functions.
11217         * config/m32r/constraints.md (constraint "S"): Don't use
11218         STORE_PREINC_PREDEC_P.
11219         (constraint "U"): Don't use LOAD_POSTINC_P.
11220
11221 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
11222
11223         PR rtl-optimization/46178
11224         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11225         compute ira_hard_regno_cover_class[].
11226
11227 2011-02-18  Richard Guenther  <rguenther@suse.de>
11228
11229         PR lto/47798
11230         * lto-streamer.h (lto_global_var_decls): Declare.
11231         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11232         statics for global var processing.
11233
11234 2011-02-18  Richard Guenther  <rguenther@suse.de>
11235
11236         PR tree-optimization/47737
11237         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11238         edge dominance check.
11239
11240 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11241
11242         PR debug/47780
11243         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11244         avoid invalid rtx sharing.
11245
11246 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
11247
11248         * doc/cpp.texi (Obsolete Features): Add background on the
11249         origin of assertions.
11250
11251 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
11252
11253         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
11254         objc_abi == 2.
11255         * config/darwin.c (output_objc_section_asm_op): Added support for
11256         ABI v1 and v2.
11257         (is_objc_metadata): New.
11258         (darwin_objc2_section): New.
11259         (darwin_objc1_section): New.
11260         (machopic_select_section): Added support for ABI v1 and v2.
11261         (darwin_emit_objc_zeroed): New.
11262         (darwin_output_aligned_bss): Detect objc metadata and treat it
11263         appropriately.
11264         (darwin_asm_output_aligned_decl_common): Same.
11265         (darwin_asm_output_aligned_decl_local): Same.
11266         * config/darwin-sections.def: Updated for ABI v1 and v2.
11267         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11268         compiling Objective-C code for the NeXT runtime, default to using
11269         ABI version 0 for 32-bit, and version 2 for 64-bit.
11270
11271 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11272
11273         * common.opt (optimize_fast): New Variable.
11274         * opts.c (default_options_optimization): Use opts->x_optimize_fast
11275         instead of local variable ofast.
11276
11277 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
11278
11279         * doc/invoke.texi (fobjc-abi-version): Documented.
11280         (fobjc-nilcheck): Documented.
11281         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11282         version.
11283
11284 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11285
11286         PR driver/47390
11287         * common.opt (export-dynamic): New Driver option.
11288         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11289
11290 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11291
11292         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11293
11294 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
11295             Jan Hubicka  <jh@suse.cz>
11296
11297         PR debug/47106
11298         PR debug/47402
11299         * cfgexpand.c (account_used_vars_for_block): Remove.
11300         (estimated_stack_frame_size): Use referenced vars.
11301         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11302         that were referenced in the original function.  Test src_fn
11303         rather than cfun.  Drop redundant get_var_ann.
11304         (setup_one_parameter): Drop redundant get_var_ann.
11305         (declare_return_variable): Likewise.
11306         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11307         (copy_arguments_for_versioning): Drop redundant get_var_ann.
11308         * ipa-inline.c (compute_inline_parameters): Do not compute
11309         disregard_inline_limits here.
11310         (compute_inlinable_for_current, pass_inlinable): New.
11311         (pass_inline_parameters): Require PROP_referenced_vars.
11312         * cgraphunit.c (cgraph_process_new_functions): Don't run
11313         compute_inline_parameters explicitly unless function is in SSA form.
11314         (cgraph_analyze_function): Set .disregard_inline_limits.
11315         * tree-sra.c (convert_callers): Compute inliner parameters
11316         only for functions already in SSA form.
11317
11318 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11319
11320         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11321         -mlittle-endian-data.
11322
11323 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11324
11325         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11326         -mno-fpu, not -fpu and -no-fpu.
11327         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11328         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11329
11330 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
11331
11332         PR target/43653
11333         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11334         input reload with PLUS RTX.
11335
11336 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11337
11338         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11339         of InverseVar(MDMX).
11340
11341 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11342
11343         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11344         --m4-340.
11345
11346 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11347
11348         * config/mn10300/mn10300.opt (mno-crt0): New.
11349
11350 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11351
11352         * config/m68k/uclinux.opt (static-libc): New Driver option.
11353
11354 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11355
11356         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11357
11358 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11359
11360         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11361         %{muser-extend-enabled}.
11362
11363 2011-02-16  Richard Guenther  <rguenther@suse.de>
11364
11365         PR tree-optimization/47738
11366         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11367         the TODO from tree_predictive_commoning.
11368
11369 2011-02-15  Jeff Law  <law@redhat.com>
11370
11371         Revert
11372         2011-01-25  Jeff Law  <law@redhat.com>
11373
11374         PR rtl-optimization/37273
11375         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11376         handle them like argument loads from stack slots.  Do not double
11377         count memory for memory constants and argument loads from stack slots.
11378
11379 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11380
11381         PR middle-end/47725
11382         * combine.c (cant_combine_insn_p): Revert the last change.
11383
11384 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
11385
11386         PR target/47755
11387         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11388         mode for vector constants.  Remove code that checks for TImode.
11389
11390 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11391
11392         PR debug/47106
11393         PR debug/47402
11394         * cgraph.h (compute_inline_parameters): Return void.
11395         * ipa-inline.c (compute_inline_parameters): Adjust.
11396
11397 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11398
11399         PR debug/47106
11400         PR debug/47402
11401         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11402         rather than decl.
11403         * cfgexpand.c (estimated_stack_frame_size): Likewise.
11404         * ipa-inline.c (compute_inline_parameters): Adjust.
11405
11406 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11407
11408         PR debug/47106
11409         PR debug/47402
11410         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11411         Adjust all users.  Pass FN to...
11412         * tree-flow-inline.h (first_referenced_var): ... this.  Add
11413         fn argument.
11414         * ipa-struct-reorg.c: Adjust.
11415         * tree-dfa.c: Adjust.
11416         * tree-into-ssa.c: Adjust.
11417         * tree-sra.c: Adjust.
11418         * tree-ssa-alias.c: Adjust.
11419         * tree-ssa-live.c: Adjust.
11420         * tree-ssa.c: Adjust.
11421         * tree-ssanames.c: Adjust.
11422         * tree-tailcall.c: Adjust.
11423
11424 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11425
11426         PR debug/47106
11427         PR debug/47402
11428         * tree-flow.h (referenced_var_lookup): Add fn parameter.
11429         Adjust all callers.
11430         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11431         * tree-flow-inline.h: Adjust.
11432         * gimple-pretty-print.c: Adjust.
11433         * tree-into-ssa.c: Adjust.
11434         * tree-ssa.c: Adjust.
11435         * cfgexpand.c: Adjust.
11436
11437 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11438
11439         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11440         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11441         (EXTRA_CONSTRAINT): Delete.
11442         * config/iq2000/constraints.md: New file.
11443         * config/iq2000/iq2000.md: Include it.
11444         (define_insn ""): Delete.
11445         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11446         unsupported constraint letters from patterns.
11447         (call_value, call_value_internal1): Likewise.
11448         (call_value_multiple_internal1): Likewise.
11449
11450 2011-02-15  Nick Clifton  <nickc@redhat.com>
11451
11452         * config/mn10300/mn10300.c: Include tm-constrs.h.
11453         (struct liw_data): New data structure describing an LIW candidate
11454         instruction.
11455         (extract_bundle): Use struct liw_data.  Allow small integer
11456         operands for some instructions.
11457         (check_liw_constraints): Use struct liw_data.  Remove swapped
11458         parameter.  Add comments describing the checks.  Fix bug when
11459         assigning the source of liw1 to the source of liw2.
11460         (liw_candidate): Delete.  Code moved into extract_bundle.
11461         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
11462         before swapping.
11463         * config/mn10300/predicates.md (liw_operand): New predicate.
11464         Allows registers and small integer constants.
11465         * config/mn10300/constraints.md (O): New constraint.  Accetps
11466         integers in the range -8 to +7 inclusive.
11467         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11468         for moving a small integer into a register.  Give this alternative
11469         LIW attributes.
11470         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11471         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11472         using the J,K,L and M constraints,
11473         (liw): Remove SI mode on second operands to allow for HI and QI
11474         mode values.
11475         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
11476         instruction.
11477
11478 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11479
11480         PR middle-end/47725
11481         * combine.c (cant_combine_insn_p): Check zero/sign extended
11482         hard registers.
11483
11484 2011-02-15  Richard Guenther  <rguenther@suse.de>
11485
11486         PR tree-optimization/47743
11487         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11488         for a non-type-compatible VN lookup bail out.
11489
11490 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11491
11492         * config/fr30/constraints.md: New file.
11493         * config/fr30/fr30.md: Include it.
11494         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11495         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11496         (EXTRA_CONSTRAINT): Delete.
11497
11498 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11499
11500         * config/frv/constraints.md: New file.
11501         * config/frv/predicates.md: Include it.
11502         * config/frv/frv.c (reg_class_from_letter): Delete.
11503         (frv_option_override): Don't initialize it.
11504         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11505         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11506         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11507         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11508         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11509         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11510         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11511         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11512         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11513         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11514         (REG_CLASS_FROM_CONSTRAINT): Delete.
11515
11516 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
11517
11518         PR middle-end/47581
11519         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11520         if frame size is 0 in a leaf function.
11521
11522 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11523
11524         PR pch/14940
11525         * config/alpha/host-osf.c: New file.
11526         * config/alpha/x-osf: New file.
11527         * config.host (alpha*-dec-osf*): Use it.
11528
11529 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11530
11531         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11532         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11533         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11534         (rx_mode_dependent_address_p): ...this. Make static. Change argument
11535         type to const_rtx.
11536         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11537
11538 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11539
11540         * config/stormy16/constraints.md: New file.
11541         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11542         Use satisfies_constraint_Q and satisfies_constraint_R.
11543         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11544         Delete.
11545         (xstormy16_legitiamte_address_p): Declare.
11546         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11547         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11548         (EXTRA_CONSTRAINT): Delete.
11549         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
11550         Un-staticize.
11551         (xstormy16_extra_constraint_p): Delete.
11552
11553 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11554
11555         PR tree-optimization/46494
11556         * loop-unroll.c (split_edge_and_insert): Adjust comment.
11557         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11558         (pass_rtl_loop_done): Add TODO_verify_flow.
11559         * fwprop.c (pass_rtl_fwprop): Likewise.
11560         * modulo-sched.c (pass_sms): Likewise.
11561         * tree-ssa-dom.c (pass_dominator): Likewise.
11562         * tree-ssa-loop-ch.c (pass_ch): Likewise.
11563         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11564         (pass_tree_loop_done): Likewise.
11565         * tree-ssa-pre.c (execute_pre): Likewise.
11566         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11567         * tree-ssa-sink.c (pass_sink_code): Likewise.
11568         * tree-vrp.c (pass_vrp): Likewise.
11569
11570 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11571
11572         * config/v850/constraints.md: New file.
11573         * config/v850/v850.md: Include it.
11574         * config/v850/predicates.md (reg_or_0_operand): Use
11575         satisfies_constraint_G.
11576         (special_symbolref_operand): Use satisfies_constraint_K.
11577         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11578         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11579         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11580         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11581         (EXTRA_CONSTRAINT): Delete.
11582         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11583         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11584         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
11585
11586 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11587
11588         PR target/47696
11589         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11590         description.
11591
11592 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11593
11594         * config/mcore/constraints.md: New file.
11595         * config/mcore/mcore.md: Include it.
11596         * config/mcore/mcore.c (reg_class_from_letter): Delete.
11597         * config/mcore/mcore.h (reg_class_from_letter): Delete.
11598         (REG_CLASS_FROM_LETTER): Delete.
11599         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11600         insn_const_int_ok_for_constraint.
11601         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11602         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11603         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11604         (EXTRA_CONSTRAINT): Delete.
11605
11606 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11607
11608         PR ada/41929
11609         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11610         (IS_SIGHANDLER): Define.
11611         (sparc64_is_sighandler): New function, split off from
11612         sparc64_fallback_frame_state.
11613         (sparc_is_sighandler): New function, split off from
11614         sparc_fallback_frame_state.
11615         (sparc64_fallback_frame_state): Merge with ...
11616         (sparc_fallback_frame_state): ... this into ...
11617         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
11618         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
11619         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
11620         stack instead of hardcoded offsets.
11621
11622 2011-02-14  Andriy Gapon  <avg@freebsd.org>
11623
11624         PR target/45808
11625         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11626
11627 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11628
11629         * configure: Regenerate.
11630
11631 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
11632
11633         PR driver/45731
11634         * gcc.c (asm_options): Correct spec matching --target-help.
11635
11636 2011-02-12  Martin Jambor  <mjambor@suse.cz>
11637
11638         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11639         to gimple call error.
11640
11641 2011-02-12  Mike Stump  <mikestump@comcast.net>
11642
11643         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11644         comments in backslash regions.
11645
11646 2011-02-12  Mike Stump  <mikestump@comcast.net>
11647             Jakub Jelinek  <jakub@redhat.com>
11648             Iain Sandoe  <iains@gcc.gnu.org>
11649
11650         PR target/47324
11651         * dwarf2out.c (output_cfa_loc): When required, apply the
11652         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11653         (output_loc_sequence): Likewise.
11654         (output_loc_operands_raw): Likewise.
11655         (output_loc_sequence_raw): Likewise.
11656         (output_cfa_loc): Likewise.
11657         (output_loc_list): Suppress register number adjustment when
11658         calling output_loc_sequence()
11659         (output_die): Likewise.
11660
11661 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
11662
11663         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11664         Remove macros.
11665         * config/xtensa/xtensa.c (xtensa_register_move_cost,
11666         xtensa_memory_move_cost): New functions.
11667         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11668
11669 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
11670
11671         PR lto/47225
11672         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11673         in the current directory.
11674         * configure: Rebuilt.
11675
11676 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11677
11678         * config/darwin.c (darwin_override_options): Add a hunk missed
11679         from the commit of r168571.  Trim comment line lengths and
11680         correct indents of the preceding block.
11681
11682 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11683
11684         * gcc.c (driver_handle_option): Concatenate the argument to -F with
11685         the switch.
11686
11687 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11688
11689         * common.opt (nostartfiles): New Driver option.
11690
11691 2011-02-11  Xinliang David Li  <davidxl@google.com>
11692
11693         PR tree-optimization/47707
11694         * tree-chrec.c (convert_affine_scev): Keep type precision.
11695
11696 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
11697
11698         PR tree-optimization/47420
11699         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11700
11701 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
11702
11703         PR rtl-optimization/47614
11704         * rtl.h (check_for_inc_dec): Declare.
11705         * dse.c (check_for_inc_dec): Externalize...
11706         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11707         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11708
11709 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11710
11711         PR driver/47678
11712         * gcc.c (main): Do not compile inputs if there were errors in
11713         option handling.
11714         * opts-common.c (read_cmdline_option): Check for wrong language
11715         after other error checks.
11716
11717 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
11718
11719         * cgraph.c: Fix comment typos.
11720         * cgraph.h: Likewise.
11721         * cgraphunit.c: Likewise.
11722         * ipa-cp.c: Likewise.
11723         * ipa-inline.c: Likewise.
11724         * ipa-prop.c: Likewise.
11725         * ipa-pure-const.c: Likewise.
11726         * ipa-ref.c: Likewise.
11727         * ipa-reference.c: Likewise.
11728
11729 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
11730
11731         PR debug/47684
11732         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
11733
11734 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11735
11736         PR testsuite/47400
11737         * doc/sourcebuild.texi (Require Support): Document
11738         dg-require-ascii-locale.
11739
11740 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
11741
11742         * doc/lto.texi (Write summary): Fix missing parentheses.
11743
11744 2011-02-10  DJ Delorie  <dj@redhat.com>
11745
11746         * config/m32c/m32c.c (m32c_option_override): Disable
11747         -fcombine-stack-adjustments until flag value tracking and compare
11748         optimization can be rewritten.
11749
11750 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
11751
11752         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11753         PROCESSOR_POWER7.
11754         (PROCESSOR_DEFAULT64): Likewise.
11755
11756 2011-02-10  Richard Henderson  <rth@redhat.com>
11757
11758         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11759         change from 2011-02-03.
11760         * config/rx/rx.c (flags_from_code): Likewise.
11761         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11762         is valid, n/pz otherwise.
11763         (rx_select_cc_mode): Return CCmode if Y is not zero.
11764
11765 2011-02-10  Richard Guenther  <rguenther@suse.de>
11766
11767         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
11768
11769 2011-02-10  Richard Guenther  <rguenther@suse.de>
11770
11771         PR tree-optimization/47677
11772         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11773
11774 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
11775
11776         PR target/47665
11777         * combine.c (make_compound_operation): Only change shifts into
11778         multiplication for SCALAR_INT_MODE_P.
11779
11780 2011-02-10  Jie Zhang  <jie@codesourcery.com>
11781
11782         PR testsuite/47622
11783         Revert
11784         2011-02-05  Jie Zhang  <jie@codesourcery.com>
11785         PR debug/42631
11786         * web.c (entry_register): Don't clobber the number of the
11787         first uninitialized reference in used[].
11788
11789 2011-02-09  Richard Guenther  <rguenther@suse.de>
11790
11791         PR tree-optimization/47664
11792         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11793         all edges again.
11794
11795 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
11796
11797         PR target/46481
11798         PR target/47032
11799         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
11800         PROCESSOR_POWER7.
11801         (PROCESSOR_DEFAULT64): Same.
11802         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
11803
11804 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11805
11806         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
11807
11808 2011-02-09  Martin Jambor  <mjambor@suse.cz>
11809
11810         PR middle-end/45505
11811         * tree-sra.c (struct access): New flags grp_scalar_read and
11812         grp_scalar_write.  Changed description of assignment read and write
11813         flags.
11814         (dump_access): Dump new flags, reorder all of them.
11815         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11816         to detect multiple scalar reads.
11817         (analyze_access_subtree): Use the new scalar read write flags instead
11818         of the old flags.  Adjusted comments.
11819
11820 2011-02-08  DJ Delorie  <dj@redhat.com>
11821
11822         PR target/47548
11823         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11824         patterns.
11825
11826 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11827
11828         * config/m68k/uclinux.opt: New.
11829         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11830
11831 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11832
11833         * config/cris/elf.opt (sim): New Driver option.
11834
11835 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11836
11837         * config/xtensa/elf.opt: New.
11838         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11839
11840 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11841
11842         * config/vax/elf.opt: New.
11843         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11844
11845 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11846
11847         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11848
11849 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11850
11851         * config/gnu-user.opt: New.
11852         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11853         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11854         *-*-uclinux*): Use gnu-user.opt.
11855
11856 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
11857
11858         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11859         * config/i386/gnu.h (CPP_SPEC): Likewise.
11860
11861 2011-02-08  Ian Lance Taylor  <iant@google.com>
11862
11863         * common.opt (fcx-limited-range): Add SetByCombined flag.
11864         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11865         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11866         (fassociative-math, freciprocal-math): Likewise.
11867         (funsafe-math-optimizations): Likewise.
11868         * opth-gen.awk: Handle SetByCombined.
11869         * optc-gen.awk: Likewise.
11870         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
11871         (set_unsafe_math_optimizations_flags): Likewise.
11872         * doc/options.texi (Option properties): Document SetByCombined.
11873
11874 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11875
11876         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11877         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11878         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11879         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11880         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11881
11882 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
11883
11884         PR tree-optimization/46834
11885         PR tree-optimization/46994
11886         PR tree-optimization/46995
11887         * graphite-sese-to-poly.c (used_outside_reduction): New.
11888         (detect_commutative_reduction): Call used_outside_reduction.
11889         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11890         translate_scalar_reduction_to_array only when at least one
11891         loop-phi/close-phi tuple has been detected.
11892
11893 2011-02-08  Richard Guenther  <rguenther@suse.de>
11894
11895         PR middle-end/47639
11896         * tree-vect-generic.c (expand_vector_operations_1): Update
11897         stmts here ...
11898         (expand_vector_operations): ... not here.  Cleanup EH info
11899         and the CFG if required.
11900
11901 2011-02-08  Richard Guenther  <rguenther@suse.de>
11902
11903         PR tree-optimization/47641
11904         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11905         require type compatibility.
11906
11907 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11908
11909         * gimple-low.c (lower_function_body): Don't remove the location of
11910         the return statement here.
11911         (lower_gimple_return): Do it here instead but only if the return
11912         statement is actually used twice.
11913
11914 2011-02-08  Richard Guenther  <rguenther@suse.de>
11915
11916         PR tree-optimization/47632
11917         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11918         unused up_to_stmt parameter, return whether cfg-cleanup is
11919         necessary, remove EH info properly.
11920         (forward_propagate_into_gimple_cond): Adjust caller.
11921         (forward_propagate_into_cond): Likewise.
11922         (forward_propagate_comparison): Likewise.
11923         (tree_ssa_forward_propagate_single_use_vars): Make
11924         forward_propagate_comparison case similar to the two others.
11925
11926 2011-02-08  Nick Clifton  <nickc@redhat.com>
11927
11928         * config/mn10300/mn10300.opt (mliw): New command line option.
11929         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11930         (liw_bundling): New automaton.
11931         (liw): New attribute.
11932         (liw_op): New attribute.
11933         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11934         (movsi_internal): Add LIW attributes.
11935         (andsi3): Likewise.
11936         (iorsi3): Likewise.
11937         (xorsi3): Likewise.
11938         (addsi3): Separate register and immediate alternatives.
11939         Add LIW attributes.
11940         (subsi3): Likewise.
11941         (cmpsi): Likewise.
11942         (aslsi3): Likewise.
11943         (lshrsi3): Likewise.
11944         (ashrsi3): Likewise.
11945         (liw): New pattern.
11946         * config/mn10300/mn10300.c (liw_op_names): New
11947         (mn10300_print_operand): Handle 'W' operand descriptor.
11948         (extract_bundle): New function.
11949         (check_liw_constraints): New function.
11950         (liw_candidate): New function.
11951         (mn10300_bundle_liw): New function.
11952         (mn10300_reorg): New function.
11953         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11954         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11955         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11956         __LIW__ or __NO_LIW__.
11957         * doc/invoke.texi: Describe the -mliw command line option.
11958
11959 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11960
11961         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11962         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11963         pthread_mutex_unlock): Remove.
11964         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11965         * config/pa/t-pa64: Likewise.
11966         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11967         shared libc if not linking against libpthread.
11968         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11969
11970 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
11971
11972         PR target/47558
11973         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11974         on 10.6 and later to ensure that we always use the unwinder from
11975         the system.  Only add -no_compact_unwind when tarteting darwin
11976         10.6 or later.
11977
11978 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
11979
11980         PR target/46997
11981         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11982         (vec_interleave_lowv2sf): Ditto.
11983         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11984         (vec_extract_oddv2sf): Ditto.
11985
11986 2011-02-07  Mike Stump  <mikestump@comcast.net>
11987
11988         PR target/42333
11989         Add __ieee_divdc3 entry point.
11990         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11991         entry point.
11992         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11993         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
11994         * config/darwin.c (darwin_rename_builtins): Add.
11995         * config/darwin-protos.h (darwin_rename_builtins): Add.
11996
11997 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
11998
11999         PR target/47636
12000         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
12001         for the condition.
12002
12003 2011-02-07  Mike Stump  <mikestump@comcast.net>
12004
12005         * config/darwin.opt (mmacosx-version-min): Update default OS version.
12006
12007 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
12008
12009         PR target/47534
12010         * config/avr/libgcc.S (exit): Move .endfunc
12011
12012 2011-02-07  Richard Guenther  <rguenther@suse.de>
12013
12014         PR tree-optimization/47615
12015         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
12016         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
12017         (run_scc_vn): Initialize it.
12018         (visit_reference_op_load): Use it.
12019         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
12020
12021 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12022
12023         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
12024         DImode trapping arithmetic libfuncs.
12025
12026 2011-02-07  Richard Guenther  <rguenther@suse.de>
12027
12028         PR tree-optimization/47621
12029         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
12030         two duplicates ...
12031         (execute_update_addresses_taken): ... here.  Make it more
12032         conservative in what we accept.
12033
12034 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12035
12036         * config/sparc/freebsd.h (ASM_SPEC): Define.
12037         * config/sparc/vxworks.h (ASM_SPEC): Define.
12038
12039 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12040
12041         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12042
12043 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
12044
12045         * doc/invoke.texi: Remove reference to compiler internals from
12046         user documentation.
12047
12048         * reg-notes.def: Remove REG_VALUE_PROFILE.
12049         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
12050
12051 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
12052
12053         PR middle-end/47610
12054         * varasm.c (default_section_type_flags): If decl is NULL,
12055         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
12056
12057 2011-02-05  Jie Zhang  <jie@codesourcery.com>
12058
12059         PR debug/42631
12060         * web.c (entry_register): Don't clobber the number of the
12061         first uninitialized reference in used[].
12062
12063 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
12064
12065         PR tree-optimization/46194
12066         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12067         (build_classic_dist_vector_1): Do not represent classic distance
12068         vectors when the access functions are variating in different loops.
12069
12070 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12071
12072         * config/mips/iris6.opt: New.
12073         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12074
12075 2011-02-04  Richard Henderson  <rth@redhat.com>
12076             Steve Ellcey  <sje@cup.hp.com>
12077
12078         PR target/46997
12079         * config/ia64/predicates.md (mux1_brcst_element): New.
12080         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12081         * config/ia64/ia64.c (ia64_unpack_assemble): New.
12082         (ia64_unpack_sign): New.
12083         (ia64_expand_unpack): Rewrite using new routines.
12084         (ia64_expand_widen_sum): Ditto.
12085         (ia64_expand_dot_prod_v8qi): Ditto.
12086         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12087         routines, add endian check.
12088         (pmpy2_even): Rename from pmpy2_r, add endian check.
12089         (pmpy2_odd): Rename from pmpy2_l, add endian check.
12090         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12091         (vec_widen_smult_hi_v4hi): Ditto.
12092         (vec_widen_umult_lo_v4hi): Ditto.
12093         (vec_widen_umult_hi_v4hi): Ditto.
12094         (mulv2si3): Change endian checks.
12095         (sdot_prodv4hi): Rewrite with new calls.
12096         (udot_prodv4hi): New.
12097         (vec_pack_ssat_v4hi): Add endian check.
12098         (vec_pack_usat_v4hi): Ditto.
12099         (vec_pack_ssat_v2si): Ditto.
12100         (max1_even): Rename from max1_r, add endian check.
12101         (max1_odd): Rename from max1_l, add endian check.
12102         (*mux1_rev): Format change.
12103         (*mux1_mix): Ditto.
12104         (*mux1_shuf): Ditto.
12105         (*mux1_alt): Ditto.
12106         (*mux1_brcst_v8qi): Use new predicate.
12107         (vec_extract_evenv8qi): Remove endian check.
12108         (vec_extract_oddv8qi): Ditto.
12109         (vec_interleave_lowv4hi): Format change.
12110         (vec_interleave_highv4hi): Ditto.
12111         (mix2_even): Rename from mix2_r, add endian check.
12112         (mix2_odd): Rename from mux2_l, add endian check.
12113         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12114         (vec_extract_evenodd_helper): Format change.
12115         (vec_extract_evenv4hi): Remove endian check.
12116         (vec_extract_oddv4hi): Remove endian check.
12117         (vec_interleave_lowv2si): Format change.
12118         (vec_interleave_highv2si): Format change.
12119         (vec_initv2si): Remove endian check.
12120         (vecinit_v2si): Add endian check.
12121         (reduc_splus_v2sf): Add endian check.
12122         (reduc_smax_v2sf): Ditto.
12123         (reduc_smin_v2sf): Ditto.
12124         (vec_initv2sf): Remove endian check.
12125         (fpack): Add endian check.
12126         (fswap): Add endian check.
12127         (vec_interleave_highv2sf): Add endian check.
12128         (vec_interleave_lowv2sf): Add endian check.
12129         (fmix_lr): Add endian check.
12130         (vec_setv2sf): Format change.
12131         (*vec_extractv2sf_0_be): Use shift to extract operand.
12132         (*vec_extractv2sf_1_be): New.
12133         (vec_pack_trunc_v4hi): Add endian check.
12134         (vec_pack_trunc_v2si): Format change.
12135
12136 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
12137
12138         PR inline-asm/23200
12139         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
12140         do bb, locus and block comparison and disallow loads if it is not set.
12141         (stmt_is_replaceable_p): New function.
12142         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12143         callers.
12144         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12145         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12146         SSA_NAME_DEF_STMT.
12147         * tree-flow.h (stmt_is_replaceable_p): New prototype.
12148
12149 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12150
12151         * config/rs6000/xilinx.opt: New.
12152         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12153
12154 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12155
12156         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12157
12158 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
12159
12160         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12161         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12162         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12163         secondary_reload_info, xtensa_secondary_reload): Remove.
12164         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12165         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12166         (xtensa_preferred_reload_class): Make static. Change return and
12167         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12168         Use CONST_DOUBLE_P predicate.
12169         (xtensa_preferred_output_reload_class): New function.
12170         (xtensa_secondary_reload): Make static.
12171
12172 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
12173
12174         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12175         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12176         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12177
12178 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12179
12180         PR middle-end/31490
12181         * output.h (SECTION_RELRO): Define.
12182         (SECTION_MACH_DEP): Adjust.
12183         (get_variable_section): New prototype.
12184         * varpool.c (varpool_finalize_named_section_flags): New function.
12185         (varpool_assemble_pending_decls): Call it.
12186         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12187         * cgraphunit.c (cgraph_output_in_order): Call
12188         varpool_finalize_named_section_flags.
12189         * varasm.c (get_section): Allow section flags conflicts between
12190         relro and read-only sections if the section hasn't been declared yet.
12191         Set SECTION_OVERRIDE after diagnosing section type conflict.
12192         (get_variable_section): No longer static.
12193         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12194         readonly sections that need relocations.
12195         (decl_readonly_section_1): New function.
12196         (decl_readonly_section): Use it.
12197
12198         Revert:
12199         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
12200                     Steve Ellcey  <sje@cup.hp.com>
12201
12202         PR middle-end/31490
12203         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12204         if section attribute used.
12205
12206 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12207
12208         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12209         * config/darwin.c (SECTION_NO_ANCHOR): Define.
12210         (darwin_init_sections): Remove assertion.
12211
12212 2011-02-03  Nick Clifton  <nickc@redhat.com>
12213
12214         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12215         lt and ge.
12216         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
12217         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12218         instead of "n" and "pz".
12219         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12220         CC_FLAG_S.
12221
12222 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12223
12224         PR target/47312
12225         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12226         fma, expand FMA_EXPR as fma{,f,l} call.
12227
12228         PR lto/47274
12229         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12230         copy them into a unsigned char variable and pass address of it to
12231         lto_output_data_stream.
12232
12233         PR target/47564
12234         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12235         around backend_init_target and lang_dependent_init_target calls.
12236         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12237         (verify_cgraph_node): Don't call set_cfun here.  Use
12238         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12239         Set error_found for incorrectly represented calls to thunks.
12240
12241 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12242
12243         PR debug/43092
12244         PR rtl-optimization/43494
12245         * rtl.h (for_each_inc_dec_fn): New type.
12246         (for_each_inc_dec): Declare.
12247         * rtlanal.c (struct for_each_inc_dec_ops): New type.
12248         (for_each_inc_dec_find_inc_dec): New fn.
12249         (for_each_inc_dec_find_mem): New fn.
12250         (for_each_inc_dec): New fn.
12251         * dse.c (struct insn_size): Remove.
12252         (replace_inc_dec, replace_inc_dec_mem): Remove.
12253         (emit_inc_dec_insn_before): New fn.
12254         (check_for_inc_dec): Use it, along with for_each_inc_dec.
12255         (canon_address): Pass mem modes to cselib_lookup.
12256         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
12257         (cselib_lookup_from_insn): Likewise.
12258         (cselib_subst_to_values): Likewise.
12259         * cselib.c (find_slot_memmode): New var.
12260         (cselib_find_slot): New fn.  Use it instead of
12261         htab_find_slot_with_hash everywhere.
12262         (entry_and_rtx_equal_p): Use find_slot_memmode.
12263         (autoinc_split): New fn.
12264         (rtx_equal_for_cselib_p): Rename and implement in terms of...
12265         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
12266         Deal with autoinc.  Special-case recursion into MEMs.
12267         (cselib_hash_rtx): Likewise.
12268         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
12269         address and MEM modes.
12270         (cselib_subst_to_values): Add memmode, pass it on.
12271         Deal with autoinc.
12272         (cselib_lookup): Add memmode argument, pass it on.
12273         (cselib_lookup_from_insn): Add memmode.
12274         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12275         (struct cselib_record_autoinc_data): New.
12276         (cselib_record_autoinc_cb): New fn.
12277         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
12278         mode to cselib_lookup.  Reset autoinced REGs here instead of...
12279         (cselib_process_insn): ... here.
12280         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12281         to cselib_lookup.
12282         (add_uses): Likewise, also to cselib_subst_to_values.
12283         (add_stores): Likewise.
12284         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
12285         cselib_subst_to_values.
12286         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
12287         * gcse.c (do_local_cprop): Adjusted.
12288         * postreload.c (reload_cse_simplify_set): Adjusted.
12289         (reload_cse_simplify_operands): Adjusted.
12290         * sel-sched-dump (debug_mem_addr_value): Pass mode.
12291
12292 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12293
12294         PR tree-optimization/45122
12295         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12296         unsafe assumptions when there's more than one loop exit.
12297
12298 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12299
12300         PR target/47272
12301         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12302         Document using vector double with the load/store builtins, and
12303         that the load/store builtins always use Altivec instructions.
12304
12305         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12306         to use altivec memory instructions, even on VSX.
12307         (vector_altivec_store_<mode>): Ditto.
12308
12309         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12310         function.
12311
12312         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12313         V2DF, V2DI support to load/store overloaded builtins.
12314
12315         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12316         altivec load/store builtins for V2DF/V2DI types.
12317
12318         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12319         set avoid indexed addresses on power6 if -maltivec.
12320         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12321         vector_altivec_load/vector_altivec_store builtins.
12322         (altivec_expand_st_builtin): Ditto.
12323         (altivec_expand_builtin): Add VSX memory builtins.
12324         (rs6000_init_builtins): Add V2DI types to internal types.
12325         (altivec_init_builtins): Add support for V2DF/V2DI altivec
12326         load/store builtins.
12327         (rs6000_address_for_altivec): Insure memory address is appropriate
12328         for Altivec.
12329
12330         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12331         vec_vsx_ld and vec_vsx_st.
12332         (vsx_store_<mode>): Ditto.
12333
12334         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12335         variables to hold long long types for VSX vector memory builtins.
12336         (RS6000_BTI_unsigned_long_long): Ditto.
12337         (long_long_integer_type_internal_node): Ditti.
12338         (long_long_unsigned_type_internal_node): Ditti.
12339
12340         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12341         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12342         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12343
12344         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12345         short cuts.
12346         (vec_vsx_st): Ditto.
12347
12348 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12349
12350         * config/pa/pa-hpux10.opt: New.
12351         * config/hpux11.opt (pthread): New Driver option.
12352         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12353         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12354
12355 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12356
12357         * config/ia64/vms.opt: New.
12358         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12359
12360 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
12361
12362         PR target/47580
12363         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12364         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12365         generator functions.
12366         (vsx_floatuns<VSi><mode>2): Ditto.
12367         (vsx_fix_trunc<mode><VSi>2): Ditto.
12368         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12369
12370 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12371
12372         * config/i386/djgpp.opt (posix): New Driver option.
12373
12374 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12375
12376         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12377         Move to the unsupported targets list.
12378
12379 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
12380
12381         PR rtl-optimization/47525
12382         * df-scan.c: Update copyright years.
12383         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12384         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12385
12386 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12387
12388         * config/i386/sysv4.h (TARGET_VERSION): Remove.
12389         (SUBTARGET_RETURN_IN_MEMORY): Remove.
12390         (ASM_OUTPUT_ASCII): Remove.
12391         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12392
12393 2011-02-02  Jeff Law  <law@redhat.com>
12394
12395         PR middle-end/47543
12396         * reload.c (find_reloads_address): Handle reg+d address where both
12397         components are invalid by reloading the entire address.
12398
12399 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12400             Richard Guenther  <rguenther@suse.de>
12401
12402         PR tree-optimization/40979
12403         PR bootstrap/47044
12404         * passes.c (init_optimization_passes): After LIM call copy_prop
12405         and DCE to clean up.
12406         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12407
12408 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12409
12410         PR tree-optimization/47576
12411         PR tree-optimization/47555
12412         * doc/invoke.texi (scev-max-expr-complexity): Documented.
12413         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12414         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12415         * tree-scalar-evolution.c (follow_ssa_edge): Use
12416         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12417
12418 2011-02-02  Richard Guenther  <rguenther@suse.de>
12419
12420         PR tree-optimization/47566
12421         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12422
12423 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12424
12425         PR debug/47106
12426         PR debug/47402
12427         * tree-inline.c (declare_return_variable): Remove unused caller
12428         variable.
12429
12430         PR debug/47106
12431         PR debug/47402
12432         * tree-flow-inline.h (clear_is_used, is_used_p): New.
12433         * cfgexpand.c (account_used_vars_for_block): Use them.
12434         * tree-nrv.c (tree_nrv): Likewise.
12435         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12436         (dump_scope_block): Likewise.
12437         (remove_unused_locals): Likewise.
12438
12439         PR debug/47106
12440         PR debug/47402
12441         * tree-inline.c (declare_return_variable): Add result decl to
12442         local decls only once.
12443         * gimple-low.c (record_vars_into): Mark newly-created variables
12444         as referenced.
12445
12446 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12447
12448         PR debug/47498
12449         PR debug/47501
12450         PR debug/45136
12451         PR debug/45130
12452         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12453         debug insns.
12454         (no_real_insns_p, schedule_block, set_priorities): Drop special
12455         treatment of boundary debug insns.
12456         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12457         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12458         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12459         (BOUNDARY_DEBUG_INSN_P): Likewise.
12460         (SCHEDULE_DEBUG_INSN_P): Likewise.
12461         * sched-rgn.c (init_ready_list): Drop special treatment of
12462         boundary debug insns.
12463         * final.c (rest_of_clean_state): Clear notes' BB.
12464
12465 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12466
12467         * config/openbsd.opt (assert=): New Driver option.
12468
12469 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12470
12471         * config/i386/nto.opt: New.
12472         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12473
12474 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12475
12476         * config/i386/netware.opt: New.
12477         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12478
12479 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12480
12481         * config/interix.opt (posix): New Driver option.
12482
12483 2011-02-01  DJ Delorie  <dj@redhat.com>
12484
12485         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12486
12487         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12488         class for A0/A1.
12489
12490 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
12491
12492         PR tree-optimization/47561
12493         * toplev.c (process_options): Print the Graphite flags.  Add
12494         flag_loop_flatten to the list of options requiring Graphite.
12495
12496 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12497
12498         * config/i386/cygming.opt (posix): New Driver option.
12499
12500 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12501
12502         * config/arm/vxworks.opt: New.
12503         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12504
12505 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12506
12507         * config/alpha/elf.opt: New.
12508         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12509         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12510
12511 2011-02-01  Richard Guenther  <rguenther@suse.de>
12512
12513         PR tree-optimization/47559
12514         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12515         store-motion on references that can throw.
12516
12517 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
12518
12519         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12520         * tree-pass.h (TDF_CSELIB): New macro.
12521         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12522         cselib_lookup): Check for it rather than for TDF_DETAILS.
12523
12524 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
12525
12526         PR driver/47547
12527         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12528         is HOST_BIT_BUCKET.
12529
12530         * opts.c (finish_options): Don't add x_aux_base_name if it is
12531         HOST_BIT_BUCKET.
12532
12533 2011-02-01  Richard Guenther  <rguenther@suse.de>
12534
12535         PR tree-optimization/47555
12536         Revert
12537         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
12538
12539         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12540
12541 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12542
12543         PR gcc/46692
12544         * config/lm32/t-lm32: Add multilib for all CPU options.
12545
12546 2011-02-01  Richard Guenther  <rguenther@suse.de>
12547
12548         PR tree-optimization/47541
12549         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12550         sure to have a field at offset zero.
12551
12552 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12553
12554         * config/arc/arc.opt (EB, EL): New Driver options.
12555
12556 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12557
12558         * config/alpha/osf5.opt: New.
12559         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12560
12561 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12562
12563         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12564
12565 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
12566
12567         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12568         -floop-interchange.
12569         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12570         is an alias of -floop-interchange and that it requires the
12571         Graphite infrastructure.
12572         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12573         flag_loop_interchange based on the value of flag_tree_loop_linear.
12574
12575 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
12576             Richard Guenther  <rguenther@suse.de>
12577
12578         PR tree-optimization/47538
12579         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12580         type instead of r1type, except for comparisons.  For right
12581         shifts and comparisons punt if there are mismatches in
12582         sizetype vs. non-sizetype types.
12583
12584 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12585
12586         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12587         avx_runtime.
12588
12589 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12590
12591         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12592         version number.
12593         * configure: Regenerate.
12594
12595 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12596
12597         * configure.ac (gcc_cv_ld_static_option): Define.
12598         (gcc_cv_ld_dynamic_option): Define.
12599         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12600         instead.
12601         (HAVE_LD_STATIC_DYNAMIC): Update message.
12602         (LD_STATIC_OPTION): Define.
12603         (LD_DYNAMIC_OPTION): Define.
12604         * configure: Regenerate.
12605         * config.in: Regenerate.
12606         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12607         HAVE_LD_STATIC_DYNAMIC]: Use them.
12608
12609 2011-01-31  Nick Clifton  <nickc@redhat.com>
12610
12611         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12612         registers inside interrupt handlers if the handler is not a leaf
12613         function.
12614
12615 2011-01-31  Nick Clifton  <nickc@redhat.com>
12616
12617         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12618         reg_renumber returning an INVALID_REGNUM.
12619
12620 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12621
12622         PR libgcj/44341
12623         * doc/install.texi: Document host options discarded when cross
12624         configuring target libraries.
12625
12626 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12627
12628         Reverted:
12629         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12630         PR debug/45136
12631         PR debug/45130
12632         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12633         debug insns.
12634         (no_real_insns_p, schedule_block, set_priorities): Drop special
12635         treatment of boundary debug insns.
12636         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12637         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12638         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12639         (BOUNDARY_DEBUG_INSN_P): Likewise.
12640         (SCHEDULE_DEBUG_INSN_P): Likewise.
12641         * sched-rgn.c (init_ready_list): Drop special treatment of
12642         boundary debug insns.
12643         * final.c (rest_of_clean-state): Clear notes' BB.
12644
12645 2011-01-31  Alan Modra  <amodra@gmail.com>
12646
12647         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12648         toc relative expressions as we do in print_operand_address.
12649
12650 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
12651
12652         * doc/extend.texi: Follow spelling conventions.
12653         * doc/invoke.texi: Fix a typo.
12654
12655 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
12656
12657         * config/hpux11.opt: New.
12658         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12659         ia64*-*-hpux*): Use hpux11.opt.
12660
12661 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
12662
12663         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12664         to tmake_file.
12665
12666 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12667
12668         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12669         support sites.
12670
12671 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12672
12673         * doc/install.texi (Binaries): Remove outdated reference for
12674         Motorola 68HC11/68HC12 downloads.
12675
12676 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12677
12678         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12679         Drepper's paper.
12680
12681 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
12682
12683         PR bootstrap/47147
12684         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12685         used by NetBSD.
12686
12687 2011-01-28  Ahmad Sharif  <asharif@google.com>
12688
12689         * value-prof.c (check_counter): Corrected error message.
12690
12691 2011-01-29  Jie Zhang  <jie@codesourcery.com>
12692
12693         * config/arm/arm.c (arm_legitimize_reload_address): New.
12694         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12695         arm_legitimize_reload_address.
12696         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
12697
12698 2011-01-28  Ian Lance Taylor  <iant@google.com>
12699
12700         * godump.c (go_define): Ignore macros whose definitions include
12701         two adjacent operands.
12702
12703 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
12704
12705         PR target/42894
12706         * varasm.c (force_const_mem): Store copy of x in desc->constant
12707         instead of x itself.
12708         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12709         itself into REG_EQUAL note.
12710
12711 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
12712
12713         * config/freebsd.opt (posix, rdynamic): New Driver options.
12714
12715 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12716
12717         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12718         -Bstatic/-Bdynamic.
12719         * configure: Regenerate.
12720
12721 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
12722
12723         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12724         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12725
12726 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
12727
12728         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12729         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12730         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12731         (s390_preferred_reload_class): Make static. Change return and
12732         'rclass' argument type to reg_class_t.
12733
12734 2011-01-27  Jan Hubicka  <jh@suse.cz>
12735
12736         PR middle-end/46949
12737         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12738         (process_function_and_variable_attributes): Check defined weakrefs.
12739
12740 2011-01-27  Martin Jambor  <mjambor@suse.cz>
12741
12742         PR tree-optimization/47228
12743         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12744         build_ref_for_offset.
12745
12746 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12747
12748         * config/spu/spu-elf.h (ASM_SPEC): Remove.
12749
12750 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
12751
12752         PR rtl-optimization/46856
12753         * postreload.c (reload_combine_recognize_const_pattern): Do not
12754         separate cc0 setter and user on cc0 targets.
12755
12756 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
12757
12758         PR c/43082
12759         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12760         passed a VOID_TYPE expression, immediately emit an error and
12761         return error_mark_node.
12762
12763 2011-01-26  Jeff Law  <law@redhat.com>
12764
12765         PR rtl-optimization/47464
12766         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12767         rather than may_trap_p as needed.
12768
12769 2011-01-26  DJ Delorie  <dj@redhat.com>
12770
12771         PR rtl-optimization/46878
12772         * combine.c (insn_a_feeds_b): Check for the implicit cc0
12773         setter/user dependency as well.
12774
12775 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
12776
12777         PR rtl-optimization/44469
12778         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12779         after removing trivially dead basic blocks.
12780
12781 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12782
12783         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12784         * config/frv/frv.h (LINK_SPEC): Likewise.
12785         * config/i386/netware.h (LINK_SPEC): Likewise.
12786         * config/m68k/linux.h (ASM_SPEC): Likewise.
12787         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12788         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12789         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12790         * config/sparc/linux.h (ASM_SPEC): Likewise.
12791         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12792         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12793
12794 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12795
12796         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
12797         * config/frv/frv.h (ASM_SPEC): Likewise.
12798         * config/m68k/linux.h (ASM_SPEC): Likewise.
12799         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12800         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
12801         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12802         * config/sparc/linux.h (ASM_SPEC): Likewise.
12803         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12804         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12805
12806 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12807
12808         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
12809         * config/frv/frv.h (LINK_SPEC): Likewise.
12810         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12811
12812 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12813
12814         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12815         * config/frv/frv.h (ASM_SPEC): Likewise.
12816         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12817         * config/m68k/linux.h (ASM_SPEC): Likewise.
12818         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12819         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12820         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12821         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12822         * config/sparc/linux.h (ASM_SPEC): Likewise.
12823         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12824         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12825         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12826
12827 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
12828
12829         PR target/46997
12830         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12831         (*mux2): Ditto.
12832         (vec_extract_evenodd_help): Ditto.
12833         (vec_extract_evenv4hi): Ditto.
12834         (vec_extract_oddv4hi): Ditto.
12835         (vec_interleave_lowv2si): Ditto.
12836         (vec_interleave_highv2si): Ditto.
12837         (vec_extract_evenv2si): Ditto.
12838         (vec_extract_oddv2si: Ditto.
12839         (vec_pack_trunc_v2si): Ditto.
12840
12841 2011-01-22  Jan Hubicka  <jh@suse.cz>
12842
12843         PR target/47237
12844         * cgraph.h (cgraph_local_info): New field can_change_signature.
12845         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12846         signature can change.
12847         (ipcp_estimate_growth): Call sequence simplify only if calle signature
12848         can change.
12849         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12850         (cgraph_function_versioning): We can not change signature of functions
12851         that don't allow that.
12852         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12853         (lto_input_node): Likewise.
12854         * ipa-inline.c (compute_inline_parameters): Compute
12855         local.can_change_signature.
12856         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
12857         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12858         functions that can not change signature.
12859         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
12860         init_cumulative_args): Do not use local calling conventions
12861         for functions that can not change signature.
12862
12863 2011-01-22  Jan Hubicka  <jh@suse.cz>
12864
12865         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12866
12867 2011-01-26  Richard Guenther  <rguenther@suse.de>
12868
12869         PR tree-optimization/47190
12870         * cgraphunit.c (process_common_attributes): New function.
12871         (process_function_and_variable_attributes): Use it.
12872
12873 2011-01-26  Richard Guenther  <rguenther@suse.de>
12874
12875         PR lto/47423
12876         * cgraphbuild.c (record_eh_tables): Record reference to personality
12877         function.
12878
12879 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
12880
12881         PR debug/45454
12882         * sel-sched.c (moveup_expr): Don't let debug insns prevent
12883         non-debug insns from moving up.
12884
12885 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12886
12887         PR target/40125
12888         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12889         t-dlldir{,-x} fragment for build and add it to tmake_file.
12890         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12891         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12892         * config/i386/t-dlldir: New file.
12893         (SHLIB_DLLDIR): Define.
12894         * config/i386/t-dlldir-x: New file.
12895         (SHLIB_DLLDIR): Define.
12896         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12897         (SHLIB_INSTALL): Use it.
12898
12899 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
12900
12901         PR target/47246
12902         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12903         lower bound of the allowed Thumb-2 coprocessor load/store
12904         index range to -256. Add explaining comment.
12905
12906 2011-01-25  Ian Lance Taylor  <iant@google.com>
12907
12908         * godump.c (go_define): Improve lexing of macro expansion to only
12909         accept expressions which match Go spec.
12910
12911 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12912
12913         PR c++/43601
12914         * tree.c (handle_dll_attribute): Handle it.
12915         * doc/extend.texi (@item dllexport): Mention it.
12916         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12917
12918 2011-01-25  Ian Lance Taylor  <iant@google.com>
12919
12920         PR tree-optimization/26854
12921         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12922         (decl_jump_unsafe): Move higher in file, with no other change.
12923         (bind): Set has_jump_unsafe_decl if appropriate.
12924         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12925         (check_earlier_gotos): Likewise.
12926         (c_check_switch_jump_warnings): Likewise.
12927
12928 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
12929
12930         * doc/invoke.texi (Warning Options): Add missing hyphen.
12931         (-fprofile-dir): Minor grammatical fixes.
12932         (-fbranch-probabilities): Likewise.
12933
12934 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12935
12936         PR debug/45136
12937         PR debug/45130
12938         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12939         debug insns.
12940         (no_real_insns_p, schedule_block, set_priorities): Drop special
12941         treatment of boundary debug insns.
12942         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12943         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12944         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12945         (BOUNDARY_DEBUG_INSN_P): Likewise.
12946         (SCHEDULE_DEBUG_INSN_P): Likewise.
12947         * sched-rgn.c (init_ready_list): Drop special treatment of
12948         boundary debug insns.
12949         * final.c (rest_of_clean-state): Clear notes' BB.
12950
12951 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12952
12953         * Makefile.in (LAMBDA_H): Removed.
12954         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12955         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12956         lambda-trans.o, and tree-loop-linear.o.
12957         (lto-symtab.o): Remove dependence on LAMBDA_H.
12958         (tree-loop-linear.o): Remove rule.
12959         (lambda-mat.o): Same.
12960         (lambda-trans.o): Same.
12961         (lambda-code.o): Same.
12962         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12963         (tree-vect-slp.o): Same.
12964         * hwint.h (gcd): Moved here.
12965         (least_common_multiple): Same.
12966         * lambda-code.c: Removed.
12967         * lambda-mat.c: Removed.
12968         * lambda-trans.c: Removed.
12969         * lambda.h: Removed.
12970         * tree-loop-linear.c: Removed.
12971         * lto-symtab.c: Do not include lambda.h.
12972         * omega.c (gcd): Removed.
12973         * passes.c (init_optimization_passes): Remove pass_linear_transform.
12974         * tree-data-ref.c (print_lambda_vector): Moved here.
12975         (lambda_vector_copy): Same.
12976         (lambda_matrix_copy): Same.
12977         (lambda_matrix_id): Same.
12978         (lambda_vector_first_nz): Same.
12979         (lambda_matrix_row_add): Same.
12980         (lambda_matrix_row_exchange): Same.
12981         (lambda_vector_mult_const): Same.
12982         (lambda_vector_negate): Same.
12983         (lambda_matrix_row_negate): Same.
12984         (lambda_vector_equal): Same.
12985         (lambda_matrix_right_hermite): Same.
12986         * tree-data-ref.h: Do not include lambda.h.
12987         (lambda_vector): Moved here.
12988         (lambda_matrix): Same.
12989         (dependence_level): Same.
12990         (lambda_transform_legal_p): Removed declaration.
12991         (lambda_collect_parameters): Same.
12992         (lambda_compute_access_matrices): Same.
12993         (lambda_vector_gcd): Same.
12994         (lambda_vector_new): Same.
12995         (lambda_vector_clear): Same.
12996         (lambda_vector_lexico_pos): Same.
12997         (lambda_vector_zerop): Same.
12998         (lambda_matrix_new): Same.
12999         * tree-flow.h (least_common_multiple): Removed declaration.
13000         * tree-parloops.c (lambda_trans_matrix): Moved here.
13001         (LTM_MATRIX): Same.
13002         (LTM_ROWSIZE): Same.
13003         (LTM_COLSIZE): Same.
13004         (LTM_DENOMINATOR): Same.
13005         (lambda_trans_matrix_new): Same.
13006         (lambda_matrix_vector_mult): Same.
13007         (lambda_transform_legal_p): Same.
13008         * tree-pass.h (pass_linear_transform): Removed declaration.
13009         * tree-ssa-loop.c (tree_linear_transform): Removed.
13010         (gate_tree_linear_transform): Removed.
13011         (pass_linear_transform): Removed.
13012         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
13013         flag_loop_interchange.
13014
13015 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13016
13017         PR tree-optimization/47265
13018         PR tree-optimization/47443
13019         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
13020         if name still has some uses.
13021
13022 2011-01-25  Martin Jambor  <mjambor@suse.cz>
13023
13024         PR tree-optimization/47382
13025         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
13026         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
13027
13028 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
13029
13030         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
13031         sjlj_except_unwind_info.
13032
13033 2011-01-25  Richard Guenther  <rguenther@suse.de>
13034
13035         PR tree-optimization/47426
13036         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
13037         visible functions results escape.
13038
13039 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13040
13041         PR target/45701
13042         * config/arm/arm.c (any_sibcall_uses_r3): New function.
13043         (arm_get_frame_offsets): Use it.
13044
13045 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13046             Jakub Jelinek  <jakub@redhat.com>
13047
13048         PR tree-optimization/47271
13049         * tree-if-conv.c (bb_postdominates_preds): New.
13050         (if_convertible_bb_p): Call bb_postdominates_preds.
13051         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
13052         (predicate_scalar_phi): Call bb_postdominates_preds.
13053
13054 2011-01-25  Nick Clifton  <nickc@redhat.com>
13055
13056         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
13057         * config/rx/rx.c (rx_function_value): Likewise.
13058         (rx_promote_function_mode): Likewise.
13059         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13060         in order to make it legitimate.
13061         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13062         make sure that the first operand is the same as the result register.
13063         (addsi3_unspec): Delete.
13064         (subdi3): Do not accept immediate operands.
13065         (subdi3_internal): Likewise.
13066
13067 2011-01-25  Jeff Law  <law@redhat.com>
13068
13069         PR rtl-optimization/37273
13070         * ira-costs.c (scan_one_insn): Detect constants living in memory and
13071         handle them like argument loads from stack slots.  Do not double
13072         count memory for memory constants and argument loads from stack slots.
13073
13074 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13075
13076         PR tree-optimization/47427
13077         PR tree-optimization/47428
13078         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13079         coalesce if the new root var would be TREE_READONLY.
13080
13081 2011-01-25  Richard Guenther  <rguenther@suse.de>
13082
13083         PR middle-end/47414
13084         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13085         correct type for TBAA.
13086
13087 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13088
13089         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13090         (close_phi_written_to_memory): Call for_each_index with
13091         dr_indices_valid_in_loop.
13092
13093 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13094
13095         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13096         when it is initialized.
13097
13098 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13099
13100         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13101         call to graphite_find_data_references_in_stmt.
13102         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13103         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
13104         call to graphite_find_data_references_in_stmt.
13105         (analyze_drs_in_stmts): Same.
13106         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13107         in which the scalar analysis of indices is performed.
13108         (create_data_ref): Same.  Update call to dr_analyze_indices.
13109         (find_data_references_in_stmt): Update call to create_data_ref.
13110         (graphite_find_data_references_in_stmt): Same.
13111         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13112         declaration.
13113         (create_data_ref): Same.
13114         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13115         call to create_data_ref.
13116
13117 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13118
13119         * graphite-sese-to-poly.c (build_poly_scop): Move
13120         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
13121
13122 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13123
13124         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13125         VAR_DECL, PARM_DECL, and RESULT_DECL.
13126
13127 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13128
13129         * graphite-dependences.c (reduction_dr_1): Allow several reductions
13130         in a reduction PBB.
13131         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13132         that have already been marked as PBB_IS_REDUCTION.
13133
13134 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13135
13136         * graphite-scop-detection.c (same_close_phi_node): New.
13137         (remove_duplicate_close_phi): New.
13138         (make_close_phi_nodes_unique): New.
13139         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13140
13141 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13142
13143         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13144         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13145         of both data references to be the same.
13146
13147 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13148
13149         * graphite-dependences.c (build_lexicographical_constraint): Remove
13150         the gdim parameter.
13151         (build_lexicographical_constraint): Adjust call to
13152         ppl_powerset_is_empty.
13153         (dependence_polyhedron): Same.
13154         (graphite_legal_transform_dr): Same.
13155         (graphite_carried_dependence_level_k): Same.
13156         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13157         parameter.
13158         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13159
13160 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13161
13162         * graphite-sese-to-poly.c
13163         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13164         (close_phi_written_to_memory): New.
13165         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13166         and unshare_expr.
13167
13168 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13169
13170         * doc/install.texi: Update the expected version number of PPL to 0.11.
13171         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13172         #if PPL_VERSION_MINOR < 11.
13173
13174 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13175
13176         * graphite-dependences.c: Include graphite-cloog-util.h.
13177         (new_poly_ddr): Inlined into dependence_polyhedron.
13178         (free_poly_ddr): Moved close by new_poly_ddr.
13179         (dependence_polyhedron_1): Renamed dependence_polyhedron.
13180         Early return NULL when ppl_powerset_is_empty returns true.
13181         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
13182         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
13183         (graphite_legal_transform_dr): Call new_poly_ddr.
13184         (graphite_carried_dependence_level_k): Same.
13185         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
13186         (dot_transformed_deps_stmt_1): Removed.
13187         (dot_deps_stmt_1): Call dot_deps_stmt_2.
13188         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
13189         (dot_deps_1): Call dot_deps_2.
13190         * Makefile.in (graphite-dependences.o): Add missing dependence on
13191         graphite-cloog-util.h.
13192
13193 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13194
13195         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13196         (build_lexicographical_constraint): Same.
13197         (dependence_polyhedron_1): Same.
13198         (graphite_legal_transform_dr): Same.
13199         (graphite_carried_dependence_level_k): Same.
13200         * graphite-ppl.c (ppl_powerset_is_empty): New.
13201         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13202         * tree-data-ref.c (dump_data_reference): Print the basic block index.
13203
13204 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13205
13206         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13207         the "a followed by b" relation and document it.
13208
13209 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13210
13211         * graphite-dependences.c (build_lexicographical_constraint): Stop the
13212         iteration when the bag of constraints is empty.
13213
13214 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13215
13216         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13217
13218 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13219
13220         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13221         nest and two loop depths as parameters.
13222         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13223         lst_perfect_nestify.
13224
13225 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13226
13227         * graphite-dependences.c (print_pddr): Call
13228         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13229
13230 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13231
13232         * graphite-ppl.c (debug_gmp_value): New.
13233         * graphite-ppl.h (debug_gmp_value): Declared.
13234
13235 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
13236
13237         * doc/install.texi: Document availability of cloog-0.16.
13238
13239 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
13240
13241         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13242         invalid postdominance info.
13243
13244 2011-01-24  Jan Hubicka  <jh@suse.cz>
13245
13246         PR c/21659
13247         * doc/extend.texi (weak pragma): Drop claim that it must
13248         appear before definition.
13249         * varasm.c (merge_weak, declare_weak): Only sanity check
13250         that DECL is not output at a time it is declared weak.
13251
13252 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
13253
13254         * machmode.def: Fixed comments.
13255
13256 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
13257
13258         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13259
13260 2011-01-24  Paul Koning  <ni1d@arrl.net>
13261
13262         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
13263         WORDS_BIG_ENDIAN.
13264
13265 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13266
13267         PR target/46519
13268         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13269         (block_info): Add scanned and prev.
13270         (move_or_delete_vzeroupper_2): Return if the basic block
13271         has been scanned and the upper 128bit state is unchanged
13272         from the last scan.
13273         (move_or_delete_vzeroupper_1): Return true if the exit
13274         state is changed.
13275         (move_or_delete_vzeroupper): Visit basic blocks using the
13276         work-list based algorithm based on vt_find_locations in
13277         var-tracking.c.
13278
13279         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13280
13281 2011-01-24  Nick Clifton  <nickc@redhat.com>
13282
13283         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13284         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13285         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
13286         then define __v850e1__.
13287         * doc/invoke.texi: Document -mv850es.
13288
13289 2011-01-24  Richard Henderson  <rth@redhat.com>
13290
13291         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13292         compound unordered comparisons.
13293         * config/rx/rx.c (rx_split_fp_compare): Remove.
13294         * config/rx/rx-protos.h: Update.
13295         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13296         (cbranchsf4): Don't call rx_split_fp_compare.
13297         (*cbranchsf4): Use rx_split_cbranch.
13298         (*cmpsf): Don't accept "i" constraint.
13299         (*conditional_branch): Only valid after reload.
13300         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
13301
13302 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13303
13304         PR target/47385
13305         * config/rs6000/altivec.md (vector constant splitters): Add
13306         support for creating vector single precision constants if -mvsx is
13307         used and we would create the constant using Altivec primitives.
13308
13309 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
13310             Richard Sandiford  <rdsandiford@googlemail.com>
13311
13312         PR rtl-optimization/47166
13313         * reload1.c (emit_reload_insns): Disable the spill_reg_store
13314         mechanism for PRE_MODIFY and POST_MODIFY.
13315         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13316         reloadreg.
13317
13318 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
13319
13320         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
13321
13322 2011-01-22  Jan Hubicka  <jh@suse.cz>
13323
13324         PR lto/47333
13325         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13326
13327 2011-01-22  Jan Hubicka  <jh@suse.cz>
13328
13329         PR tree-optimization/43884
13330         PR lto/44334
13331         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
13332         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13333
13334 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
13335
13336         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13337         * config/s390/s390.c (s390_register_move_cost,
13338         s390_memory_move_cost): New.
13339         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13340
13341 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13342
13343         PR middle-end/47401
13344         * except.c (sjlj_assign_call_site_values): Move setting the
13345         crtl->uses_eh_lsda flag to ...
13346         (sjlj_mark_call_sites): ... here.
13347         (sjlj_emit_function_enter): Support NULL dispatch label.
13348         (sjlj_build_landing_pads): In a function with no landing pads
13349         that still has must-not-throw regions, generate code to register
13350         a personality function with empty LSDA.
13351
13352 2011-01-21  Richard Henderson  <rth@redhat.com>
13353
13354         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13355
13356         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13357
13358         * compare-elim.c: New file.
13359         * Makefile.in (OBJS-common): Add it.
13360         (compare-elim.o): New.
13361         * common.opt (fcompare-elim): New.
13362         * opts.c (default_options_table): Add OPT_fcompare_elim.
13363         * tree-pass.h (pass_compare_elim_after_reload): New.
13364         * passes.c (init_optimization_passes): Add it.
13365         * recog.h: Protect against re-inclusion.
13366         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13367         * doc/invoke.texi (-fcompare-elim): Document it.
13368         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13369         * doc/tm.texi: Rebuild.
13370
13371 2011-01-22  Nick Clifton  <nickc@redhat.com>
13372
13373         * config/rx/rx.md (cstoresf4): Pass comparison operator to
13374         rx_split_fp_compare.
13375
13376 2011-01-22  Nick Clifton  <nickc@redhat.com>
13377
13378         * config/rx/rx.md (UNSPEC_CONST): New.
13379         (deallocate_and_return): Wrap the amount popped off the stack in
13380         an UNSPEC_CONST in order to stop it being rejected by
13381         -mmax-constant-size.
13382         (pop_and_return): Add a "(return)" rtx.
13383         (call): Drop the immediate operand.
13384         (call_internal): Likewise.
13385         (call_value): Likewise.
13386         (call_value_internal): Likewise.
13387         (sibcall_internal): Likewise.
13388         (sibcall_value_internal): Likewise.
13389         (sibcall): Likewise.  Generate an explicit call using
13390         sibcall_internal.
13391         (sibcall_value): Likewise.
13392         (mov<>): FAIL if a constant operand is not legitimate.
13393         (addsi3_unpsec): New pattern.
13394
13395         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
13396         (ok_for_max_constant): New function.
13397         (gen_safe_add): New function.
13398         (rx_expand_prologue): Use gen_safe_add.
13399         (rx_expand_epilogue): Likewise.
13400         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
13401         UNSPEC CONSTs.
13402
13403 2011-01-21  Jeff Law  <law@redhat.com>
13404
13405         PR tree-optimization/47053
13406         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13407         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13408         statements are deleted.
13409         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
13410         is nonempty, then purge dead edges and cleanup the CFG.
13411
13412 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13413
13414         PR debug/47402
13415         Temporarily revert:
13416         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13417         PR debug/47106
13418         * tree-dfa.c (create_var_ann): Mark variable as used.
13419
13420 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13421
13422         PR middle-end/45566
13423         * except.c (convert_to_eh_region_ranges): Emit queued no-region
13424         notes from other section in hot/cold partitioning even if
13425         last_action is -3.  Increment call_site_base.
13426
13427         PR rtl-optimization/47366
13428         * fwprop.c (forward_propagate_into): Return bool.  If
13429         any changes are made, -fnon-call-exceptions is used and
13430         REG_EH_REGION note is present, call purge_dead_edges
13431         and return true if it purged anything.
13432         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13433         any EH edges were purged.
13434
13435 2011-01-21  Jeff Law  <law@redhat.com>
13436
13437         PR rtl-optimization/41619
13438         * caller-save.c (setup_save_areas): Break out code to determine
13439         which hard regs are live across calls by examining the reload chains
13440         so that it is always used.
13441         Eliminate code which checked REG_N_CALLS_CROSSED.
13442
13443 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13444
13445         PR tree-optimization/47355
13446         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13447         NOP has non-debug uses beyond PHIs in new_bb.
13448
13449 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13450
13451         PR debug/47106
13452         * cfgexpand.c (account_used_vars_for_block): Only account vars
13453         that are annotated as used.
13454         (estimated_stack_frame_size): Don't set TREE_USED.
13455         * tree-dfa.c (create_var_ann): Mark variable as used.
13456
13457 2011-01-21  Richard Guenther  <rguenther@suse.de>
13458
13459         PR middle-end/47395
13460         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13461
13462 2011-01-21  Richard Guenther  <rguenther@suse.de>
13463
13464         PR tree-optimization/47365
13465         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13466         (vn_reference_lookup_pieces): Adjust.
13467         (vn_reference_lookup): Likewise.
13468         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13469         (vn_reference_lookup_3): Only look through kills if in
13470         VN_WALKREWRITE mode.
13471         (vn_reference_lookup_pieces): Adjust.
13472         (vn_reference_lookup): Likewise.
13473         (visit_reference_op_load): Likewise.
13474         (visit_reference_op_store): Likewise.
13475         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13476         (compute_avail): Likewise.
13477         (eliminate): Likewise.
13478
13479 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13480
13481         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13482         DECL_IGNORED_P non-reg vars if they are used.
13483
13484         PR tree-optimization/47391
13485         * varpool.c (const_value_known_p): Return false if
13486         decl is volatile.
13487
13488 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
13489
13490         PR bootstrap/47215
13491         * config/i386/i386.c (ix86_local_alignment): Handle
13492         case for va_list_type_node is nil.
13493         (ix86_canonical_va_list_type): Likewise.
13494
13495 2011-01-21  Alan Modra  <amodra@gmail.com>
13496
13497         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13498         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13499
13500 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13501
13502         * config/arm/arm.md (define_attr type): Rename f_load
13503         and f_store to f_fpa_load and f_fpa_store. Update.
13504         (write_conflict): Deal with rename fallout.
13505         (*push_fp_multi): Likewise.
13506         * config/arm/fpa.md (f_load): Use f_fpa_load.
13507         (f_store): Use f_fpa_store.
13508         (*movsf_fpa): Likewise.
13509         (*movdf_fpa): Likewise.
13510         (*movxf_fpa): Likewise.
13511         (*thumb2_movsf_fpa): Likewise.
13512         (*thumb2_movdf_fpa): Likewise.
13513         (*thumb2_movxf_fpa): Likewise.
13514         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13515         f_loadd and f_stored.
13516         (*thumb2_movdi_vfp): Likewise.
13517         (*thumb2_movsf_vfp): Fix attribute to f_loads.
13518         (*thumb2_movsi_vfp): Likewise.
13519         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13520         Use f_loads instead of f_load.
13521         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13522
13523 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
13524
13525         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13526         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13527         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13528         (xtensa_mode_dependent_address_p): New function.
13529         (constantpool_address_p): Make static. Change return type to bool.
13530         Change argument type to const_rtx. Use CONST_INT_P predicate.
13531
13532 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
13533
13534         PR debug/46583
13535         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13536
13537 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13538
13539         PR debug/47283
13540         * cfgexpand.c (expand_debug_expr): Instead of generating
13541         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13542         etc. handling.
13543
13544 2011-01-20  Richard Guenther  <rguenther@suse.de>
13545
13546         PR middle-end/47370
13547         * tree-inline.c (remap_gimple_op_r): Recurse manually for
13548         the pointer operand of MEM_REFs.
13549
13550 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13551
13552         PR tree-optimization/46130
13553         * ipa-split.c (consider_split): If return_bb contains non-virtual
13554         PHIs other than for retval or if split_function would not adjust it,
13555         refuse to split.
13556
13557 2011-01-20  Richard Guenther  <rguenther@suse.de>
13558
13559         PR tree-optimization/47167
13560         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13561         Revert previous change, only avoid enumeral type changes.
13562
13563 2011-01-19  Mike Stump  <mikestump@comcast.net>
13564
13565         * doc/tm.texi.in (BRANCH_COST): Englishify.
13566         * doc/tm.texi (BRANCH_COST): Likewise.
13567
13568 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
13569
13570         PR c++/47291
13571         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
13572         (gen_scheduled_generic_parms_dies): New functions.
13573         (gen_struct_or_union_type_die): Schedule template parameters DIEs
13574         generation for the end of CU compilation.
13575         (dwarf2out_finish): Generate template parameters DIEs here.
13576
13577 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13578
13579         PR debug/46240
13580         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13581         debug bind stmt on merge edges.
13582
13583 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13584
13585         PR debug/47079
13586         PR debug/46724
13587         * function.c (instantiate_expr): Instantiate incoming rtl of
13588         implicit arguments, and recurse on VALUE_EXPRs.
13589         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13590         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13591
13592 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13593
13594         * c-parser.c (c_parser_for_statement): Initialize
13595         collection_expression.
13596
13597 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13598
13599         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13600
13601 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13602
13603         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13604         (LINK_SHLIB_SPEC): Don't use %(link_path).
13605         (SUBTARGET_EXTRA_SPECS): Remove link_path.
13606
13607 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13608
13609         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13610         (NO_SHARED_LIB_SUPPORT): Remove.
13611         (LINK_SHLIB_SPEC): Remove one conditional definition.
13612
13613 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13614
13615         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13616         %{call_shared}.
13617         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13618         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13619         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13620         %{call_shared} and conditionals on these options not being passed.
13621         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13622         %{call_shared}.
13623
13624 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13625
13626         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13627         simplify.
13628
13629         * ipa-split.c: Spelling fixes.
13630
13631 2011-01-19  Richard Henderson  <rth@redhat.com>
13632
13633         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13634         (*mulsi3): Likewise.
13635
13636         * longlong.h [__mn10300__] (count_leading_zeros): New.
13637         [__mn10300__] (umul_ppmm, smul_ppmm): New.
13638         [__mn10300__] (add_ssaaaa, subddmmss): New.
13639         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13640         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13641
13642 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13643
13644         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13645
13646 2011-01-19  Richard Henderson  <rth@redhat.com>
13647
13648         * config/mn10300/mn10300.md (addsi3_flags): New.
13649         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13650         (subsi3_flags, subc_internal, subdi3): New.
13651         (subdi3_internal, *subdi3_degenerate): New.
13652         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13653
13654         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13655         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13656         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
13657         * config/mn10300/mn10300-protos.h: Update.
13658         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13659         (return_ret): Likewise.  Rename from return_internal_regs.
13660         (return_internal): Remove.
13661
13662         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13663         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13664         (mn10300_legitimate_constant_p): Likewise.
13665         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13666         (mn10300_frame_size): New.
13667         (mn10300_expand_prologue): Use it.
13668         (mn10300_expand_epilogue): Likewise.
13669         (mn10300_initial_offset): Likewise.
13670         * config/mn10300/mn10300-protos.h: Update.
13671         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13672         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13673         (prologue, epilogue, return_internal): Tidy output code.
13674         (mn10300_store_multiple_operation, return): Likewise.
13675         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13676         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13677         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13678         (load_pic, am33_load_pic): New.
13679         (mn10300_load_pic0, mn10300_load_pic1): New.
13680
13681         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13682         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13683         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13684         (cc_flags_for_mode, cc_flags_for_code): New.
13685         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13686         overflow flag is not valid.  Validate that the flags we need
13687         for the comparison are valid.
13688         (mn10300_output_cmp): Remove.
13689         (mn10300_output_add): New.
13690         (mn10300_select_cc_mode): Use cc_flags_for_code.
13691         (mn10300_split_cbranch): New.
13692         (mn10300_match_ccmode): New.
13693         (mn10300_split_and_operand_count): New.
13694         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13695         to the function.
13696         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13697         (addsi3): ... here.  Use mn10300_output_add.
13698         (*addsi3_flags): New.
13699         (*am33_subsi3, *mn10300_subsi3): Merge...
13700         (subsi3): ... here.  Use attribute isa.
13701         (*subsi3_flags): New.
13702         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
13703         when possible.
13704         (*am33_andsi3, *mn10300_andsi3): Merge...
13705         (andsi3): ... here.
13706         (*andsi3_flags): New.
13707         (andsi3 splitters): New.
13708         (*am33_iorsi3, *mn10300_iorsi3): Merge...
13709         (iorsi3): ... here.
13710         (*iorsi3_flags): New.
13711         (*am33_xorsi3, *mn10300_xorsi3): Merge...
13712         (xorsi3): ... here.
13713         (*xorsi3_flags): New.
13714         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13715         (one_cmplsi2): ... here.
13716         (*one_cmplsi2_flags): New.
13717         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
13718         instead of "dax" in constraints.  Use mn10300_split_cbranch.
13719         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
13720         use matching constraints to eliminate a self-comparison.
13721         (*integer_conditional_branch): Rename from integer_conditional_branch.
13722         Use int_mode_flags to match CC_REG.
13723         (*cbranchsi4_btst, *btstsi): New.
13724         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
13725         mn10300_split_cbranch.
13726         (*am33_cmpsf): Rename from am33_cmpsf.
13727         (*float_conditional_branch): Rename from float_conditional_branch.
13728         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13729         (zero_extendqisi2): ... here.
13730         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13731         (zero_extendhisi2): ... here.
13732         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13733         (extendqisi2): ... here.
13734         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13735         (extendhisi2): ... here.
13736         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13737         (ashlsi3): ... here.
13738         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13739         (lshrsi3): ... here.
13740         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13741         (ashrsi3): ... here.
13742         (consecutive add peephole): Remove.
13743         * config/mn10300/predicates.md (label_ref_operand): New.
13744         (int_mode_flags): New.
13745         (CCZN_comparison_operator): New.
13746
13747         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13748         (throughput_42_latency_43): New reservation.
13749         (mulsidi3, umulsidi3): New expanders.
13750         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
13751         the MDR register to allocation; separately allocate the low and
13752         high parts of the DImode result.
13753         (umulsidi3_internal): Similarly.
13754         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13755         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
13756         (udivsi3, umodsi3): Remove.
13757         (udivmodsi4, divmodsi4): New expanders.
13758         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
13759         (*divmodsi4): Simiarly.
13760         (ext_internal): New.
13761
13762         * config/mn10300/constraints.md ("z"): New constraint.
13763         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13764         (FIXED_REGISTERS): Don't fix MDR.
13765         (CALL_USED_REGSITERS): Reformat nicely.
13766         (REG_ALLOC_ORDER): Add MDR.
13767         (enum regclass): Add MDR_REGS.
13768         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13769         (IRA_COVER_CLASSES): Add MDR_REGS.
13770         (REGNO_REG_CLASS): Handle MDR_REG.
13771         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13772         (mn10300_register_move_cost): Likewise.
13773         * config/mn10300/mn10300.md (MDR_REG): New.
13774         (*movsi_internal): Handle moves to/from MDR_REGS.
13775
13776         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13777         POST_MODIFY.
13778         (mn10300_secondary_reload): Tidy combination reload classes.
13779         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13780         addresses for AM33.  Allow symbolic offsets for reg+imm.
13781         (mn10300_regno_in_class_p): New.
13782         (mn10300_legitimize_reload_address): New.
13783         * config/mn10300/mn10300.h (enum reg_class): Remove
13784         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13785         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
13786         SP_OR_GENERAL_REGS.
13787         (REG_CLASS_NAMES): Update to match.
13788         (REG_CLASS_CONTENTS): Likewise.
13789         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13790         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13791         (REGNO_IN_RANGE_P): Remove.
13792         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13793         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13794         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
13795         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
13796         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
13797         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
13798         (REGNO_GENERAL_P): New.
13799         (HAVE_POST_MODIFY_DISP): New.
13800         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
13801         (LEGITIMIZE_RELOAD_ADDRESS): New.
13802         * config/mn10300/mn10300-protos.h: Update.
13803
13804         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
13805         DATA_REGS for AM33 stack-pointer destination.
13806         (mn10300_preferred_output_reload_class): Likewise.
13807         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
13808         into a form appropriate for ...
13809         (TARGET_SECONDARY_RELOAD): New.
13810         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
13811         * config/mn10300/mn10300-protos.h: Update.
13812         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13813         reload_insi; use the "A" constraint for the scratch; handle AM33
13814         moves of sp to non-address registers.
13815
13816         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13817         (*movqi_internal): ... here.
13818         (*am33_movhi, *mn10300_movhi): Merge into...
13819         (*movhi_internal): ... here.
13820         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
13821         as the source/destination of moves from/to SP.
13822         (movsf): Only allow for AM33-2.
13823         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
13824         any integer constant constraint.  Only allow for AM33-2.  Tidy
13825         all of the alternative outputs.
13826         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13827         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
13828         for MN103.
13829         (udivsi3, umodsi3): New patterns for MN103 only.
13830
13831 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
13832
13833         * doc/tm.texi.in: Spell out that a lack of register class unions
13834         can lead to ICEs.
13835         * doc/tm.texi: Regenerate.
13836
13837 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13838
13839         PR rtl-optimization/47337
13840         * dce.c (check_argument_store): New function.
13841         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
13842
13843         PR tree-optimization/47290
13844         * tree-eh.c (infinite_empty_loop_p): New function.
13845         (cleanup_empty_eh): Use it.
13846
13847 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
13848
13849         PR target/46997
13850         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13851         (a64_expand_widen_sum): Ditto.
13852         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13853         (vec_extract_evenodd_help): Ditto.
13854         (vec_extract_evenv4hi): Ditto.
13855         (vec_extract_oddv4hi): Ditto.
13856         (vec_extract_evenv2si): Ditto.
13857         (vec_extract_oddv2si): Ditto.
13858         (vec_extract_evenv2sf): Ditto.
13859         (vec_extract_oddv2sf): Ditto.
13860         (vec_pack_trunc_v4hi: Ditto.
13861         (vec_pack_trunc_v2si): Ditto.
13862         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13863         (vec_interleave_highv8qi): Ditto.
13864         (mix1_r): Ditto.
13865         (vec_extract_oddv8qi): Ditto.
13866         (vec_interleave_lowv4hi): Ditto.
13867         (vec_interleave_highv4hi): Ditto.
13868         (vec_interleave_lowv2si): Ditto.
13869         (vec_interleave_highv2si): Ditto.
13870
13871 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13872
13873         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13874         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13875         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
13876         (pa_c_mode_for_suffix): New.
13877         (TARGET_EXPAND_BUILTIN): Define.
13878         (TARGET_C_MODE_FOR_SUFFIX): Define.
13879         (pa_builtins): Define.
13880         (pa_init_builtins): Register __float128 type and init new support
13881         builtins.
13882         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13883         * config/pa/quadlib.c (_U_Qfcopysign): New.
13884
13885 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13886
13887         PR middle-end/46894
13888         * explow.c (allocate_dynamic_stack_space): Do not assume more than
13889         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13890         are defined.
13891
13892 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13893
13894         PR tree-optimization/47179
13895         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13896         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13897
13898 2011-01-18  Richard Guenther  <rguenther@suse.de>
13899
13900         PR rtl-optimization/47216
13901         * emit-rtl.c: Include tree-flow.h.
13902         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13903         of replicating it with different semantics.
13904         * Makefile.in (emit-rtl.o): Adjust.
13905
13906 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13907
13908         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
13909         (cortex_a9_dp): Handle neon types correctly.
13910
13911 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
13912
13913         PR rtl-optimization/47299
13914         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
13915         subtarget.  Use normal multiplication if both operands are constants.
13916         * expmed.c (expand_widening_mult): Don't try to optimize constant
13917         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
13918         before using it.
13919
13920 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13921
13922         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
13923         spacing after 'e.g.', typos, comma, hyphenation.
13924
13925 2011-01-17  Richard Henderson  <rth@redhat.com>
13926
13927         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13928         (rx_restricted_mem_operand): New.
13929         (rx_shift_operand): Use register_operand.
13930         (rx_source_operand, rx_compare_operand): Likewise.
13931         * config/rx/rx.md (addsi3_flags): New expander.
13932         (adddi3): Rewrite as expander.
13933         (adc_internal, *adc_flags, adddi3_internal): New patterns.
13934         (subsi3_flags): New expander.
13935         (subdi3): Rewrite as expander.
13936         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13937
13938         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13939         (rx_init_builtins): Remove sat builtin.
13940         (rx_expand_builtin): Likewise.
13941         * config/rx/rx.md (ssaddsi3): New.
13942         (*sat): Rename from sat.  Represent the CC_REG input.
13943
13944         * config/rx/predicates.md (rshift_operator): New.
13945         * config/rx/rx.c (rx_expand_insv): Remove.
13946         * config/rx/rx-protos.h: Update.
13947         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
13948         operand to the canonical position.
13949         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13950         (*bitclr, *bitclr_in_memory): Similarly.
13951         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13952         (insv): Retain the zero_extract in the expansion.
13953
13954         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13955         (bswaphi2, bitinvert, revw): Likewise.
13956
13957         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13958         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13959         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13960         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13961         (bitset, bitset_in_memory): Likewise.
13962         (bitinvert, bitinvert_in_memory): Likewise.
13963         (bitclr, bitclr_in_memory): Likewise.
13964         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13965         (rx_strend, rx_cmpstrn): Likewise.
13966         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
13967         (bitop peep2 patterns): Remove.
13968
13969         * config/rx/rx.c (rx_match_ccmode): New.
13970         * config/rx/rx-protos.h: Update.
13971         * config/rx/rx.md (abssi2): Clobber, don't set flags.
13972         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13973         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13974         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13975         (fix_truncsfsi2, floatsisf2): Likewise.
13976         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13977         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13978         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13979         (*subsi3_flags, *xorsi3_flags): New.
13980
13981         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13982
13983         * config/rx/rx.c (rx_print_operand): Remove workaround for
13984         unsplit comparison operations.
13985
13986         * config/rx/rx.md (movsicc): Split after reload.
13987         (*movsicc): Merge *movsieq and *movsine via match_operator.
13988         (*stcc): New pattern.
13989
13990         * config/rx/rx.c (rx_float_compare_mode): Remove.
13991         * config/rx/rx.h (rx_float_compare_mode): Remove.
13992         * config/rx/rx.md (cstoresi4): Split after reload.
13993         (*sccc): New pattern.
13994
13995         * config/rx/predicates.md (label_ref_operand): New.
13996         (rx_z_comparison_operator): New.
13997         (rx_zs_comparison_operator): New.
13998         (rx_fp_comparison_operator): New.
13999         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
14000         Validate that the flags are set properly for the comparison.
14001         (rx_gen_cond_branch_template): Remove.
14002         (rx_cc_modes_compatible): Remove.
14003         (mode_from_flags): New.
14004         (flags_from_code): Rename from flags_needed_for_conditional.
14005         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
14006         (rx_select_cc_mode): Likewise.
14007         (rx_split_fp_compare): New.
14008         (rx_split_cbranch): New.
14009         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
14010         (*cbranchsi4): Use match_operator and rx_split_cbranch.
14011         (*cbranchsf4): Similarly.
14012         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
14013         match_operator and rx_split_cbranch.
14014         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
14015         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
14016         (*cmpsi): Rename from cmpsi.
14017         (*tstsi): Rename from tstsi.
14018         (*cmpsf): Rename from cmpsf; use CC_Fmode.
14019         (*conditional_branch): Rename from conditional_branch.
14020         (*reveresed_conditional_branch): Remove.
14021         (b<code>): Remove expander.
14022         * config/rx/rx-protos.h: Update.
14023
14024         * config/rx/rx.c (rx_compare_redundant): Remove.
14025         * config/rx/rx.md (cmpsi): Don't use it.
14026         * config/rx/rx-protos.h: Update.
14027
14028         * config/rx/rx-modes.def (CC_F): New mode.
14029         * config/rx/rx.c (rx_select_cc_mode): New.
14030         * config/rx/rx.h (SELECT_CC_MODE): Use it.
14031         * config/rx/rx-protos.h: Update.
14032
14033 2011-01-17  Richard Henderson  <rth@redhat.com>
14034
14035         * except.c (dump_eh_tree): Fix stray ; after for statement.
14036
14037 2011-01-17  Richard Guenther  <rguenther@suse.de>
14038
14039         PR tree-optimization/47313
14040         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
14041         handling before copying the body.  Properly deal with
14042         by-reference result in SSA form.
14043
14044 2011-01-17  Ian Lance Taylor  <iant@google.com>
14045
14046         PR target/47219
14047         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
14048         (struct_value_alias_set): Don't define.
14049         (sparc_option_override): Don't set sparc_sr_alias_set and
14050         struct_value_alias_set.
14051         (save_or_restore_regs): Use gen_frame_mem rather than calling
14052         set_mem_alias_set.
14053         (sparc_struct_value_rtx): Likewise.
14054
14055 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
14056
14057         PR target/47318
14058         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
14059         (_mm_maskstore_pd): Likewise.
14060         (_mm_maskload_ps): Likewise.
14061         (_mm_maskstore_ps): Likewise.
14062         (_mm256_maskload_pd): Change mask to __m256i.
14063         (_mm256_maskstore_pd): Likewise.
14064         (_mm256_maskload_ps): Likewise.
14065         (_mm256_maskstore_ps): Likewise.
14066
14067         * config/i386/i386-builtin-types.def: Updated.
14068         (ix86_expand_special_args_builtin): Likewise.
14069
14070         * config/i386/i386.c (bdesc_special_args): Update
14071         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14072         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14073         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14074         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14075
14076         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14077         Use <avxpermvecmode> on mask register.
14078         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14079
14080 2011-01-17  Olivier Hainque  <hainque@adacore.com>
14081             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
14082             Eric Botcazou  <ebotcazou@adacore.com>
14083
14084         PR target/46655
14085         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14086         if <= USHRT_MAX in 32-bit mode.
14087
14088 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14089
14090         * doc/install.texi (Configuration, Specific): Wrap long
14091         lines in examples.  Allow line wrapping in long options
14092         and URLs where beneficial for PDF output.
14093
14094 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
14095
14096         * config/mips/mips.c (mips_classify_symbol): Don't return
14097         SYMBOL_PC_RELATIVE for nonlocal labels.
14098
14099 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
14100
14101         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14102
14103 2011-01-15  Jan Hubicka  <jh@suse.cz>
14104
14105         PR tree-optimization/47276
14106         * ipa.c (function_and_variable_visibility): Do not try to mark alias
14107         declarations as needed.
14108
14109 2011-01-15  Martin Jambor  <mjambor@suse.cz>
14110
14111         * common.opt (fdevirtualize): New flag.
14112         * doc/invoke.texi (Option Summary): Document it.
14113         * opts.c (default_options_table): Add devirtualize flag.
14114         * ipa-prop.c (detect_type_change): Return immediately if
14115         devirtualize flag is not set.
14116         (detect_type_change_ssa): Likewise.
14117         (compute_known_type_jump_func): Likewise.
14118         (ipa_analyze_virtual_call_uses): Likewise.
14119
14120 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14121
14122         PR tree-optimization/45934
14123         PR tree-optimization/46302
14124         * ipa-prop.c (type_change_info): New type.
14125         (stmt_may_be_vtbl_ptr_store): New function.
14126         (check_stmt_for_type_change): Likewise.
14127         (detect_type_change): Likewise.
14128         (detect_type_change_ssa): Likewise.
14129         (compute_complex_assign_jump_func): Check for dynamic type change.
14130         (compute_complex_ancestor_jump_func): Likewise.
14131         (compute_known_type_jump_func): Likewise.
14132         (compute_scalar_jump_functions): Likewise.
14133         (ipa_analyze_virtual_call_uses): Likewise.
14134         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14135
14136 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14137
14138         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14139         * config/i386/i386.opt (msse5): New Alias.
14140
14141 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14142
14143         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14144         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14145         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14146         * config/sparc/sparc.h (CC1_SPEC): Likewise.
14147
14148 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14149
14150         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14151         -mcpu options.
14152         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14153         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14154         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14155         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14156         Likewise.
14157         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14158
14159 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14160
14161         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
14162
14163 2011-01-14  Mike Stump  <mikestump@comcast.net>
14164
14165         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14166         * config/fr30/fr30.md: Likweise
14167         (movsi_push): Likewise.
14168         (movsi_pop): Likewise.
14169         (enter_func): Likewise.
14170         * config/moxie/moxie.md (movsi_push): Likewise.
14171         (movsi_pop): Likewise.
14172
14173 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14174
14175         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14176         %{no_archive} %{exact_version}.
14177         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14178         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14179         %{no_archive} %{exact_version}.
14180         * config/mips/openbsd.h (LINK_SPEC): Likewise.
14181         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14182         * config/mips/vxworks.h: Likewise.
14183
14184 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14185
14186         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
14187
14188 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14189
14190         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14191         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14192
14193 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14194
14195         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14196         -nodefaultlib.
14197
14198 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14199
14200         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14201         for mcpu not cpu.
14202         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14203         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14204         not cpu.
14205         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14206         Don't handle -shlib.
14207
14208 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14209
14210         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14211         (CC1_SPEC): Don't handle -profile.
14212
14213 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14214
14215         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14216         * config/mips/mips.h (CC1_SPEC): Likewise.
14217
14218 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14219
14220         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14221         * config/mips/mips.h (CC1_SPEC): Likewise.
14222
14223 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14224
14225         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14226         * config/m32r/linux.h (LINK_SPEC): Likewise.
14227         * config/mips/linux.h (LINK_SPEC): Likewise.
14228         * config/mips/linux64.h (LINK_SPEC): Likewise.
14229         * config/sparc/linux.h (LINK_SPEC): Likewise.
14230         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14231         LINK_SPEC): Likewise.
14232         * config/xtensa/linux.h (LINK_SPEC): Likewise.
14233
14234 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14235
14236         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14237         %{version:-v}.
14238         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14239
14240 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14241
14242         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14243         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14244
14245 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14246
14247         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14248
14249 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14250
14251         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14252         supports -Bstatic/-Bdynamic.
14253         * configure: Regenerate.
14254
14255 2011-01-14  Jan Hubicka  <jh@suse.cz>
14256             Jack Howarth  <howarth@bromo.med.uc.edu>
14257
14258         PR target/46037
14259         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14260         when checking debug_info_level. Test write_symbols instead of
14261         debug_hooks->var_location when setting flag_var_tracking_uninit.
14262
14263 2011-01-14  Richard Guenther  <rguenther@suse.de>
14264
14265         PR tree-optimization/47179
14266         * target.def (ref_may_alias_errno): New target hook.
14267         * targhooks.h (default_ref_may_alias_errno): Declare.
14268         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14269         (default_ref_may_alias_errno): New function.
14270         * target.h (struct ao_ref_s): Declare.
14271         * tree-ssa-alias.c: Include target.h.
14272         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14273         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14274         (targhooks.o): Likewise.
14275         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14276         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14277
14278 2011-01-14  Richard Guenther  <rguenther@suse.de>
14279
14280         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
14281
14282 2011-01-14  Richard Guenther  <rguenther@suse.de>
14283
14284         PR tree-optimization/47280
14285         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14286         return CFG changes.
14287         (tree_ssa_forward_propagate_single_use_vars): Deal with
14288         CFG changes from associate_plusminus.
14289
14290 2011-01-14  Richard Guenther  <rguenther@suse.de>
14291
14292         PR middle-end/47281
14293         Revert
14294         2011-01-11  Richard Guenther  <rguenther@suse.de>
14295
14296         PR tree-optimization/46076
14297         * tree-ssa.c (useless_type_conversion_p): Conversions from
14298         unprototyped to empty argument list function types are useless.
14299
14300 2011-01-14  Richard Guenther  <rguenther@suse.de>
14301
14302         PR tree-optimization/47286
14303         * tree-ssa-structalias.c (new_var_info): Register variables are global.
14304
14305 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14306
14307         PR middle-end/46823
14308         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14309
14310 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
14311
14312         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14313         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14314         * config/xtensa/xtensa.c (xtensa_libcall_value,
14315         xtensa_function_value_regno_p): New functions.
14316         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14317
14318 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
14319
14320         PR c++/47213
14321         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14322         PE specific hook.
14323         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14324         New function prototype.
14325         * config/i386/winnt.c (i386_pe_assemble_visibility):
14326         Warn only if attribute was specified by user.
14327
14328 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
14329
14330         PR target/47251
14331         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14332         floating point.
14333         (floatunsdidf2_fcfidu): Ditto.
14334
14335 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14336
14337         * config/s390/s390.c (print_operand_address): Replace 'error' with
14338         'output_operand_lossage'.
14339         (print_operand): Likewise.
14340
14341 2011-01-13  Jeff Law  <law@redhat.com>
14342
14343         PR rtl-optimization/39077
14344         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14345         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14346         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14347         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14348         * gcse.c (prune_insertions_deletions): New function.
14349         (compute_pre_data): Use it.
14350
14351 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
14352
14353         PR debug/PR46973
14354         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14355         static function.
14356         (prune_unused_types_mark): Use it.
14357
14358 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
14359
14360         PR rtl-optimization/45352
14361         * sel-sched.c: Update copyright years.
14362         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
14363         in the advancing loop when we have issued issue_rate insns.
14364
14365 2011-01-12  Richard Henderson  <rth@redhat.com>
14366
14367         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14368         (TARGET_MD_ASM_CLOBBERS): New.
14369
14370         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14371         (TARGET_DELEGITIMIZE_ADDRESS): New.
14372
14373         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14374         (clzsi2, *bsch): New patterns.
14375
14376         * config/mn10300/mn10300.md (INT): New mode iterator.
14377         (*mov<INT>_clr): New pattern, and peep2 to generate it.
14378
14379         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14380         flag_split_wide_types.
14381
14382         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14383         (mn10300_trampoline_init): Rewrite without a template, an immediate
14384         load and a direct branch.
14385         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14386
14387 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
14388
14389         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14390         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14391         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14392         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14393
14394 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
14395
14396         PR debug/47209
14397         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14398         of type.
14399
14400 2011-01-12  Jan Hubicka  <jh@suse.cz>
14401
14402         PR driver/47244
14403         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14404         (PLUGIN_COND_CLOSE): New macro.
14405         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14406
14407 2011-01-12  Richard Guenther  <rguenther@suse.de>
14408
14409         PR lto/47259
14410         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14411         register variables in a MEM_REF.
14412
14413 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
14414
14415         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14416         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14417         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14418         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14419         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14420         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14421         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14422         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14423         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14424         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14425         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14426         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14427         * config/gnu-user.h: New.  Copied from linux.h.
14428         (LINUX_TARGET_STARTFILE_SPEC): Rename to
14429         GNU_USER_TARGET_STARTFILE_SPEC.
14430         (LINUX_TARGET_ENDFILE_SPEC): Rename to
14431         GNU_USER_TARGET_ENDFILE_SPEC.
14432         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14433         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14434         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14435         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14436         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14437         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14438         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14439         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14440         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14441         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14442         * config/arm/linux-eabi.h (CC1_SPEC): Use
14443         GNU_USER_TARGET_CC1_SPEC.
14444         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14445         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14446         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14447         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14448         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14449         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14450         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14451         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14452
14453 2011-01-12  Richard Guenther  <rguenther@suse.de>
14454
14455         PR other/46946
14456         * doc/invoke.texi (ffast-math): Document it is turned on
14457         with -Ofast.
14458
14459 2011-01-12  Jan Hubicka  <jh@suse.cz>
14460
14461         PR tree-optimization/47233
14462         * opts.c (common_handle_option): Disable ipa-reference with profile
14463         feedback.
14464
14465 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14466
14467         * c-parser.c (c_parser_objc_at_property_declaration): Improved
14468         error message.
14469
14470 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14471
14472         * c-parser.c (c_lex_one_token): Updated and reindented some
14473         comments.  No changes in code.
14474
14475 2011-01-11  Ian Lance Taylor  <iant@google.com>
14476
14477         * godump.c (go_output_var): Don't output the variable if there is
14478         already a type with the same name.
14479
14480 2011-01-11  Ian Lance Taylor  <iant@google.com>
14481
14482         * godump.c (go_format_type): Don't generate float80.
14483
14484 2011-01-11  Richard Henderson  <rth@redhat.com>
14485
14486         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14487         declaration.  Rewrite for both speed and size.
14488         (mn10300_address_cost_1): Remove.
14489         (mn10300_register_move_cost): New.
14490         (mn10300_memory_move_cost): New.
14491         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
14492         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
14493         extensions, shifts, BSWAP, CLZ.
14494         (mn10300_wide_const_load_uses_clr): Remove.
14495         (TARGET_REGISTER_MOVE_COST): New.
14496         (TARGET_MEMORY_MOVE_COST): New.
14497         * config/mn10300/mn10300-protos.h: Update.
14498         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14499
14500         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14501         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14502         * config/mn10300/mn10300-protos.h: Update.
14503         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14504         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14505         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14506         (*test_int_bitfield, *test_byte_bitfield): Remove.
14507         (*bit_test, *subreg_bit_test): Remove.
14508         * config/mn10300/predicates.md (const_8bit_operand): Remove.
14509
14510         * config/mn10300/constraints.md ("c"): Rename from "A".
14511         ("A", "D"): New constraint letters.
14512         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14513         (fmssf4, fnmasf4, fnmssf4): Likewise.
14514
14515         * config/mn10300/mn10300.md (isa): New attribute.
14516         (enabled): New attribute.
14517
14518         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14519         (abssf2, negsf2): Define only for hardware fp.
14520         (sqrtsf2): Reformat.
14521         (addsf3, subsf3, mulsf3): Merge expander and insn.
14522
14523         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14524         (DEBUGGER_AUTO_OFFSET): Remove.
14525         (DEBUGGER_ARG_OFFSET): Remove.
14526
14527         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14528         Emit register stores with the same offsets as the hardware.
14529         (mn10300_store_multiple_operation): Don't check that the register
14530         save offsets are monotonic.
14531         * config/mn10300/mn10300-protos.h: Update.
14532
14533         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14534
14535         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14536         in terms of the value on the stack, not the MDR register.
14537
14538 2011-01-11  Jan Hubicka  <jh@suse.cz>
14539
14540         PR lto/45721
14541         PR lto/45375
14542         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14543         (symbol_alias_set_destroy, symbol_alias_set_contains,
14544         propagate_aliases_backward): Declare.
14545         * lto-streamer-out.c (struct sets): New sturcture.
14546         (trivally_defined_alias): New function.
14547         (output_alias_pair_p): Rewrite.
14548         (output_unreferenced_globals): Fix output of alias pairs.
14549         (produce_symtab): Likewise.
14550         * ipa.c (function_and_variable_visibility): Set weak alias destination
14551         as needed in lto.
14552         * varasm.c (symbol_alias_set_t): Remove.
14553         (symbol_alias_set_destroy): Export.
14554         (propagate_aliases_forward, propagate_aliases_backward): New functions
14555         based on ...
14556         (compute_visible_aliases): ... this one; remove.
14557         (trivially_visible_alias): New
14558         (trivially_defined_alias): New.
14559         (remove_unreachable_alias_pairs): Rewrite.
14560         (finish_aliases_1): Reorganize code checking if alias is defined.
14561         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14562         in LTO mode.
14563
14564 2011-01-11  Richard Guenther  <rguenther@suse.de>
14565
14566         PR tree-optimization/46076
14567         * tree-ssa.c (useless_type_conversion_p): Conversions from
14568         unprototyped to empty argument list function types are useless.
14569
14570 2011-01-11  Richard Guenther  <rguenther@suse.de>
14571
14572         PR middle-end/45235
14573         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14574         volatile MEMs as MEM_READONLY_P.
14575
14576 2011-01-11  Richard Guenther  <rguenther@suse.de>
14577
14578         PR tree-optimization/47239
14579         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14580
14581 2011-01-11  Jeff Law  <law@redhat.com>
14582
14583         PR tree-optimization/47086
14584         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14585         IVs from statements that might throw.
14586
14587 2011-01-10  Jan Hubicka  <jh@suse.cz>
14588
14589         PR lto/45375
14590         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14591
14592 2011-01-10  Jan Hubicka  <jh@suse.cz>
14593
14594         PR lto/45375
14595         * profile.c (read_profile_edge_counts): Ignore profile inconistency
14596         when correcting profile.
14597
14598 2011-01-10  Jan Hubicka  <jh@suse.cz>
14599
14600         PR lto/46083
14601         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14602         DECL_FINI_PRIORITY.
14603         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14604         Restore DECL_FINI_PRIORITY.
14605
14606 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14607
14608         * doc/gimple.texi: Fix quoting of multi-word return values in
14609         @deftypefn statements.  Ensure presence of return value.  Wrap
14610         overlong @deftypefn lines.
14611         (is_gimple_operand, is_gimple_min_invariant_address): Remove
14612         descriptions of removed functions.
14613         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14614         of multi-word return value in @deftypefn statement.
14615
14616 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14617
14618         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14619         (Conditional Expressions, Logical Operators)
14620         (Statement and operand traversals): Do not indent smallexample
14621         code.  Fix duplicate function argument in example.
14622
14623 2011-01-10  Jeff Law  <law@redhat.com>
14624
14625         PR tree-optimization/47141
14626         * ipa-split.c (split_function): Handle case where we are
14627         returning a value and the return block has a virtual operand phi.
14628
14629 2011-01-10  Jan Hubicka  <jh@suse.cz>
14630
14631         PR tree-optimization/47234
14632         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14633         (pass_feedback_split_functions): Declare.
14634         * passes.c (init_optimization_passes): Add ipa-split as subpass of
14635         tree-profile.
14636         * ipa-split.c (gate_split_functions): Update comments; disable
14637         split-functions for profile_arc_flag and branch_probabilities.
14638         (gate_feedback_split_functions): New function.
14639         (execute_feedback_split_functions): New function.
14640         (pass_feedback_split_functions): New global var.
14641
14642 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
14643
14644         PR lto/46760
14645         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14646         calling gimple_call_set_cannot_inline.
14647
14648 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
14649
14650         * config/darwin-sections.def: Remove unused section.
14651
14652 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
14653
14654         PR c++/47218
14655         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14656
14657 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14658
14659         PR objc/47232
14660         * c-parser.c (c_parser_declaration_or_fndef): Improved
14661         error message.
14662
14663 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
14664
14665         * config/i386/winnt.c (i386_pe_start_function): Make sure
14666         to switch back to function's section.
14667
14668 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
14669
14670         PR gcc/46902
14671         PR testsuite/46912
14672         * plugin.c: Move include of dlfcn.h from here...
14673         * system.h: ... to here.
14674
14675 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14676
14677         * doc/cpp.texi (C++ Named Operators): Fix markup for header
14678         file name.
14679         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14680         two extra empty pages in PDF output.
14681
14682 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
14683
14684         PR objc/47078
14685         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14686         for error recovery purposes behave as if it was not specified so
14687         that the default type is usd.
14688
14689 2011-01-07  Jan Hubicka  <jh@suse.cz>
14690
14691         PR tree-optmization/46469
14692         * ipa.c (function_and_variable_visibility): Clear needed flags on
14693         nodes with external decls; handle weakrefs merging correctly.
14694
14695 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
14696
14697         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14698         not false.
14699
14700 2011-01-07  Jan Hubicka  <jh@suse.cz>
14701
14702         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
14703         and no longer claim that gold is required for linker plugin.
14704         * configure: Regenerate.
14705         * gcc.c (PLUGIN_COND): New macro.
14706         (LINK_COMMAND_SPEC): Use it.
14707         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14708         * config.in (HAVE_LTO_PLUGIN): New.
14709         * configure.ac (--with-lto-plugin): New parameter; autodetect
14710         HAVE_LTO_PLUGIN.
14711
14712 2011-01-07  Jan Hubicka  <jh@suse.cz>
14713
14714         PR tree-optimization/46367
14715         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14716         when we can update original.
14717         (cgraph_mark_inline_edge): Sanity check.
14718         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14719
14720 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14721
14722         * config/spu/spu.h (ASM_COMMENT_START): Define.
14723
14724 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
14725
14726         PR driver/42445
14727         * gcc.c (%>S): New.
14728         (SWITCH_KEEP_FOR_GCC): Likewise.
14729         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14730         (do_spec_1): Handle "%>".
14731
14732         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14733
14734 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
14735
14736         PR target/47201
14737         * config/i386/i386.c (ix86_delegitimize_address): If
14738         simplify_gen_subreg fails, return orig_x.
14739
14740         PR bootstrap/47187
14741         * value-prof.c (gimple_stringop_fixed_value): Handle
14742         lhs of the call properly.
14743
14744 2011-01-07  Jan Hubicka  <jh@suse.cz>
14745
14746         PR lto/45375
14747         * lto-opt.c (lto_reissue_options): Set flag_shlib.
14748
14749 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14750
14751         * target.def (function_switched_text_sections): New hook.
14752         * doc/tm.texi: Regenerated.
14753         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14754         * final.c (default_function_switched_text_sections): New.
14755         (final_scan_insn): Call function_switched_text_sections when a
14756         mid-function section change occurs.
14757         * output.h (default_function_switched_text_sections): Declare.
14758         * config/darwin-protos.h (darwin_function_switched_text_sections):
14759         Likewise.
14760         * config/darwin.c (darwin_function_switched_text_sections): New.
14761         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14762
14763 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14764
14765         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
14766         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
14767         the secondary code fragment when outputting for DWARF == 2.
14768
14769 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
14770
14771         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14772         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14773         Remove.
14774         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14775         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14776
14777 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
14778
14779         PR debug/46704
14780         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14781         when it is not empty.
14782
14783 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
14784
14785         Bobcat Enablement
14786         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
14787         (case ${target}): Add btver1.
14788         * config/i386/driver-i386.c (host_detect_local_cpu): Let
14789         -march=native recognize btver1 processors.
14790         * config/i386/i386-c.c (ix86_target_macros_internal): Add
14791         btver1 def_and_undef
14792         * config/i386/i386.c (struct processor_costs btver1_cost): New
14793         btver1 cost table.
14794         (m_BTVER1): New definition.
14795         (m_AMD_MULTIPLE): Includes m_BTVER1.
14796         (initial_ix86_tune_features): Add btver1 tune.
14797         (processor_target_table): Add btver1 entry.
14798         (static const char *const cpu_names): Add btver1 entry.
14799         (software_prefetching_beneficial_p): Add btver1.
14800         (ix86_option_override_internal): Add btver1 instruction sets.
14801         (ix86_issue_rate): Add btver1.
14802         (ix86_adjust_cost): Add btver1.
14803         * config/i386/i386.h (TARGET_BTVER1): New definition.
14804         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
14805         (enum processor_type): Add PROCESSOR_BTVER1.
14806         * config/i386/i386.md (define_attr "cpu"): Add btver1.
14807
14808 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14809
14810         PR target/43309
14811         * config/i386/i386.c (legitimize_tls_address)
14812         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14813         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14814         (tls_initial_exec_64_sun): New pattern.
14815
14816 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
14817
14818         * doc/invoke.texi (Overall Options): Improve wording and markup
14819         of the description of -wrapper.
14820
14821 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14822
14823         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14824         rdynamic, threads): New Driver options.
14825
14826 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14827
14828         PR target/38118
14829         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14830         if coming from .tdata.
14831         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14832
14833 2011-01-06  Jan Hubicka  <jh@suse.cz>
14834
14835         PR lto/47188
14836         * collect2.c (main): Do not enable LTOmode when plugin is active.
14837
14838 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14839
14840         PR other/45915
14841         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14842         --version output if supported.
14843         * configure: Regenerate.
14844
14845 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14846
14847         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14848         Driver options.
14849
14850 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
14851
14852         PR c/47150
14853         * c-convert.c (convert): When converting a complex expression
14854         other than COMPLEX_EXPR to a different complex type, ensure
14855         c_save_expr is called instead of save_expr, unless in_late_binary_op.
14856         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14857         when converting COMPLEX_TYPE.
14858
14859 2011-01-06  Ira Rosen  <irar@il.ibm.com>
14860
14861         PR tree-optimization/47139
14862         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14863         only the last reduction value is used outside the loop.  Update
14864         documentation.
14865
14866 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
14867
14868         * config/rtems.opt: New.
14869         * config.gcc (*-*-rtems*): Use rtems.opt.
14870
14871 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
14872
14873         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14874         processors do not support 3DNow instructions.
14875
14876 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14877
14878         * config/spu/spu.c (spu_option_override): Set parameter
14879         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14880
14881 2011-01-05  Jan Hubicka  <jh@suse.cz>
14882
14883         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14884         at the command line.
14885
14886 2011-01-05  Martin Jambor  <mjambor@suse.cz>
14887
14888         PR lto/47162
14889         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14890         deltas on streamed outgoing edges.
14891         (output_node_opt_summary): Output info for outgoing edges only when
14892         the node is in new parameter set.
14893         (output_cgraph_opt_summary): New parameter set, passed to the two
14894         aforementioned functions.  Update its forward declaration and its
14895         callee too.
14896
14897 2011-01-05  Tom Tromey  <tromey@redhat.com>
14898
14899         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14900         operator to c_finish_omp_atomic.
14901         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14902         (build_unary_op): Update.
14903         (build_modify_expr): Update.
14904         (build_asm_expr): Update.
14905
14906 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14907
14908         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14909         newly inserted insns.
14910         (pad_bb): Likewise.
14911         (spu_emit_branch_hint): Likewise.
14912         (insert_hbrp_for_ilb_runout): Likewise.
14913         (spu_machine_dependent_reorg): Call df_finish_pass after
14914         schedule_insns returns.
14915
14916 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14917
14918         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14919
14920 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14921
14922         PR tree-optimization/47005
14923         * tree-sra.c (struct access): Add 'non_addressable' bit.
14924         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14925         (decide_one_param_reduction): Return 0 if the parameter is passed by
14926         reference and one of the accesses in the group is non_addressable.
14927
14928 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14929
14930         PR tree-optimization/47056
14931         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14932         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
14933         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
14934
14935 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14936
14937         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14938         initializer.  Skip view conversions from aggregate types.
14939
14940 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
14941
14942         PR bootstrap/47055
14943         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14944
14945 2011-01-04  Philipp Thomas  <pth@suse.de>
14946
14947         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14948         obvious typo.
14949
14950 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14951
14952         * function.c (thread_prologue_and_epilogue_insns): Do not crash
14953         on empty epilogue sequences.
14954
14955 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
14956
14957         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14958         non-static): New Driver options.
14959
14960 2011-01-04  Jie Zhang  <jie@codesourcery.com>
14961
14962         PR driver/47137
14963         * gcc.c (default_compilers[]): Set combinable field to 0
14964         for all assembly languages.
14965
14966 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
14967
14968         * config/mips/loongson3a.md: New file.
14969         * config/mips/mips.md: Include loongson3a.md.
14970         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14971         TUNE_LOONGSON_3A.
14972
14973 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14974
14975         PR middle-end/47017
14976         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14977         instead of convert_memory_address_addr_space on the base expression.
14978
14979 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14980
14981         * config/spu/spu.c (spu_option_override): Update error text
14982         for bad -march= / -mtune= values.
14983
14984 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14985
14986         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14987         if branch-hint optimization will be performed.
14988
14989 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14990
14991         PR tree-optimization/47148
14992         * ipa-split.c (split_function): Convert arguments to
14993         DECL_ARG_TYPE if possible.
14994
14995         PR tree-optimization/47155
14996         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
14997         when computing uns.
14998
14999         PR rtl-optimization/47157
15000         * combine.c (try_combine): If undobuf.other_insn becomes
15001         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
15002         and set *new_direct_jump_p too.
15003
15004 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
15005
15006         PR tree-optimization/47021
15007         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
15008
15009 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
15010
15011         * gcc.c (process_command): Update copyright notice dates.
15012         * gcov.c (print_version): Likewise.
15013         * gcov-dump.c (print_version): Likewise.
15014         * mips-tfile.c (main): Likewise.
15015         * mips-tdump.c (main): Likewise.
15016
15017 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15018
15019         PR tree-optimization/46801
15020         * tree-sra.c (type_internals_preclude_sra_p): Check whether
15021         aggregate fields start at byte boundary instead of the bit-field flag.
15022
15023 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
15024
15025         PR driver/47137
15026         * gcc.c (main): Revert revision 168407.
15027
15028 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15029
15030         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
15031
15032 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15033
15034         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
15035         vector optab to expand vector/scalar shift, update gimple to vector.
15036
15037 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15038
15039         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
15040         a thunk.
15041
15042 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15043
15044         PR tree-optimization/46984
15045         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
15046         HOST_WIDE_INT.
15047         (cgraph_create_indirect_edge): Fixed line length.
15048         (cgraph_indirect_call_info): Declare.
15049         (cgraph_make_edge_direct) Update declaration.
15050         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
15051         (cgraph_create_indirect_edge): Use it.
15052         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
15053         callees.
15054         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
15055         the new thunk_delta representation.
15056         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
15057         HOST_WIDE_INT.
15058         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15059         (ipa_read_indirect_edge_info): Likewise.
15060         * lto-cgraph.c (output_edge_opt_summary): New function.
15061         (output_node_opt_summary): Call it on all outgoing edges.
15062         (input_edge_opt_summary): New function.
15063         (input_node_opt_summary): Call it on all outgoing edges.
15064
15065 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
15066
15067         PR driver/47137
15068         * gcc.c (main): Don't check have_o when settting combine_inputs.
15069
15070 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
15071
15072         * regrename.c: Add general comment describing the pass.
15073         (struct du_head): Remove 'length' field.
15074         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15075         (regrename_optimize): Do not sort chains.  Rework comments, add others.
15076         Force renaming to the preferred class (if any) in the first pass and do
15077         not consider registers that belong to it in the second pass.
15078         (create_new_chain): Do not set 'length' field.
15079         (scan_rtx_reg): Likewise.
15080
15081 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
15082
15083         PR tree-optimization/47140
15084         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15085         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15086         to bit_value_binop.
15087
15088         PR rtl-optimization/47028
15089         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15090         parm_birth_insn instead of at the beginning of first bb.
15091
15092 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
15093
15094         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15095         Remove the word "see" before "@pxref".
15096         * doc/rtl.texi: Remove the word "see" before "@pxref".
15097
15098 2011-01-01  Jan Hubicka  <jh@suse.cz>
15099
15100         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15101         memory.
15102
15103 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
15104
15105         PR target/38662
15106         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
15107
15108 \f
15109 Copyright (C) 2011 Free Software Foundation, Inc.
15110
15111 Copying and distribution of this file, with or without modification,
15112 are permitted in any medium without royalty provided the copyright
15113 notice and this notice are preserved.