opt-read.awk: New.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
2
3         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
4         * optc-gen.awk: Move common code to opt-read.awk.
5         * opth-gen.awk: Likewise.
6         * Makefile.in (options.c, s-options-h): Update to use
7         opt-read.awk.
8
9 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
10
11         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
12
13 2011-05-20  Tom de Vries  <tom@codesourcery.com>
14
15         PR target/45098
16         * tree-ssa-loop-ivopts.c: Include expmed.h.
17         (get_shiftadd_cost): New function.
18         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
19
20 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
21
22         PR bootstrap/49086
23         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
24         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
25
26 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
27
28         * Makefile.in: Update comment referring to $(OBJS-common).
29
30 2011-05-20  Ian Lance Taylor  <iant@google.com>
31
32         * godump.c (go_output_typedef): Put enum constants in the macro
33         hash table to avoid duplicate Go const definitions.
34
35 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
36
37         * Makefile.in (LIBDEPS): Add libcommon.a.
38         (LIBS): Likewise.
39         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
40         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
41         pretty-print.o and version.o.
42         (OBJS-libcommon): New.
43         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
44         (BACKEND): Add libcommon.a.
45         (MOSTLYCLEANFILES): Likewise.
46         (libcommon.a): New.
47         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
48         (cpp$(exeext)): Likewise.
49         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
50         pretty-print.o and input.o.
51         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
52         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
53         (errors.o): Remove.
54         (mips-tfile): Don't explicitly use version.o.
55         (mips-tdump): Likewise.
56         (gcov.o): Depend on $(DIAGNOSTIC_H).
57         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
58         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
59         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
60         * gcov-dump.c: Include intl.h and diagnostic.h.
61         (main): Initialize diagnostics.
62         * gcov.c: Include diagnostic.h.
63         (fnotice): Remove.
64         (main): Initialize diagnostics.
65         * lto-wrapper.c: Include diagnostic.h.
66         (main): Initialize diagnostics.
67
68 2011-05-20  Michael Matz  <matz@suse.de>
69
70         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
71
72 2011-05-20  Michael Matz  <matz@suse.de>
73             Richard Guenther  <rguenther@suse.de>
74
75         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
76         use lto_streamer_cache_append directly instead of returning a VEC.
77         (preload_common_node): Remove.
78         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
79         track seen nodes.
80         (lto_streamer_cache_create): Call lto_preload_common_nodes.
81
82 2011-05-20  Richard Guenther  <rguenther@suse.de>
83
84         PR tree-optimization/49079
85         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
86         MEM_REFs correctly for the trailing array access detection.
87         Special case constants the same way as decls for overall size
88         constraining.
89
90 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
91
92         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
93         argument expansion.
94
95 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
96
97         PR tree-optimization/49073
98         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
99         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
100         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
101
102 2011-05-20  Richard Guenther  <rguenther@suse.de>
103
104         PR middle-end/48849
105         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
106         of pointer types the same way the middle-end does.
107
108 2011-05-20  Richard Guenther  <rguenther@suse.de>
109
110         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
111         or pointer-to chains.  Delay all fixup to uniquify_nodes.
112
113 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
114
115         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
116         (fma4_fmaddsub): Likewise
117
118 2011-05-19  Jan Hubicka  <jh@suse.cz>
119
120         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
121         (GIMPLE_TYPE_PAIR_SIZE): New macro.
122         (type_pair_cache): New static var.
123         (lookup_type_pair): Use fixed sized custom hash; make inline.
124         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
125         calls of lookup_type_pair.
126         (print_gimple_types_stats): Remove cache stats.
127         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
128         and gtc_ob.
129
130 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
131
132         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
133         when TARGET_RDRND is active.
134         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
135         Generate dummy SImode target register when target is NULL.
136
137 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
138
139         * config/arm/arm-fpus.def: New.
140         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
141         arm-fpus.def.
142         * config/arm/arm-tables.opt: Regenerate.
143         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
144         (arm_option_override): Don't decode FPU name to string here.
145         * config/arm/arm.opt (mfpu=): Use Enum.
146         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
147         Update dependencies.
148
149 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
150
151         * collect2.c: Include diagnostic.h.
152         (fatal_perror, fatal, error, fancy_abort): Remove.
153         (main): Set progname.  Call xmalloc_set_program_name and
154         diagnostic_initialize.
155         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
156         scan_libraries, resolve_lib_name): Call fatal_error instead of
157         fatal and fatal_perror.
158         * collect2.h (error, fatal, fatal_perror): Don't declare.
159         * tlink.c: Include diagnostic-core.h.
160         (recompile_files): Call fatal_error instead of fatal_perror.
161         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
162         pretty-print.o and input.o.
163         (collect2.o, tlink.o): Update dependencies.
164
165 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
166
167         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
168
169 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
170
171         PR target/40483
172         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
173         COMDAT group syntax, both SPARC and x86 variants.
174         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
175         * configure: Regenerate.
176         * config/sol2.h (TARGET_SOLARIS): Define.
177         (PUSHSECTION_FORMAT): Remove.
178         (SECTION_NAME_FORMAT): Define.
179         * config/sol2.c: Include hashtab.h.
180         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
181         expansion, using SECTION_NAME_FORMAT.
182         (solaris_comdat_htab): New variable.
183         (struct comdat_entry): Define.
184         (comdat_hash): New function.
185         (comdat_eq): New function.
186         (solaris_elf_asm_comdat_section): New function.
187         (solaris_define_comdat_signature): New function.
188         (solaris_code_end): New function.
189         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
190         (solaris_code_end): Declare.
191         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
192         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
193         solaris_code_end.
194         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
195         Remove ATTRIBUTE_UNUSED.
196         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
197         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
198         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
199         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
200         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
201         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
202         (PUSHSECTION_FORMAT): Remove.
203         (SECTION_NAME_FORMAT): Redefine.
204
205 2011-05-19  Kai Tietz  <ktietz@redhat.com>
206
207         * tree-cfg.c (verify_gimple_assign_binary): Barf on
208         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
209         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
210
211 2011-05-19  Anatoly Sokolov <aesok@post.ru>
212             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
213
214         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
215
216 2011-05-19  Richard Guenther  <rguenther@suse.de>
217
218         PR middle-end/48985
219         * tree-object-size.c (addr_object_size): If the pointed-to
220         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
221
222 2011-05-19  Richard Guenther  <rguenther@suse.de>
223
224         * gimple.c (gimple_types_compatible_p_1): Compare names of
225         the types themselves.
226         (iterative_hash_gimple_type): And hash them that way.
227         (gimple_register_type_1): If we register a main variant properly
228         initialize the leader to ourselves.
229
230 2011-05-19  Tom de Vries  <tom@codesourcery.com>
231
232         PR target/45098
233         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
234         get_loop_invariant_expr_id.
235         (get_loop_invariant_expr_id): Use get_expr_id.
236         (parm_decl_cost): New function.
237         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
238         Improve bound cost estimation.  Use different inv_expr_id for elim and
239         express cases.
240
241 2011-05-19  Tom de Vries  <tom@codesourcery.com>
242
243         PR target/45098
244         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
245         cost_base.cost == 0.
246
247 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
248
249         PR target/49002
250         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
251         Properly handle load cast.
252
253 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
254
255         PR tree-optimization/49039
256         * tree-vrp.c (extract_range_from_binary_expr): For
257         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
258         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
259
260 2011-05-18  Tom de Vries  <tom@codesourcery.com>
261
262         PR target/45098
263         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
264
265 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
266
267         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
268         (*tls_global_dynamic_64): Ditto.
269         (*tls_local_dynamic_base_32_gnu): Ditto.
270         (*tls_local_dynamic_base_64): Ditto.
271         (tls_initial_exec_64_sun): Ditto.
272
273 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
274
275         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
276         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
277         bf592-none.
278         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
279         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
280         * config/bfin/bfin.c (bfin_cpus): Add bf592.
281         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
282         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
283         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
284         * config/bfin/elf.h (LIB_SPEC): Add bf592.
285
286 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
287
288         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
289         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
290         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
291         target_thread_pointer, arm_structure_size_boundary, struct
292         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
293         struct abi_name, arm_all_abis): Remove.
294         (arm_option_override) Don't process most enumerated option values here.
295         Don't process target_fpe_name here.  Work with integer not string for
296         structure size boundary; use separate diagnostics for each case.
297         * config/arm/arm.h (enum float_abi_type, enum
298         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
299         to arm-opts.h.
300         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
301         arm_structure_size_boundary): Remove.
302         * config/arm/arm.opt (mabi=): Use Enum and Init.
303         (arm_abi_type): New Enum and EnumValue entries.
304         (mfloat-abi=): Use Enum and Init.
305         (float_abi_type): New Enum and EnumValue entries.
306         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
307         (mfp16-format=): Use Enum and Init.
308         (arm_fp16_format_type): New Enum and EnumValue entries.
309         (mstructure-size-boundary=): Use UInteger and Init.
310         (mtp=): Use Enum and Init.
311         (arm_tp_type): New Enum and EnumValue entries.
312
313 2011-05-18  Richard Guenther  <rguenther@suse.de>
314
315         PR tree-optimization/49018
316         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
317         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
318         gimple_has_side_effects.
319
320 2011-05-18  Richard Guenther  <rguenther@suse.de>
321
322         * gimple.c (gimple_register_type_1): New function, split out from ...
323         (gimple_register_type): ... here.  Avoid infinite recursion.
324
325 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
326
327         PR tree-optimization/41881
328         * tree-vectorizer.h (struct _loop_vec_info): Add new field
329         reduction_chains along with a macro for its access.
330         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
331         (destroy_loop_vec_info): Free reduction chains.
332         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
333         (vect_is_slp_reduction): New function.
334         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
335         (vect_create_epilog_for_reduction): Support SLP reduction chains.
336         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
337         definition types for reduction chains.
338         (vect_supported_load_permutation_p): Don't allow permutations for
339         reduction chains.
340         (vect_analyze_slp_instance): Support reduction chains.
341         (vect_analyze_slp): Try to build SLP instance from reduction chains.
342         (vect_get_constant_vectors):  Handle reduction chains.
343         (vect_schedule_slp_instance): Mark the first statement of the
344         reduction chain as reduction.
345
346 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
347
348         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
349         names for group elements access.
350         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
351         reduction chains as well.  Remove data reference and interleaving
352         related words from the fields names.
353         * tree-vect-loop.c (vect_transform_loop): Use new names for group
354         elements access.
355         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
356         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
357         vect_update_interleaving_chain, vect_same_range_drs,
358         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
359         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
360         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
361         vect_analyze_group_access, vect_analyze_data_ref_access,
362         vect_create_data_ref_ptr, vect_transform_strided_load,
363         vect_record_strided_load_vectors): Likewise.
364         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
365         vect_model_load_cost, vectorizable_store, vectorizable_load,
366         vect_remove_stores, new_stmt_vec_info): Likewise.
367         * tree-vect-slp.c (vect_build_slp_tree,
368         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
369
370 2011-05-18  Richard Guenther  <rguenther@suse.de>
371
372         PR middle-end/48989
373         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
374         operand verification.
375         (verify_gimple_assign_binary): Likewise.
376         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
377         to non-1-precision BOOLEAN_TYPEs.
378
379 2011-05-18  Tom de Vries  <tom@codesourcery.com>
380
381         PR target/45098
382         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
383
384 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
385
386         PR tree-optimization/49000
387         * tree-ssa.c (execute_update_addresses_taken): Call
388         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
389         be rewritten and decl has been marked for renaming, reset
390         the debug stmt.
391
392 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
393
394         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
395         enum_opts_set when testing if attributes have set -mfpmath=.
396
397 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
398
399         * config/mips/mips.c (mips_handle_option): Remove unused variable.
400
401 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
402
403         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
404         info->entry with 0
405         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
406         id.transform_lang_insert_block with NULL.
407
408 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
409
410         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
411         (output_fp_compare): Change args 3 and 4 to bool.
412         (ix86_expand_call): Change arg 6 to bool.
413         (ix86_attr_length_immediate_default): Change arg 2 to bool.
414         (ix86_attr_length_vex_default): Change arg 3 to bool.
415         * config/i386/i386.md: Update all uses.
416         * config/i386/i386.c: Ditto.
417         (ix86_flags_dependent): Change return type to bool.
418
419 2011-05-17  Richard Guenther  <rguenther@suse.de>
420
421         * gimple.c (type_hash_pair_compare): Fix comparison.
422
423 2011-05-17  Richard Guenther  <rguenther@suse.de>
424
425         * gimple.c (iterative_hash_gimple_type): Simplify singleton
426         case some more, fix final hash value of the non-singleton case.
427
428 2011-05-17  Richard Guenther  <rguenther@suse.de>
429
430         PR bootstrap/49013
431         Revert
432         2011-05-16  Richard Guenther  <rguenther@suse.de>
433
434         * gimple.c (gimple_types_compatible_p_1): Use names of the
435         type itself, not its main variant.
436         (iterative_hash_gimple_type): Likewise.
437
438 2011-05-17  Richard Guenther  <rguenther@suse.de>
439
440         * gimple.c (gimple_register_canonical_type): Use the main-variant
441         leader for computing the canonical type.
442
443 2011-05-17  Nick Clifton  <nickc@redhat.com>
444
445         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
446         moves.
447
448         * config/rx/rx.md: Add peephole to remove redundant extensions
449         after loads.
450         (bitset_in_memory): Use rx_restricted_mem_operand.
451         (bitinvert_in_memory): Likewise.
452         (bitclr_in_memory): Likewise.
453
454 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
455             Nick Clifton  <nickc@redhat.com>
456
457         * config/rx/rx.md: Add peepholes to match a register move followed
458         by a comparison of the moved register.  Replace these with an
459         addition of zero that does both actions in one instruction.
460
461 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
462
463         PR target/48986
464         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
465         predicate to allow CONST_INT.
466         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
467
468 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
469
470         * opts-common.c (opt_enum_arg_to_value): New.
471         * opts.h (opt_enum_arg_to_value): Declare.
472         * config/i386/i386.opt (fpmath): Remove.
473         (mfpmath=): Use Enum, Init and Save.
474         (fpmath_unit): New Enum and EnumValue entries.
475         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
476         name for function fpmath state.
477         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
478         * config/i386/i386.c: Include diagnostic.h.
479         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
480         (ix86_target_string): Take enum fpmath_unit value instead of string.
481         (ix86_debug_options): Update call to ix86_target_string.
482         (ix86_option_override_internal): Don't process fpmath strings here.
483         (x86_function_specific_save, ix86_function_specific_restore):
484         Don't handle fpmath state specially.
485         (ix86_function_specific_print): Pass fpmath state to
486         ix86_target_string instead of printing in this function.
487         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
488         Handle enum attributes.
489         (IX86_ATTR_ENUM, ix86_opt_enum): New.
490         (ix86_valid_target_attribute_tree): Update option_strings
491         handling.  Handle fpmath as enum option.
492         (ix86_can_inline_p): Update field names for function fpmath state.
493         (ix86_expand_builtin): Update call to ix86_target_string.
494         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
495         (ix86_fpmath): Remove.
496         * config/i386/t-i386 (i386.o): Update dependencies.
497
498 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
499
500         PR preprocessor/48677
501         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
502         from decoded_options[0], not from itself.
503
504 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
505
506         * config/i386/constraints.md (z): New constraint.
507         * config/i386/i386.c (c): New mode attribute.
508         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
509         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
510         constraint for operand 0.
511         (*call_vzeroupper): Ditto.
512         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
513         (*call_rex64_ms_sysv_vzeroupper): Ditto.
514         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
515         Use "lzm" constraint for operand 0.
516         (*call_pop_vzeroupper): Ditto.
517         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
518         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
519         constraint for operand 0.
520         (*sibcall_vzeroupper): Ditto.
521         (*sibcall_rex64_ms_sysv): Ditto.
522         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
523         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
524         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
525         (*sibcall_pop_vzeroupper): Ditto.
526         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
527         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
528         mode iterator.  Use "<c>zm" constraint for operand 1.
529         (*call_value_vzeroupper): Ditto.
530         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
531         for operand 1.
532         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
533         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
534         *call_value_pop_1.  Use "lzm" constraint for operand 1.
535         (*call_value_pop_vzeroupper): Ditto.
536         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
537         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
538         mode iterator.  Use "Uz" constraint for operand 1.
539         (*sibcall_value_vzeroupper): Ditto.
540         (*sibcall_value_rex64_ms_sysv): Ditto.
541         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
542         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
543         constraint for operand 1.
544         (*sibcall_value_pop_vzeroupper): Ditto.
545         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
546         and "z" constraint for operand 2.
547         (*tls_global_dynamic_32_gnu): Ditto.
548         (*tls_local_dynamic_base_32_gnu): Ditto.
549         (*tls_local_dynamic_base_64): Ditto.
550         (*tls_local_dynamic_32_once): Ditto.
551         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
552         Update all callers.
553         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
554
555 2011-05-16  Richard Guenther  <rguenther@suse.de>
556
557         * gimple.c (gimple_types_compatible_p_1): Use names of the
558         type itself, not its main variant.
559         (iterative_hash_gimple_type): Likewise.
560
561 2011-05-16  Richard Guenther  <rguenther@suse.de>
562
563         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
564         always visit pointer target and function result and argument types.
565
566 2011-05-16  Jason Merrill  <jason@redhat.com>
567
568         PR c++/48999
569         * tree-inline.c (copy_statement_list): Put back recursion.
570
571 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
572
573         PR target/27663
574         PR target/41076
575         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
576         * config/avr/avr.md ("*ior<mode>qi.byte0",
577         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
578
579 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
580
581         PR target/45099
582         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
583         register is needed for a function argument.
584
585 2011-05-16  Richard Guenther  <rguenther@suse.de>
586
587         * gimple.c (struct type_hash_pair): New type.
588         (type_hash_pair_compare): New function.
589         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
590
591 2011-05-16  Revital Eres  <revital.eres@linaro.org>
592
593         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
594
595 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
596
597         * config/i386/i386.md (floating point move splitters): Fix
598         usage of standard_80387_constant_p.
599         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
600
601 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
602
603         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
604
605 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
606
607         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
608         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
609         (tree_ssa_lim_finalize): Likewise.
610
611 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
612
613         * config/i386/constraint.md (Yd, Yx): New register constraints.
614         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
615         Yd conditional register constraint.
616         (*movtf_internal): Use standard_sse_constant_opcode.
617         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
618         Yx conditional register constraint.
619         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
620         Yd conditional register constraint.  Use standard_sse_constant_p to
621         check for valid SSE constants and call standard_sse_constant_opcode to
622         output SSE insn.
623         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
624         constants and call standard_sse_constant_opcode to output SSE insn.
625         * config/i386/i386.c (ix86_option_ovverride_internal): Set
626         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
627         optimize_size is set.
628         (standard_sse_constant_opcode): Output conditional AVX insn templates.
629
630 2011-05-14  Tobias Burnus  <burnus@net-b.de>
631
632         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
633
634 2011-05-13  Martin Jambor  <mjambor@suse.cz>
635
636         * ipa-prop.c (ipa_cst_from_jfunc): New function.
637         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
638         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
639         (evaluate_conditions_for_ipcp_clone): Removed.
640         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
641         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
642         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
643
644 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
645
646         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
647         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
648         lieu of MAY_HAVE_DEBUG_STMTS.
649         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
650         debug statements if !MAY_HAVE_DEBUG_STMTS.
651
652 2011-05-13  Martin Thuresson  <martint@google.com>
653
654         PR gcov-profile/47793
655         * libgcov.c (gcov_exit): Support relative profile paths.
656         * doc/invoke.texi (-fprofile-dir): Update for above change.
657
658 2011-05-13  Richard Guenther  <rguenther@suse.de>
659
660         * gimple.c (gimple_canonical_types_compatible_p): Do not use
661         type-pair caching, do not compare hashes.
662
663 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
664
665         PR middle-end/48965
666         * tree-cfg.c (edge_to_cases_cleanup): Return true.
667         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
668
669 2011-05-13  Kai Tietz  <ktietz@redhat.com>
670
671         * gimplify.c (gimplify_expr): Make sure operand is boolified.
672         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
673         compatible type for TRUTH_NOT_EXPR.
674
675 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
676
677         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
678         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
679         can_create_pseudo_p ().
680
681 2011-05-13  Richard Guenther  <rguenther@suse.de>
682
683         PR lto/48978
684         * gimple.c (iterative_hash_gimple_type): Revert change in
685         pointer target and function result and argument hashing.
686
687 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
688
689         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
690         (*movxf_internal_nointeger): Ditto.
691         (*movdf_internal_rex64): Ditto.
692         (*movdf_internal): Ditto.
693         (*movdf_internal_nointeger): Ditto.
694         (*movsf_internal): Ditto.
695         (sincos splitters): Use can_create_pseudo ().
696
697 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
698
699         * config/i386/i386-opts.h: New.
700         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
701         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
702         ix86_section_threshold): Remove.
703         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
704         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
705         OPT_mbranch_cost_.
706         (ix86_option_override_internal): Don't decode strings for options
707         other than -march=, -mtune= and -mfpmath=.  Don't allow for
708         __attribute__ uses in remaining diagnostics for options with
709         string arguments.  Don't check for integer arguments being negative.
710         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
711         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
712         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
713         ix86_branch_cost, ix86_section_threshold): Remove.
714         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
715         HeaderInclude.
716         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
717         but not Var.
718         (masm=): Use Enum and Init.
719         (asm_dialect): New Enum and EnumValue entries.
720         (mbranch-cost=): Use UInteger.
721         (mlarge-data-threshold=): Use UInteger and Init.
722         (mcmodel=): Use Enum and Init.
723         (cmodel): New Enum and EnumValue entries.
724         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
725         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
726         mregparm=): Use UInteger.
727         (mstringop-strategy=): Use Enum and Init.
728         (stringop_alg): New Enum and EnumValue entries.
729         (mtls-dialect=): Use Enum and Init.
730         (tls_dialect): New Enum and EnumValue entries.
731         (mabi=): Use Enum and Init.
732         (calling_abi): New Enum and EnumValue entries.
733         (mveclibabi=): Use Enum and Init.
734         (ix86_veclibabi): New Enum and EnumValue entries.
735
736 2011-05-13  Nick Clifton  <nickc@redhat.com>
737
738         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
739         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
740
741 2011-05-13  Kai Tietz  <ktietz@redhat.com>
742
743         PR middle-end/48984
744         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
745         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
746         (gimple_boolify): Check for cast for boolean_type_node instead for
747         BOOLEAN_TYPE.
748
749 2011-05-13  Richard Guenther  <rguenther@suse.de>
750
751         PR tree-optimization/48172
752         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
753         multiplying by number of iterations for equal step.
754         (vect_create_cond_for_alias_checks): Likewise.
755
756 2011-05-13  Andreas Schwab  <schwab@redhat.com>
757
758         * configure.ac: Use AS_HELP_STRING throughout.
759         * configure: Regenerate.
760
761 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
762
763         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
764         (ix86_emit_restore_regs_using_mov): Likewise.
765         (ix86_emit_restore_sse_regs_using_mov): Likewise.
766
767 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
768
769         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
770         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
771         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
772         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
773         RTX_OK_FOR_OLO10_P): ...here.
774         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
775         SYMBOLIC_CONST.
776
777 2011-05-12  Kai Tietz  <ktietz@redhat.com>
778
779         * gimplify.c (gimple_boolify): Re-boolify expression
780         arguments even if expression type is of kind BOOLEAN_TYPE.
781         (gimplify_boolean_expr): Removed.
782         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
783         and XOR. Additional take care that we keep expression's type.
784         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
785         of TRUTH_AND|OR|XOR_EXPR.
786
787 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
788
789         PR tree-optimization/48975
790         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
791         on all bbs here and free and clear ifc_bbs at the end.
792
793 2011-05-12  Richard Guenther  <rguenther@suse.de>
794
795         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
796         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
797         until after simple checks.
798         (gimple_types_compatible_p): Likewise.
799         (iterative_hash_gimple_type): Always hash pointer targets
800         and function return and argument types.
801         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
802         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
803         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
804         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
805         completely in the simple compare section.
806         (gimple_register_canonical_type): Query the cache again after
807         registering.
808
809 2011-05-12  Richard Guenther  <rguenther@suse.de>
810
811         PR tree-optimization/48172
812         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
813         the number of iterations from the segment size calculation.
814         (vect_create_cond_for_alias_checks): Adjust.
815
816 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
817
818         PR debug/48967
819         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
820         if validate_subreg fails.
821
822 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
823
824         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
825         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
826         early.
827
828 2011-05-12  DJ Delorie  <dj@redhat.com>
829
830         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
831         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
832         created builtin into rx_builtins array.
833         (rx_builtin_decl): New function.
834         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
835
836 2011-05-12  DJ Delorie  <dj@redhat.com>
837             Nick Clifton  <nickc@redhat.com>
838
839         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
840         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
841         (rx_is_legitimate_address): Add pre-decrement and post-increment
842         addressing in HImode and QImode.  Fix test for out of range
843         REG+INT addressing.
844         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
845         (rx_align_for_label): Test label before extracting its usage count.
846         (rx_adjust_insn_lengths): Fix selection of insn codes.
847         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
848
849 2011-05-11  Jason Merrill  <jason@redhat.com>
850
851         * tree.c (type_hash_canon): Use struct tree_type_non_common.
852
853 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
854
855         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
856         reindent the subsequent block.
857
858 2011-05-11  Satoru Takabayashi  <satorux@google.com>
859             Paul Pluzhnikov  <ppluzhnikov@google.com>
860
861         * doc/install.texi (Configuration): Document --with-linker-hash-style.
862         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
863         * config.in: Add LINKER_HASH_STYLE.
864         * configure.ac: Add --with-linker-hash-style.
865         * configure: Regenerate.
866
867 2011-05-11  Richard Guenther  <rguenther@suse.de>
868
869         PR middle-end/48964
870         * gimple.c (iterative_hash_canonical_type): Fix typo.
871
872 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
873
874         * config/i386/i386.c (legitimize_tls_address)
875         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
876         expanders directly for TARGET_GNU2_TLS.  Determine pic and
877         __tls_get_addr symbol reference here.  Update call to
878         gen_tls_global_dynamic_{32,64} for added arguments.
879         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
880         expanders directly for TARGET_GNU2_TLS.  Determine
881         __tls_get_addr symbol reference here.  Update call to
882         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
883         unique UNSPEC REG_EQUIV to libcall block.
884         (ix86_tls_get_addr): Declare static.
885         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
886         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
887         Do not determine pic and __tls_get_addr symbol reference here. Do not
888         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
889         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
890         (tls_global_dynamic_64): Add operand 2.  Do not determine
891         __tls_get_addr symbol reference here.  Do not call
892         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
893         (tls_local_dynamic_base64): Ditto for operand 1.
894
895 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
896
897         * function.c (expand_function_start): Initialize stack_check_probe_note
898         only if the generic stack checking mechanism is used.
899
900 2011-05-11  Richard Guenther  <rguenther@suse.de>
901
902         PR tree-optimization/15256
903         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
904         (A & B) | C, combine (A op CST1) op CST2.
905         (tree_ssa_forward_propagate_single_use_vars): Only bother to
906         visit assigns that have uses.
907
908 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
909
910         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
911         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
912         (unpack_ts_type_common_value_fields): ...this.  Update comment.
913         (unpack_value_fields): Adjust for renaming.
914         (lto_input_ts_type_tree_pointers): Split into...
915         (lto_input_ts_type_common_tree_pointer): ...this and...
916         (lto_input_ts_type_non_common_tree_pointers): ...this.
917         (lto_input_tree_pointers): Adjust for above split.
918         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
919         (pack_ts_type_common_value_fields): ...this.  Update comment.
920         (lto_output_ts_type_tree_pointers): Split into...
921         (lto_output_ts_type_common_tree_pointers): ...this and...
922         (lto_output_ts_type_non_common_tree_pointers): ...this.
923         (lto_output_tree_pointers): Adjust for above split.
924         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
925         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
926         * stor-layout.c (vector_type_mode): Adjust location of mode field.
927         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
928         Define.
929         (struct tree_type): Split into...
930         (struct tree_type_common: ...this and...
931         (struct tree_type_with_lang_specific): ...this and...
932         (struct tree_type_non_common): ...this.  Adjust accessor macros
933         accordingly.
934         (TYPE_VALUES_RAW): Define.
935         (union tree_node): Update for above changes.
936         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
937         TS_TYPE_NON_COMMON.
938         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
939         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
940         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
941         * treestructu.def (TS_TYPE): Remove.
942         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
943         Define.
944
945 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
946
947         PR debug/48159
948         * tree-ssa.c (reset_debug_uses): New function.
949         * tree-flow.h (reset_debug_uses): New prototype.
950         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
951         * tree-loop-distribution.c (generate_loops_for_partition): Call
952         reset_debug_uses on the stmts that will be removed.  Keep around
953         all debug stmts, don't count them as bits in partition bitmap.
954         (generate_builtin): Don't count debug stmts or labels as bits in
955         partition bitmap.
956
957 2011-05-11  Richard Guenther  <rguenther@suse.de>
958
959         * gimple.c (gimple_type_hash_1): Merge with ...
960         (gimple_type_hash): ... this.
961         (gtc_visit): Remove mode parameter and simplify accordingly.
962         (gimple_types_compatible_p_1): Likewise.
963         (gimple_types_compatible_p): Likewise.
964         (iterative_hash_gimple_type): Likewise.
965         (visit): Likewise.
966         (gimple_type_eq): Adjust.
967
968 2011-05-11  Revital Eres  <revital.eres@linaro.org>
969
970         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
971         enters the branch create an anti edge in the opposite direction
972         to prevent the creation of reg-moves.
973         * modulo-sched.c: Adjust comment to reflect the fact we are
974         scheduling closing branch.
975         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
976         (stage_count): New field in struct partial_schedule.
977         (calculate_stage_count): New function.
978         (normalize_sched_times): Rename to reset_sched_times and handle
979         incrementing the sched time of the nodes by a constant value
980         passed as parameter.
981         (duplicate_insns_of_cycles): Skip closing branch.
982         (sms_schedule_by_order): Schedule closing branch.
983         (ps_insn_find_column): Handle closing branch.
984         (sms_schedule): Call reset_sched_times and adjust the code to
985         support scheduling of the closing branch.
986         (ps_insert_empty_row): Update calls to normalize_sched_times
987         and rotate_partial_schedule functions.
988
989 2011-05-11  Richard Guenther  <rguenther@suse.de>
990
991         PR middle-end/48953
992         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
993
994 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
995
996         * opts.c (finish_options): Move warning settings from process_options.
997         * toplev.c (process_options): Move warning settings to finish_options.
998
999 2011-05-11  Richard Guenther  <rguenther@suse.de>
1000
1001         PR tree-optimization/18041
1002         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1003         (simplify_bitwise_binary): ... this.  Handle operand conversions
1004         by applying them to the result instead.
1005         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
1006
1007 2011-05-11  Richard Guenther  <rguenther@suse.de>
1008
1009         * gimple.c (gimple_canonical_types_compatible_p): Split out
1010         from gimple_types_compatible_p and friends.  Do not recurse
1011         to pointed-to types.
1012         (gimple_canonical_type_eq): Use it.
1013         (iterative_hash_canonical_type): Split out from
1014         iterative_hash_gimple_type and friends.  Do not recurse
1015         to pointed-to types.
1016         (gimple_canonical_type_hash): Use it, allocate the hash here.
1017
1018 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1019
1020         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1021         recognizing doloop.
1022
1023 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1024
1025         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1026         instead of PREV_INSN.
1027
1028 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1029
1030         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1031         * loop-doloop.c (doloop_condition_get): Likewise.
1032         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1033         (doloop_end): New.
1034         * config/arm/arm.md (*addsi3_compare0): Remove "*".
1035
1036 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
1037
1038         * tree.def (CASE_LABEL_EXPR): Add an operand.
1039         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1040
1041 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1042
1043         * c-decl.c (c_override_global_bindings_to_false): Remove.
1044         (global_bindings_p): Don't check
1045         c_override_global_bindings_to_false.
1046         * c-tree.h (c_override_global_bindings_to_false): Remove.
1047         * c-typeck.c (composite_type): Don't set
1048         c_override_global_bindings_to_false.
1049
1050 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
1051
1052         PR target/48857, 48495
1053         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1054         (VSX_MODE): Ditto.
1055         (VSX_MOVE_MODE): Ditto.
1056         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1057         VSX vector types.  Add V2DImode.
1058         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1059         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1060         (MODES_TIEABLE_P): Ditto.
1061
1062         * config/rs6000/rs6000.c (rs6000_emit_move): Use
1063         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1064         VSX_VECTOR_MODE.
1065         (init_cumulative_args): Ditto.
1066         (rs6000_function_arg_boundary): Ditto.
1067         (rs6000_function_arg_advance_1): Ditto.
1068         (rs6000_function_arg): Ditto.
1069         (rs6000_function_ok_for_sibcall): Ditto.
1070         (emit_frame_save): Ditto.
1071         (rs6000_function_value): Ditto.
1072         (rs6000_libcall_value): Ditto.
1073
1074 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1075
1076         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1077         i386/darwin-lib.h to $libgcc_tm_file.
1078         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1079
1080 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1081
1082         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1083
1084 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1085
1086         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
1087         * config/rs6000/rs6000-tables.opt: New file (generated).
1088         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1089         rs6000/rs6000-tables.opt to extra_options.
1090         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1091         * config/rs6000/rs6000.c (rs6000_select): Remove.
1092         (processor_target_table): Move contents to rs6000-cpus.def.
1093         (darwin_rs6000_override_options): Check
1094         global_options_set.x_rs6000_cpu_index instead of
1095         rs6000_select[1].string.
1096         (rs6000_option_override_internal): Likewise.
1097         (rs6000_handle_option): Don't assert that global structures are in
1098         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
1099         (rs6000_default_cpu): New variable.
1100         (rs6000_file_start): Set it instead of local default_cpu.  Check
1101         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1102         global_options_set.x_rs6000_tune_index instead of rs6000_select.
1103         (rs6000_darwin_file_start): Check rs6000_default_cpu and
1104         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1105         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1106         rs6000_select): Remove.
1107         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1108         Remove.
1109         (mcpu=, mtune=): Use Var, Init, Enum and Save.
1110         * config/rs6000/t-rs6000
1111         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1112         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1113         global_options_set.x_rs6000_cpu_index instead of
1114         rs6000_select[1].string.
1115         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1116         global_options_set.x_rs6000_cpu_index instead of
1117         rs6000_select[1].string.
1118
1119 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1120
1121         * config.gcc (libgcc_tm_file): Define instead of including files
1122         from ../../libgcc/config/ in tm_file.
1123         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
1124         * configure: Regenerate.
1125         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1126         libgcc_tm.h, cs-libgcc_tm.h): New.
1127         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1128         (clean): Remove libgcc_tm.h.
1129         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1130         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1131         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1132
1133 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
1134
1135         PR target/48896
1136         * config/avr/avr.c (avr_ret_register): Return unsigned int
1137         instead of int.
1138         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1139         it to avr_libcall_value.
1140         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1141         expand_expr.
1142         (avr_expand_binop_builtin): Ditto.
1143         (avr_expand_unop_builtin): Ditto.
1144
1145 2011-05-10  DJ Delorie  <dj@redhat.com>
1146
1147         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1148         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1149         * config/rx/rx.c (rx_align_for_label): Add label and
1150         uses_threshold parameters.  Do not align when the label is not
1151         used enough.
1152         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1153
1154 2011-05-10  Richard Guenther  <rguenther@suse.de>
1155
1156         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1157         a series of conversions and apply foldings similar to what
1158         fold-const does.
1159         (tree_ssa_forward_propagate_single_use_vars): Call it.
1160
1161 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
1162
1163         PR tree-optimization/48611
1164         PR tree-optimization/48794
1165         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1166         referenced from RESX or EH_DISPATCH arguments.
1167
1168         PR debug/48928
1169         * dfp.c (decimal_to_decnumber): Handle conversion from
1170         dconst{1,2,m1,half}.
1171
1172 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1173
1174         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1175         for !flag_prefer_avx128.
1176         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1177
1178 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1179
1180         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1181         (fold_ternary_loc): Use expr_location_or.
1182
1183 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1184
1185         PR debug/48853
1186         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1187         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1188         Pmode and mem_mode is not VOIDmode.
1189
1190 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
1191
1192         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1193         TYPE_QUAL_RESTRICT): Convert to enum.
1194
1195 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1196
1197         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1198         (const_pow2_1_to_8_operand): Ditto.
1199         (const_pow2_1_to_128_operand): Ditto.
1200         (const_pow2_1_to_32768_operand): Ditto.
1201         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1202         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
1203         in insn constraint to check integer value of operand 3.
1204         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1205
1206         (PINSR_MODE): New mode iterator.
1207         (sse2p4_1): New mode attribute.
1208         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1209         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1210         iterator.  Use const_int_operand instead of
1211         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
1212         exact_log2 in insn constraint to check integer value of operand 3.
1213
1214 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1215
1216         * config/i386/sse.md (blendbits): Remove mode attribute.
1217         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1218         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1219         Check integer value of operand 3 in insn constraint.
1220
1221 2011-05-09  Richard Guenther  <rguenther@suse.de>
1222
1223         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1224         for diagnostics.
1225         (lto_symtab_merge): Likewise.  Do not register types here.
1226         (lto_symtab_merge_decls_2): Likewise.
1227         (lto_symtab_merge_decls_1): Likewise.
1228         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1229         * gimple.c (enum gtc_mode): Declare.
1230         (gimple_types_compatible_p): Make static.
1231
1232 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1233
1234         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1235         temporary register to match Pmode.
1236
1237 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1238
1239         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1240         and *vec_concatv4si_1_avx.
1241
1242 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1243
1244         PR rtl-optimization/48927
1245         * ira-conflicts.c (commutative_constraint_p): Use
1246         recog_data.alternative_enabled_p to disable alternatives where
1247         "enabled" attribute is false.
1248         (get_dup_num): Ditto.
1249         * ira-lives.c (single_reg_class): Ditto.
1250         (ira_implicitly_set_insn_hard_regs): Ditto.
1251
1252 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1253
1254         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1255         (dataflow_set_preserve_mem_locs): Likewise.
1256
1257 2011-05-09  Philipp Thomas  <pth@suse.de>
1258
1259         * config/mep/mep.c (mep_validate_vliw): Syntax description
1260         should not be translated.
1261
1262 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
1263
1264         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1265         * config/mips/mips-tables.opt: New file (generated).
1266         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
1267         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1268         MIPS_ARCH_OPTION_NATIVE): Define.
1269         * config/mips/mips.c (mips_cpu_info_table): Move contents to
1270         mips-cpus.def.
1271         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1272         mips_parse_cpu): Remove.
1273         (mips_cpu_info_from_opt, mips_default_arch): New.
1274         (mips_handle_option): Don't assert that global structures are in
1275         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1276         (mips_option_override): Use new variables and functions to set
1277         state of these options.  Use strcmp to check for individual CPU names.
1278         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1279         definition.
1280         * config/mips/mips.opt (march=): Use ToLower and Enum.
1281         (mips): Use ToLower, Enum and Var.
1282         (mtune=): Use ToLower and Enum.
1283         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1284
1285 2011-05-08  Jan Hubicka  <jh@suse.cz>
1286
1287         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1288         Arrange type pairs to be UID ordered.
1289         (gimple_lookup_type_leader): Make inline.
1290
1291 2011-05-09  Nick Clifton  <nickc@redhat.com>
1292
1293         PR target/48899
1294         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1295         PROCESSOR_DEFAULT.
1296
1297         PR target/48897
1298         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1299         variable 's'.
1300
1301 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
1302
1303         * combine.c (simplify_comparison): Abstract out parts into...
1304         (simplify_compare_const): ... new function.
1305         (try_combine): Generalize parallel arithmetic/compare combining
1306         to call simplify_compare_const() and CANONICALIZE_COMPARE().
1307
1308 2011-05-08  Jan Hubicka  <jh@suse.cz>
1309
1310         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
1311         (cgraph_create_virtual_clone): Call hooks once virtual clone
1312         is finished.
1313         * cgraph.h (cgraph_clone_node): Update prototype.
1314         * ipa-cp.c (ipcp_estimate_growth): Use
1315         estimate_ipcp_clone_size_and_time.
1316         * ipa-inline-transform.c (clone_inlined_nodes): Update.
1317         * lto-cgraph.c (input_node): Update.
1318         * ipa-inline.c (recursive_inlining): Update.
1319         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1320         (evaluate_conditions_for_known_args): Break out from ...
1321         (evaluate_conditions_for_edge): ... here.
1322         (evaluate_conditions_for_ipcp_clone): New function.
1323         (inline_node_duplication_hook): Update clone summary based
1324         on parameter map.
1325         (estimate_callee_size_and_time): Rename to ...
1326         (estimate_node_size_and_time): take NODE instead of EDGE;
1327         take POSSIBLE_TRUTHS as argument.
1328         (estimate_callee_size_and_time): Update.
1329         (estimate_ipcp_clone_size_and_time): New function.
1330         (do_estimate_edge_time): Update.
1331
1332 2011-05-08  Richard Guenther  <rguenther@suse.de>
1333
1334         PR middle-end/48908
1335         PR middle-end/48905
1336         * expmed.c (expand_shift_1): Compute adjusted constant shift
1337         amount manually.
1338
1339 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1340
1341         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1342
1343 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1344
1345         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1346
1347 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
1348
1349         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1350
1351 2011-05-07  Jan Hubicka  <jh@suse.cz>
1352
1353         * ipa-inline-transform.c (inline_call): Account when program size
1354         decreases.
1355         * ipa-inline.c (relative_time_benefit): New function.
1356         (edge_badness): Reorganize to be power 2 based; fix thinko when
1357         computing badness for negative growth; update comments to match
1358         reality; better dumps.
1359
1360 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
1361
1362         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1363         type to bool and adjust comment.
1364         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1365         (fold_mathfn_compare): Remove calls to global_bindings_p.
1366         (fold_inf_compare): Likewise.
1367         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1368         * c-tree.h (global_bindings_p): Adjust prototype.
1369         * c-decl.c (global_bindings_p): Return bool and simplify.
1370
1371 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
1372
1373         PR tree-optimization/48837
1374         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1375         when accumulator transformation is performed.
1376
1377 2011-05-06  Jan Hubicka  <jh@suse.cz>
1378
1379         * i386.h (ix86_tune_indices): Add
1380         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
1381         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
1382         * i386.c (initial_ix86_tune_features): Add
1383         X86_SOFTARE_PREFETCHING_BENEFICIAL.
1384         (software_prefetching_beneficial_p): Remove predicate.
1385         (ix86_option_override_internal): Use new macro.
1386
1387 2011-05-06  Jan Hubicka  <jh@suse.cz>
1388
1389         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1390
1391 2011-05-06  Jan Hubicka  <jh@suse.cz>
1392
1393         * cgraph.c (cgraph_add_thunk): Create real function node instead
1394         of alias node; finalize it and mark needed/reachale; arrange visibility
1395         to be right and add it into the corresponding same comdat group list.
1396         (dump_cgraph_node): Dump thunks.
1397         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
1398         cgraph_function_with_gimple_body_p,
1399         cgraph_first_function_with_gimple_body,
1400         cgraph_next_function_with_gimple_body): New functions.
1401         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1402         New macros.
1403         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1404         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1405         * cgraphunit.c (cgraph_finalize_function): Only look into possible
1406         devirtualization when optimizing.
1407         (verify_cgraph_node): Verify thunks.
1408         (cgraph_analyze_function): Analyze thunks.
1409         (cgraph_mark_functions_to_output): Output thunks only in combination
1410         with function they are assigned to.
1411         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1412         alias into normal node.
1413         (assemble_thunks): New functoin.
1414         (cgraph_expand_function): Use it.
1415         * lto-cgraph.c (lto_output_node): Stream thunks.
1416         (input_overwrite_node): Stream in thunks.
1417         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1418         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1419         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1420         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1421         (inline_analyze_function): Do not care about thunk jump functions.
1422         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
1423         * ipa-prop.c (ipa_prop_write_jump_functions): Use
1424         cgraph_function_with_gimple_body_p.
1425         * passes.c (do_per_function_toporder): Use
1426         cgraph_function_with_gimple_body_p.
1427         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1428         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1429         (function_called_by_processed_nodes_p): Likewise.
1430
1431 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1432
1433         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1434         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1435         entries.
1436         (mabi=): Replace with separate entries for mabi=altivec,
1437         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1438         mabi=ieeelongdouble and mabi=ibmlongdouble.
1439         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1440         check for -mabi=spe without SPE ABI support here.
1441         (rs6000_handle_option): Replace OPT_mabi_ handling with
1442         OPT_mabi_altivec and OPT_mabi_spe handling.
1443
1444 2011-05-06  Cary Coutant  <ccoutant@google.com>
1445
1446         * dwarf2out.c (contains_subprogram_definition): New function.
1447         (should_move_die_to_comdat): Call it.
1448
1449 2011-05-06  Jeff Law  <law@redhat.com>
1450
1451         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1452         remove_ctrl_stmt_and_useless_edges.
1453         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1454         (fixup_template_block, thread_single_edge): Likewise.
1455         (mark_threaded_blocks): Use THREAD_TARGET.
1456
1457 2011-05-06  Alan Modra  <amodra@gmail.com>
1458
1459         PR target/48900
1460         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1461         const0_rtx as the arg to the dummy __tls_get_addr libcall.
1462
1463 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1464
1465         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1466         constraint modifier to "r".
1467
1468 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1469
1470         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1471         fall through for OPT_mcmodel_.
1472
1473 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1474
1475         * config/s390/s390.c (s390_asm_trampoline_template): Comment
1476         instruction sizes.
1477         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
1478
1479 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1480
1481         PR target/47930
1482         * config/arm/arm.opt (marm): Document it.
1483         (mthumb): Reject negative variant.
1484
1485 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1486
1487         PR target/48898
1488         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1489         Fix typo in "ccvt" variable name.
1490
1491 2011-05-06  Tristan Gingold  <gingold@adacore.com>
1492
1493         PR target/48895
1494         * config/vms/vms-ar.c (main): Remove cwd variable.
1495
1496 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1497
1498         PR debug/48902
1499         * var-tracking.c (prepare_call_arguments): Move else before #endif.
1500
1501 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1502
1503         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1504         * gimplify.c (gimplify_switch_expr): Likewise.
1505         * omp-low.c (expand_omp_sections): Likewise.
1506         * tree-eh.c (lower_try_finally_switch): Likewise.
1507         (lower_eh_dispatch): Likewise.
1508         * tree.h (build_case_label): Declare.
1509         * tree.c (build_case_label): Define.
1510
1511 2011-05-05  Jason Merrill  <jason@redhat.com>
1512
1513         PR c++/40975
1514         * tree-inline.c (copy_tree_r): Use copy_statement_list.
1515         (copy_statement_list): Don't recurse.
1516         * stor-layout.c (copy_self_referential_tree_r): Don't allow
1517         STATEMENT_LIST.
1518
1519 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1520
1521         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1522         through from -mfpu= handling.
1523         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1524
1525 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
1526
1527         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1528         POST_MODIFY.
1529
1530 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
1531
1532         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1533         for 11.31.
1534         (hppa[12]*-*-hpux11*): Ditto.
1535         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1536         * config/ia64/hpux-unix2003.h: New.
1537         * config/pa/pa-hpux1131.opt: New.
1538         * config/pa/pa-hpux1131.h: New.
1539         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1540         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
1541         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
1542
1543 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1544
1545         PR debug/48853
1546         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1547         instead of mode as 3rd argument to recursive call.
1548         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1549         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1550         VOIDmode.
1551         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1552         don't give up if mode is Pmode and mem_mode is not VOIDmode.
1553         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1554         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1555
1556 2011-05-05  Julian Brown  <julian@codesourcery.com>
1557
1558         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1559         parenthesis in D-register case.
1560
1561 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1562
1563         * opt-functions.awk (var_type_struct): Handle Enum options.
1564         * optc-gen.awk: Don't check range of variables of character type.
1565         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1566         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1567         rs6000_sdata_name, rs6000_explicit_options): Remove.
1568         (rs6000_option_override_internal): Check for -malign-power here.
1569         Use global_options_set instead of rs6000_explicit_options.
1570         (rs6000_parse_fpu_option): Remove.
1571         (rs6000_handle_option): Access variables via opts and opts_set
1572         pointers.  Use error_at and warning_at.  Add fall-through
1573         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1574         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1575         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1576         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1577         here.  Don't use rs6000_parse_fpu_option.
1578         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1579         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1580         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1581         (mrecip=): Use Var.
1582         (mspe): Use Var and Save.
1583         (mtraceback=): Use Enum and Var.
1584         (rs6000_traceback_type): New Enum and EnumValue entries.
1585         (mfloat-gprs=): Use Enum, Var and Save.
1586         (rs6000_float_gprs): New Enum and EnumValue entries.
1587         (mlong-double-): use Var and Save.
1588         (msched-costly-dep=, minsert-sched-nops=): Use Var.
1589         (malign-): Use Enum and Var.
1590         (rs6000_alignment_flags): New Enum and EnumValue entries.
1591         (mfpu=): Use Enum.
1592         (fpu_type_t): New Enum and EnumValue entries.
1593         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1594         global_options_set instead of rs6000_explicit_options.
1595         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1596         global_options_set instead of rs6000_explicit_options.
1597         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1598         global_options_set instead of rs6000_explicit_options.
1599         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1600         global_options_set instead of rs6000_explicit_options.
1601         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1602         global_options_set instead of rs6000_explicit_options.
1603         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1604         global_options_set instead of rs6000_explicit_options.
1605         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1606         definition.
1607         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1608         global_options_set instead of rs6000_explicit_options.
1609         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1610         (rs6000_cmodel): New Enum and EnumValue entries.
1611         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1612         global_options_set instead of rs6000_explicit_options.
1613         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1614         (mtls-size=): Use Enum and Var.
1615         (rs6000_tls_size): New Enum and EnumValue entries.
1616
1617 2011-05-05  Michael Matz  <matz@suse.de>
1618
1619         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1620         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1621         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1622         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1623         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1624         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1625         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1626         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1627         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1628         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1629         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1630         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1631         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1632         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1633         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1634         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1635
1636 2011-05-05  Richard Guenther  <rguenther@suse.de>
1637
1638         * expmed.c (expand_variable_shift): Rename to ...
1639         (expand_shift_1): ... this.  Take an expanded shift amount.
1640         For rotates recurse directly not building trees for the shift amount.
1641         (expand_variable_shift): Wrap around expand_shift_1.
1642         (expand_shift): Adjust.
1643
1644 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1645
1646         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1647
1648 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1649
1650         * tree.h (get_pending_sizes): Remove prototype.
1651         (put_pending_size): Likewise.
1652         (put_pending_sizes): Likewise.
1653         * stor-layout.c (pending_sizes): Delete.
1654         (get_pending_sizes): Likewise.
1655         (put_pending_size): Likewise.
1656         (put_pending_sizes): Likewise.
1657         (variable_size): Do not call put_pending_size and tidy up.
1658         * function.h (struct function): Remove dont_save_pending_sizes_p.
1659         * lto-streamer-in.c (input_function): Do not stream it.
1660         * lto-streamer-out.c (output_function): Likewise.
1661         * tree-inline.c (initialize_cfun): Do not copy it.
1662         * c-decl.c (store_parm_decls): Do not set it.
1663         * omp-low.c (create_task_copyfn): Likewise.
1664         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1665
1666 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
1667
1668         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1669         conditions.
1670         (*movdf_internal): Ditto.
1671         (*movdf_internal_nointeger): Ditto.
1672         (*movsf_internal): Ditto.
1673
1674 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1675
1676         * c-decl.c (finish_decl): Don't call get_pending_sizes.
1677         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
1678         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
1679         (c_variable_size): Remove.
1680         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
1681         call put_pending_sizes.
1682         (get_parm_info): Add parameter expr.  Use it to set
1683         arg_info->pending_sizes.
1684         (store_parm_decls): Use arg_info->pending_sizes instead or calling
1685         get_pending_sizes.
1686         * c-parser.c (c_parser_parms_declarator): Update call to
1687         c_parser_parms_list_declarator.
1688         (c_parser_parms_list_declarator): Take parameter expr.  Update
1689         call to push_parm_decl.  Update recursive call.  Don't call
1690         get_pending_sizes.  Update calls to get_parm_info.
1691         (c_parser_objc_method_definition): Update calls to
1692         c_parser_objc_method_decl and objc_start_method_definition.
1693         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
1694         (c_parser_objc_method_decl): Add parameter expr.  Update call to
1695         grokparm.
1696         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
1697         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1698         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1699
1700 2011-05-05  Michael Hope  <michael.hope@linaro.org>
1701
1702         PR pch/45979
1703         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1704         __ARM_EABI__ hosts.
1705
1706 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1707
1708         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1709         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1710         (spu_output_mi_thunk): New function.
1711
1712 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1713
1714         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1715         targetm.asm_out.print_operand.
1716         * config/sol2.c: Include target.h.
1717
1718 2011-05-04  Jan Hubicka  <jh@suse.cz>
1719
1720         * ipa-inline.c (reset_edge_caches): New function.
1721         (update_caller_keys): Add check_inlinablity_for; do not
1722         reset edge caches; remove now unnecesary loop.
1723         (update_callee_keys): Add comments; reset node_growth_cache of callee.
1724         (update_all_callee_keys): Likewise.
1725         (inline_small_functions): Sanity check cache; update code
1726         recomputing it.
1727
1728 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
1729
1730         PR rtl-optimization/47612
1731         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1732         as the last insn of the sequence to be moved.
1733
1734 2011-05-04  Tobias Burnus  <burnus@net-b.de>
1735
1736         PR fortran/48864
1737         * doc/invoke.texi (Ofast): Document that it
1738         enables Fortran's -fno-protect-parens.
1739
1740 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1741
1742         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1743
1744 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1745
1746         * stor-layout.c (variable_size): Do not issue errors.
1747
1748 2011-05-04  Richard Guenther  <rguenther@suse.de>
1749
1750         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
1751         for array-ref indices.
1752         (tree_coverage_counter_addr): Likewise.
1753         (build_fn_info_type): Use size_int for index types.
1754         (build_gcov_info): Likewise.
1755
1756 2011-05-04  Richard Guenther  <rguenther@suse.de>
1757
1758         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
1759         to build_int_cst.
1760         * c-typeck.c (really_start_incremental_init): Use bitsize_int
1761         for constructor indices.
1762         (push_init_level): Likewise.
1763
1764 2011-05-04  Richard Guenther  <rguenther@suse.de>
1765
1766         * explow.c (promote_mode): Move variable declarations before code.
1767
1768 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1769
1770         * tree.h (build_function_type_array): Declare.
1771         (build_varargs_function_type_array): Declare.
1772         (build_function_type_vec, build_varargs_function_type_vec): Define.
1773         * tree.c (build_function_type_array_1): New function.
1774         (build_function_type_array): New function.
1775         (build_varargs_function_type_array): New function.
1776
1777 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
1778
1779         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1780         before setting STMT_VINFO_TYPE.
1781
1782 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1783
1784         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1785         instead of spu_pass_by_reference.
1786
1787 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1788
1789         * calls.c (emit_library_call_value_1): Invoke
1790         promote_function_mode hook on libcall arguments.
1791         * explow.c (promote_function_mode, promote_mode): Handle TYPE
1792         argument being NULL.
1793         * targhooks.c (default_promote_function_mode): Lisewise.
1794         * config/s390/s390.c (s390_promote_function_mode): Likewise.
1795         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1796
1797         * doc/tm.texi: Document that TYPE argument might be NULL.
1798
1799 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1800
1801         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1802
1803 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1804
1805         From Bernd Schmidt
1806         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1807
1808 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1809
1810         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1811         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1812         Move ...
1813         * mips-tfile.c: ... here.
1814         Don't include coretypes.h, tm.h, filenames.h.
1815         (saber_stop): Remove definition and all calls.
1816         [__SABER__]: Remove.
1817         (__LINE__): Remove default.
1818         (Size_t, Ptrdiff_t): Remove definitions.
1819         Replace by size_t, ptrdiff_t.
1820         [!MIPS_DEBUGGING_INFO]: Remove.
1821         (SHASH_SIZE, THASH_SIZE): Remove defaults.
1822         (progname): Add const.
1823         (STATIC): Remove.
1824         Replace all uses by static.
1825         (ALIGN_SYMTABLE_OFFSET): Remove default.
1826         * mips-tdump.c: Don't include coretypes.h, tm.h.
1827         Remove !MIPS_IS_STAB guard.
1828         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1829         $(TM_H), filenames.h dependencies.
1830         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1831
1832 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1833
1834         From Jie Zhang
1835         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1836         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1837
1838 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1839
1840         From Bernd Schmidt
1841         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1842         account and save/restore RETS.
1843         (PROFILE_BEFORE_PROLOGUE): Define.
1844         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
1845         the push insn to use predecrement.
1846
1847 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1848
1849         From Jie Zhang
1850         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1851
1852 2011-05-04  Nick Clifton  <nickc@redhat.com>
1853
1854         * config/mn10300/mn10300.c: Include cfgloop.h.
1855         (DUMP): New macro.
1856         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
1857         Lcc or a FLcc insn into the instruction stream.
1858         (mn10300_block_contains_call): New function.  Returns true if the
1859         given basic block contains a CALL insn.
1860         (mn10300_loop_contains_call_insn): New function.  Returns true if
1861         the given loop contains a CALL insn.
1862         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
1863         to use the SETLB and Lcc or FLcc insns.
1864         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1865         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1866         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
1867         disable the SETLB optimization.
1868         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1869         __SETLB__ or __NO_SETLB__.
1870         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1871         (movsf_internal): Handle MDR register.
1872         (cmpsi): Make visible.
1873         (setlb): New pattern.
1874         (Lcc): New pattern.
1875         (FLcc): New pattern.
1876
1877 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1878
1879         PR target/48860
1880         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1881         for reg<->xmm moves.
1882         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1883         (vec_concatv2di_rex64_sse): Ditto.
1884         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1885         (*vec_extractv2di_1_rex64): Ditto.
1886
1887         Revert:
1888         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1889
1890         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1891         reg<->xmm moves.
1892         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1893
1894 2011-05-04  Richard Guenther  <rguenther@suse.de>
1895
1896         * tree.h (int_const_binop): Remove notrunc argument.
1897         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
1898         create integer constants that are properly truncated.
1899         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1900         (const_binop): Remove zero notrunc argument to int_const_binop.
1901         (size_binop_loc): Likewise.
1902         (fold_div_compare): Likewise.
1903         (maybe_canonicalize_comparison_1): Likewise.
1904         (fold_comparison): Likewise.
1905         (fold_binary_loc): Likewise.
1906         (multiple_of_p): Likewise.
1907         * expr.c (store_constructor): Likewise.
1908         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1909         (maybe_fold_stmt_addition): Likewise.
1910         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1911         * stor-layout.c (layout_type): Likewise.
1912         * tree-data-ref.c (tree_fold_divides_p): Likewise.
1913         * tree-sra.c (build_ref_for_offset): Likewise.
1914         (build_user_friendly_ref_for_offset): Likewise.
1915         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1916         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1917         * tree-ssa-loop-niter.c (inverse): Likewise.
1918         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1919         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1920         * tree-switch-conversion.c (check_range): Likewise.
1921         (build_constructors): Likewise.
1922         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1923         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1924         (extract_range_from_assert): Likewise.
1925         (vrp_int_const_binop): Likewise.
1926         (extract_range_from_binary_expr): Likewise.
1927         (extract_range_from_unary_expr): Likewise.
1928         (check_array_ref): Likewise.
1929         (find_case_label_range): Likewise.
1930         (simplify_div_or_mod_using_ranges): Likewise.
1931         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1932         comparing case labels for merging.
1933
1934 2011-05-03  Mark Wielaard  <mjw@redhat.com>
1935
1936         * dwarf2out.c (debug_str_hash_forced): Removed.
1937         (gen_label_for_indirect_string): Removed.
1938         (get_debug_string_label): Removed.
1939         (AT_string_form): Generate label directly.
1940         (output_indirect_string): Test indirect_string_node for
1941         DW_FORM_strp instead of checking label and refcount.
1942         (prune_indirect_string): Removed.
1943         (prune_unused_types): Don't check debug_str_hash_forced or
1944         call prune_indirect_string.
1945
1946 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1947
1948         PR other/48093
1949         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
1950
1951 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1952
1953         PR debug/47994
1954         PR debug/47919
1955         * combine.c (try_combine): Skip debug insns at m_split tests.
1956
1957 2011-04-26  Mark Wielaard  <mjw@redhat.com>
1958
1959         PR42288
1960         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
1961         when info_section_emitted.
1962
1963 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
1964
1965         * config/mips/mips-opts.h: New.
1966         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
1967         to mips-opts.h.
1968         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
1969         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
1970         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
1971         via opts pointer.
1972         * config/mips/mips.h (enum mips_code_readable_setting): Move to
1973         mips-opts.h.
1974         (mips_abi, mips_code_readable): Don't declare.
1975         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
1976         (mabi=): Use Enum and Var.
1977         (mips_abi): New Enum and EnumValue entries.
1978         (mcode-readable=): Use Enum and Var.
1979         (mips_code_readable_setting): New Enum and EnumValue entries.
1980         (mr10k-cache-barrier=): Use Enum and Var.
1981         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
1982
1983 2011-05-03  Jan Hubicka  <jh@suse.cz>
1984
1985         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
1986         replace hash by pointer map.
1987         (cgraph_node_set_element_def, cgraph_node_set_element,
1988         const_cgraph_node_set_element, varpool_node_set_element_def,
1989         varpool_node_set_element, const_varpool_node_set_element): Remove.
1990         (free_cgraph_node_set, free_varpool_node_set): New function.
1991         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
1992         * tree-emutls.c: Free varpool node set.
1993         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
1994         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1995         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
1996         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1997         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
1998         Move here from ipa.c; implement using pointer_map
1999         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2000         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2001         debug_cgraph_node_set, varpool_node_set_new,
2002         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2003         dump_varpool_node_set, debug_varpool_node_set):
2004         Move to ipa-uitls.c.
2005         * passes.c (ipa_write_summaries): Update.
2006
2007 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2008
2009         From Mike Frysinger:
2010         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2011         bf542/bf544/bf547/bf548/bf549.
2012
2013 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2014
2015         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2016
2017 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2018
2019         From Bernd Schmidt:
2020         * config/bfin/bfin.md (MOVCC): New mode_macro.
2021         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2022         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
2023         comments from generated assembly.
2024
2025 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2026
2027         From Bernd Schmidt
2028         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2029         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2030         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2031         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2032         * config/bfin/lib1funcs.asm (___muldi3): New function.
2033
2034 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2035
2036         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2037         build_function_type_list instead of build_function_type.
2038         Rearrange initialization of `args' to do so.
2039
2040 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2041
2042         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2043         instead of build_function_type.
2044
2045 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2046
2047         * config/rs6000/rs6000.c (spe_init_builtins): Call
2048         build_function_type_list instead of build_function_type.
2049         (paired_init_builtins, altivec_init_builtins): Likewise.
2050         (builtin_function_type): Likewise.
2051
2052 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2053
2054         * config/sh/sh.c (sh_media_init_builtins): Call
2055         build_function_type_list instead of build_function_type.
2056
2057 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2058
2059         * config/sparc/sparc.c (sparc_file_end): Call
2060         build_function_type_list instead of build_function_type.
2061
2062 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2063
2064         * config/alpha/alpha.c (alpha_init_builtins): Call
2065         build_function_type_list instead of build_function_type.
2066
2067 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2068
2069         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2070         build_function_type_list instead of build_function_type.
2071
2072 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2073
2074         * config/iq2000/i2000.c (iq2000_init_builtins): Call
2075         build_function_type_list instead of build_function_type.
2076         Delete `endlink' variable.
2077
2078 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2079
2080         * config/avr/avr.c (avr_init_builtins): Call
2081         build_function_type_list instead of build_function_type.
2082
2083 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2084
2085         * config/picochip/picochip.c (picochip_init_builtins): Call
2086         build_function_type_list instead of build_function_type.
2087         Delete `endlink' variable.
2088
2089 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2090
2091         * config/bfin/bfin.c (bfin_init_builtins): Call
2092         build_function_type_list instead of build_function_type.
2093
2094 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2095
2096         From Bernd Schmidt
2097         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2098         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
2099
2100 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2101
2102         From Jie Zhang:
2103         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2104         libbffastfp overrides libgcc when -mfast-fp.
2105
2106 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2107
2108         Originally from Bernd Schmidt
2109         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2110         * config/bfin/bfin.c (override_options): Test it and error if
2111         TARGET_FDPIC.
2112
2113 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2114
2115         Originally From Bernd Schmidt
2116         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2117         FD-PIC.
2118
2119 2011-05-03  Jeff Law  <law@redhat.com>
2120
2121         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2122         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2123         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
2124         than accessing AUX field directly.  Free the AUX field before
2125         clearing it.
2126         (thread_block, thread_through_loop_header): Likewise.
2127         (thread_single_edge, mark_threaded_blocks): Likewise.
2128         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
2129         (register_jump_thread): Do not attempt to thread to a NULL edge.
2130
2131 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2132
2133         * function.c (init_function_start): Call decide_function_section.
2134         * varasm.c (decide_function_section): New function.
2135         (assemble_start_function): When not using
2136         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2137         or first_function_block_is_cold.
2138         * rtl.h (decide_function_section): Declare.
2139
2140 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2141             Jakub Jelinek  <jakub@redhat.com>
2142
2143         PR target/48774
2144         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2145         only succeed if req_mode is the same as set_mode.
2146
2147 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2148
2149         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2150         * genemit.c (gen_exp): Handle RETURN.
2151         * emit-rtl.c (verify_rtx_sharing): Likewise.
2152         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2153         * rtl.c (copy_rtx): RETURN is shared.
2154         * rtl.h (enum global_rtl_index): Add GR_RETURN.
2155         (ret_rtx): New.
2156         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2157         * config/s390/s390.c (s390_emit_epilogue): Likewise.
2158         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2159         * config/cris/cris.c (cris_expand_return): Likewise.
2160         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2161         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2162         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2163         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2164         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2165         Likewise.
2166         * config/v850/v850.c (expand_epilogue): Likewise.
2167         * config/bfin/bfin.c (bfin_expand_call): Likewise.
2168         * config/arm/arm.md (epilogue): Likewise.
2169         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2170         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2171         variable to ret_reg.
2172
2173 2011-05-03  Richard Guenther  <rguenther@suse.de>
2174
2175         PR lto/48846
2176         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2177         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2178         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2179
2180 2011-05-03  Richard Guenther  <rguenther@suse.de>
2181
2182         * c-decl.c (grokdeclarator): Instead of looking at
2183         TREE_OVERFLOW check if the constant fits in the index type.
2184
2185 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2186
2187         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2188         (vec_store_lanes<mode><mode>): Likewise.
2189
2190 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2191
2192         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2193         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2194         convert_optab_index values.
2195         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2196         * genopinit.c (optabs): Initialize the new optabs.
2197         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2198         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2199         (expand_STORE_LANES): New functions.
2200         * tree.h (build_array_type_nelts): Declare.
2201         * tree.c (build_array_type_nelts): New function.
2202         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2203         (vect_model_load_cost): Likewise.
2204         (vect_store_lanes_supported, vect_load_lanes_supported)
2205         (vect_record_strided_load_vectors): Declare.
2206         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2207         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2208         (vect_transform_strided_load): Split out statement recording into...
2209         (vect_record_strided_load_vectors): ...this new function.
2210         * tree-vect-stmts.c (create_vector_array, read_vector_array)
2211         (write_vector_array, create_array_ref): New functions.
2212         (vect_model_store_cost): Add store_lanes_p argument.
2213         (vect_model_load_cost): Add load_lanes_p argument.
2214         (vectorizable_store): Try to use store-lanes functions for
2215         interleaved stores.
2216         (vectorizable_load): Likewise load-lanes and loads.
2217         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2218         to vect_model_store_cost.
2219         (vect_build_slp_tree): Likewise vect_model_load_cost.
2220
2221 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2222
2223         * hooks.h (hook_bool_mode_uhwi_false): Declare.
2224         * hooks.c (hook_bool_mode_uhwi_false): New function.
2225         * target.def (array_mode_supported_p): New hook.
2226         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2227         * doc/tm.texi: Regenerate.
2228         * stor-layout.c (mode_for_array): New function.
2229         (layout_type): Use it.
2230         * config/arm/arm.c (arm_array_mode_supported_p): New function.
2231         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2232
2233 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2234
2235         PR target/48723
2236         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2237         for -fstack-check if the size to allocate is negative.
2238
2239 2011-05-02  Lawrence Crowl  <crowl@google.com>
2240
2241         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2242         (timevar_cond_start): New for starting a timer only when it is not
2243         already running.
2244         (timevar_cond_stop): New for stopping a timer when it was not already
2245         running.
2246
2247         * timevar.c (timevar_stop): Enable start/stop timers to start again.
2248         (timevar_cond_start): New as above.
2249         (timevar_cond_stop): New as above.
2250
2251         * timevar.def: Add start/stop timers for compiler phases,
2252         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2253         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2254         and TV_PHASE_FINALIZE.
2255         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2256         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2257         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2258         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2259         Make unused TV_OVERLOAD into a start/stop timer.
2260
2261         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2262         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2263         to indicate that they are start/stop timers.
2264
2265         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2266         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2267         Move initialization to do_compile.
2268         (do_compile): Add initialization from above.
2269         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2270
2271         * c-decl.c (c_write_global_declarations): Add start/stop of
2272         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2273
2274         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2275         or TV_PARSE_INLINE, as appropriate.
2276         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2277         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2278
2279 2011-05-02  Jason Merrill  <jason@redhat.com>
2280
2281         PR c++/40975
2282         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2283
2284 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
2285
2286         PR c/35445
2287         * c-decl.c (finish_decl): Only create a composite if the types are
2288         compatible.
2289
2290 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2291
2292         * config/fr30/fr30-protos.h (Mmode): Don't define.
2293         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
2294         definition where used.
2295         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2296         define.  Expand definitions where used.
2297         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2298         Expand definitions where used.
2299         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2300         rx_function_arg, rx_function_arg_advance,
2301         rx_function_arg_boundary): Expand definitions of those macros.
2302         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
2303         definition where used.
2304
2305 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2306
2307         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2308         reg<->xmm moves.
2309         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2310         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
2311         with *movv2sf_internal_rex64_avx.
2312         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2313         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2314         Use %v prefix in insn mnemonic to handle TARGET_AVX.
2315         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
2316         "vex" in "prefix" attribute calculation.
2317         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
2318
2319 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
2320
2321         PR target/47951
2322         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2323         inputs match the output.
2324
2325 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
2326
2327         PR target/47955
2328         * config/m68k/m68k.c (m68k_expand_prologue): Set
2329         current_function_static_stack_size.
2330
2331 2011-05-02   Jan Hubicka  <jh@suse.cz>
2332
2333         * lto-streamer.c (lto_streamer_cache_insert_1,
2334         lto_streamer_cache_lookup, lto_streamer_cache_create,
2335         lto_streamer_cache_delete): Use pointer map instead of hashtable.
2336         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2337
2338 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2339
2340         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2341         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2342         config/m68k/t-opts: New files.
2343         * config/m68k/m68k-tables.opt: New file (generated).
2344         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2345         extra_options and m68k/t-opts to tmake_file.
2346         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2347         (all_isas): Initialize using m68k-isas.def.
2348         (all_microarchs): Initialize using m68k-microarchs.def.
2349         (m68k_find_selection): Remove.
2350         (m68k_handle_option): Don't assert that global structures are in
2351         use.  Use error_at.  Access variables via opts pointer.  Don't
2352         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
2353         directly for -m68020-40 and -m68020-60.
2354         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2355         m68k_tune_entry here.
2356         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2357         to m68k-opts.h.
2358         (m68k_library_id_string): Remove declaration.
2359         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
2360         (m68k_library_id_string): New Variable.
2361         (march=, mcpu=, mtune=): Use Enum and Var.
2362
2363 2011-05-02  Richard Guenther  <rguenther@suse.de>
2364
2365         * varasm.c (output_constructor_regular_field): Compute zero-based
2366         index with double-ints.  Make sure to ICE instead of producing
2367         wrong code.
2368         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2369         in asserts.  Properly use a signed type.
2370
2371 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2372
2373         * config/i386/sse.md (V): New mode iterator.
2374         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
2375         TARGET_SSE2.
2376         (V_256): Rename from AVX256MODE.
2377         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
2378         condition to all users.
2379         (VF1): Ditto.
2380         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
2381         condition to all users.
2382         (VF_128): Make V4SF mode unconditional.
2383         (VF_256): Rename from AVX256MODEF2P.
2384         (VI4F_128): Rename from SSEMODE4S.
2385         (VI8F_128): Rename from SSEMODE2D.
2386         (VI4F_256): Rename from AVX256MODE8P.
2387         (VI8F_256): Rename from AVX256MODE4P.
2388         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2389         (ssescalarmodesuffix): Remove SF and DF modes.
2390         (SSEMODE124): Remove.
2391         (SSEMODE1248): Ditto.
2392         (SSEMODEF2P): Ditto.
2393         (AVXMODEF2P): Ditto.
2394         (AVXMODEFDP): Ditto.
2395         (AVXMODEFSP): Ditto.
2396         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2397         unconditional.
2398         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
2399         unconditional.
2400         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2401         xop_pcmov_<mode>256.  Use V mode iterator.
2402
2403         Adjust RTX patterns globally for renamed mode attributes.
2404
2405 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2406
2407         * haifa-sched.c (sched_emit_insn): Emit insn before first
2408         non-scheduled insn.  Inform back-end about new insn.  Add
2409         new insn to scheduled_insns list.
2410
2411 2011-05-02  Richard Guenther  <rguenther@suse.de>
2412
2413         PR tree-optimization/48822
2414         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2415         (process_scc): Indicate which iteration we start.
2416
2417 2011-05-02  Jan Hubicka  <jh@suse.cz>
2418
2419         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2420         (lto_section_overrun): New.
2421         * lto-section-out.c (append_block): Rename to ...
2422         (lto_append_block): ... this one; export.
2423         (lto_output_1_stream): Move lto lto-streamer.h
2424         (lto_output_data_stream): Update.
2425         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2426         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2427         functions.
2428
2429 2011-05-02  Richard Guenther  <rguenther@suse.de>
2430
2431         * tree.c (tree_code_counts): New global array.
2432         (record_node_allocation_statistics): Count individual tree codes.
2433         (dump_tree_statistics): Dump individual code stats.
2434
2435 2011-05-01  Jan Hubicka  <jh@suse.cz>
2436
2437         * ipa-inline.c (caller_growth_limits): Fix thinko when
2438         looking for largest stack frame.
2439         * ipa-inline.h (dump_inline_summary): Declare.
2440         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2441         on stack usage.
2442         (dump_inline_summary): Export.
2443         (debug_inline_summary): Declare as DEBUG_FUNCTION.
2444
2445 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
2446
2447         * reginfo.c (memory_move_cost): Change rclass argument type form
2448         'enum reg_class' to reg_class_t.
2449         * reload.h (memory_move_cost): Update prototype.
2450         * postreload.c reload_cse_simplify_set): Change type dclass var to
2451         reg_class_t.
2452         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2453         Update prototype.
2454         (ira_allocate_and_set_costs): Change aclass argument type form
2455         'enum reg_class' to reg_class_t.
2456         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
2457         Change aclass argument type to reg_class_t.
2458         (update_conflict_hard_reg_costs): Change type aclass and pref vars
2459         to reg_class_t.
2460         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2461         memory_move_cost call.
2462
2463         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2464         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2465         Change type tmp var to reg_class_t.
2466
2467 2011-04-30  Jan Hubicka  <jh@suse.cz>
2468
2469         * ipa-inline.c (can_inline_edge_p): Disregard limits when
2470         inlining into function with flatten attribute.
2471         (want_inline_small_function_p): Be more realistic about inlining
2472         cold calls where callee size grows.
2473
2474 2011-04-30  Jan Hubicka  <jh@suse.cz>
2475
2476         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2477         flags.
2478
2479 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
2480
2481         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2482         PRINT_OPERAND_PUNCT_VALID_P): Remove.
2483         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2484         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2485         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2486         (print_operand): Rename to...
2487         (sparc_print_operand): ...this. Make static. Adjust
2488         sparc_print_operand function call.
2489         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2490         functions.
2491
2492 2011-04-30  Jan Hubicka  <jh@suse.cz>
2493
2494         PR middle-end/48752
2495         * ipa-inline.c (early_inliner): Disable when doing late
2496         addition of function.
2497
2498 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
2499
2500         * dwarf2out.c (get_address_mode): New inline.
2501         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2502         if not dwarf_strict emit
2503         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2504         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2505         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
2506         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2507         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2508         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2509         mem_loc_descriptor callers.
2510         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2511         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2512         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2513         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2514         (base_types): New variable.
2515         (get_base_type_offset, calc_base_type_die_sizes,
2516         base_type_for_mode, mark_base_types, base_type_cmp,
2517         move_marked_base_types): New functions.
2518         (calc_die_sizes): Assert that die_offset is 0 or equal to
2519         next_die_offset.
2520         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2521         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
2522         callers.  If not dwarf_strict, call mem_loc_descriptor even for
2523         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2524         (gen_subprogram_die): Don't give up on call site parameters
2525         with non-integral or large integral modes.  Adjust
2526         mem_loc_descriptor callers.
2527         (prune_unused_types): Call prune_unused_types_mark on base_types
2528         vector entries.
2529         (resolve_addr): Call mark_base_types.
2530         (dwarf2out_finish): Call move_marked_base_types.
2531
2532         PR tree-optimization/48809
2533         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2534         type.
2535         (gen_inbound_check): Don't compute index_expr - range_min in utype
2536         again, instead reuse SSA_NAME initialized in build_arrays.
2537         Remove two useless gsi_for_stmt calls.
2538
2539 2011-04-29  Jeff Law  <law@redhat.com>
2540
2541         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2542
2543 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2544
2545         * cgraph.h (cgraph_postorder): Remove declaration.
2546         * ipa-utils.h (ipa_free_postorder_info): Declare.
2547         (ipa_reverse_postorder): Likewise.
2548         * cgraphunit.c: Include ipa-utils.h.
2549         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2550         * ipa-inline.c: Include ipa-utils.h.
2551         (ipa_inline): Update call to ipa_reverse_postorder.
2552         * ipa-pure-const.c (propagate_pure_const): Update call to
2553         ipa_reduced_postorder and ipa_print_order.  Call
2554         ipa_free_postorder_info to clean up.
2555         (propagate_nothrow): Likewise.
2556         * ipa-reference.c (propagate): Removed a useless call to
2557         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2558         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
2559         * ipa.c: Include ipa-utils.h.
2560         (ipa_profile): Update call to ipa_reverse_postorder.
2561         (cgraph_postorder): Moved to...
2562         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2563         (ipa_utils_print_order): Renamed to ipa_print_order.
2564         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2565         comments.
2566         (ipa_free_postorder_info): New function.
2567         * passes.c: Include ipa-utils.h.
2568         (do_per_function_toporder): Update call to ipa_reverse_postorder.
2569         (ipa_write_summaries): Likewise.
2570         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2571         (cgraphunit.o): Likewise.
2572         (ipa.o): Likewise.
2573         (ipa-inline.o): Likewise.
2574
2575 2011-04-29  Jan Hubicka  <jh@suse.cz>
2576
2577         * gcc.dg/tree-ssa/inline-10.c: New testcase.
2578         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2579         * ipa-inline.h (clause_t): Turn into unsigned int.
2580         * ipa-inline-analysis.c (add_clause): Do more simplification.
2581         (and_predicates): Shortcut more cases.
2582         (predicates_equal_p): Move forward; check that clauses are properly
2583         ordered.
2584         (or_predicates): Shortcut more cases.
2585         (edge_execution_predicate): Rewrite as...
2586         (set_cond_stmt_execution_predicate): ... this function; handle
2587         __builtin_constant_p.
2588         (set_switch_stmt_execution_predicate): New .
2589         (compute_bb_predicates): New.
2590         (will_be_nonconstant_predicate): Update TODO.
2591         (estimate_function_body_sizes): Use compute_bb_predicates
2592         and free them later, always try to estimate if stmt is constant.
2593         (estimate_time_after_inlining, estimate_size_after_inlining):
2594         Gracefully handle optimized out edges.
2595         (read_predicate): Fix off by one error.
2596
2597 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2598
2599         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2600
2601 2011-04-27  Xinliang David Li  <davidxl@google.com>
2602
2603         * tree-profile.c (init_ic_make_global_vars): Set
2604         tls attribute on ic vars.
2605         * coverage.c (coverage_end_function): Initialize
2606         function_list with zero.
2607
2608 2011-04-29  Richard Guenther  <rguenther@suse.de>
2609
2610         * builtins.c (fold_builtin_classify_type): Use integer_type_node
2611         for the type of the result.
2612         (fold_builtin_isascii): Likewise.
2613         (fold_builtin_toascii): Use integer_type_node where appropriate.
2614         (fold_builtin_logb): Likewise.
2615         (fold_builtin_frexp): Likewise.
2616         (fold_builtin_strstr): Likewise.
2617         (fold_builtin_strpbrk): Likewise.
2618         (fold_builtin_fputs): Likewise.
2619         (fold_builtin_sprintf): Likewise.
2620         (fold_builtin_snprintf): Likewise.
2621         (fold_builtin_printf): Likewise.
2622         (do_mpfr_remquo): Use a proper type for the assigned constant.
2623         (do_mpfr_lgamma_r): Likewise.
2624         * dwarf2out.c (resolve_one_addr): Use size_int.
2625         * except.c (init_eh): Likewise.
2626         (assign_filter_values): Use integer_type_node for filter values.
2627         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2628         indices.
2629         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2630         for EH region numbers.
2631         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2632         for the shift amount.
2633
2634 2011-04-29  Richard Guenther  <rguenther@suse.de>
2635
2636         * expr.h (expand_shift): Rename to ...
2637         (expand_variable_shift): ... this.
2638         (expand_shift): Take a constant shift amount.
2639         * expmed.c (expand_shift): Rename to ...
2640         (expand_variable_shift): ... this.
2641         (expand_shift): New wrapper around expand_variable_shift.
2642         * expr.c (convert_move, emit_group_load_1, emit_group_store,
2643         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2644         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2645         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2646         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2647         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2648         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2649         emit_store_flag_1, emit_store_flag): Likewise.
2650         * builtins.c (expand_builtin_signbit): Likewise.
2651         * calls.c (load_register_parameters): Likewise.
2652         * function.c (assign_parm_setup_block): Likewise.
2653         * lower-subreg.c (resolve_shift_zext): Likewise.
2654         * optabs.c (widen_bswap, expand_abs_nojump,
2655         expand_one_cmpl_abs_nojump, expand_float): Likewise.
2656         * spu/spu.c (spu_expand_extv): Likewise.
2657         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2658
2659 2011-04-29  Richard Guenther  <rguenther@suse.de>
2660
2661         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2662         for the remapped region number.
2663         * predict.c (build_predict_expr): Use integer_type_node for the
2664         predict kind.
2665         * fold-const.c (fold_binary_loc): Use integer_type_node for
2666         the shift amount.  Use a proper type for the PLUS_EXPR operand.
2667
2668 2011-04-29  Michael Matz  <matz@suse.de>
2669
2670         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2671         other trees that just builtins.
2672         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2673
2674 2011-04-29  Richard Guenther  <rguenther@suse.de>
2675
2676         * tree-nested.c (get_trampoline_type): Use size_int.
2677         (get_nl_goto_field): Likewise.
2678         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2679         for all indexes.
2680         (lower_eh_constructs_2): Likewise.
2681         (lower_resx): Likewise.
2682         (lower_eh_dispatch): Likewise.
2683         * tree-mudflap.c (mf_build_string): Use size_int.
2684         (mudflap_register_call): Use integer_type_node for the flag.
2685         (mudflap_enqueue_constant): Use size_int.
2686         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2687         instead of rebuilding it.
2688
2689 2011-04-29  Richard Guenther  <rguenther@suse.de>
2690
2691         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2692         Handle OBJ_TYPE_REF.
2693         (find_func_aliases_for_call): Use it more consistently.
2694
2695 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
2696
2697         * haifa-sched.c (last_nondebug_scheduled_insn): New.
2698         (rank_for_schedule): Use it.
2699         (schedule_block): Set it.
2700
2701 2011-04-28  David Li  <davidxl@google.com>
2702
2703         * tree.c (crc32_string): Use crc32_byte.
2704         (crc32_byte): New function.
2705         * tree.h (crc32_byte): New function.
2706         * gcov.c (read_graph_file): Handle new cfg_cksum.
2707         (read_count_file): Ditto.
2708         * profile.c (instrument_values): Ditto.
2709         (get_exec_counts): Ditto.
2710         (read_profile_edge_counts): Ditto.
2711         (compute_branch_probabilities): Ditto.
2712         (compute_value_histograms): Ditto.
2713         (branch_prob): Ditto.
2714         (end_branch_prob): Ditto.
2715         * coverage.c (read_counts_file): Ditto.
2716         (get_coverage_counts): Ditto.
2717         (tree_coverage_counter_addr): Ditto.
2718         (coverage_checksum_string): Ditto.
2719         (coverage_begin_output): Ditto.
2720         (coverage_end_function): Ditto.
2721         (build_fn_info_type): Ditto.
2722         (build_fn_info_value): Ditto.
2723         * libgcov.c (gcov_exit): Ditto.
2724         * gcov-dump.c (tag_function): Ditto.
2725         (compute_checksum): Remove.
2726
2727 2011-04-29  Alan Modra  <amodra@gmail.com>
2728
2729         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2730         unspec plus offset.  Tidy macho code.
2731
2732 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2733
2734         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2735         node instead of a decl.  Update all callers.
2736         * cgraph.h: Update declaration.
2737
2738 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
2739
2740         PR tree-optimization/48765
2741         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2742         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2743         to indicate if loop aware SLP is being used.  Scan the statements
2744         and update the vectorization factor according to the type of
2745         vectorization before statement analysis.
2746         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
2747         pass it to vect_analyze_loop_operations.
2748         (vectorizable_reduction): Set number of copies to 1 in case of pure
2749         SLP statement.
2750         * tree-vect-stmts.c (vectorizable_conversion,
2751         vectorizable_assignment, vectorizable_shift,
2752         vectorizable_operation, vectorizable_type_demotion,
2753         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
2754         Likewise.
2755         (vectorizable_condition): Move the check that it is not SLP
2756         vectorization before the number of copies check.
2757         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
2758         to vectorize the loop using SLP.
2759
2760 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
2761
2762         PR middle-end/48597
2763         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2764         inline asm.
2765
2766 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
2767
2768         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2769         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2770         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2771         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2772         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2773         linux*.h headers.
2774         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
2775         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2776         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2777         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2778         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2779         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2780         REG_NAME.
2781         * config/i386/linux.h (REG_NAME): Don't define.
2782         * config/i386/linux64.h (REG_NAME): Don't define.
2783         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2784         Undefine before defining.
2785
2786 2011-04-28  Jan Hubicka  <jh@suse.cz>
2787
2788         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2789         nonconstant_names array.
2790         (estimate_function_body_sizes): Build nonconstant_names array; handle
2791         BUILT_IN_CONSTANT_P.
2792
2793 2011-04-28  Richard Guenther  <rguenther@suse.de>
2794
2795         PR bootstrap/48804
2796         Revert
2797         2011-04-28  Richard Guenther  <rguenther@suse.de>
2798
2799         * tree-ssa-structalias.c (solve_constraints): Build succ graph
2800         as late as possible.
2801
2802 2011-04-28  Richard Guenther  <rguenther@suse.de>
2803
2804         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2805         (debug_constraint): Do it here.
2806         (dump_constraints): And here.
2807         (rewrite_constraints): And here.
2808         (dump_constraint_edge): Remove.
2809         (dump_constraint_graph): Rewrite to produce DOT output.
2810         (solve_constraints): Build succ graph as late as possible.
2811         Dump constraint graphs before and after solving.
2812
2813 2011-04-28  Richard Guenther  <rguenther@suse.de>
2814
2815         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2816         New function split out from ...
2817         (find_func_aliases): ... here.  Call it.
2818         (find_func_aliases_for_call): Likewise.
2819
2820 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2821
2822         * internal-fn.h (internal_fn_name_array): Declare.
2823         (internal_fn_flags_array): Likewise.
2824
2825 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2826
2827         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
2828         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2829         Move from sse.md.
2830         (ssemodefsuffix): Remove.
2831         (ssevecmodesuffix): New mode attribute.
2832         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2833         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2834         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2835         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2836         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2837         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2838         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2839         ssemodesuffix mode attribute.
2840         (float splitters): Use ssevecmodesuffix mode attribute.
2841         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2842         (sseinsmode): Rename from avxvecmode.
2843         (avxsizesuffix): Rename from avxmodesuffix.
2844         (sseintvecmode): Rename from avxpermvecmode.
2845         (ssedoublevecmode): Rename from ssedoublesizemode.
2846         (ssehalfvecmode): Rename from avxhalfvecmode.
2847         (ssescalarmode): Rename from avxscalarmode.
2848         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2849         templates for ssemodesuffix mode attribute.
2850         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2851         mode attribute.
2852
2853         Adjust RTX patterns globally for renamed mode attributes.
2854
2855 2011-04-27  Jan Hubcika  <jh@suse.cz>
2856
2857         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2858         * ipa-inline-analysis.c: Include alloc-pool.h.
2859         (edge_predicate_pool): New.
2860         (trye_predicate_p): New function
2861         (false_predicate_p): New function.
2862         (add_clause): Sanity check that false clauses are "optimized";
2863         never add clauses to predicate that is already known to be false.
2864         (and_predicate): Use flase_predicate_p.
2865         (evaulate_predicate): Rename to ...
2866         (evaluate_predicate): ... this one; update all callers; assert
2867         that false is not listed among possible truths.
2868         (dump_predicate): Use true_predicate_p.
2869         (account_size_time): Use false_predicate_p.
2870         (evaulate_conditions_for_edge): Rename to ...
2871         (evaluate_conditions_for_edge) ... this one.
2872         (edge_set_predicate): New function.
2873         (inline_edge_duplication_hook): Duplicate edge predicates.
2874         (inline_edge_removal_hook): Free edge predicates.
2875         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
2876         (dump_inline_summary): Update.
2877         (estimate_function_body_sizes): Set edge predicates.
2878         (estimate_calls_size_and_time): Handle predicates.
2879         (estimate_callee_size_and_time): Update.
2880         (remap_predicate): Add toplev_predicate; update comment.
2881         (remap_edge_predicates): New function.
2882         (inline_merge_summary): Compute toplev predicate; update.
2883         (read_predicate): New function.
2884         (read_inline_edge_summary): Use it.
2885         (inline_read_section): Likewise.
2886         (write_predicate): New function.
2887         (write_inline_edge_summary): Use it.
2888         (inline_write_summary): Likewise.
2889         (inline_free_summary): Free alloc pool and edge summary vec.
2890
2891 2011-04-27  Richard Guenther  <rguenther@suse.de>
2892
2893         * tree-ssa-structalias.c (changed_count): Remove.
2894         (changed): Use a bitmap.
2895         (unify_nodes): Adjust.
2896         (do_sd_constraint): Likewise.
2897         (do_ds_constraint): Likewise.
2898         (do_complex_constraint): Likewise.
2899         (solve_graph): Likewise.
2900
2901 2011-04-27  Jan Hubicka  <jh@suse.cz>
2902
2903         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2904
2905 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2906
2907         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2908         (avx_vperm2f128_*_operand): Ditto.
2909         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2910         Use avx_vpermilp_parallel in insn condition.
2911         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2912         Use avx_vperm2f128_parallel in insn condition.
2913
2914 2011-04-27  Richard Guenther  <rguenther@suse.de>
2915
2916         * Makefile.in (tree-ssa-structalias.o): Remove
2917         gt-tree-ssa-structalias.h dependency.
2918         (GTFILES): Remove tree-ssa-structalias.c.
2919         * tree.c (allocate_decl_uid): New function.
2920         (make_node_stat): Use it.
2921         (copy_node_stat): Likewise.
2922         * tree.h (allocate_decl_uid): Declare.
2923         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2924         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2925         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
2926         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
2927         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2928         (struct heapvar_map): Likewise.
2929         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2930         heapvar_insert): Likewise.
2931         (make_heapvar_for): Rename to ...
2932         (make_heapvar): ... this.  Simplify.
2933         (fake_var_decl_obstack): New global var.
2934         (build_fake_var_decl): New function.
2935         (make_constraint_from_heapvar): Adjust.
2936         (handle_lhs_call): Likewise.
2937         (create_function_info_for): Likewise.
2938         (intra_create_variable_infos): Likewise.
2939         (init_alias_vars): Allocate fake_var_decl_obstack.
2940         (init_alias_heapvars, delete_alias_heapvars): Remove.
2941         (compute_points_to_sets): Do not call init_alias_heapvars.
2942         (ipa_pta_execute): Likewise.
2943         (delete_points_to_sets): Free fake_var_decl_obstack.
2944
2945 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2946
2947         * config/spu/divmovti4.c (union qword_UTItype): New data type.
2948         (si_from_UTItype, si_to_UTItype): New functions.
2949         (__udivmodti4): Use them to implement type-punning.
2950         * config/spu/multi3.c (union qword_TItype): New data type.
2951         (si_from_TItype, si_to_TItype): New functions.
2952         (__multi3): Use them to implement type-punning.
2953
2954 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2955
2956         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
2957
2958 2011-04-27  Jan Hubicka  <jh@suse.cz>
2959
2960         * ipa-prop.c (function_insertion_hook_holder): New holder.
2961         (ipa_add_new_function): New function.
2962         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
2963         Register/deregister holder.
2964
2965 2011-04-27  Richard Guenther  <rguenther@suse.de>
2966
2967         PR tree-optimization/48772
2968         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
2969
2970 2011-04-27  Richard Guenther  <rguenther@suse.de>
2971
2972         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
2973         TARGET_MEM_REF handling.
2974
2975 2011-04-27  Nick Clifton  <nickc@redhat.com>
2976
2977         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
2978         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
2979         (REG_CLASS_NAMES): Likewise.
2980         (REG_CLASS_CONTENTS): Likewise.
2981         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2982         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2983         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
2984         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
2985         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
2986         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
2987         duplicate register classes.
2988         (frv_class_likely_spilled_p): Likewise.
2989         (frv_register_move_cost): Likewise.
2990
2991         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
2992         end of the regno_reg_class array.
2993
2994 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
2995
2996         PR c/48742
2997         * c-typeck.c (build_binary_op): Don't wrap arguments if
2998         int_operands is true.
2999
3000 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
3001
3002         PR target/48767
3003         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3004         targetm.calls.must_pass_in_stack for void type.
3005
3006 2011-04-26  Jan Hubicka  <jh@suse.cz>
3007
3008         * cgraphbuild.c (build_cgraph_edges): Update call
3009         of cgraph_create_edge and cgraph_create_indirect_edge.
3010         * cgraph.c (cgraph_create_edge_including_clones,
3011         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3012         cgraph_update_edges_for_call_stmt_node): Do not take nest
3013         argument; do not initialize call_stmt_size/time.
3014         (dump_cgraph_node): Do not dump nest.
3015         (cgraph_clone_edge): Do not take loop_nest argument;
3016         do not propagate it; do not clone call_stmt_size/time.
3017         (cgraph_clone_node): Likewise.
3018         (cgraph_create_virtual_clone): Update.
3019         * cgraph.h (struct cgraph_edge): Remove
3020         call_stmt_size/call_stmt_time/loop_nest.
3021         (cgraph_create_edge, cgraph_create_indirect_edge,
3022         cgraph_create_edge_including_clones, cgraph_clone_node): Update
3023         prototype.
3024         * tree-emutls.c (gen_emutls_addr): Update.
3025         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3026         loop_nest; handle indirect calls, too.
3027         (clone_inlined_nodes): Do not care about updating inline summaries.
3028         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3029         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3030         stream call_stmt_size/call_stmt_time/loop_nest.
3031         * ipa-inline.c (edge_badness): Update.
3032         (ipa_inline): dump summaries after inlining.
3033         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
3034         New.
3035         (inline_edge_summary): New function.
3036         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3037         (inline_edge_removal_hook): Handle edge summaries.
3038         (inline_edge_duplication_hook): New hook.
3039         (inline_summary_alloc): Alloc hooks.
3040         (initialize_growth_caches): Do not register removal hooks.
3041         (free_growth_caches); Do not free removal hook.
3042         (dump_inline_edge_summary): New function.
3043         (dump_inline_summary): Use it.
3044         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3045         (inline_update_callee_summaries): New function.
3046         (inline_merge_summary): Use it.
3047         (do_estimate_edge_time, do_estimate_edge_growth): Update.
3048         (read_inline_edge_summary): New function.
3049         (inline_read_section): Use it.
3050         (write_inline_edge_summary): New function.
3051         (inline_write_summary): Use it.
3052         (inline_free_summary): Free edge new holders.
3053         * tree-inline.c (copy_bb): Update.
3054
3055 2011-04-26  Jason Merrill  <jason@redhat.com>
3056
3057         * tree-eh.c (lower_try_finally_switch): Create the label along with
3058         the CASE_LABEL_EXPR.
3059
3060 2011-04-26  David S. Miller  <davem@davemloft.net>
3061             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3062
3063         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3064         * configure: Regenerate.
3065
3066 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3067
3068         PR target/48258
3069         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3070         reduction.
3071         (VEC_reduc): New code iterator and splitters for vector reduction.
3072         (VEC_reduc_name): Ditto.
3073         (VEC_reduc_rtx): Ditto.
3074         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3075         (reduc_<VEC_reduc_name>_v4sf): Ditto.
3076
3077         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3078         support for extracting SF on VSX.
3079
3080         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3081         generating xscvspdp.
3082         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3083         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3084         double add, minimum, maximum vector reduction.
3085         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3086         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3087         optimize double vector reduction.
3088         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3089
3090 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
3091
3092         * config/fr30/fr30.h (inhibit_libc): Don't define.
3093         * config/m32r/m32r-protos.h: Correct comment.
3094         * config/v850/v850.h (GHS_default_section_names,
3095         GHS_current_section_names): Use tree, not union tree_node *.
3096
3097 2011-04-26  Xinliang David Li  <davidxl@google.com>
3098
3099         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
3100         * c-family/c-opts.c (c_common_handle_option): Set
3101         warn_maybe_uninitialized.
3102         * opts.c (common_handle_option): Ditto.
3103         * common.opt:  New option.
3104         * tree-ssa.c (warn_uninit): Add one more parameter.
3105         (warn_uninitialized_var): Pass warning code.
3106         * tree-flow.h: Interface change.
3107
3108
3109 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3110
3111         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
3112         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3113         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3114
3115 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3116
3117         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3118         * config/mips/mips.opt (mmips-tfile): Remove.
3119
3120         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3121         mips-tdump reference to ...
3122         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
3123         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3124         reference by Tru64 UNIX.
3125
3126 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
3127
3128         PR debug/48768
3129         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3130         is error_mark_node, set value to NULL.
3131
3132         PR tree-optimization/48734
3133         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3134         if return value from maybe_fold_*_comparsions isn't something
3135         the code is prepared to handle.
3136
3137 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
3138
3139         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3140         mode check.
3141         (ext_QIreg_nomode_operands): Remove.
3142         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3143         (*andsi_1): Ditto.
3144         (*andhi_1): Ditto.
3145
3146 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
3147
3148         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3149
3150 2011-04-26  Richard Guenther  <rguenther@suse.de>
3151
3152         * c-typeck.c (build_unary_op): Do not expand array-refs via
3153         pointer arithmetic.  Only adjust qualifiers for function types.
3154
3155 2011-04-26  Richard Guenther  <rguenther@suse.de>
3156
3157         PR middle-end/48694
3158         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3159         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
3160         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
3161         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
3162
3163 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
3164
3165         * doc/extend.texi: Document __underlying_type.
3166
3167 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
3168
3169         * config/rs6000/titan.md (automata_option "progress"): Remove.
3170
3171 2011-04-25  Jeff Law  <law@redhat.com>
3172
3173         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3174
3175 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
3176
3177         * system.h (ENUM_BITFIELD): Remove.
3178
3179 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
3180             Eric Botcazou  <ebotcazou@adacore.com>
3181
3182         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3183         for STORE_FLAG_VALUE==-1 case.
3184
3185 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
3186
3187         PR target/43804
3188         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3189         LEGITIMATE_PIC_OPERAND_P.
3190
3191 2011-04-24  Jan Hubicka  <jh@suse.cz>
3192
3193         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3194         WPA hack.
3195         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3196         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3197         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
3198         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3199         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3200         Sanity check predicate length.
3201         (remap_predicate): Likewise; sanity check jump functions.
3202         (inline_read_section, inline_write_summary): Sanity check
3203         predicate length.
3204
3205 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
3206
3207         PR other/48748
3208         * doc/extend.texi (Type Traits): Document __is_standard_layout,
3209         __is_literal_type, and __is_trivial; update throughout about
3210         possibly cv-qualified void types.
3211
3212 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3213
3214         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3215         testsuite and make it version agnostic.
3216
3217 2011-04-22  Jan Hubicka  <jh@suse.cz>
3218
3219         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3220
3221 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
3222
3223         PR c/48685
3224         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3225         to VOID_TYPE even around MODIFY_EXPR.
3226
3227 2011-04-22  Mike Stump  <mikestump@comcast.net>
3228
3229         * gensupport.c (read_md_rtx): Fix typo in comment.
3230         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3231         comment.
3232
3233 2011-04-22  Jan Hubicka  <jh@suse.cz>
3234
3235         * gengtype.c (open_base_files): Add ipa-inline.h include.
3236         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3237         ipa-prop.c; update all uses.
3238         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
3239         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3240         merge summary of inlined function into former caller.
3241         * ipa-inline.c (max_benefit): Remove.
3242         (edge_badness): Compensate for removal of benefits.
3243         (update_caller_keys): Use
3244         reset_node_growth_cache/reset_edge_growth_cache.
3245         (update_callee_keys): Likewise.
3246         (update_all_callee_keys): Likewise.
3247         (inline_small_functions): Do not collect max_benefit; do not reset
3248         estimated_growth; call free_growth_caches and initialize_growth_caches.
3249         * ipa-inline.h (struct condition, type clause_t, struct predicate,
3250         struct size_time_entry): New structures.
3251         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
3252         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3253         and estimated_growth.
3254         (edge_growth_cache_entry): New structure.
3255         (node_growth_cache, edge_growth_cache): New global vars.
3256         (estimate_growth): Turn into inline.
3257         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3258         initialize_growth_caches, free_growth_caches): Declare.
3259         (estimate_edge_growth): Rewrite.
3260         (estimate_edge_time): Implement as inline cache lookup.
3261         (reset_node_growth_cache, reset_edge_growth_cache): New inline
3262         functions.
3263         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3264         (NUM_CONDITIONS): New constant.
3265         (predicate_conditions): New enum.
3266         (IS_NOT_CONSTANT): New constant.
3267         (edge_removal_hook_holder): New var.
3268         (node_growth_cache, edge_growth_cache): New global vars.
3269         (true_predicate, single_cond_predicate, false_predicate,
3270         not_inlined_predicate, add_condition, add_clause, and_predicates,
3271         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3272         dump_clause, dump_predicate, account_size_time,
3273         evaulate_conditions_for_edge): New functions.
3274         (inline_summary_alloc): Move to heap.
3275         (inline_node_removal_hook): Clear condition and entry vectors.
3276         (inline_edge_removal_hook): New function.
3277         (initialize_growth_caches, free_growth_caches): New function.
3278         (dump_inline_summary): Update.
3279         (edge_execution_predicate): New function.
3280         (will_be_nonconstant_predicate): New function.
3281         (estimate_function_body_sizes): Compute BB and constantness predicates.
3282         (compute_inline_parameters): Do not clear estimated_growth.
3283         (estimate_edge_size_and_time): New function.
3284         (estimate_calls_size_and_time): New function.
3285         (estimate_callee_size_and_time): New function.
3286         (remap_predicate): New function.
3287         (inline_merge_summary): New function.
3288         (do_estimate_edge_time): New function based on...
3289         (estimate_edge_time): ... this one.
3290         (do_estimate_edge_growth): New function.
3291         (do_estimate_growth): New function based on....
3292         (estimate_growth): ... this one.
3293         (inline_analyze_function): Analyze after deciding on jump functions.
3294         (inline_read_section): New function.
3295         (inline_read_summary): Use it.
3296         (inline_write_summary): Write all the new data.
3297         * ipa-prop.c (ipa_get_param_decl_index): Export.
3298         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
3299         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3300         Declare.
3301         (ipa_get_lattice): Move here from ipa-cp.c
3302         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3303         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3304         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3305         cgraph_edge_inlinable_p): Remove.
3306         * cgraphunit.c: Include ipainline.h
3307         (cgraph_process_new_functions): Update call of
3308         compute_inline_parameters.
3309
3310 2011-04-22  Richard Guenther  <rguenther@suse.de>
3311
3312         * tree.c (build_int_cst): Properly create canonicalized integer
3313         constants.
3314         (build_int_cst_type): Remove scary comments.
3315
3316 2011-04-22  Xinliang David Li  <davidxl@google.com>
3317
3318         * toplev.c (process_options): Enable -Werror=coverage-mismatch
3319         by default when -Wno-error is not specified.
3320         * opts-global.c (decode_options): Remove call to
3321         control_warning_options.
3322
3323 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3324
3325         PR tree-optimization/48717
3326         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3327         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3328
3329 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
3330
3331         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
3332         definition where used.
3333
3334 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3335
3336         PR c/48716
3337         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3338         TREE_STATIC variables declared inside of some OpenMP construct.
3339
3340 2011-04-22  Martin Jambor  <mjambor@suse.cz>
3341
3342         PR middle-end/48585
3343         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
3344
3345 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
3346
3347         PR c/36750
3348         * c-typeck.c (pop_init_level): Do not warn about initializing
3349         with ` = {0}'.
3350
3351 2011-04-22  Alan Modra  <amodra@gmail.com>
3352
3353         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3354         when returning call_cookie.
3355         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3356         pointers, to functions with no more vector args than the current
3357         function, and some non-local calls for ABI_V4.
3358         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3359         sibcall_nonlocal_aix64): Combine to ..
3360         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
3361         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3362         (sibcall_value_nonlocal_aix<mode>): ..likewise.
3363         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3364         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
3365         operand.
3366         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3367         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3368         sibcall_value_symbolic_64): Delete.
3369
3370 2011-04-21  Xinliang David Li  <davidxl@google.com>
3371
3372         * cgraph.h: Remove pid.
3373         * cgraph.c: Remove pid.
3374         * value-prof.c (init_node_map): New function.
3375         (del_node_map): New function.
3376         (find_func_by_funcdef_no): New function.
3377         (gimple_ic_transform): Call new function.
3378         * cgraphunit.c (cgraph_finalize_function): Remove pid.
3379         * function.c (get_last_funcdef_no): New function.
3380         * function.h (get_last_funcdef_no): New function.
3381         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3382         to libgcov function.
3383         (tree-profiling): Call node map init and delete function.
3384
3385 2011-04-21  Ian Lance Taylor  <iant@google.com>
3386
3387         * godump.c (go_format_type): Use exported Go name for anonymous
3388         field name.
3389
3390 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3391
3392         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3393         Call builtin_function_type_list instead of builtin_function_type.
3394         (UNARY, BINARY, TRINARY, QUAD): Likewise.
3395
3396 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3397
3398         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3399         build_function_type_list instead of build_function_type.
3400         Delete variable `endlink'.
3401
3402 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3403
3404         * config/s390/s390.c (s390_init_builtins): Call
3405         build_function_type_list instead of build_function_type.
3406
3407 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3408
3409         * config/ia64/ia64.c (ia64_init_builtins): Call
3410         build_function_type_list instead of builtin_function_type.
3411
3412 2011-04-21  Easwaran Raman  <eraman@google.com>
3413
3414         * cfgexpand.c (stack_var): Remove OFFSET...
3415         (add_stack_var): ...and its reference here...
3416         (expand_stack_vars): ...and here.
3417         (stack_var_cmp): Sort by descending order of size.
3418         (partition_stack_vars): Change heuristic.
3419         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
3420         (dump_stack_var_partition): Add newline after each partition.
3421
3422 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
3423             Jeff Law  <law@redhat.com>
3424
3425         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
3426         * gengtype.c (matching_file_name_substitute): Likewise.
3427
3428 2011-04-21  Richard Guenther  <rguenther@suse.de>
3429
3430         PR lto/48703
3431         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
3432
3433 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3434
3435         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3436
3437 2011-04-21  Richard Guenther  <rguenther@suse.de>
3438
3439         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3440         file name.
3441
3442 2011-04-21  Richard Guenther  <rguenther@suse.de>
3443
3444         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3445         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3446         Use DECL_P, not SSA_VAR_P.
3447         (ptr_derefs_may_alias_p): Likewise.
3448         (ptr_deref_may_alias_ref_p_1): Likewise.
3449         (decl_refs_may_alias_p): Likewise.
3450         (refs_may_alias_p_1): Likewise.
3451         (ref_maybe_used_by_call_p_1): Likewise.
3452         (call_may_clobber_ref_p_1): Likewise.
3453         (indirect_ref_may_alias_decl_p): Assume indirect refrences
3454         are either MEM_REF or TARGET_MEM_REF.
3455         (indirect_refs_may_alias_p): Likewise.
3456         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3457         for MEM_EXPR of indirect calls.
3458
3459 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3460
3461         * vmsdbgout.c (write_srccorr): Compute file length from the string.
3462         (dst_file_info_struct): Remove flen field.
3463         (lookup_filename): Remove code that set flen field.
3464
3465 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3466
3467         * config/ia64/ia64.c (ia64_start_function): Add a guard.
3468
3469 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
3470
3471         PR target/48708
3472         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3473         vec_extract and vec_concat for non-SSE4_1 targets.
3474
3475 2011-04-21  Richard Guenther  <rguenther@suse.de>
3476
3477         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3478         return statements.
3479
3480 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3481
3482         * config/i386/cygming.h (union tree_node, TREE): Don't define or
3483         undefine.
3484         (FILE): Don't undefine.
3485
3486 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3487
3488         * config/alpha/alpha.c (struct machine_function): Use rtx, not
3489         struct rtx_def *.
3490         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3491         struct rtx_def *.
3492         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
3493         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
3494         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3495         rtx_def *.
3496         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
3497         definitions where used.
3498         * config/microblaze/microblaze.h (struct microblaze_args): Use
3499         rtx, not struct rtx_def *.
3500         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3501         rtx_def *.
3502         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3503         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
3504         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3505         not struct rtx_def *.
3506         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3507         struct rtx_def *.
3508         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3509         rtx_def *.
3510         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
3511
3512 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3513
3514         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3515         operand_equal_p to compare DR_BASE_ADDRESSes.
3516         (vect_check_interleaving): Likewise.
3517
3518 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3519
3520         PR target/46329
3521         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3522         for all Neon struct constants.
3523
3524 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3525
3526         * target.def (legitimate_constant_p): New hook.
3527         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3528         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3529         * doc/tm.texi: Regenerate.
3530         * hooks.h (hook_bool_mode_rtx_true): Declare.
3531         * hooks.c (hook_bool_mode_rtx_true): Define.
3532         * system.h (LEGITIMATE_CONSTANT_P): Poison.
3533         * calls.c (precompute_register_parameters): Replace uses of
3534         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3535         (emit_library_call_value_1): Likewise.
3536         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3537         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3538         * ira-costs.c (scan_one_insn): Likewise.
3539         * recog.c (general_operand, immediate_operand): Likewise.
3540         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3541         * reload1.c (init_eliminable_invariants): Likewise.
3542
3543         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3544         mode argument.
3545         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3546         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3547         argument.
3548         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3549         * config/alpha/predicates.md (input_operand): Update call to
3550         alpha_legitimate_constant_p.
3551
3552         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3553         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3554         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3555         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3556         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3557         (arm_legitimate_constant_p): New functions.
3558         (arm_cannot_force_const_mem): Make static.
3559
3560         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3561
3562         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3563         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3564         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3565         instead of bfin_legitimate_constant_p.
3566         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
3567         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3568
3569         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3570
3571         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3572
3573         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3574         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3575         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3576         (frv_legitimate_constant_p): Make static.  Add a mode argument.
3577
3578         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3579         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3580         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3581
3582         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3583         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3584         * config/i386/i386.c (legitimate_constant_p): Rename to...
3585         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
3586         argument.
3587         (ix86_cannot_force_const_mem): Update accordingly.
3588         (ix86_legitimate_address_p): Likewise.
3589         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3590         * config/i386/i386.md: Update commentary.
3591
3592         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3593         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3594         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3595         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
3596
3597         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3598
3599         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3600         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3601         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3602         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
3603
3604         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3605         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3606         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3607
3608         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3609         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3610         (m32r_legitimate_constant_p): New function.
3611
3612         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3613         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3614         LEGITIMATE_CONSTANT_P.
3615         (LEGITIMATE_CONSTANT_P): Delete.
3616         * config/m68k/m68k.c (m68k_expand_prologue): Call
3617         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3618         (m68k_legitimate_constant_p): New function.
3619         * config/m68k/m68k.md: Update comments.
3620
3621         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3622         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3623         (mcore_legitimate_constant_p): New function.
3624
3625         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3626         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3627         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3628         Add a mode argument.
3629         (mep_legitimate_address): Update accordingly.
3630         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3631
3632         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3633         Delete.
3634         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3635         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3636         static.  Check OP's mode for VOIDmode.
3637         (microblaze_legitimate_constant_p): New function.
3638         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3639
3640         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3641         * config/mips/mips.c (mips_legitimate_constant_p): New function.
3642         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3643         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3644         * config/mips/predicates.md: Update comments.
3645
3646         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3647         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3648         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3649         (mmix_legitimate_constant_p): Make static, return a bool, and take
3650         a mode argument.
3651         (mmix_print_operand_address): Update accordingly.
3652
3653         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3654         Delete.
3655         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
3656         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3657         static.  Add a mode argument.
3658         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3659
3660         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3661
3662         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3663         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3664         (pa_legitimate_constant_p): New function.
3665
3666         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3667
3668         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3669         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3670         (pdp11_legitimate_constant_p): New function.
3671
3672         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3673         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3674         (rs6000_legitimate_constant_p): New function.
3675
3676         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3677         (rx_legitimate_constant_p): ...this.
3678         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3679         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3680         (rx_legitimate_constant_p): ...this.
3681         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3682         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3683
3684         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3685         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3686         * config/s390/s390.c (legitimate_constant_p): Rename to...
3687         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
3688         and add a mode argument.
3689         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3690
3691         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3692
3693         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3694         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3695         (sh_legitimate_constant_p): New function.
3696
3697         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3698         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3699         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3700         (legitimate_constant_p): Rename to...
3701         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
3702         argument.
3703         (constant_address_p): Update accordingly.
3704
3705         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3706         argument and return a bool.
3707         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3708         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3709         (spu_legitimate_constant_p): Add a mode argument and return a bool.
3710         (spu_rtx_costs): Update accordingly.
3711         * config/spu/predicates.md (vec_imm_operand): Likewise.
3712
3713         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3714
3715         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3716         * config/v850/v850.c (v850_legitimate_constant_p): New function.
3717         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3718
3719         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3720         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3721         * config/vax/vax.c (legitimate_constant_p): Likewise.
3722
3723         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3724         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3725         (xtensa_legitimate_constant_p): New function.
3726
3727 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3728
3729         * target.def (cannot_force_const_mem): Add a mode argument.
3730         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3731         * doc/tm.texi: Regenerate.
3732         * hooks.h (hook_bool_mode_rtx_false): Declare.
3733         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3734         (hook_bool_mode_const_rtx_true): Likewise.
3735         (hook_bool_mode_rtx_false): New function.
3736         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3737         to be non-VOID.  Update call to cannot_force_const_mem.
3738         (find_reloads): Update accordingly.
3739         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3740         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3741         argument.
3742         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3743         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
3744         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
3745         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
3746         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
3747         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
3748         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
3749         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3750         (m68k_cannot_force_const_mem): ...this new function.
3751         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
3752         argument.
3753         (mips_const_insns, mips_legitimize_const_move): Update calls.
3754         (mips_secondary_reload_class): Likewise.
3755         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3756         (pa_cannot_force_const_mem): ...this new function.
3757         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
3758         (rs6000_cannot_force_const_mem): ...this new function.
3759         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
3760         argument.
3761         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3762         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3763         to...
3764         (xtensa_cannot_force_const_mem): ...this new function.
3765
3766 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3767
3768         * config/mips/mips.c (mips16_build_function_stub): Call
3769         build_function_type_list instead of build_function_type.
3770         (mips16_build_call_stub): Likewise.
3771
3772 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3773
3774         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3775         instead of build_function_type.
3776
3777 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3778
3779         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3780         instead of build_function_type.
3781
3782 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
3783
3784         PR target/48678
3785         * config/i386/i386.md (insv): Change operand 0 constraint to
3786         "register_operand".  Change operand 1 and 2 constraint to
3787         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
3788         * config/i386/sse.md (sse4_1_pinsrb): Export.
3789         (sse2_pinsrw): Ditto.
3790         (sse4_1_pinsrd): Ditto.
3791         (sse4_1_pinsrq): Ditto.
3792         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3793         * config/i386/i386.c (ix86_expand_pinsr): New.
3794
3795 2011-04-20  Easwaran Raman  <eraman@google.com>
3796
3797         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3798         containing union type only with -fstrict-aliasing.
3799
3800 2011-04-20  Jim Meyering  <meyering@redhat.com>
3801
3802         Remove useless if-before-free tests.
3803         * calls.c (expand_call, save_area): Likewise.
3804         * cfgcleanup.c (try_forward_edges): Likewise.
3805         * collect2.c (collect_execute): Likewise.
3806         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3807         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3808         * coverage.c (coverage_checksum_string): Likewise.
3809         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3810         * cselib.c (cselib_init): Likewise.
3811         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3812         (df_set_clean_cfg): Likewise.
3813         * function.c (free_after_compilation): Likewise.
3814         * gcc.c (do_spec_1, main): Likewise.
3815         * gcov.c (create_file_names): Likewise.
3816         * gensupport.c (identify_predicable_attribute): Likewise.
3817         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3818         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3819         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3820         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3821         * ipa-pure-const.c (local_pure_const): Likewise.
3822         * ipa-reference.c (propagate): Likewise.
3823         * ira-costs.c (free_ira_costs): Likewise.
3824         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3825         * matrix-reorg.c (mat_free): Likewise.
3826         * prefix.c (get_key_value): Likewise.
3827         * profile.c (compute_value_histograms): Likewise.
3828         * reload1.c (free_reg_equiv): Likewise.
3829         * sched-deps.c (free_deps): Likewise.
3830         * sel-sched-ir.c (fence_clear): Likewise.
3831         * sese.c (set_rename, if_region_set_false_region): Likewise.
3832         * tree-data-ref.c (free_rdg): Likewise.
3833         * tree-eh.c (lower_try_finally): Likewise.
3834         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3835         * tree-ssa-live.c (delete_var_map): Likewise.
3836         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3837         * tree-ssa-pre.c (phi_trans_add): Likewise.
3838
3839 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
3840
3841         PR tree-optimization/48611
3842         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3843         beyond ERT_MUST_NOT_THROW region.
3844
3845 2011-04-20  Catherine Moore  <clm@codesourcery.com>
3846
3847         * config/mips/mips.opt (mfix-24k): New.
3848         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3849         * config/mips/mips.md (length): Increase by 4 for stores if
3850         fixing 24K errata.
3851         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3852         all noreorder if fixing 24K errata.
3853         * doc/invoke.texi: Document mfix-24k.
3854
3855 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
3856
3857         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
3858         quad-word modes, reduce to 9-bit index range when above 1016 limit.
3859
3860 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3861
3862         * config/arm/arm.c (arm_gen_constant): Move movw support ....
3863         (const_ok_for_op): ... to here.
3864
3865 2011-04-20  Kai Tietz  <ktietz@redhat.com>
3866
3867         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3868         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
3869
3870 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3871
3872         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3873
3874 2011-04-20  Richard Guenther  <rguenther@suse.de>
3875
3876         PR tree-optimization/47892
3877         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3878         are if-convertible.
3879
3880 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3881
3882         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3883
3884 2011-04-20  Tristan Gingold  <gingold@adacore.com>
3885
3886         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3887
3888 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
3889
3890         PR target/18145
3891
3892         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3893         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3894         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3895         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3896         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3897
3898         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3899         New prototype.
3900
3901         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3902         (avr_asm_named_section, avr_asm_output_aligned_common,
3903         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3904         New functions to update...
3905         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3906         (avr_asm_init_sections): Overwrite section callbacks for
3907         data_section, bss_section.
3908         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3909         from here to...
3910         (avr_file_end): ...here.
3911
3912 2011-04-20  Richard Guenther  <rguenther@suse.de>
3913
3914         PR middle-end/48695
3915         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
3916         objects and types here.  Adjust for their offset before comparing.
3917
3918 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3919
3920         * tree-vect-stmts.c (vectorizable_store): Only chain one related
3921         statement per copy.
3922
3923 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3924
3925         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3926         (GIMPLE_H): Include $(INTERNAL_FN_H).
3927         (OBJS-common): Add internal-fn.o.
3928         (internal-fn.o): New rule.
3929         * internal-fn.def: New file.
3930         * internal-fn.h: Likewise.
3931         * internal-fn.c: Likewise.
3932         * gimple.h: Include internal-fn.h.
3933         (GF_CALL_INTERNAL): New gf_mask.
3934         (gimple_statement_call): Put fntype into a union with a new
3935         internal_fn field.
3936         (gimple_build_call_internal): Declare.
3937         (gimple_build_call_internal_vec): Likewise.
3938         (gimple_call_same_target_p): Likewise.
3939         (gimple_call_internal_p): New function.
3940         (gimple_call_internal_fn): Likewise.
3941         (gimple_call_fntype): Return null for internal calls.
3942         (gimple_call_set_fntype): Assert that the function is not internal.
3943         (gimple_call_set_fn): Likewise.
3944         (gimple_call_set_fndecl): Likewise.
3945         (gimple_call_set_internal_fn): New function.
3946         (gimple_call_addr_fndecl): Handle null functions.
3947         (gimple_call_return_type): Likewise null types.
3948         * gimple.c (gimple_build_call_internal_1): New function.
3949         (gimple_build_call_internal): Likewise.
3950         (gimple_build_call_internal_vec): Likewise.
3951         (gimple_call_same_target_p): Likewise.
3952         (gimple_call_flags): Handle calls to internal functions.
3953         (gimple_call_fnspec): New function.
3954         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
3955         (gimple_has_side_effects): Handle null functions.
3956         (gimple_rhs_has_side_effects): Likewise.
3957         (gimple_call_copy_skip_args): Handle calls to internal functions.
3958         * cfgexpand.c (expand_call_stmt): Likewise.
3959         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
3960         * gimple-fold.c (gimple_fold_call): Handle null functions.
3961         (gimple_fold_stmt_to_constant_1): Don't fold
3962         calls to internal functions.
3963         * gimple-low.c (gimple_check_call_args): Handle calls to internal
3964         functions.
3965         * gimple-pretty-print.c (dump_gimple_call): Likewise.
3966         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
3967         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
3968         (do_warn_unused_result): Likewise.
3969         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
3970         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
3971         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
3972         the target of a call.
3973         (initialize_hash_element): Update accordingly.
3974         (hashable_expr_equal_p): Use gimple_call_same_target_p.
3975         (iterative_hash_hashable_expr): Handle calls to internal functions.
3976         (print_expr_hash_elt): Likewise.
3977         * tree-ssa-pre.c (can_value_number_call): Likewise.
3978         (eliminate): Handle null functions.
3979         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
3980         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
3981         (find_func_aliases): Likewise.
3982         * value-prof.c (gimple_ic_transform): Likewise.
3983         (gimple_indirect_call_to_profile): Likewise.
3984         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3985         * lto-streamer-out.c (output_gimple_stmt): Likewise.
3986
3987 2011-04-19  Jan Hubicka  <jh@suse.cz>
3988
3989         * ipa-inline-transform.c (save_inline_function_body): Add comments.
3990         * ipa-inline.c (inline_small_functions): Compute summaries first,
3991         populate heap later.
3992
3993 2011-04-19  Jan Hubicka  <jh@suse.cz>
3994
3995         * cgraph.h (save_inline_function_body): Remove.
3996         * ipa-inline-transform.c: New file, broke out of...
3997         * ipa-inline.c: ... this one; Update toplevel comment.
3998         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
3999         make global.
4000         (update_noncloned_frequencies): Move to ipa-inline-transform.c
4001         (cgraph_mark_inline_edge): Rename to inline_call; move to
4002         ipa-inline-transform.c.
4003         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
4004         move to ipa-inline-transform.c
4005         (recursive_inlining, inline_small_functions, flatten_function,
4006         ipa_inline, inline_always_inline_functions,
4007         early_inline_small_functions): Update.
4008         (inline_transform): Move to ipa-inline-transform.c.
4009         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4010         Declare.
4011         * Makefile.in (ipa-inline-transform.o): New file.
4012         * cgraphunit.c (save_inline_function_body): Move to
4013         ipa-inline-transform.c
4014
4015 2011-04-19  DJ Delorie  <dj@redhat.com>
4016
4017         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4018         registers if we already know there aren't any.
4019         (m32c_emit_epilogue): Don't emit a barrier here.
4020         (m32c_emit_eh_epilogue): Likewise.
4021         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4022         operands at expand time.
4023         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4024         int" wchar type.
4025         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4026         duplicates.  Provide aliases instead.
4027         * config/m32c/prologue.md (eh_return): Emit a barrier here.
4028         (eh_epilogue): Add a "(return)" here as a hint to other parts of
4029         the compiler.
4030
4031 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
4032
4033         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4034         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4035         (general_or_i64_p, sparc_register_move_cost): New function.
4036
4037 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4038
4039         * doc/install.texi (Configuration, --enable-threads): Remove mach.
4040         Add lynx, mipssde.  Sort table.
4041
4042 2011-04-19  Xinliang David Li  <davidxl@google.com>
4043
4044         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4045         not negative.
4046
4047 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
4048
4049         PR target/48678
4050         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4051         is a SUBREG with non-MODE_INT mode inside of it.
4052
4053 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4054
4055         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4056         also according to actual contants.
4057         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4058         (gimple_fold_call): Use it.
4059         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4060
4061 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4062
4063         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4064         non-pointer assignments.
4065
4066 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4067
4068         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4069         account anc_offset and otr_type from the indirect edge info.
4070         * ipa-prop.c (get_ancestor_addr_info): New function.
4071         (compute_complex_ancestor_jump_func): Assignment analysis moved to
4072         get_ancestor_addr_info, call it.
4073         (ipa_note_param_call): Do not initialize information about polymorphic
4074         calls, return the indirect call graph edge.  Remove the last
4075         parameter, adjust all callers.
4076         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4077         parameters.  Initialize polymorphic information in the indirect edge.
4078
4079 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4080
4081         PR lto/48148
4082         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4083         the types if they have different enumeration identifiers.
4084
4085 2011-04-19  Jan Hubicka  <jh@suse.cz>
4086
4087         * cgraph.h (cgraph_optimize_for_size_p): Declare.
4088         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4089         * predict.c (cgraph_optimize_for_size_p): Break out from ...
4090         (optimize_function_for_size_p) ... here.
4091
4092 2011-04-19  Richard Guenther  <rguenther@suse.de>
4093
4094         PR lto/48207
4095         * tree.c (free_lang_data): Do not reset the decl-assembler-name
4096         langhook.
4097
4098 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4099
4100         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4101         if DECL_NO_INLINE_WARNING_P is set on the function.
4102
4103 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
4104
4105         PR fortran/47976
4106         * reload1.c (inc_for_reload): Return void. All callers changed.
4107         (emit_input_reload_insns): Don't try to delete previous output
4108         reloads to a register, or record spill_reg_store for autoincs.
4109
4110 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
4111
4112         * gengtype.h: Updated copyright year.
4113         (struct input_file_st): Add inpisplugin field.
4114         (type_fileloc): New function.
4115         * gengtype.c
4116         (write_typed_struct_alloc_def): Add gcc_assert.
4117         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4118         (write_typed_alloc_defns): Don't output for plugin files.
4119         (input_file_by_name): Clear inpisplugin field.
4120         (main): Set inpisplugin field for plugin files.
4121
4122 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
4123
4124         * gengtype-state.c (string_eq): New.
4125         (read_state): Use string_eq instead of strcmp when creating the
4126         state_ident_tab.
4127
4128 2011-04-19  Wei Guozhi  <carrot@google.com>
4129
4130         PR target/47855
4131         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4132         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4133         linkage.
4134         * config/arm/constraints.md (Uu): New constraint.
4135         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4136
4137 2011-04-19  Tristan Gingold  <gingold@adacore.com>
4138
4139         * config.gcc (-*-*-*vms): Added.
4140         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4141         definitions moved.
4142         * config/vms/vms-ld.c: New file.
4143         * config/vms/vms-ar.c: New file.
4144         * config/vms/t-vmsnative: New file.
4145
4146 2011-04-18  Xinliang David Li  <davidxl@google.com>
4147
4148         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4149
4150 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4151
4152         PR middle-end/48661
4153         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4154         if TREE_TYPE (v) is non-NULL.
4155
4156         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4157         gimple_get_virt_mehtod_for_binfo.
4158         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4159         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4160         callers.
4161         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4162
4163 2011-04-18  Michael Matz  <matz@suse.de>
4164             Steve Ellcey  <sje@cup.hp.com>
4165
4166         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4167         use its mode as source mode if it isn't VOIDmode.
4168
4169 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
4170
4171         * doc/passes.texi: Fill crossref nodes.
4172
4173 2011-04-18  Jim Meyering  <meyering@redhat.com>
4174
4175         Fix doubled-word typos in comments and strings
4176         * config/alpha/vms-unwind.h: s/for for/for/
4177         * config/arm/unwind-arm.h: Likewise.
4178         * config/microblaze/microblaze.c: Likewise.
4179         * config/sh/constraints.md: s/in in/in/
4180         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4181
4182 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
4183
4184         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4185         (AVX_FLOAT_MODE_P): Ditto.
4186         (AVX128_VEC_FLOAT_MODE_P): Ditto.
4187         (AVX256_VEC_FLOAT_MODE_P): Ditto.
4188         (AVX_VEC_FLOAT_MODE_P): Ditto.
4189         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4190         (UNSPEC_MASKSTORE): Ditto.
4191         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4192         Merge from <sse>_movmsk<ssemodesuffix> and
4193         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
4194         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
4195         iterator.
4196         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4197         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4198         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4199
4200 2011-04-18  Jan Hubicka  <jh@suse.cz>
4201
4202         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4203
4204         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4205         (want_inline_function_called_once_p): Break out the logic from
4206         ipa_inline.
4207         (edge_badness): Ensure that profile is not misupdated.
4208         (lookup_recursive_calls): Prioritize by call frequencies.
4209         (inline_small_functions): Move program size estimates here;
4210         actually process whole queue even when unit growth has been
4211         met. (to properly compute inline_failed reasons and for the
4212         case unit size decrease.) Revisit comments on recursive inlining.
4213         (ipa_inline): Remove unit summary code; first inline hot calls
4214         of functions called once, cold calls next.
4215         (order, nnodes): Remove unused variables.
4216         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4217         (GTFILES): Remove ipa-inline.c
4218         * sel-sched.c (fill_insns): Silence uninitialized var warning.
4219
4220 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4221
4222         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4223
4224 2011-04-18  Jie Zhang  <jie@codesourcery.com>
4225             Richard Earnshaw  <rearnsha@arm.com>
4226
4227         * arm.c (neon_builtin_type_bits): Remove.
4228         (typedef enum neon_builtin_mode): New.
4229         (T_MAX): Don't define.
4230         (typedef enum neon_builtin_datum): Remove bits, codes[],
4231         num_vars and base_fcode.  Add mode, code and fcode.
4232         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4233         VAR10): Change accordingly.
4234         (neon_builtin_data[]): Change accordingly
4235         (arm_init_neon_builtins): Change accordingly.
4236         (neon_builtin_compare): Remove.
4237         (locate_neon_builtin_icode): Remove.
4238         (arm_expand_neon_builtin): Change accordingly.
4239
4240         * arm.h (enum arm_builtins): Move to ...
4241         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4242
4243         * arm.c (arm_builtin_decl): Declare.
4244         (TARGET_BUILTIN_DECL): Define.
4245         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4246         (arm_builtin_decls[]): New.
4247         (arm_init_neon_builtins): Store builtin declarations in
4248         arm_builtin_decls[].
4249         (arm_init_tls_builtins): Likewise.
4250         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
4251         (arm_builtin_decl): New.
4252
4253 2011-04-18  Richard Guenther  <rguenther@suse.de>
4254
4255         * tree.c (upper_bound_in_type): Build properly canonicalized
4256         INTEGER_CSTs.
4257         (lower_bound_in_type): Likewise.
4258
4259 2011-04-18  Richard Guenther  <rguenther@suse.de>
4260
4261         * gimple.h (gimple_call_addr_fndecl): New function.
4262         (gimple_call_fndecl): Use it.
4263         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4264         for direct calls.
4265         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4266         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4267
4268 2011-04-18  Richard Guenther  <rguenther@suse.de>
4269
4270         PR middle-end/48650
4271         * tree.c (build_string): STRING_CST is now derived from tree_typed.
4272
4273 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4274
4275         PR lto/48492
4276         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4277         DECL_IN_CONSTANT_POOL without RTL.
4278
4279 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
4280             Ira Rosen  <ira.rosen@linaro.org>
4281
4282         PR target/48252
4283         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4284         to match neon_vzip/vuzp/vtrn_internal.
4285         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4286         outputs explicitly dependent on both inputs.
4287         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4288
4289 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4290
4291         PR tree-optimization/48616
4292         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4293         whether the shift is by scalar or vector based on whether all SLP
4294         scalar stmts have the same rhs.
4295
4296 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
4297
4298         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4299         memory operands.
4300
4301 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
4302
4303         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4304         registers.
4305
4306 2011-04-17  Jan Hubicka  <jh@suse.cz>
4307
4308         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
4309         * cgrpahunit.c (cgraph_finalize_function): Do not set
4310         finalized_by_frontend.
4311         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4312         finalized_by_frontend.
4313
4314 2011-04-17  Jan Hubicka  <jh@suse.cz>
4315
4316         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4317         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4318         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
4319         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4320         method.
4321         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4322         gimple-fold.c
4323         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4324
4325 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4326
4327         PR lto/48538
4328         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4329         is non-null before accessing it.
4330         (input_cgraph): Remove trailing spaces.
4331
4332 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4333
4334         * params.def (sms-min-sc): New param flag.
4335         * modulo-sched.c (sms_schedule): Use it.
4336         * doc/invoke.texi (sms-min-sc): Document it.
4337
4338 2011-04-17  Jan Hubicka  <jh@suse.cz>
4339
4340         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4341         present, also set gimple_call_set_cannot_inline.
4342         * ipa-inline.c: Update toplevel comment.
4343         (MAX_TIME): Remove.
4344         (cgraph_clone_inlined_nodes): Fix linebreaks.
4345         (cgraph_check_inline_limits): Restructure to ...
4346         (caller_growth_limits): ... this one; be more tolerant
4347         on growth in nested inline chains; add explanatory comment;
4348         fix stack accounting thinko introduced by previous patch.
4349         (cgraph_default_inline_p): Remove.
4350         (report_inline_failed_reason): New function.
4351         (can_inline_edge_p): New function.
4352         (can_early_inline_edge_p): New function.
4353         (leaf_node_p): Move upwards in file.
4354         (want_early_inline_function_p): New function.
4355         (want_inline_small_function_p): New function.
4356         (want_inline_self_recursive_call_p): New function.
4357         (cgraph_edge_badness): Rename to ...
4358         (edge_badness) ... this one; fix linebreaks.
4359         (update_edge_key): Update call of edge_baddness; add
4360         detailed dump about queue updates.
4361         (update_caller_keys): Use can_inline_edge_p and
4362         want_inline_small_function_p.
4363         (cgraph_decide_recursive_inlining): Rename to...
4364         (recursive_inlining): Use can_inline_edge_p and
4365         want_inline_self_recursive_call_p; simplify and remove no longer
4366         valid FIXME.
4367         (cgraph_set_inline_failed): Remove.
4368         (add_new_edges_to_heap): Use can_inline_edge_p and
4369         want_inline_small_function_p.
4370         (cgraph_decide_inlining_of_small_functions): Rename to ...
4371         (inline_small_functions): ... this one; cleanup; use
4372         can/want predicates; cleanup debug ouput; work edges till fibheap
4373         is exhausted and do not stop once unit growth is reached; remove
4374         later loop processing remaining edges.
4375         (cgraph_flatten): Rename to ...
4376         (flatten_function): ... this one; use can_inline_edge_p
4377         and can_early_inline_edge_p predicates.
4378         (cgraph_decide_inlining): Rename to ...
4379         (ipa_inline): ... this one; remove unreachable nodes before
4380         inlining functions called once; simplify the pass.
4381         (cgraph_perform_always_inlining): Rename to ...
4382         (inline_always_inline_functions): ... this one; use
4383         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4384         (cgraph_decide_inlining_incrementally): Rename to ...
4385         (early_inline_small_functions): ... this one; simplify
4386         using new predicates; cleanup; make dumps prettier.
4387         (cgraph_early_inlining): Rename to ...
4388         (early_inliner): newer inline regular functions into always-inlines;
4389         fix updating of call stmt summaries.
4390         (pass_early_inline): Update for new names.
4391         (inline_transform): Fix formating.
4392         (gate_cgraph_decide_inlining): Rename to ...
4393         (pass_ipa_inline): ... this one.
4394         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4395         * ipa-inline-analysis.c (dump_inline_summary): Update.
4396         (compute_inline_parameters): Do not compute disregard_inline_limits;
4397         look for mismatching arguments.
4398         (estimate_growth): Fix handlig of non-trivial self recursion.
4399         (inline_read_summary): Do not read info->disregard_inline_limits.
4400         (inline_write_summary): Do not write info->disregard_inline_limits.
4401         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4402         and move all checks into can_inline_edge_p predicate; re-enable code
4403         comparing optimization levels.
4404         (expand_call_inline): Do not test inline_forbidden_into_p.
4405         * Makefile.in (ipa-inline.o): Update arguments.
4406
4407 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4408
4409         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4410
4411 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4412
4413         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4414
4415 2011-04-17  Michael Matz  <matz@suse.de>
4416
4417         PR tree-optimization/48622
4418         PR lto/48645
4419         * ipa-inline-analysis.c (inline_read_summary): Read size/time
4420         in same order as they're written.
4421
4422 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4423
4424         * config/pa/predicates.md: Reorganize and simplify predicates.
4425         Eliminate duplicate code checks.
4426         (arith_operand): Rename to arith14_operand
4427         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4428         * config/pa/pa.md: Use renamed operands.
4429         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4430         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4431         arith11_operand, adddi3_operand, indexed_memory_operand,
4432         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4433         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4434         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4435         move_dest_operand, move_src_operand, prefetch_cc_operand,
4436         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4437         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4438         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4439         div_operand, int5_operand, movb_comparison_operator,
4440         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4441         arith_double_operand, ireg_operand, lhs_lshift_operand,
4442         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4443         integer_store_memory_operand): Likewise.
4444         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4445         (integer_store_memory_operand, read_only_operand,
4446         function_label_operand, borx_reg_operand,
4447         non_hard_reg_operand): Likewise.
4448         (eq_neq_comparison_operator): Delete unused operator.
4449         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4450         function_label_operand.
4451         (emit_move_sequence): Likewise.
4452
4453 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4454
4455         * config/i386/sse.md (sseunpackmode): New mode attribute.
4456         (ssepackmode): Ditto.
4457         (vec_pack_trunc_<mode>): Macroize expander from
4458         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4459         (vec_unpacks_lo_<mode>): Macroize expander from
4460         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4461         (vec_unpacks_hi_<mode>): Macroize expander from
4462         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4463         (vec_unpacku_lo_<mode>): Macroize expander from
4464         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4465         (vec_unpacku_hi_<mode>): Macroize expander from
4466         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4467         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4468         ix86_expand_sse4_unpack.
4469         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4470
4471 2011-04-16  Jan Hubicka  <jh@suse.cz>
4472
4473         * cgraphbuild.c: Include ipa-inline.h.
4474         (reset_inline_failed): Use initialize_inline_failed.
4475         * cgraph.c: Include ipa-inline.h.
4476         (cgraph_create_node_1): Do not initialize estimated_growth.
4477         (initialize_inline_failed): More to ipa-inline-analysis.c
4478         (dump_cgraph_node): Do not dump inline flags.
4479         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4480         and disregard_inline_limits flags.
4481         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4482         time, size, estimated_growth.
4483         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4484         Update.
4485         * cgraphunit.c (cgraph_decide_is_function_needed): Use
4486         DECL_DISREGARD_INLINE_LIMITS.
4487         (cgraph_analyze_function): Do not initialize
4488         node->local.disregard_inline_limits.
4489         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4490         inlinable, versionable and disregard_inline_limits.
4491         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4492         cgraph_check_inline_limits, cgraph_default_inline_p,
4493         cgraph_edge_badness, update_caller_keys, update_callee_keys,
4494         add_new_edges_to_heap): Update.
4495         (cgraph_decide_inlining_of_small_function): Update; set
4496         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
4497         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4498         cgraph_decide_inlining_incrementally): Update.
4499         * ipa-inline.h (inline_summary): Add inlinable, versionable,
4500         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4501         time, size and estimated_growth parameters.
4502         (estimate_edge_growth): Update.
4503         (initialize_inline_failed): Declare.
4504         * ipa-split.c: Include ipa-inline.h
4505         (execute_split_functions): Update.
4506         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4507         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4508         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4509         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4510         estimated_growth to INT_MIN.
4511         (inline_node_duplication_hook): Likewise.
4512         (dump_inline_summary): Dump new fields.
4513         (compute_inline_parameters): Update.
4514         (estimate_edge_time, estimate_time_after_inlining,
4515         estimate_size_after_inlining, estimate_growth, inline_read_summary,
4516         inline_write_summary):
4517         (initialize_inline_failed): Move here from cgraph.c.
4518         * tree-sra.c: Include ipa-inline.h.
4519         (ipa_sra_preliminary_function_checks): Update.
4520         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4521         ipa-inline.h.
4522
4523 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4524
4525         * config/i386/sse.md (V16): New mode iterator.
4526         (VI1, VI8): Ditto.
4527         (AVXMODEQI, AVXMODEDI): Remove.
4528         (sse2, sse3): New mode attribute.
4529         (mov<mode>): Use V16 mode iterator.
4530         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4531         (push<mode>1): Use V16 mode iterator.
4532         (movmisalign<mode>): Ditto.
4533         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4534         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4535         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4536         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4537         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4538         avx_movdqu<avxmodesuffix>.
4539         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4540         *avx_movdqu<avxmodesuffix>.
4541         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4542         avx_lddqu<avxmodesuffix>.
4543         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4544         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4545         avx_movnt<AVXMODEDI:mode>.
4546         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4547         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4548
4549 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4550
4551         PR target/48629
4552         * haifa-sched.c (prune_ready_list, schedule_block): Use
4553         sched_pressure_p rather than flag_sched_pressure.
4554
4555 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4556
4557         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4558         cgraph_get_node instead of cgraph_get_create_node.
4559
4560 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
4561
4562         * cfgexpand.c (expand_debug_expr): Use
4563         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4564
4565 2011-04-15  Michael Matz  <matz@suse.de>
4566
4567         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4568         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4569         * function.c (gimplify_parameters): Ditto.
4570         * gimplify.c (gimplify_vla_decl): Ditto.
4571
4572         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4573         (gimple_call_set_alloca_for_var): New inline function.
4574         (gimple_call_alloca_for_var_p): Ditto.
4575         * gimple.c (gimple_build_call_from_tree): Remember
4576         CALL_ALLOCA_FOR_VAR_P state.
4577         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4578
4579         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4580         calls if they were for VLA objects.
4581
4582 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4583
4584         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4585         of ADR_EXPRs.
4586
4587 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4588
4589         PR middle-end/48601
4590         * tree-emutls.c (lower_emutls_function_body): Call
4591         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
4592         result is non-NULL.
4593
4594 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4595
4596         * c-decl.c (detect_field_duplicates): Call
4597         objc_detect_field_duplicates instead of objc_get_interface_ivars.
4598
4599 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
4600
4601         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4602         * gimple.c (gimple_asm_clobbers_memory_p): Define.
4603         * ipa-pure-const.c (check_stmt): Call it.
4604         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4605
4606 2011-04-15  Richard Guenther  <rguenther@suse.de>
4607
4608         PR tree-optimization/48290
4609         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4610         Properly decide inhibiting propagation based on the valueized
4611         operand.  Do loop-closed SSA form preserving here ...
4612         (init_copy_prop): ... not here.
4613
4614 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4615
4616         PR target/48612
4617         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4618         (*ieee_smax<mode>3): Likewise.
4619
4620 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4621
4622         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4623         Replace match_operand with match_dup for the third operand in
4624         these expanders.
4625
4626 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4627
4628         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4629         to track processing of conditionals.  Update all callers.
4630         (try_combine, simplify_if_then_else): Update.
4631
4632 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4633
4634         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4635         -fsched-pressure.
4636
4637 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
4638
4639         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4640         instead of match_operand for operand 3.
4641
4642 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
4643
4644         * recog.h (insn_operand_data): Add an "allows_mem" field.
4645         * genoutput.c (output_operand_data): Initialize it.
4646         * optabs.c (maybe_legitimize_operand_same_code): New function.
4647         (maybe_legitimize_operand): Use it when matching the original
4648         op->value.
4649
4650 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4651
4652         * gimplify.c: Fix issues in comments throughout.
4653         (voidify_wrapper_expr): Fix long line.
4654         (build_stack_save_restore): Likewise.
4655         (gimplify_loop_expr): Likewise.
4656         (gimplify_compound_lval): Likewise.
4657         (gimplify_init_ctor_eval): Likewise.
4658         (gimplify_modify_expr_rhs): Likewise.
4659         (omp_notice_threadprivate_variable): Likewise.
4660
4661 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4662
4663         * cfgexpand.c (expand_call_stmt): Convert the function type to the
4664         original one if this is not a builtin function.
4665
4666 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
4667
4668         PR target/48605
4669         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4670         offset it as needed based on top 2 bits in operands[3], change
4671         MEM mode to SFmode and mask those 2 bits away from operands[3].
4672
4673 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4674
4675         * c-parser.c (c_parser_objc_protocol_definition): Updated for
4676         change from objc_declare_protocols() to objc_declare_protocol().
4677
4678 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
4679
4680         * config/i386/sse.md (sse4_1): New mode attribute.
4681         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4682         avx_blend<ssemodesuffix><avxmodesuffix> and
4683         sse4_1_blend<ssemodesuffix> using VF mode iterator.
4684         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4685         avx_blendv<ssemodesuffix><avxmodesuffix> and
4686         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4687         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4688         avx_dp<ssemodesuffix><avxmodesuffix> and
4689         sse4_1_dp<ssemodesuffix> using VF mode iterator.
4690         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4691         (sse4_1_packusdw): Merge with *avx_packusdw.
4692         (sse4_1_pblendvb): Merge with *avx_pblendvb.
4693         (sse4_1_pblendw): Merge with *avx_pblendw.
4694         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4695         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4696         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4697         VF mode iterator.
4698         (sse4_1_round<ssescalarmodesuffix>): Merge with
4699         *avx_round<ssescalarmodesuffix>.
4700         (aesenc): Merge with *avx_aesenc.
4701         (aesenclast): Merge with *avx_aesenclast.
4702         (aesdec): Merge with *avx_aesdec.
4703         (aesdeclast): Merge with *avx_aesdeclast.
4704         (pclmulqdq): Merge with *pclmulqdq.
4705         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4706         New predicate.
4707         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4708
4709 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4710
4711         PR middle-end/48608
4712         * cfgexpand.c (get_decl_align_unit): Renamed to ...
4713         (align_local_variable): This.  Update DECL_ALIGN.
4714         (add_stack_var): Updated.
4715         (expand_one_stack_var): Likewise.
4716
4717 2011-04-14  Richard Guenther  <rguenther@suse.de>
4718
4719         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4720         Remove.
4721         (dse_initialize_block_local_data, dse_leave_block,
4722         record_voperand_set, get_stmt_uid): Likewise.
4723         (dse_possible_dead_store_p): Allow any kind of killing stmt.
4724         (dse_optimize_stmt): Remove voperand set handling code.
4725         Simplify and improve to handle any kind of killing stmt.
4726         (dse_record_phi): Remove.
4727         (dse_enter_block): Simplify.
4728         (tree_ssa_dse): Likewise.
4729         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4730
4731 2011-04-14  Jan Hubicka  <jh@suse.cz>
4732
4733         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4734         * cgraph.h (struct inline_summary): Move to ipa-inline.h
4735         (cgraph_local_info): Remove inline_summary.
4736         * ipa-cp.c: Include ipa-inline.h.
4737         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4738         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4739         accesor.
4740         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4741         (input_overwrite_node): Do not set inline summary.
4742         (input_node): Do not stream inline summary.
4743         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
4744         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
4745         growth; we do not have inline parameters computed for that anyway.
4746         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
4747         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
4748         (inline_summary_t): New type and VECtor.
4749         (debug_inline_summary, dump_inline_summaries): Declare.
4750         (inline_summary): Use VOCtor.
4751         (estimate_edge_growth): Kill hack computing call stmt size directly.
4752         * lto-section-in.c (lto_section_name): Add inline section.
4753         * ipa-inline-analysis.c: Include lto-streamer.h
4754         (node_removal_hook_holder, node_duplication_hook_holder): New holders
4755         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
4756         (inline_summary_vec): Define.
4757         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
4758         dump_inline_summaries): New functions.
4759         (estimate_function_body_sizes): Properly compute size/time of outgoing
4760         calls.
4761         (compute_inline_parameters): Alloc inline_summary; do not compute
4762         size/time of incomming calls.
4763         (estimate_edge_time): Avoid missing time summary hack.
4764         (inline_read_summary): Read inline summary info.
4765         (inline_write_summary): Write inline summary info.
4766         (inline_free_summary): Free all hooks and inline summary vector.
4767         * lto-streamer.h: Add LTO_section_inline_summary section.
4768         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4769         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4770
4771 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4772
4773         * tree-vectorizer.h (vect_strided_store_supported): Add a
4774         HOST_WIDE_INT argument.
4775         (vect_strided_load_supported): Likewise.
4776         (vect_permute_store_chain): Return void.
4777         (vect_transform_strided_load): Likewise.
4778         (vect_permute_load_chain): Delete.
4779         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4780         count argument.  Check that the count is a power of two.
4781         (vect_strided_load_supported): Likewise.
4782         (vect_permute_store_chain): Return void.  Update after above changes.
4783         Assert that the access is supported.
4784         (vect_permute_load_chain): Likewise.
4785         (vect_transform_strided_load): Return void.
4786         * tree-vect-stmts.c (vectorizable_store): Update calls after
4787         above interface changes.
4788         (vectorizable_load): Likewise.
4789         (vect_analyze_stmt): Don't check for strided powers of two here.
4790
4791 2011-04-14  Richard Guenther  <rguenther@suse.de>
4792
4793         PR tree-optimization/48590
4794         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4795         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4796         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4797         BUILT_IN_STACK_SAVE.
4798         * tree-ssa-dce.c (propagate_necessity): Handle
4799         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4800
4801 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4802
4803         * c-parser.c (c_parser_objc_class_declaration): Updated call to
4804         objc_declare_class.
4805
4806 2011-04-14  Richard Guenther  <rguenther@suse.de>
4807
4808         * tree.h (get_object_alignment_1): Declare.
4809         * builtins.c (get_object_alignment_1): Split out worker from ...
4810         (get_object_alignment): ... here.
4811         * fold-const.c (get_pointer_modulus_and_residue): Use
4812         get_object_alignment_1.
4813
4814 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4815
4816         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4817         type parameter.
4818         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4819         parameter.  Generalise code to handle arrays as well as vectors.
4820         (vect_setup_realignment): Update accordingly.
4821         * tree-vect-stmts.c (vectorizable_store): Likewise.
4822         (vectorizable_load): Likewise.
4823
4824 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4825
4826         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4827         within the per-copy loop.
4828
4829 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4830
4831         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4832         in the dump file.
4833
4834 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4835
4836         * doc/options.texi (Negative): Explicitly mention that the
4837         Negative chain must be circular.
4838
4839 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
4840
4841         * function.h (block_chainon): Declare.
4842         * function.c (block_chainon): Define.
4843
4844 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
4845             Eric Weddington  <eric.weddington@atmel.com>
4846             Georg-Johann Lay  <avr@gjlay.de>
4847
4848         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
4849         New Includes
4850         (avr_init_builtins, avr_expand_builtin,
4851         avr_expand_delay_cycles, avr_expand_unop_builtin,
4852         avr_expand_binop_builtin ): New functions.
4853         (avr_builtin_id): New enum
4854         (struct avr_builtin_description): New struct
4855         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4856         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
4857
4858         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
4859         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
4860         UNSPECV_DELAY_CYCLES): new enumeration values
4861         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4862         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4863         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4864         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4865         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4866         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4867         "fmulsu"): New insns
4868
4869         * config/avr/avr-c.c: fix line endings
4870         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4871         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4872         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4873         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4874         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
4875
4876         * doc/extend.texi (AVR Built-in Functions): New node
4877         (Target Builtins): Add documentation of AVR
4878         built-in functions.
4879
4880 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
4881
4882         PR target/44643
4883         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4884         alone. Error if non-const data has attribute progmem.
4885
4886 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4887
4888         * tree.h (struct tree_constructor): Include tree_typed instead of
4889         tree_common.
4890         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4891         TS_TYPED instead of TS_COMMON.
4892
4893 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4894
4895         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4896         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4897         (sse2_psadbw): Merge with *avx_psadbw.
4898         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4899         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4900         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4901         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4902         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4903         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4904         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4905         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4906         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4907         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4908         (ssse3_palignrti): Merge with *avx_palignrti.
4909
4910 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4911
4912         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4913         * tree-ssanames.c (fini_ssanames): VEC_free it.
4914         (make_ssa_name_fn): Update for VECness of free_ssanames.
4915         (release_ssa_name, release_dead_ssa_names): Likewise.
4916         * tree.h (struct tree_ssa_name): Include tree_typed instead of
4917         tree_common.
4918         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4919         TS_TYPED instead of TS_COMMON.
4920
4921 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4922
4923         * postreload-gcse.c (gcse_after_reload_main): Add calls to
4924         statistics_counter_event.
4925         * tree-ssa-copyrename.c (stats): Define.
4926         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
4927         statistics_counter_event.
4928         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4929         (bswap_stats, widen_mul_stats): Define.
4930         (insert_reciprocals): Increment rdivs_inserted.
4931         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
4932         rfuncs_inserted.  Add calls to statistics_counter_event.
4933         (execute_cse_sincos_1): Increment inserted.
4934         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
4935         statistics_counter_event.
4936         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
4937         of bswap_stats.  Add calls to statistics_counter_event.
4938         (convert_mult_to_widen): Increment widen_mults_inserted.
4939         (convert_plusminus_to_widen): Increment maccs_inserted.
4940         (convert_mult_to_fma): Increment fmas_inserted.
4941         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
4942         calls to statistics_counter_event.
4943
4944 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4945
4946         PR rtl-optimization/48455
4947         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
4948         `temp_costs->mem_cost'.
4949
4950 2011-04-13  Jan Hubicka  <jh@suse.cz>
4951
4952         * ipa-inline.h: New file.
4953         * ipa-inline-analysis.c: New file. Broken out of ...
4954         * ipa-inline.c: ... this file; update toplevel comment;
4955         include ipa-inline.h
4956         (inline_summary): Move to ipa-inline.h
4957         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
4958         ipa-inline-analysis.c.
4959         (cgraph_estimate_time_after_inlining): Rename to
4960         estiamte_time_after_inlining; move to ipa-inline-analysis.c
4961         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
4962         to estimate_edge_growth.
4963         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
4964         rename to estimate_size_after_inlining.
4965         (cgraph_mark_inline_edge): Update for new naming convention.
4966         (cgraph_check_inline_limits): Likewise.
4967         (cgraph_edge_badness): Likewise.
4968         (cgraph_decide_recursive_inlining): Likewise.
4969         (cgraph_decide_inlining_of_small_functions): Likewise.
4970         (cgraph_decide_inlining_incrementally): Likewise.
4971         (cgraph_estimate_growth): Rename to estimate_growth; move to
4972         ipa-inline-analysis.c.
4973         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
4974         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
4975         (compute_inline_parameters): Likewise.
4976         (compute_inline_parameters_for_current): Likewise.
4977         (pass_inline_parameters): Likewise.
4978         (inline_indirect_intraprocedural_analysis): Likewise.
4979         (analyze_function): Rename to inline_analyze_function; likewise.
4980         (add_new_function): Move to ipa-inline-analysis.c.
4981         (inline_generate_summary): Likewise.
4982         (inline_read_summary): Likewise.
4983         (inline_write_summary): Likewise.
4984         * Makefile.in (ipa-inline-analysis.c): New file.
4985
4986 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4987
4988         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
4989         * configure: Regenerate.
4990
4991 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4992
4993         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
4994         instead of tree_common.
4995         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
4996         Likewise.
4997         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
4998         TS_TYPED rather than TS_COMMON.
4999         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
5000
5001 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
5002
5003         PR target/45263
5004         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
5005         r20 around calls of __tablejump_elpm__
5006
5007 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
5008
5009         PR middle-end/48591
5010         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5011         NULL.
5012         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5013
5014 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
5015
5016         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5017         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5018         (cfi_vec): New typedef.
5019         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5020         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5021         (cie_cfi_vec): New static variable.
5022         (cie_cfi_head): Delete.
5023         (add_cfi): Accept a cfi_vec * as first argument. All callers and
5024         declaration changed. Use vector rather than list operations.
5025         (new_cfi): Don't initialize the dw_cfi_next field.
5026         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5027         rather than list operations.
5028         (lookup_cfa): Use vector rather than list operations.
5029         (output_cfis): New argument upto. Accept a cfi_vec rather than
5030         a dw_cfi_ref list head as argument. All callers changed.
5031         Iterate over the vector using upto as a maximum index.
5032         (output_all_cfis): New static function.
5033         (output_fde): Use vector rather than list operations. Use the
5034         new upto argument for output_cfis rather than manipulating a
5035         list.
5036         (dwarf2out_begin_prologue): Change initializations to match
5037         new struct members.
5038         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5039         from the vector length rather than searching for the end of a list.
5040         Use output_all_cfis.
5041         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5042
5043 2011-04-13  Nick Clifton  <nickc@redhat.com>
5044
5045         * config/rx/rx.md (movmemsi): Do not use this pattern when
5046         volatile pointers are involved.
5047
5048 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
5049
5050         * config/i386/sse.md (pinsrbits): Remove.
5051         (sse2_packsswb): Merge with *avx_packsswb.
5052         (sse2_packssdw): Merge with *avx_packssdw.
5053         (sse2_packuswb): Merge with *avx_packuswb.
5054         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5055         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5056         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5057         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5058         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5059         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5060         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5061         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5062         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5063         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5064         (sse2_loadld): Merge with *avx_loadld.
5065         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5066         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5067         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5068         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5069         (vec_concatv2di): Merge with *vec_concatv2di_avx.
5070
5071 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
5072
5073         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5074         calling TREE_CHAIN.
5075         * print-tree.c (print_node): Likewise.
5076         * tree-inline.c (copy_tree_r): Likewise.
5077         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5078         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5079         instead of TS_COMMON.
5080         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5081         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5082         (copy_node_stat): Zero TREE_CHAIN only if necessary.
5083         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5084         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5085         ...and these...
5086         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5087         * tree.h: ...here.
5088         (TREE_CHAIN): Check for a TS_COMMON structure.
5089         (TREE_TYPE): Check for a TS_TYPED structure.
5090
5091 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
5092
5093         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5094         cgraph_get_create_node instead of cgraph_node.
5095
5096 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5097
5098         * c-parser.c (c_parser_initelt): Updated call to
5099         objc_build_message_expr.
5100         (c_parser_postfix_expression): Likewise.
5101
5102 2011-04-12  Kai Tietz  <ktietz@redhat.com>
5103
5104         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5105         MASK_MS_BITFIELD_LAYOUT bit.
5106
5107 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5108
5109         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5110         assert it is always true.
5111         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5112         moves.
5113
5114 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5115
5116         * c-parser.c (c_lex_one_token): Rewritten conditional used when
5117         compiling Objective-C to be more efficient.
5118
5119 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
5120
5121         * opts-common.c (decode_cmdline_options_to_array): Remove variable
5122         argv_copied.
5123
5124 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5125
5126         * recog.h, genoutput.c, optabs.c: Revert last patch.
5127
5128 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5129
5130         PR target/48090
5131         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
5132
5133 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5134
5135         * recog.h (insn_operand_data): Add an "allows_mem" field.
5136         * genoutput.c (output_operand_data): Initialize it.
5137         * optabs.c (maybe_legitimize_operand_same_code): New function.
5138         (maybe_legitimize_operand): Use it when matching the original
5139         op->value.
5140
5141 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5142
5143         * genpreds.c (process_define_predicate): Move most processing
5144         to gensupport.c.  Continue to validate the expression.
5145         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5146         (process_define_predicate): Move processing to gensupport.c.
5147         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5148         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5149         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
5150         argument.
5151         (valid_predicate_name_p): New function, split out from old
5152         genpreds.c:process_define_predicate.
5153         (process_define_predicate): New function, combining code from
5154         old genpreds.c and genrecog.c functions.
5155         (process_rtx): Call it for DEFINE_PREDICATE and
5156         DEFINE_SPECIAL_PREDICATE.
5157
5158 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5159
5160         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5161         size of a '%A' memory reference.
5162         (T_DREG, T_QREG): New neon_builtin_type_bits.
5163         (arm_init_neon_builtins): Assert that the load and store operands
5164         are neon_struct_operands.
5165         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5166         (NEON_ARG_MEMORY): New builtin_arg.
5167         (neon_dereference_pointer): New function.
5168         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5169         Handle NEON_ARG_MEMORY.
5170         (arm_expand_neon_builtin): Update after above interface changes.
5171         Use NEON_ARG_MEMORY for loads and stores.
5172         * config/arm/predicates.md (neon_struct_operand): New predicate.
5173         * config/arm/iterators.md (V_two_elem): Tweak formatting.
5174         (V_three_elem): Use BLKmode for accesses that have no associated mode.
5175         (V_four_elem): Tweak formatting.
5176         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5177         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5178         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5179         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5180         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5181         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5182         (neon_vst4<mode>): Replace pointer operand with a memory operand.
5183         Use %A in the output template.
5184         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5185         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5186         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5187         the width of the memory access.  Remove post-increment.
5188         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5189
5190 2011-04-12  Nick Clifton  <nickc@redhat.com>
5191
5192         * config/v850/v850.c (expand_prologue): Do not use the CALLT
5193         instruction for interrupt handlers if the target is the basic V850
5194         architecture.
5195         (expand_epilogue): Likewise.
5196
5197 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5198
5199         PR rtl-optimization/48549
5200         * combine.c (propagate_for_debug): Also stop after BB_END of
5201         this_basic_block.  Process LAST and just stop processing after it.
5202         (combine_instructions): If last_combined_insn has been deleted,
5203         set last_combined_insn to its PREV_INSN.
5204
5205 2011-04-12  Richard Guenther  <rguenther@suse.de>
5206
5207         PR tree-optimization/46076
5208         * gimple.h (struct gimple_statement_call): Add fntype field.
5209         (gimple_call_fntype): Adjust.
5210         (gimple_call_set_fntype): New function.
5211         * gimple.c (gimple_build_call_1): Set the call function type.
5212         * gimplify.c (gimplify_call_expr): Preserve the function
5213         type the frontend used for the call.
5214         (gimplify_modify_expr): Likewise.
5215         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5216         function type.
5217         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5218         function type.
5219         * tree-ssa.c (useless_type_conversion_p): Function pointer
5220         conversions are useless.
5221
5222 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5223
5224         * cgraph.h (cgraph_node): Remove function declaration.
5225         (cgraph_create_node): Declare.
5226         (cgraph_get_create_node): Likewise.
5227         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5228         Updated all callers.
5229         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5230         the decl does not already exist.  Call cgraph_get_create_node instead
5231         of cgraph_node.
5232         (cgraph_get_create_node): New function.
5233         (cgraph_same_body_alias): Update comment.
5234         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5235         assert it does not return NULL.
5236         (cgraph_update_edges_for_call_stmt): Likewise.
5237         (cgraph_clone_edge): Likewise.
5238         (cgraph_create_virtual_clone): Likewise.
5239         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5240         instead of cgraph_node.
5241         (cgraph_add_new_function): Call cgraph_create_node or
5242         cgraph_get_create_node instead of cgraph_node.
5243         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5244         instead of cgraph_node.
5245         (record_eh_tables): Likewise.
5246         (mark_address): Likewise.
5247         (mark_load): Likewise.
5248         (build_cgraph_edges): Call cgraph_get_create_node instead
5249         of cgraph_node.
5250         (rebuild_cgraph_edges): Likewise.
5251         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5252         instead of cgraph_node.
5253         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5254         cgraph_node.
5255         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5256         cgraph_create_node instead of cgraph_node.
5257         * c-decl.c (finish_function): Call cgraph_get_create_node instead
5258         of cgraph_node.
5259         * lto-cgraph.c (input_node): Likewise.
5260         * lto-streamer-in.c (input_function): Likewise.
5261         * varasm.c (mark_decl_referenced): Likewise.
5262         (assemble_alias): Likewise.
5263
5264 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5265
5266         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5267         instead of cgraph_node and assert it does not return NULL.
5268         * lto-streamer-in.c (lto_read_body): Likewise.
5269         * omp-low.c (new_omp_context): Likewise.
5270         (create_task_copyfn): Likewise.
5271         * tree-emutls.c (lower_emutls_function_body): Likewise.
5272         * matrix-reorg.c (transform_allocation_sites): Likewise.
5273
5274 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5275
5276         PR c/48552
5277         * c-typeck.c (build_asm_expr): Error out on attempts to use
5278         void type outputs or inputs for constraints that allow reg or
5279         don't allow memory.
5280
5281 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
5282             Richard Earnshaw  <rearnsha@arm.com>
5283
5284         PR target/48250
5285         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5286         to use sign-magnitude offsets. Reject unsupported unaligned
5287         cases. Add detailed description in comments.
5288         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5289         condition from TARGET_32BIT to TARGET_ARM.
5290
5291 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
5292
5293         * tree.h (struct typed_tree): New.
5294         (struct tree_common): Include it instead of tree_base.
5295         (TREE_TYPE): Update for new location of type field.
5296         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5297         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5298         (union tree_node): Add typed field.
5299         * treestruct.def (TS_TYPED): New.
5300         * lto-streamer.c (check_handled_ts_structures): Handle it.
5301         * tree.c (MARK_TS_TYPED): New macro.
5302         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5303
5304 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
5305
5306         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5307         (force_nonfallthru): Do not alter the loop nest if no basic block
5308         was created.
5309
5310 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5311
5312         * config/i386/sse.md (VI): New mode iterator.
5313         (SSEMODEI): Remove.
5314         (AVX256MODEI): Ditto.
5315         (AVXMODEF4P): Ditto.
5316         (avxvecpsmode): Ditto.
5317         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
5318         (sse2_andnot<mode>3): New expander.
5319         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5320         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
5321         (<any_logic:code><mode>3): Use VI mode iterator.
5322         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5323         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
5324         (*andnottf3): Handle AVX three-operand constraints.
5325         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5326
5327 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5328             Robert Millan  <rmh@gnu.org>
5329
5330         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5331         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5332         GNU_USER_DYNAMIC_LINKER64): Define.
5333         (REG_NAME): Don't undefine.
5334         (MD_UNWIND_SUPPORT): Undefine.
5335         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5336         (REG_NAME): Don't undefine.
5337         (MD_UNWIND_SUPPORT): Undefine.
5338         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
5339
5340 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5341
5342         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5343         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5344
5345 2011-04-11  Xinliang David Li  <davidxl@google.com>
5346
5347         * value-profile.c (check_ic_target): New function.
5348         (gimple_ic_transform): Sanity check indirect call target.
5349         * gimple-low.c (gimple_check_call_args): Interface change.
5350         (gimple_check_call_matching_types): New function.
5351         * tree-inline.c (tree_can_inline_p): Call new function.
5352
5353 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
5354
5355         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5356         tree-pretty-print.h & realmpfr.h.
5357
5358 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
5359
5360         PR middle-end/48464
5361         * ira.c (setup_pressure_classes): Fix typo in loop condition.
5362         (setup_allocno_and_important_classes): Ditto.
5363
5364 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5365
5366         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5367         GNU_USER_DYNAMIC_LINKER.
5368         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5369         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5370         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5371         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5372         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5373         GNU_USER_TARGET_OS_CPP_BUILTINS.
5374         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5375         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5376         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5377         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5378         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5379         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5380         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5381         GNU_USER_TARGET_OS_CPP_BUILTINS.
5382         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5383         GNU_USER_DYNAMIC_LINKER.
5384         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5385         GNU_USER_TARGET_OS_CPP_BUILTINS.
5386         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5387         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5388         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5389         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5390         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5391         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5392         GNU_USER_DYNAMIC_LINKER64): Remove.
5393         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5394         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5395         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5396         GNU_USER_DYNAMIC_LINKER.
5397         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5398         GNU_USER_TARGET_OS_CPP_BUILTINS.
5399         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5400         GNU_USER_TARGET_OS_CPP_BUILTINS.
5401         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5402         to GNU_USER_TARGET_OS_CPP_BUILTINS.
5403         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5404         GNU_USER_TARGET_OS_CPP_BUILTINS.
5405         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5406         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5407         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5408         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5409         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5410         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5411         GNU_USER_DYNAMIC_LINKER.
5412         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5413         GNU_USER_TARGET_OS_CPP_BUILTINS.
5414         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5415         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5416         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5417         GNU_USER_DYNAMIC_LINKER.
5418         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5419         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5420         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5421         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5422         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5423         GNU_USER_DYNAMIC_LINKER.
5424         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5425         GNU_USER_DYNAMIC_LINKERN32.
5426         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5427         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
5428         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
5429         GNU_USER_DYNAMIC_LINKER32.
5430         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5431         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5432         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5433         GNU_USER_DYNAMIC_LINKER.
5434         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5435         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5436         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5437         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5438         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5439         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5440         GNU_USER_DYNAMIC_LINKER32.
5441         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5442         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5443         GNU_USER_DYNAMIC_LINKER.
5444         * config/s390/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_LINKER32 to
5447         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
5448         GNU_USER_DYNAMIC_LINKER64.
5449         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5450         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5451         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5452         GNU_USER_DYNAMIC_LINKER.
5453         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5454         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5455         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5456         GNU_USER_DYNAMIC_LINKER.
5457         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5458         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5459         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5460         GNU_USER_DYNAMIC_LINKER32.
5461         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5462         GNU_USER_DYNAMIC_LINKER64.
5463         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5464         GNU_USER_DYNAMIC_LINKER64.
5465         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5466         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5467         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5468         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5469         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5470
5471 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5472
5473         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
5474         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5475         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5476         GNU_USER_DYNAMIC_LINKER.
5477         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5478         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
5479         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5480         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5481         GNU_USER_DYNAMIC_LINKER64.
5482         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5483         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5484         GNU_USER_LINK_EMULATION.
5485         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5486         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5487         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5488         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5489         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5490         CPP_SPEC, CC1_SPEC): Remove.
5491         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5492         (GNU_USER_DYNAMIC_LINKER): Define.
5493         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5494         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5495         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5496         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5497         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5498         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5499         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5500         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5501         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5502         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5503         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5504         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5505         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5506         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5507         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5508         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5509         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5510         GNU_USER_DYNAMIC_LINKER.
5511         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5512         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5513         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5514         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5515         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5516         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5517         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5518         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5519         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
5520         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
5521
5522 2011-04-11  Kai Tietz  <ktietz@redhat.com>
5523
5524         PR target/9601
5525         PR target/11772
5526         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5527         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5528         comment.
5529         (ix86_is_msabi_thiscall): Removed.
5530         (ix86_is_type_thiscall): Likewise.
5531         (ix86_get_callcvt): New function.
5532         (ix86_comp_type_attributes): Simplify check.
5533         (ix86_function_regparm): Use ix86_get_callcvt for calling
5534         convention attribute checks.
5535         (ix86_return_pops_args): Likewise.
5536         (ix86_static_chain): Likewise.
5537         (x86_this_parameter): Likewise.
5538         (x86_output_mi_thunk): Likewise.
5539         (ix86_function_type_abi): Optimize check for types without attributes.
5540         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5541         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5542         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5543         by flag-values.
5544         (IX86_BASE_CALLCVT): Helper macro.
5545         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5546         Use ix86_get_callcvt for calling convention attribute checks and avoid
5547         symbol-decoration for stdcall in TARGET_RTD case.
5548         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5549         Likewise.
5550         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5551         for declaration.
5552
5553 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5554
5555         * config/i386/sse.md (VI_128): New mode iterator.
5556         (VI12_128): Rename from SSEMODE12.
5557         (VI14_128): Rename from SSEMODE14.
5558         (VI124_128): New mode iterator.
5559         (VI24_128): Rename from SSEMODE248.
5560         (VI248_128): Rename from SSEMODE248.
5561         (SSEMODE124C8): Remove.
5562         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5563         (*sse2_<plusminus_insn><mode>3): Merge with
5564         *avx_<plusminus_insn><mode>3.
5565         (*mulv8hi3): Merge with *avx_mulv8hi3.
5566         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5567         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5568         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5569         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5570         (ashr<mode>3): Merge with *avx_ashr<mode>3.
5571         (lshr<mode>3): Merge with *avx_lshr<mode>3.
5572         (ashl<mode>3): Merge with *avx_ashl<mode>3.
5573         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5574         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5575         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5576         (*<smaxmin:code>v8hi3): Ditto.
5577         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5578         (*<smaxmin:code>v16qi3): Ditto.
5579         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5580         (*sse2_eq<mode>3): Ditto.
5581         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5582         (*sse2_gt<mode>3): Ditto.
5583         (vcondv2di): Split out of vcond<mode>.
5584         (vconduv2di): Split out of vcondu<mode>.
5585
5586 2011-04-11  Richard Guenther  <rguenther@suse.de>
5587
5588         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5589         before calling tree_low_cst.
5590
5591 2011-04-11  Richard Guenther  <rguenther@suse.de>
5592
5593         * stor-layout.c (layout_type): Compute all array index size operations
5594         in the original type.
5595         (initialize_sizetypes): Add comment.
5596         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5597
5598 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5599
5600         * common.opt (Tbss=, Tdata=, Ttext=): New options.
5601
5602 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5603
5604         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5605         of cgraph_node, handle NULL return value.
5606         (cgraph_global_info): Likewise.
5607         (cgraph_rtl_info): Likewise.
5608         * tree-inline.c (estimate_num_insns): Likewise.
5609         * gimplify.c (unshare_body): Likewise.
5610         (unvisit_body): Likewise.
5611         (gimplify_body): Likewise.
5612         * predict.c (optimize_function_for_size_p): Likewise.
5613         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5614         (call_may_clobber_ref_p_1): Likewise.
5615         * varasm.c (function_section_1): Likewise.
5616         (assemble_start_function): Likewise.
5617
5618 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5619
5620         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5621         of cgraph_node.
5622         * final.c (rest_of_clean_state): Likewise.
5623         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5624         * passes.c (pass_init_dump_file): Likewise.
5625         (execute_all_ipa_transforms): Likewise.
5626         (function_called_by_processed_nodes_p): Likewise.
5627         * predict.c (maybe_hot_frequency_p): Likewise.
5628         (probably_never_executed_bb_p): Likewise.
5629         (compute_function_frequency): Likewise.
5630         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5631         (unnest_nesting_tree_1): Likewise.
5632         (lower_nested_functions): Likewise.
5633         * tree-optimize.c (execute_fixup_cfg): Likewise.
5634         (tree_rest_of_compilation): Likewise.
5635         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5636         * tree-sra.c (ipa_early_sra): Likewise.
5637         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5638         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5639         * ipa.c (record_cdtor_fn): Likewise.
5640         * ipa-inline.c (cgraph_early_inlining): Likewise.
5641         (compute_inline_parameters_for_current): Likewise.
5642         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5643         * ipa-pure-const.c (local_pure_const): Likewise.
5644         * ipa-split.c (split_function): Likewise.
5645         (execute_split_functions): Likewise.
5646         * cgraphbuild.c (build_cgraph_edges): Likewise.
5647         (rebuild_cgraph_edges): Likewise.
5648         (cgraph_rebuild_references): Likewise.
5649         (remove_cgraph_callee_edges): Likewise.
5650         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5651         (verify_cgraph_node): Likewise.
5652         (cgraph_analyze_functions): Likewise.
5653         (cgraph_preserve_function_body_p): Likewise.
5654         (save_inline_function_body): Likewise.
5655         (save_inline_function_body): Likewise.
5656         * tree-inline.c (copy_bb): Likewise.
5657         (optimize_inline_calls): Likewise.
5658
5659 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5660
5661         PR tree-optimization/48195
5662         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5663         ipa_check_create_edge_args.
5664         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5665         ipa_check_create_edge_args.
5666         * ipa-inline.c (inline_generate_summary): Do not call
5667         ipa_check_create_node_params and ipa_check_create_edge_args.
5668         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5669         ipa_check_create_edge_args.
5670
5671 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
5672
5673         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5674         instead of loop.
5675         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5676         * function.c (record_hard_reg_sets): Likewise.
5677         * ira.c (compute_regs_asm_clobbered): Likewise.
5678         * sched-deps.c (sched_analyze_1): Likewise.
5679         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5680
5681 2011-04-09  Xinliang David Li  <davidxl@google.com>
5682
5683         PR tree-optimization/PR48484
5684         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5685         has_valid_pred lazily
5686
5687 2011-04-09  Duncan Sands  <baldrick@free.fr>
5688
5689         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5690
5691 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5692
5693         * combine.c (combine_validate_cost): Adjust comments.  Set registered
5694         cost of I0 to zero at the end, if any.
5695
5696 2011-04-08  Xinliang David Li  <davidxl@google.com>
5697
5698         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5699         to insane profile data.
5700
5701 2011-04-08  Xinliang David Li  <davidxl@google.com>
5702
5703         * ipa-cp.c (ipcp_update_profiling): Correct
5704          negative scale factor due to insane profile data.
5705
5706 2011-04-08  Xinliang David Li  <davidxl@google.com>
5707
5708         * final.c (dump_basic_block_info): New function.
5709         (final): Dump basic block.
5710         (final_scan_insn): Remove old dump.
5711
5712 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
5713
5714         PR target/47829
5715         * config.gcc (i386-*-freebsd): Disable unwind table generation for
5716         crtbegin/crtend.
5717
5718 2011-04-08  Michael Matz  <matz@suse.de>
5719
5720         PR middle-end/48389
5721         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5722         functions.
5723         (rebuild_jump_labels): Call rebuild_jump_labels_1.
5724         * rtl.h (rebuild_jump_labels_chain): Declare.
5725         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5726         insns inserted on edges.
5727
5728 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
5729
5730         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5731         * config/arm/arm-arches.def: New.
5732         * config/arm/arm-opts.h: New.
5733         * config/arm/genopt.sh: New.
5734         * config/arm/arm-tables.opt: New (generated).
5735         * config/arm/arm.c (arm_handle_option, arm_target_help,
5736         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5737         (all_architectures): Get most table contents from arm-arches.def.
5738         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5739         arm_selected_tune here.
5740         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5741         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5742         (march=, mcpu=, mtune=): Use Enum and Var.
5743         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
5744         (arm.o): Update dependencies.
5745
5746 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
5747
5748         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
5749         of header_file.
5750         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
5751         (write_typed_alloc_defns): Likewise.
5752         (main): Calls write_typed_alloc_defns with output_header.
5753
5754 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
5755
5756         PR inline-asm/48435
5757         * ira-color.c (setup_profitable_hard_regs): Add comments.
5758         Don't take prohibited hard regs into account.
5759         (setup_conflict_profitable_regs): Rename to
5760         get_conflict_profitable_regs.
5761         (check_hard_reg_p): Check prohibited hard regs.
5762
5763 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
5764
5765         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5766         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5767         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5768
5769 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5770
5771         PR target/48366
5772         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
5773         move from floating point to shift amount register.
5774         (emit_move_sequence): Remove secondary reload support for floating
5775         point to shift amount amount register copies.
5776         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5777         amount register copies.
5778         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5779         register, return false if mode isn't a scalar integer mode.
5780         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5781
5782 2011-04-08  Richard Guenther  <rguenther@suse.de>
5783
5784         * gimple.c (gimple_call_flags): Remove kludge.
5785
5786 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5787
5788         * sel-sched.c (sel_region_init): Move call to
5789         sel_setup_region_sched_flags after setup_current_loop_nest.
5790
5791 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
5792
5793         PR rtl-optimization/48272
5794         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5795         init_insn_reg_pressure_info.  Adjust a caller.
5796         * sched-int.h (init_insn_reg_pressure_info): Declare.
5797         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5798         when sched-pressure is enabled.
5799
5800 2011-04-08  Richard Guenther  <rguenther@suse.de>
5801
5802         * gimple.c (gimple_set_modified): Do not queue calls to
5803         MODIFIED_NORETURN_CALLS here ...
5804         * tree-ssa-operands.c (update_stmt_operands): ... but here.
5805
5806 2011-04-08  Richard Guenther  <rguenther@suse.de>
5807
5808         PR lto/48467
5809         * toplev.c (lang_dependent_init): Do not open asm_out_file
5810         in WPA mode, nor perform debug machinery initialization.
5811         (finalize): Do not unlink asm_out_file in WPA mode.
5812
5813 2011-04-08  Richard Guenther  <rguenther@suse.de>
5814
5815         * gimple.h (gimple_call_fntype): New function.
5816         (gimple_call_return_type): Use it.
5817         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5818         * gimple-low.c (gimple_check_call_args): Likewise.
5819         * gimple.c (gimple_call_flags): Likewise.
5820         (gimple_call_arg_flags): Likewise.
5821         (gimple_call_return_flags): Likewise.
5822         * tree-cfg.c (verify_gimple_call): Likewise.
5823         (do_warn_unused_result): Likewise.
5824         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5825         * value-prof.c (gimple_ic_transform): Fix fndecl check.
5826
5827 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
5828
5829         PR rtl-optimization/48235
5830         * sel-sched.c (code_motion_process_successors): Recompute the last
5831         insn in basic block if control flow changed.
5832         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
5833         Update condition for ilist_remove.
5834
5835 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5836
5837         PR rtl-optimization/48302
5838         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5839         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
5840         it to record added preheader blocks.
5841         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
5842         on to sel_add_loop_preheaders.
5843         (sel_region_init): Move call to setup_current_loop_nest after
5844         sel_init_bbs.
5845
5846 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5847
5848         PR target/48273
5849         * cfgloop.h (loop_has_exit_edges): New helper.
5850         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5851         non-clonable.
5852         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5853         that have no exit edges.
5854
5855 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5856
5857         PR rtl-optimization/48442
5858         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
5859         all callers.  Adjust assert.
5860
5861 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
5862
5863         PR tree-optimization/48377
5864         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5865         is_packed to true even for types with smaller TYPE_ALIGN than
5866         TYPE_SIZE.
5867
5868 2011-04-08  Richard Guenther  <rguenther@suse.de>
5869
5870         PR bootstrap/48513
5871         * doc/tm.texi: Re-generate.
5872
5873 2011-04-08  Wei Guozhi  <carrot@google.com>
5874
5875         PR target/47855
5876         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5877         * config/arm/arm.c (arm_attr_length_push_multi): New function.
5878         * config/arm/arm.md (*push_multi): Change the length computation to
5879         call a C function.
5880
5881 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
5882
5883         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5884         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5885         * doc/tm.texi: Regenerate.
5886         * system.h (ASM_OUTPUT_BSS): Poison.
5887         * varasm.c (asm_output_bss): Remove function.
5888         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
5889
5890         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5891         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5892         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5893         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5894         Likewise.
5895         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5896         Likewise.
5897         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5898         Likewise.
5899         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5900
5901 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5902
5903         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5904         EnumValue lines.
5905
5906 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5907
5908         * config/m68k/m68k.c (m68k_handle_option): Don't handle
5909         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5910         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5911         OPT_mcpu32.
5912         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5913         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5914         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5915         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5916         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5917         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5918         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5919         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5920         options.  Don't map other m68k options manually.  Don't handle
5921         old-style options as canonical.
5922         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5923         * doc/install.texi (m68k-*-*): Document binutils version requirement.
5924
5925 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5926
5927         * basic-block.h (force_nonfallthru): Move to...
5928         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5929         (force_nonfallthru): ...here.
5930         * cfghooks.c (force_nonfallthru): New function.
5931         * cfgrtl.c (force_nonfallthru): Rename into...
5932         (rtl_force_nonfallthru): ...this.
5933         (commit_one_edge_insertion): Do not set AUX field.
5934         (commit_edge_insertions): Do not discover new basic blocks.
5935         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5936         (cfg_layout_rtl_cfg_hooks): Likewise.
5937         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5938         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
5939         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5940
5941 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
5942
5943         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5944         Remove macros.
5945
5946 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
5947
5948         * config/i386/sse.md: Update copyright year.
5949         (avxcvtvecmode): Remove.
5950         (sse_movhlps): Merge with *avx_movhlps.
5951         (sse_movlhps): Merge with *avx_movlhps.
5952         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
5953         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
5954         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
5955         (sse_loadhps): Merge with *avx_loadhps.
5956         (sse_storelps): Merge with *avx_storelps.
5957         (sse_loadlps): Merge with *avx_loadlps.
5958         (sse_movss): Merge with *avx_movss.
5959         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
5960         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
5961         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
5962         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
5963         (vec_set<mode>_0): Ditto.
5964         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
5965         (sse4_1_insertps): Merge with *avx_insertps.
5966         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
5967         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
5968         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
5969         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
5970         (sse2_storehpd): Merge with *avx_storehpd.
5971         (sse2_loadhpd): Merge with *avx_loadhpd.
5972         (sse2_loadlpd): Merge with *avx_loadlpd.
5973         (sse2_movsd): Merge with *avx_movsd.
5974         (*vec_concatv2df): Merge with *vec_concatv2df.
5975
5976 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
5977
5978         PR debug/48343
5979         * combine.c (combine_instructions): Add last_combined_insn,
5980         update it if insn is after it, pass it to all try_combine calls.
5981         (try_combine): Add last_combined_insn parameter, pass it instead of
5982         i3 to propagate_for_debug.
5983
5984 2011-04-07  Nick Clifton  <nickc@redhat.com>
5985
5986         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
5987         to handle MDR <-> data register transfers.
5988         (movhi_internal): Likewise.
5989
5990 2011-04-07  Alan Modra  <amodra@gmail.com>
5991
5992         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
5993         previous stack info.
5994
5995 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5996
5997         PR target/43920
5998         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
5999         flow_find_cross_jump.  Swap variables to implement backward replacement.
6000         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
6001
6002 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6003
6004         PR target/43920
6005         * cfgcleanup.c (walk_to_nondebug_insn): New function.
6006         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
6007         and bb2.
6008         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6009         src1 or src2.  Redirect edges to the last basic block.  Update
6010         frequency and count on multiple basic blocks in case of fallthru.
6011
6012 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6013
6014         PR target/43920
6015         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6016         function.
6017         (old_insns_match_p): Change return type.  Replace return false/true
6018         with return dir_none/dir_both.  Use can_replace_by.
6019         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
6020         direction from dir_p.  Register replacement direction in dir, last_dir
6021         and afterlast_dir.  Handle new return type of old_insns_match_p using
6022         merge_dir.  Return replacement direction in dir_p.
6023         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6024         return type of old_insns_match_p.
6025         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6026         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6027         flow_find_cross_jump.
6028         * basic-block.h (enum replace_direction): New type.
6029         (flow_find_cross_jump): Add parameter to declaration.
6030
6031 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6032
6033         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6034         (AVXMODEDCVTPS2DQ): Ditto.
6035         (VEC_FLOAT_MODE): Ditto.
6036         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
6037         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6038         (<any_logic:code><mode>3): Use VF mode iterator.
6039         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6040         Use VF mode iterator.
6041         (copysign<mode>3): Use VF mode iterator.
6042         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
6043         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6044         (*<any_logic:code><MODEF:mode>3): Merge with
6045         *avx_<any_logic:code><MODEF:mode>3.
6046         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6047         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6048         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6049         (avx_cvtdq2ps<avxmodesuffix>): Remove.
6050         (sse2_cvtdq2ps): Use %v modifier.
6051         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6052         (avx_cvtps2dq<avxmodesuffix>): Remove.
6053         (sse2_cvtps2dq): Use %v modifier.
6054         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6055         (avx_cvttps2dq<avxmodesuffix>): Remove.
6056         (sse2_cvttps2dq): Use %v modifier.
6057         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6058         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6059         (sse2_cvtsd2siq): Fix insn template.
6060         (sse2_cvtsd2siq_2): Ditto.
6061         (sse2_cvttsd2siq): Ditto.
6062         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6063         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6064
6065 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6066
6067         * gcov-io.c: Use GCC Runtime Library Exception.
6068
6069 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
6070
6071         PR debug/48466
6072         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6073         as base_reg whatever register reg has been eliminated to, instead
6074         of hardcoding STACK_POINTER_REGNUM.
6075
6076 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6077
6078         * doc/tm.texi.in: Document C target hooks as separate from general
6079         target hooks.
6080         * doc/tm.texi: Regenerate.
6081         * genhooks.c (struct hook_desc): Add docname field.
6082         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
6083         docname field.
6084         (hook_array): Include c-target.def.
6085         (emit_documentation): Use docname field in output.
6086         (emit_init_macros): Take docname argument.  Only emit definitions
6087         for hooks matching docname.
6088         (main): Expect additional arguments in all cases.  Pass argument
6089         to emit_init_macros.
6090         * target.def: Move initial macro definitions and comments to
6091         target-hooks-macros.h.
6092         (gcc_targetcm): Move to c-family/c-target.def.
6093         * target.h (targetcm): Move declaration to c-family/c-target.h.
6094         * targhooks.c (default_handle_c_option): Move to
6095         c-family/c-opts.c.
6096         * targhooks.h (default_handle_c_option): Move declaration to
6097         c-family/c-common.h.
6098         * target-hooks-macros.h: New file.
6099         * config.gcc (target_has_targetcm): Define and use to add to
6100         c_target_objs and cxx_target_objs.
6101         * config/default-c.c: New file.
6102         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6103         of target.h and target-def.h.
6104         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6105         (darwin_objc_construct_string, darwin_cfstring_ref_p,
6106         darwin_check_cfstring_format_arg): Make static.
6107         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6108         TARGET_STRING_OBJECT_REF_TYPE_P,
6109         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6110         * config/darwin-protos.h (darwin_objc_construct_string,
6111         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6112         declare.
6113         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6114         TARGET_STRING_OBJECT_REF_TYPE_P,
6115         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
6116         * config/t-darwin (darwin-c.o): Update dependencies.
6117         * system.h (TARGET_HAS_TARGETCM): Poison.
6118         * Makefile.in (TARGET_H): Update.
6119         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6120         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6121         (default-c.o): New target.
6122         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
6123         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
6124         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
6125         c-target.def.
6126         (build/genhooks.o): Update dependencies.
6127
6128 2011-04-06  Richard Guenther  <rguenther@suse.de>
6129
6130         * ipa-inline.c (enum inlining_mode): Remove.
6131         (cgraph_flatten): Use some other token.
6132         (cgraph_edge_early_inlinable_p): New function, split out from ...
6133         (cgraph_perform_always_inlining): New function, split out from ...
6134         (cgraph_decide_inlining_incrementally): ... here.
6135         (cgraph_mark_inline_edge): Adjust.
6136         (cgraph_early_inlining): Re-structure.
6137         (pass_early_inline): Require SSA form.
6138
6139 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
6140             Julian Brown  <julian@codesourcery.com>
6141             Mark Shinwell  <shinwell@codesourcery.com>
6142
6143         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6144         LO_REGS only for Thumb-1.
6145         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6146         be used in short instructions when optimising for size on Thumb-2.
6147
6148 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6149
6150         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6151         associated with user returns to be preserved.
6152
6153 2011-04-06  Tristan Gingold  <gingold@adacore.com>
6154
6155         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6156         symbol_queue_size, DBXOUT_DECR_NESTING,
6157         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6158         if XCOFF_DEBUGGING_INFO.
6159
6160 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6161
6162         * config/i386/i386.md (attribute isa): New.
6163         (attribute enabled): New.
6164         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6165         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6166         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6167         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6168         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6169         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6170         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6171         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6172
6173         * config/i386/sse.md (VF): New mode iterator.
6174         (VF1): Ditto.
6175         (VF2): Ditto.
6176         (VF_128): Ditto.
6177         (SSEMODEF4): Remove.
6178         (attribute sse): Handle V8SF and V4DF modes.
6179         (<absneg:code><mode>2): Use VF mode iterator.
6180         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
6181         mode iterator.
6182         (<plusminus_insn><mode>3): Use VF mode iterator.
6183         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6184         Use VF mode iterator.
6185         (<sse>_vm<plusminus_insn><mode>3): Merge with
6186         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
6187         (mul<mode>3): Use VF mode iterator.
6188         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
6189         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
6190         mode iterator.
6191         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6192         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6193         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
6194         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
6195         mode iterator.
6196         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6197         Use VF1 mode iterator.
6198         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6199         (sqrt<VF2:mode>2): New expander.
6200         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6201         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6202         and sqrtv2df2.  Use VF mode iterator.
6203         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
6204         mode iterator.
6205         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6206         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6207         Use VF1 mode iterator.
6208         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6209         (<smaxmin:code><mode>3): Use VF mode iterator.
6210         (*<smaxmin:code><mode>3_finite): Merge with
6211         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
6212         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6213         (<sse>_vm<smaxmin:code><mode>2): Merge with
6214         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
6215         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
6216         mode iterator.
6217         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
6218         mode iterator.
6219         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6220         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6221         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6222         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6223         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
6224         VF mode iterator.
6225         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6226         Use VF_128 mode iterator.
6227         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
6228         mode iterator.
6229         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
6230         VF_128 mode iterator.
6231         (vcond<mode>): Use VF mode iterator.
6232         * config/i386/predicates.md (sse_comparison_operator): Merge with
6233         avx_comparison_float_operator.  Do not declare as special_predicate.
6234         * config/i386/i386.c (struct builtin_description): Update for renamed
6235         compare patterns.
6236         (ix86_expand_args_builtin): Ditto.
6237         (ix86_expand_sse_compare_mask): Ditto.
6238
6239 2011-04-06  Richard Guenther  <rguenther@suse.de>
6240
6241         * tree-inline.c (estimate_num_insns): For calls simply account
6242         for all passed arguments and a used return value.
6243
6244 2011-04-06  Richard Guenther  <rguenther@suse.de>
6245
6246         PR tree-optimization/47663
6247         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6248         call_stmt_time fields.
6249         (cgraph_edge_inlinable_p): Declare.
6250         (cgraph_edge_recursive_p): New inline function.
6251         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6252         (cgraph_clone_edge): Copy it.
6253         * ipa-inline.c (cgraph_estimate_edge_time): New function.
6254         Account for call stmt time.
6255         (cgraph_estimate_time_after_inlining): Take edge argument.
6256         (cgraph_estimate_edge_growth): Account call stmt size.
6257         (cgraph_estimate_size_after_inlining): Take edge argument.
6258         (cgraph_mark_inline_edge): Adjust.
6259         (cgraph_check_inline_limits): Likewise.
6260         (cgraph_recursive_inlining_p): Remove.
6261         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6262         (cgraph_decide_recursive_inlining): Take edge argument and
6263         adjust.
6264         (cgraph_decide_inlining_of_small_functions): Do not avoid
6265         diags for recursive inlining here.
6266         (cgraph_flatten): Adjust.
6267         (cgraph_decide_inlining_incrementally): Likewise.
6268         (estimate_function_body_sizes): Remove call cost handling.
6269         (compute_inline_parameters): Initialize caller edge call costs.
6270         (cgraph_estimate_edge_growth): New function.
6271         (cgraph_estimate_growth): Use it.
6272         (cgraph_edge_badness): Likewise.
6273         (cgraph_check_inline_limits): Take an edge argument.
6274         (cgraph_decide_inlining_of_small_functions): Adjust.
6275         (cgraph_decide_inlining): Likewise.
6276         * tree-inline.c (estimate_num_insns): Only account for call
6277         return value if it is used.
6278         (expand_call_inline): Avoid diagnostics on recursive inline
6279         functions here.
6280         * lto-cgraph.c (lto_output_edge): Output edge call costs.
6281         (input_edge): Input edge call costs.
6282
6283 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6284
6285         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6286
6287 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
6288
6289         * doc/invoke.texi (Spec Files): Fix typo.
6290
6291 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6292
6293         * profile.c (branch_prob): Move declaration of local variable.  Remove
6294         obsolete ??? comment.  Expand the location explicitly instead of using
6295         the LOCATION_FILE and LOCATION_LINE macros.
6296
6297 2011-04-06  Wei Guozhi  <carrot@google.com>
6298
6299         PR target/47855
6300         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6301         (arm_cond_branch): Likewise.
6302         (arm_cond_branch_reversed): Likewise.
6303         (arm_jump): Likewise.
6304         (push_multi): Likewise.
6305         * config/arm/constraints.md (Py): New constraint.
6306
6307 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6308
6309         PR bootstrap/48471
6310         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6311         Move these...
6312         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6313         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6314         #ifdef DBX_DEBUGGING_INFO.
6315
6316 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
6317
6318         PR bootstrap/48403
6319         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6320         if old and new states differ.
6321
6322 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6323
6324         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6325         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6326         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6327         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6328         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6329         mcfv4e): Use Alias.
6330         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6331         ColdFire options to -mcpu= options.
6332
6333 2011-04-05  Jeff Law  <law@redhat.com>
6334
6335         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6336         check if BB is a successor of LOOP->header and return
6337         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6338
6339 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6340
6341         * cprop.c (struct reg_use): Remove.
6342         (reg_use_table): Make an array of RTX.
6343         (find_used_regs, constprop_register, local_cprop_pass,
6344         bypass_block): Simplify users of reg_use_table.
6345         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
6346         on one of the uses found by find_used_regs.
6347
6348 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6349
6350         PR bootstrap/48469
6351         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6352         declaration.
6353
6354 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6355
6356         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6357         as an rtx.
6358         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6359
6360 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6361
6362         PR middle-end/48441
6363         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6364
6365 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6366
6367         * combine.c: Include obstack.h.
6368         (struct insn_link): Define.
6369         (uid_log_links): Adjust type.
6370         (FOR_EACH_LOG_LINK): New macro.
6371         (insn_link_obstack): Declare.
6372         (alloc_insn_link): Define.
6373         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
6374         type of link variables.
6375         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6376         (try_combine, record_promoted_values, distribute_notes): Likewise.
6377         (distribute_links): Likewise.  Tweak prototype.
6378         (clear_log_links): Delete.
6379         (adjust_for_new_dest): Call alloc_insn_link.
6380         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6381
6382 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6383
6384         * gcse.c (modify_mem_list): Convert to an array of VECs.
6385         (canon_modify_mem_list, compute_transp): Tweak formatting.
6386         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
6387         (load_killed_in_block_p): Likewise.
6388         (record_last_mem_set_info): Likewise.
6389         (clear_modify_mem_tables): Likewise.
6390
6391 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6392
6393         PR middle-end/48461
6394         * function.c (emit_use_return_register_into_block): Only define if
6395         HAVE_return.
6396
6397 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
6398
6399         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6400
6401 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6402
6403         * config/rx/rx-opts.h: New.
6404         * config/rx/rx.c (rx_cpu_type): Remove.
6405         (rx_handle_option): Don't assert that global structures are in
6406         use.  Access variables via opts pointer.  Defer most handling of
6407         OPT_mint_register_.  Use error_at.
6408         (rx_option_override): Handle deferred OPT_mint_register_ here.
6409         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6410         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6411         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6412         (rx_cpu_types): New Enum and EnumValue entries.
6413         (mint-register=): Use Defer and use Var accordingly.
6414
6415 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6416
6417         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6418         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6419         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6420         Move these...
6421         (debug_free_queue, debug_nesting, symbol_queue_index):
6422         ...and these...
6423         * dbxout.c: ...to here.  Make static.
6424
6425 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6426
6427         * gcse.c (modify_pair): Define.  Define a VEC of it.
6428         (canon_modify_mem_list): Convert to an array of VECs.
6429         (free_insn_expr_list_list): Delete.
6430         (clear_modify_mem_tables): Call VEC_free instead.
6431         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6432         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6433         (canon_list_insert, compute_transp): Likewise.
6434
6435 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6436
6437         PR target/43920
6438         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6439         for size.
6440
6441 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6442
6443         PR target/43920
6444         * function.c (emit_use_return_register_into_block): New function.
6445         (thread_prologue_and_epilogue_insns): Use
6446         emit_use_return_register_into_block.
6447
6448 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6449
6450         PR target/43920
6451         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6452         insn.
6453
6454 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6455
6456         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6457
6458 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
6459
6460         * config/arm/arm.md (define_constants for unspec): Replace with
6461         define_c_enum.
6462         (define_constants for unspecv): Replace with define_c_enum.
6463         * config/arm/neon.md (define_constants for unspec): Replace with
6464         define_c_enum.
6465
6466 2011-04-04  Richard Henderson  <rth@redhat.com>
6467
6468         PR bootstrap/48400
6469         * dwarf2out.c (output_line_info): Always emit line info from
6470         at least one section.
6471         (dwarf2out_init): Create text_section_line_info here ...
6472         (set_cur_line_info_table): ... not here.
6473
6474 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
6475
6476         PR target/48380
6477         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
6478         not called.
6479
6480         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
6481
6482 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
6483
6484         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6485         (expr_equiv_p): Remove.
6486         (insert_set_in_table): Look at <dest, src> pair instead of expr.
6487         (hash_scan_set): Update call to insert_set_in_table.
6488         (dump_hash_table): Dump <dest, src> pair.
6489         (lookup_set): Simplify.  Lookup <dest, src> pair.
6490         (compute_transp): Remove, fold heavily simplified code into...
6491         (compute_local_properties): ...here.  Expect COMP and TRANSP
6492         unconditionally.
6493         (find_avail_set): Take set directly from struct expr.
6494         (find_bypass-set): Likewise.
6495         (bypass_block): Likewise.
6496         (cprop_insn): Likewise.  Remove redundant INSN_P test.
6497
6498         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6499         checks on form of COND from find_implicit_sets to here.
6500         (find_implicit_sets): Cleanup control flow. Split critical edges
6501         if it exposes implicit sets.  Allocate/resize implicit_sets as
6502         necessary.
6503         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6504         changed something.  Run df_analyze after find_implicit_sets if any
6505         edges were split.  Do not allocate implicit_sets here.
6506
6507         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6508         (gcse_obstack): Renamed to cprop_obstack.
6509         (GNEW, GNEWVEC, GNEWVAR): Remove.
6510         (gmalloc): Remove.
6511         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6512         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6513         (gcse_alloc): Likewise, and rename to cprop_alloc.
6514         (alloc_gcse_men, free_gcse_mem): Remove.
6515         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6516         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6517         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6518
6519         * cprop.c (oprs_not_set_p): Remove.
6520         (mark_set, mark_clobber): Remove.
6521         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6522         (reg_not_set_p): New function.
6523         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6524         (cprop_insn): Likewise.
6525         (cprop_jump): Use FOR_EACH_EDGE.
6526
6527 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
6528
6529         PR bootstrap/48403
6530         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6531         (rank_for_schedule): Use scheduled_insns vector instead of
6532         last_scheduled_insn.
6533         (ok_for_early_queue_removal): Likewise.
6534         (queue_to_ready): Search forward in nonscheduled_insns_begin if
6535         we have a dbg_cnt.
6536         (choose_ready): Likewise.
6537         (commit_schedule): Use VEC_iterate.
6538         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
6539         a dbg_cnt, use it and ensure the first insn is in the ready list.
6540         (haifa_sched_init): Allocate scheduled_insns.
6541         (sched_extend_ready_list): Don't allocate it; reserve space.
6542         (haifa_sched_finish): Free it.
6543
6544 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6545
6546         * optc-gen.awk: Always remove type from Variable entry before
6547         recording in var_seen.
6548
6549 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
6550
6551         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6552         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6553         call to tidy_fallthru_edges.
6554
6555 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6556
6557         * doc/options.texi (ToLower): Document.
6558         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
6559         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6560         * opts.h (cl_option): Add cl_tolower field.
6561         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6562         arguments with lowercase strings.
6563         * config/rx/rx.opt (mcpu=): Add ToLower.
6564         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6565         argument.
6566
6567 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6568
6569         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6570
6571 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6572
6573         * config/vax/vax.c: Include reload.h.
6574
6575 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
6576
6577         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6578         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6579         (sparc_preferred_reload_class): New function.
6580
6581 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
6582
6583         PR debug/48401
6584         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6585         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6586
6587 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
6588
6589         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6590         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6591
6592 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
6593
6594         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6595         (ASM_OUTPUT_ALIGNED_BSS): Define.
6596
6597 2011-04-03  Michael Matz  <matz@suse.de>
6598
6599         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6600         and next_slot members.
6601         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6602         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6603         (lto_streamer_cache_append): Declare.
6604         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6605         unsigned index, remove offset parameter, ensure that we append
6606         or update existing entries.
6607         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6608         parameter, update next_slot for append.
6609         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6610         parameter.
6611         (lto_streamer_cache_insert_at): Likewise.
6612         (lto_streamer_cache_append): New function.
6613         (lto_streamer_cache_lookup): Use unsigned index.
6614         (lto_streamer_cache_get): Likewise.
6615         (lto_record_common_node): Don't test tree_node_can_be_shared.
6616         (preload_common_node): Adjust call to lto_streamer_cache_insert.
6617         (lto_streamer_cache_delete): Don't free offsets member.
6618         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6619         (lto_output_string_with_length): Use lto_output_data_stream.
6620         (lto_output_tree_header): Remove ix parameter, don't write it.
6621         (lto_output_builtin_tree): Likewise.
6622         (lto_write_tree): Adjust callers to above, don't track and write
6623         offset, write unsigned index.
6624         (output_unreferenced_globals): Don't emit all global vars.
6625         (write_global_references): Use unsigned indices.
6626         (lto_output_decl_state_refs): Likewise.
6627         (write_symbol): Likewise.
6628         * lto-streamer-in.c (lto_input_chain): Move earlier.
6629         (input_function): Use unsigned index.
6630         (input_alias_pairs): Don't read and then ignore all global vars.
6631         (lto_materialize_tree): Remove ix_p parameter, don't read index,
6632         don't pass it back, use lto_streamer_cache_append.
6633         (lto_register_var_decl_in_symtab): Use unsigned index.
6634         (lto_register_function_decl_in_symtab): Likewise.
6635         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6636         index.
6637         (lto_get_builtin_tree): Don't read index, use
6638         lto_streamer_cache_append.
6639         (lto_read_tree): Adjust call to lto_materialize_tree.
6640
6641         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6642         don't use function calls in arguments to MIN.
6643
6644         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6645         twice.
6646
6647         * gimple.c (gimple_type_leader_entry): Mark deletable.
6648
6649 2011-04-03  Alan Modra  <amodra@gmail.com>
6650
6651         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6652
6653 2011-04-03  Michael Matz  <matz@suse.de>
6654
6655         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6656         an integer.
6657         * tree.h (tree_decl_non_common.vindex): Adjust comment.
6658
6659 2011-04-03  Michael Matz  <matz@suse.de>
6660
6661         * cgraphbuild.c (record_reference): Canonicalize constructor values.
6662         * gimple-fold.c (canonicalize_constructor_val): Accept being called
6663         without function context.
6664         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6665         current_function_decl and cfun.
6666
6667 2011-04-03  Michael Matz  <matz@suse.de>
6668
6669         * tree.c (decl_init_priority_insert): Don't create entry for
6670         default priority.
6671         (decl_fini_priority_insert): Ditto.
6672         (fields_compatible_p, find_compatible_field): Remove.
6673         * tree.h (fields_compatible_p, find_compatible_field): Remove.
6674         * gimple.c (gimple_compare_field_offset): Adjust block comment.
6675
6676 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
6677
6678         * combine.c (try_combine): Remove useless local variable.
6679
6680 2011-04-03  Richard Guenther  <rguenther@suse.de>
6681             Ira Rosen  <ira.rosen@linaro.org>
6682
6683         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6684         non-variable offsets and compare the remaining bases of the two
6685         accesses instead of looking for exact same data-ref.
6686
6687 2011-04-02  Kai Tietz  <ktietz@redhat.com>
6688
6689         PR target/48416
6690         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6691
6692         * i386.c (ix86_is_msabi_thiscall): New helper function.
6693         (ix86_is_type_thiscall): New helper function.
6694         (ix86_comp_type_attributes): Handle thiscall for method-functions
6695         special.
6696         (init_cumulative_args): Likewise.
6697         (find_drap_reg): Likewise.
6698         (ix86_static_chain): Likewise.
6699         (x86_this_parameter): Likewise.
6700         (x86_output_mi_thunk): Likewise.
6701
6702 2011-04-01  Olivier Hainque  <hainque@adacore.com>
6703             Nicolas Setton  <setton@adacore.com>
6704             Eric Botcazou  <ebotcazou@adacore.com>
6705
6706         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6707         (add_gnat_descriptive_type_attribute): New function.
6708         (gen_array_type_die): Call it.
6709         (gen_enumeration_type_die): Likewise.
6710         (gen_struct_or_union_type_die): Likewise.
6711         (modified_type_die): Likewise.
6712         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6713         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6714         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6715
6716 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6717
6718         PR bootstrap/48148
6719         * dwarf2out.c (resolve_addr): Don't call force_decl_die
6720         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6721
6722         Revert:
6723         2011-03-17  Richard Guenther  <rguenther@suse.de>
6724
6725         PR bootstrap/48148
6726         * lto-cgraph.c (input_overwrite_node): Clear the abstract
6727         origin for decls in other ltrans units.
6728         (input_varpool_node): Likewise.
6729
6730 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6731
6732         PR middle-end/48335
6733         * expr.c (expand_assignment): Handle all possibilities
6734         if TO_RTX is CONCAT.
6735         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
6736         (store_split_bit_field): If SUBREG_REG (op0) or
6737         op0 itself has smaller mode than word, return it
6738         for offset 0 and const0_rtx for out-of-bounds stores.
6739         If word is const0_rtx, skip it.
6740
6741 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
6742
6743         * config/h8300/h8300.c (print_operand_address): Rename to...
6744         (h8300_print_operand_address): ...this. Make static. Adjust comments.
6745         Call h8300_print_operand and h8300_print_operand_address instead of
6746         print_operand and print_operand_address. Declare.
6747         (print_operand): Renake to...
6748         (h8300_print_operand): ...this. Make static. Adjust comments.
6749         Call h8300_print_operand instead of print_operand. Declare.
6750         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
6751         (h8300_register_move_cost): Likewise.
6752         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
6753         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
6754         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
6755         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
6756         * config/h8300/h8300-protos.h (print_operand): Delete.
6757         (print_operand_address): Delete.
6758
6759 2011-04-01  Richard Henderson  <rth@redhat.com>
6760
6761         PR 48400
6762         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6763         in strict mode before dwarf4.  Re-order tests to early out
6764         before switching sections.
6765
6766 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
6767
6768         * config/h8300/constraints.md: New file.
6769         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
6770         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6771         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6772         * config/h8300/predicates.md (bit_operand): Likewise.
6773         (incdec_operand): Use satisfies_constraint_M and
6774         satisfies_constraint_O.  Don't use C code block.
6775         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6776         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6777         (compute_mov_length): Use satisfies_constraint_G.
6778         (fix_bit_operand): Use satisfies_constraint_U.
6779         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6780         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6781         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6782         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6783         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6784         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6785         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6786         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6787         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6788         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6789         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6790         (EXTRA_MEMORY_CONSTRAINT): Delete.
6791
6792 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
6793             Michael Meissner  <meissner@linux.vnet.ibm.com>
6794
6795         PR target/48262
6796         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6797         operands, as per the specifications.
6798
6799         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6800         (vec_extract_evenv4sf): Ditto.
6801         (vec_extract_evenv8hi): Ditto.
6802         (vec_extract_evenv16qi): Ditto.
6803         (vec_extract_oddv4si): Ditto.
6804
6805 2011-03-31  Mark Wielaard  <mjw@redhat.com>
6806
6807         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6808         high_pc attribute if the CU has no associated code. Only output
6809         DW_AT_entry_pc for CU if not generating strict dwarf and
6810         dwarf_version < 4.
6811
6812 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
6813
6814         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6815         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6816         out of ...
6817         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6818         * final.c (final_start_function): Call the new function rather
6819         than using a NULL argument for dwarf2out_frame_debug.
6820
6821         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6822         that contains the prologue.
6823
6824         * haifa-sched.c (queue_insn): New arg REASON.  All callers
6825         changed.  Print it in debugging output.
6826
6827         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6828
6829         * sched-ebb.c (begin_schedule_ready): Remove second argument.
6830         Split most of the code into...
6831         (begin_move_insn): ... here.  New function.
6832         (ebb_sched_info): Add a pointer to it.
6833         * haifa-sched.c (scheduled_insns): New static variable.
6834         (sched_extend_ready_list): Allocate it.
6835         (schedule_block): Use it to record the order of scheduled insns.
6836         Perform RTL changes to move insns only after all scheduling
6837         decisions have been made.
6838         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6839         begin_move_insn field.
6840         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6841         * sched-int.h (struct haifa_sched_info): Remove second argument
6842         from begin_schedule_ready hook.  Add new member begin_move_insn.
6843         * sched-rgn.c (begin_schedule_ready): Remove second argument.
6844         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6845
6846         * haifa-sched.c (prune_ready_list): New function, broken out of
6847         schedule_block.
6848         (schedule_block): Use it.
6849
6850 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6851
6852         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6853
6854 2011-04-01  Kai Tietz  <ktietz@redhat.com>
6855
6856         * config.gcc (*-*-mingw*): Allow as option the
6857         posix threading model.
6858         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
6859         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6860         definition.
6861         (CPP_SPEC): Add pthread/no-pthread handling.
6862         (LIB_SPEC): Likewise.
6863         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6864         (LIB_SPEC): Likewise.
6865         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6866         flag to pass -pthread option for shared libgcc build.
6867         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6868         for shared libgcc build.
6869         * config/i386/t-mingw-pthread: New file.
6870         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6871         New define to enable use of library pthread by default.
6872         * config/i386/mingw.opt (pthread): New driver option.
6873         (no-pthread): New driver option.
6874         * config/i386/cygming.opt: Make sure trailing empty line is retained.
6875         * config/i386/mingw-w64.opt: Likewise.
6876
6877 2011-04-01  Gary Funck  <gary@intrepid.com>
6878
6879         * c-decl.c (grokdeclarator): Fix formatting.
6880
6881 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6882
6883         * expr.c (emit_block_move_via_movmem): Use n_generator_args
6884         instead of n_operands.
6885         (set_storage_via_setmem): Likewise.
6886         * optabs.c (maybe_gen_insn): Likewise.
6887         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6888         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6889         (mips_expand_builtin_direct): Likewise.
6890         * config/spu/spu.c (expand_builtin_args): Likewise.
6891
6892 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6893
6894         * recog.h (insn_data_d): Add n_generator_args.
6895         * genoutput.c (data): Likewise.
6896         (output_insn_data): Print it.
6897         (max_opno, num_dups): Delete.
6898         (scan_operands): Just fill in "d->operand[...]".
6899         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6900
6901 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6902
6903         * gensupport.h (pattern_stats): New structure.
6904         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6905         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6906         (max_operand_1, max_operand_vec): Delete.
6907         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6908
6909 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
6910
6911         * emit-rtl.c (emit_pattern_after_setloc): New function.
6912         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6913         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6914         (emit_pattern_after): New function.
6915         (emit_insn_after, emit_jump_insn_after): Call it.
6916         (emit_call_insn_after, emit_debug_insn_after): Likewise.
6917         (emit_pattern_before_setloc): New function.
6918         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6919         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6920         Likewise.
6921         (emit_pattern_before): New function.
6922         (emit_insn_before, emit_jump_insn_before): Call it.
6923         (emit_call_insn_before, emit_debug_insn_before): Likewise.
6924
6925 2011-03-31  Richard Henderson  <rth@redhat.com>
6926
6927         * dwarf2out.c (dw_separate_line_info_ref): Remove.
6928         (dw_separate_line_info_entry): Remove.
6929         (enum dw_line_info_opcode): New.
6930         (dw_line_info_entry): Use it.
6931         (dw_line_info_table, dw_line_info_table_p): New.
6932         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6933         (line_info_table, line_info_label_num): Remove.
6934         (line_info_table_in_use): Remove.
6935         (separate_line_info_table): Remove.
6936         (separate_line_info_table_allocated): Remove.
6937         (separate_line_info_table_in_use): Remove.
6938         (LINE_INFO_TABLE_INCREMENT): Remove.
6939         (line_info_label_num): New.
6940         (cur_line_info_table): New.
6941         (text_section_line_info, cold_text_section_line_info): New.
6942         (separate_line_info): New.
6943         (SEPARATE_LINE_CODE_LABEL): Remove.
6944         (print_dwarf_line_table): Remove.
6945         (debug_dwarf): Don't dump it.
6946         (output_one_line_info_table): New.
6947         (output_line_info): Use it.
6948         (new_line_info_table): New.
6949         (set_cur_line_info_table): New.
6950         (dwarf2out_switch_text_section): Use it.
6951         (dwarf2out_begin_function): Likewise.
6952         (push_dw_line_info_entry): New.
6953         (dwarf2out_source_line): Rewrite for new line info tables.
6954         (dwarf2out_init): Remove dead initailizations.
6955
6956 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6957
6958         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
6959         various flags.
6960         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
6961         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
6962         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
6963         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
6964         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
6965         * opt-functions.awk (flag_init, switch_bit_fields): New.
6966         (switch_flags): Don't handle flags moved to bit-fields.  Don't
6967         generate CL_MISSING_OK or CL_SAVE.
6968         * optc-gen.awk: Update to generate bit-field output as well as
6969         flags field.
6970         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
6971         bit-field instead of CL_REJECT_DRIVER flag.
6972         * opts-common.c (generate_canonical_option,
6973         decode_cmdline_option): Use bit-fields instead of CL_* flags.
6974         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
6975         instead of CL_REJECT_NEGATIVE flag.
6976         * toplev.c (print_switch_values): Use cl_report bit-field instead
6977         of CL_REPORT flag.
6978
6979 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6980
6981         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
6982         a zero minimum index only if it is redundant.
6983
6984 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
6985
6986         PR rtl-optimization/48381
6987         * ira-color.c (assign_hard_reg): Use hard reg set intersection
6988         instead of ira_class_hard_reg_index for calculating conflicting
6989         hard registers.
6990
6991 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
6992
6993         * cprop.c: Clean up hash table building.
6994         (reg_avail_info): Remove.
6995         (oprs_available_p): Remove.
6996         (record_last_reg_set_info): Remove.
6997         (record_last_set_info): Remove.
6998         (reg_available_p): New function.
6999         (gcse_constant_p): Do not treat unfolded conditions as constants.
7000         (make_set_regs_unavailable): New function.
7001         (hash_scan_set): Simplify with new reg_available_p.
7002         (compute_hash_table_work): Traverse insns stream only once.
7003         Do not compute reg_avail_info. Traverse insns in reverse order.
7004         Record implicit sets after recording explicit sets from the block.
7005
7006 2011-03-31  Michael Matz  <matz@suse.de>
7007
7008         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
7009
7010 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
7011
7012         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7013         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7014         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7015         (h8300_mode_dependent_address_p): New function.
7016         (h8300_get_index): Make static.
7017
7018 2011-03-31  Jeff Law  <law@redhat.com>
7019
7020         * reload1.c (elimination_effects): Fix typo in recent change.
7021
7022         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
7023         typo potentially leading to null pointer dereference.
7024
7025         * caller-save.c (new_saved_hard_reg): Eliminate return value.
7026         (setup_save_areas): Corresponding changes to avoid useless
7027         assignments.
7028
7029         * jump.c (reversed_comparison_code_parts): Avoid successive return
7030         statements when REVERSE_CONDITION is defined.
7031
7032         * expr.c (expand_assignment): Avoid useless assignments.
7033         (expand_expr_real_1): Likewise.
7034         (expand_expr_real_2): Avoid useless statements.
7035
7036         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7037
7038         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7039
7040         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7041         statements.
7042
7043         * stmt.c (expand_expr_stmt): Avoid useless assignment.
7044
7045 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7046
7047         PR target/47109
7048         * doc/tm.texi.in (TARGET_VERSION): Remove.
7049         * doc/tm.texi: Regenerate.
7050         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7051         * collect2.c (main): Don't use TARGET_VERSION.
7052         * mips-tdump.c (main): Don't use TARGET_VERSION.
7053         * mips-tfile.c (main): Don't use TARGET_VERSION.
7054         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
7055         * config/rs6000/vxworksae.h: Remove.
7056         * config/alpha/alpha.h (TARGET_VERSION): Remove.
7057         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7058         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7059         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7060         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7061         * config/arm/arm.h (TARGET_VERSION): Remove.
7062         * config/arm/coff.h (TARGET_VERSION): Remove.
7063         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7064         * config/arm/elf.h (TARGET_VERSION): Remove.
7065         * config/arm/freebsd.h (TARGET_VERSION): Remove.
7066         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7067         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7068         * config/arm/pe.h (TARGET_VERSION): Remove.
7069         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7070         * config/arm/semi.h (TARGET_VERSION): Remove.
7071         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7072         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7073         * config/arm/vxworks.h (TARGET_VERSION): Remove.
7074         * config/avr/avr.h (TARGET_VERSION): Remove.
7075         * config/bfin/bfin.h (TARGET_VERSION): Remove.
7076         * config/fr30/fr30.h (TARGET_VERSION): Remove.
7077         * config/frv/frv.h (TARGET_VERSION): Remove.
7078         * config/h8300/h8300.h (TARGET_VERSION): Remove.
7079         * config/i386/cygwin.h (TARGET_VERSION): Remove.
7080         * config/i386/darwin.h (TARGET_VERSION): Remove.
7081         * config/i386/darwin64.h (TARGET_VERSION): Remove.
7082         * config/i386/djgpp.h (TARGET_VERSION): Remove.
7083         * config/i386/freebsd.h (TARGET_VERSION): Remove.
7084         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7085         * config/i386/gnu.h (TARGET_VERSION): Remove.
7086         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7087         * config/i386/i386elf.h (TARGET_VERSION): Remove.
7088         * config/i386/linux.h (TARGET_VERSION): Remove.
7089         * config/i386/linux64.h (TARGET_VERSION): Remove.
7090         * config/i386/lynx.h (TARGET_VERSION): Remove.
7091         * config/i386/mingw32.h (TARGET_VERSION): Remove.
7092         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7093         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7094         * config/i386/netware.h (TARGET_VERSION): Remove.
7095         * config/i386/nto.h (TARGET_VERSION): Remove.
7096         * config/i386/openbsd.h (TARGET_VERSION): Remove.
7097         * config/i386/vxworks.h (TARGET_VERSION): Remove.
7098         * config/ia64/elf.h (TARGET_VERSION): Remove.
7099         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7100         * config/ia64/hpux.h (TARGET_VERSION): Remove.
7101         * config/ia64/linux.h (TARGET_VERSION): Remove.
7102         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7103         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7104         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7105         * config/lm32/lm32.h (TARGET_VERSION): Remove.
7106         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7107         * config/m32c/m32c.h (TARGET_VERSION): Remove.
7108         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7109         * config/m32r/m32r.h (TARGET_VERSION): Remove.
7110         * config/m68k/linux.h (TARGET_VERSION): Remove.
7111         * config/m68k/m68k.h (TARGET_VERSION): Remove.
7112         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7113         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7114         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7115         * config/mep/mep.h (TARGET_VERSION): Remove.
7116         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7117         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7118         * config/mips/iris6.h (MACHINE_TYPE): Remove.
7119         * config/mips/linux.h (TARGET_VERSION): Remove.
7120         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7121         * config/mips/vxworks.h (TARGET_VERSION): Remove.
7122         * config/mmix/mmix.h (TARGET_VERSION): Remove.
7123         * config/mn10300/linux.h (TARGET_VERSION): Remove.
7124         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7125         * config/pa/pa.h (TARGET_VERSION): Remove.
7126         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7127         * config/picochip/picochip.h (TARGET_VERSION): Remove.
7128         * config/rs6000/aix.h (TARGET_VERSION): Remove.
7129         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7130         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7131         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7132         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7133         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7134         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7135         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7136         * config/rs6000/linux.h (TARGET_VERSION): Remove.
7137         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7138         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7139         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7140         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7141         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7142         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7143         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7144         * config/s390/linux.h (TARGET_VERSION): Remove.
7145         * config/s390/s390.h (TARGET_VERSION): Remove.
7146         * config/s390/tpf.h (TARGET_VERSION): Remove.
7147         * config/score/score.h (TARGET_VERSION): Remove.
7148         * config/sh/linux.h (TARGET_VERSION): Remove.
7149         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7150         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7151         * config/sh/sh.h (TARGET_VERSION): Remove.
7152         * config/sh/sh64.h (TARGET_VERSION): Remove.
7153         * config/sh/superh.h (TARGET_VERSION): Remove.
7154         * config/sh/vxworks.h (TARGET_VERSION): Remove.
7155         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7156         * config/sparc/linux.h (TARGET_VERSION): Remove.
7157         * config/sparc/linux64.h (TARGET_VERSION): Remove.
7158         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7159         TARGET_NAME32, TARGET_NAME): Remove.
7160         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7161         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7162         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7163         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7164         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7165         * config/spu/spu.h (TARGET_VERSION): Remove.
7166         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7167         * config/v850/v850.h (TARGET_VERSION): Remove.
7168         * config/vax/linux.h (TARGET_VERSION): Remove.
7169         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7170         * config/xtensa/elf.h (TARGET_VERSION): Remove.
7171         * config/xtensa/linux.h (TARGET_VERSION): Remove.
7172
7173 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7174
7175         PR target/48142
7176         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7177         frame-related from frame-unrelated adjustments to the stack pointer.
7178
7179 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
7180
7181         * common.opt (fdebug-types-section): Move earlier.
7182         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7183
7184 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
7185
7186         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7187         var.
7188
7189 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
7190
7191         * tree.h (CASE_CHAIN): Define.
7192         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7193         (gimple_redirect_edge_and_branch): Likewise.
7194
7195 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7196
7197         PR middle-end/48367
7198         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7199         calculation.
7200
7201 2011-03-30  Jeff Law  <law@redhat.com>
7202
7203         * PR bootstrap/48371
7204         * reload1.c (reload): Fix botch in last change.
7205
7206         * reload.h (struct reload): Fix typo introduced in last change.
7207
7208 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7209
7210         * config/arm/arm.opt (mhard-float, msoft-float): Mark
7211         Undocumented.  Remove help text.
7212         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7213         -mhard-float.
7214
7215 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7216
7217         * doc/options.texi (NegativeAlias): Document.
7218         (Alias): Mention NegativeAlias.
7219         * opt-functions.awk: Handle NegativeAlias.
7220         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
7221         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7222         * opts.h (CL_NEGATIVE_ALIAS): Define.
7223         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7224         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7225         OPT_mspe_.
7226         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7227         Alias entries.
7228         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7229         mno-spe and mno-isel instead of mspe=no and -misel=no.
7230
7231 2011-03-29  Mark Wielaard  <mjw@redhat.com>
7232
7233         * common.opt (fdebug-types-section): New flag.
7234         * doc/invoke.texi: Document new -fno-debug-types-section flag.
7235         * dwarf2out.c (use_debug_types): New define.
7236         (struct die_struct): Mark die_id with GTY desc use_debug_types.
7237         (print_die): Guard output of type unit signatures using
7238         use_debug_types.
7239         (build_abbrev_table): Replace assert of dwarf_version >= 4
7240         with assert on use_debug_types.
7241         (size_of_die): Likewise.
7242         (unmark_dies): Likewise.
7243         (value_format): Decide AT_ref_external form on use_debug_types.
7244         (output_die): Replace dwarf_version version check guard with
7245         use_debug_types where appropriate.
7246         (modified_type_die): Likewise.
7247         (gen_reference_type_die): Likewise.
7248         (dwarf2out_start_source_file): Likewise.
7249         (dwarf2out_end_source_file): Likewise.
7250         (prune_unused_types_walk_attribs): Likewise.
7251         (dwarf2out_finish): Likewise.
7252
7253 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7254
7255         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7256
7257 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7258
7259         PR rtl-optimization/48332
7260         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7261         mode of input operand N and modeN to its actual mode.
7262
7263 2011-03-30  Jeff Law  <law@redhat.com>
7264
7265         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7266         define accessor macro.
7267         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7268         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7269         (reg_equiv_init): Likewise.
7270         (reg_equivs_size): New variable.
7271         (reg_equiv_init_size): Remove.
7272         (allocate_initial_values): Move prototype to here from....
7273         * integrate.h (allocate_initial_values): Remove prototype.
7274         * integrate.c: Include reload.h.
7275         (allocate_initial_values): Corresponding changes.
7276         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7277         (fix_reg_equiv_init, no_equiv): Corresponding changes.
7278         (update_equiv_regs): Corresponding changes.
7279         (ira): Corresponding changes.
7280         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7281         (push_secondary_reload): Corresponding changes.
7282         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7283         (make_memloc, find_reloads_address): Corresponding changes.
7284         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7285         (find_reloads_address_1): Corresponding changes.
7286         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7287         (refers_to_regno_for_reload_p): Corresponding changes.
7288         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7289         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7290         * reload1.c: Include ggc.h.
7291         (grow_reg_equivs): New function.
7292         (replace_pseudos_in, reload): Corresponding changes.
7293         (calculate_needs_all_insns, alter_regs): Corresponding changes.
7294         (eliminate_regs_1, elimination_effects): Corresponding changes.
7295         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7296         (delete_output_reload): Likewise.
7297         * caller-save.c (mark_referenced_regs): Corresponding changes.
7298         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7299         * frv/predicates.md (frv_load_operand): Corresponding changes.
7300         * microblaze/microblaze.c (double_memory_operand): Corresponding
7301         changes.
7302         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7303         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
7304         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
7305         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7306         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7307         changes.
7308         * pa/pa.c (emit_move_sequence): Corresponding changes.
7309         * vax/vax.c (nonindexed_address_p): Corresponding changes.
7310
7311 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7312
7313         PR target/47551
7314         * config/arm/arm.c (coproc_secondary_reload_class): Handle
7315         structure modes.  Don't check neon_vector_mem_operand for
7316         vector or structure modes.
7317
7318 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7319             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7320
7321         PR target/43590
7322         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7323         operand 1 and reshuffle the operands to match.
7324         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7325
7326 2011-03-30  Christian Schüler  <cschueler@gmx.de>
7327
7328         PR driver/48208
7329         * config/c.opt (F): Added 'Driver' to -F option.
7330
7331         PR driver/48260
7332         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7333           handler function.
7334         * config/darwin.opt: Added '-arch' option.
7335
7336 2011-03-30  Nick Clifton  <nickc@redhat.com>
7337
7338         * config/rx/rx.md: Add peepholes and patterns to combine
7339         extending loads and simple arithmetic instructions.
7340         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
7341         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7342         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
7343         modes to use pre-decrement and post-increment addressing.
7344         (rx_is_restricted_memory_address): Add range checking of REG+INT
7345         addresses.
7346         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
7347         (rx_memory_move_cost): Adjust cost of stores.
7348         (rx_adjust_insn_length): New function.
7349
7350 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
7351
7352         PR c/48305
7353         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7354         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7355         matching arg00/arg01 types.
7356
7357 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7358
7359         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7360         last_location to UNKNOWN_LOCATION.
7361
7362 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7363
7364         PR target/48349
7365         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7366         FLOAT_SSE_REGS.
7367
7368 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7369             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7370
7371         PR bootstrap/48337
7372         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7373         Init(PROCESSOR_V7).
7374         (sparc_cpu): Likewise.
7375         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7376         PROCESSOR_V7.
7377
7378 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7379
7380         PR target/48336
7381         PR middle-end/48342
7382         PR rtl-optimization/48345
7383         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7384         hard regs for given mode from profitable regs when doing secondary
7385         allocation.
7386
7387 2011-03-29  Jeff Law  <law@redhat.com>
7388
7389         PR bootstrap/48327
7390         * tree-ssa-threadupdate.c (struct redirection_data): Remove
7391         do_not_duplicate field.
7392         (lookup_redirection_data): Corresponding changes.
7393         (create_duplicates): Always create a template block.
7394         (redirect_edges): Remove code which reused the original block
7395         when it was going to become unreachable code.
7396         (thread_block): Don't set do_not_duplicate field.
7397
7398 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
7399
7400         * lto-opts.c (register_user_option_p, lto_register_user_option):
7401         Make type argument unsigned.
7402         * lto-streamer.h (lto_register_user_option): Make type argument
7403         unsigned.
7404         * opth-gen.awk: Make CL_* macros unsigned.
7405         * opts-common.c (find_opt): Make lang_mask argument unsigned.
7406         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7407         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7408         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7409         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7410         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7411         (find_opt): Make lang_mask argument unsigned.
7412
7413 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7414
7415         PR rtl-optimization/48331
7416         PR rtl-optimization/48334
7417         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7418         for any used algorithm.
7419
7420 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7421
7422         * ira-conflicts.c (build_object_conflicts): Add unused attribute
7423         to parent_max.
7424
7425 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
7426
7427         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7428         (alpha_option_override): Don't set alpha_sr_alias_set.
7429         (emit_frame_store_1): Use gen_frame_mem rather than calling
7430         set_mem_alias_set.
7431         (alpha_expand_epilogue): Ditto.
7432
7433 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
7434
7435         PR tree-optimization/48290
7436         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7437         vectorization, check that relevant phis in the basic block after
7438         the inner loop are really inner loop's exit phis.
7439
7440 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
7441
7442         PR debug/48190
7443         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7444         (cached_dw_loc_list_def): New structure.
7445         (cached_dw_loc_list): New typedef.
7446         (cached_dw_loc_list_table): New variable.
7447         (cached_dw_loc_list_table_hash): New function.
7448         (cached_dw_loc_list_table_eq): Likewise.
7449         (add_location_or_const_value_attribute): Take a bool cache_p.
7450         Cache the list when the parameter is true.
7451         (gen_formal_parameter_die): Update caller.
7452         (gen_variable_die): Likewise.
7453         (dwarf2out_finish): Likewise.
7454         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7455         while generating debug info for the decl.
7456         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7457         (dwarf2out_init): Initialize cached_dw_loc_list_table.
7458         (resolve_addr): Cache the result of resolving a chain of
7459         location lists.
7460
7461 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7462
7463         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7464         conflict object hard regset nodes have intersecting hard reg sets.
7465
7466         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7467         after regstat_init_n_sets_and_refs.
7468
7469         * ira.c: Add more comments at the top.
7470         (setup_stack_reg_pressure_class, setup_pressure_classes):
7471         Add comments how we compute the register pressure classes.
7472         (setup_allocno_and_important_classes): Add more comments.
7473         (setup_class_translate_array, reorder_important_classes)
7474         (setup_reg_class_relations): Add comments.
7475
7476         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
7477         start of the file.
7478
7479         * ira-color.c: Add 2011 to the Copyright line.
7480         (assign_hard_reg):  Add more comments.
7481         (improve_allocation): Ditto.
7482
7483         * ira-costs.c: Add 2011 to the Copyright line.
7484         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7485         comments.
7486         (setup_regno_cost_classes_by_mode): Ditto.
7487
7488         Initial patches from ira-improv branch:
7489
7490         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7491
7492         * ira-build.c (ira_create_object): Remove initialization of
7493         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
7494         (ira_create_allocno): Remove initialization of
7495         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7496         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7497         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7498         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7499         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7500         Initialize ALLOCNO_ADD_DATA.
7501         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7502         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7503         ALLOCNO_REG.
7504         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
7505         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7506
7507         * ira.c (ira_reallocate): Remove.
7508         (setup_pressure_classes): Call
7509         ira_init_register_move_cost_if_necessary.  Use
7510         ira_register_move_cost instead of ira_get_register_move_cost.
7511         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7512         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7513
7514         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7515         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7516         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7517         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7518         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7519         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7520         Fix formatting.
7521         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
7522         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7523         (struct allocno_color_data): New.
7524         (allocno_color_data_t): New typedef.
7525         (allocno_color_data): New definition.
7526         (ALLOCNO_COLOR_DATA): New macro.
7527         (struct object_color_data): New.
7528         (object_color_data_t): New typedef.
7529         (object_color_data): New definition.
7530         (OBJECT_COLOR_DATA): New macro.
7531         (update_copy_costs, calculate_allocno_spill_cost): Call
7532         ira_init_register_move_cost_if_necessary.  Use
7533         ira_register_move_cost instead of ira_get_register_move_cost.
7534         (move_spill_restore, update_curr_costs): Ditto.
7535         (allocno_spill_priority): Make it inline.
7536         (color_pass): Allocate and free allocno_color_dat and object_color_data.
7537         (struct coalesce_data, coalesce_data_t): New.
7538         (allocno_coalesce_data): New definition.
7539         (ALLOCNO_COALESCE_DATA): New macro.
7540         (merge_allocnos, coalesced_allocno_conflict_p): Use
7541         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7542         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7543         (coalesce_allocnos): Ditto.
7544         (setup_coalesced_allocno_costs_and_nums): Ditto.
7545         (collect_spilled_coalesced_allocnos): Ditto.
7546         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7547         (setup_slot_coalesced_allocno_live_ranges): Ditto.
7548         (coalesce_spill_slots): Ditto.
7549         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
7550         free allocno_coalesce_data.
7551
7552         * ira-conflicts.c: Fix formatting.
7553         (process_regs_for_copy): Call
7554         ira_init_register_move_cost_if_necessary.  Use
7555         ira_register_move_cost instead of ira_get_register_move_cost.
7556         (build_object_conflicts): Optimize.
7557
7558         * ira-costs.c (record_reg_classes): Optimize.  Call
7559         ira_init_register_move_cost_if_necessary.  Use
7560         ira_register_move_cost, ira_may_move_in_cost, and
7561         ira_may_move_out_cost instead of ira_get_register_move_cost and
7562         ira_get_may_move_cost.
7563         (record_address_regs): Ditto.
7564         (scan_one_insn): Optimize.
7565         (find_costs_and_classes): Optimize.
7566         (process_bb_node_for_hard_reg_moves): Call
7567         ira_init_register_move_cost_if_necessary.  Use
7568         ira_register_move_cost instead of ira_get_register_move_cost.
7569
7570         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7571         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7572         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7573         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7574         definitions.
7575         (ira_initiate_emit_data, ira_finish_emit_data)
7576         (create_new_allocno): New functions.
7577         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
7578         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7579         Use ira_register_move_cost instead of ira_get_register_move_cost.
7580
7581         * ira-int.h: Fix some comments.
7582         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7583         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7584         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7585         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
7586         add_data.
7587         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
7588         bitfield after mode.  Make hard_regno a short int.  Make
7589         hard_regno short.  Remove first_coalesced_allocno and
7590         next_coalesced_allocno.  Move mem_optimized_dest_p,
7591         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7592         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
7593         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7594         temp, colorable_p.  Add new member add_data.
7595         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7596         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7597         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7598         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7599         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7600         (ALLOCNO_ADD_DATA): New macro.
7601         (ira_emit_data_t): New typedef.
7602         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
7603         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7604         from struct ira_allocno.
7605         (ALLOCNO_EMIT_DATA): New macro.
7606         (ira_allocno_emit_data, allocno_emit_reg): New.
7607         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7608         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
7609         (OBJECT_ADD_DATA): New macro.
7610         (ira_reallocate): Remove.
7611         (ira_initiate_emit_data, ira_finish_emit_data): New.
7612         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7613         (ira_init_register_move_cost_if_necessary): New.
7614         (ira_object_conflict_iter_next): Merge into
7615         ira_object_conflict_iter_cond.
7616         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
7617
7618         * ira-live.c (process_single_reg_class_operands): Call
7619         ira_init_register_move_cost_if_necessary.  Use
7620         ira_register_move_cost instead of ira_get_register_move_cost.
7621
7622         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7623
7624         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7625
7626         * ira-costs.c: Fix formatting.
7627         (cost_classes, cost_classes_num): Remove.
7628         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7629         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7630         (cost_classes_del, cost_classes_htab): New.
7631         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7632         (initiate_regno_cost_classes, setup_cost_classes): New.
7633         (setup_regno_cost_classes_by_aclass): New.
7634         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
7635         (record_reg_classes): Use regno_cost_classes instead of
7636         cost_classes.  Move checking opposite operand up.
7637         (record_address_regs): Use regno_cost_classes
7638         instead of cost_classes.
7639         (scan_one_insn): Ditto.  Use always general register.
7640         (print_allocno_costs): Use regno_cost_classes instead of
7641         cost_classes.
7642         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
7643         (find_costs_and_classes): Set up cost classes for each registers.
7644         Use also their mode for this.  Use regno_cost_classes instead of
7645         cost_classes.
7646         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7647         cost_classes.
7648         (free_ira_costs, ira_init_costs): Don't use cost_classes.
7649         (ira_costs, ira_set_pseudo_classes): Call
7650         initiate_regno_cost_classes and finish_regno_cost_classes.
7651
7652         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7653
7654         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7655
7656         * target.def (ira_cover_classes): Remove.
7657
7658         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
7659
7660         * doc/tm.texi.in: Ditto.
7661
7662         * ira-conflicts.c: Remove mentioning cover classes from the file.
7663         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
7664         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
7665
7666         * targhooks.c (default_ira_cover_classes): Remove.
7667
7668         * targhooks.h (default_ira_cover_classes): Ditto.
7669
7670         * haifa-sched.c: Remove mentioning cover classes from the file.
7671         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7672         ira_pressure_classes and ira_pressure_classes_num instead of
7673         ira_reg_class_cover_size and ira_reg_class_cover.  Use
7674         sched_regno_pressure_class instead of sched_regno_cover_class.
7675         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7676         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7677
7678         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
7679         classes from the file.
7680         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7681         (struct object_hard_regs, struct object_hard_regs_node): New.
7682         (struct ira_object): New members profitable_hard_regs,
7683         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7684         (struct ira_allocno): Rename cover_class to aclass.  Rename
7685         cover_class_cost and updated_cover_class_cost to class_cost and
7686         updated_class_cost.  Remove splay_removed_p and
7687         left_conflict_size.  Add new members colorable_p.
7688         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7689         (ALLOCNO_COLORABLE_P): New macro.
7690         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7691         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7692         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7693         (OBJECT_...): Rename parameter C to O.
7694         (OBJECT_PROFITABLE_HARD_REGS): New macro.
7695         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7696         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7697         (struct target_ira_int): New members x_ira_max_memory_move_cost,
7698         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7699         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7700         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7701         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
7702         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
7703         x_ira_reg_class_subunion.
7704         (ira_max_memory_move_cost, ira_max_register_move_cost)
7705         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7706         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7707         (ira_important_class_nums, ira_reg_class_superunion): New macros.
7708         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
7709         (ira_reg_class_union): Rename to ira_reg_class_subunion.
7710         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7711         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7712         (ira_tune_allocno_costs_and_cover_classes): Rename to
7713         ira_tune_allocno_costs.
7714         (ira_debug_hard_regs_forest): New.
7715         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7716         (ira_object_conflict_iter_next): Fix comments.
7717         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
7718         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7719         cover_class to aclass.
7720         (ira_allocate_and_accumulate_costs): Ditto.
7721         (ira_allocate_and_set_or_copy_costs): Ditto.
7722
7723         * opts.c (decode_options): Remove ira_cover_class check.
7724
7725         * ira-color.c: Remove mentioning cover classes from the file.  Use
7726         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7727         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7728         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7729         (splay-tree.h): Remove include.
7730         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7731         before copy_freq_compare_func.
7732         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7733         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7734         New definitions.
7735         (hard_regs_roots, hard_regs_node_vec): Ditto.
7736         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7737         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7738         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7739         (create_new_object_hard_regs_node): Ditto.
7740         (add_new_object_hard_regs_node_to_forest): Ditto.
7741         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
7742         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7743         Ditto.
7744         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
7745         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
7746         (remove_unused_object_hard_regs_nodes): Ditto.
7747         (enumerate_object_hard_regs_nodes): Ditto.
7748         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
7749         (object_hard_regs_subnode_t): Ditto.
7750         (struct object_hard_regs_subnode): Ditto.
7751         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
7752         (setup_object_hard_regs_subnode_index): Ditto.
7753         (get_object_hard_regs_subnodes_num): Ditto.
7754         (form_object_hard_regs_nodes_forest): Ditto.
7755         (finish_object_hard_regs_nodes_tree): Ditto.
7756         (finish_object_hard_regs_nodes_forest): Ditto.
7757         (allocnos_have_intersected_live_ranges_p): Rename to
7758         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7759         (pseudos_have_intersected_live_ranges_p): Rename to
7760         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7761         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7762         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7763         (update_copy_costs): Remove assert.  Skip cost update if the hard
7764         reg does not belong the class.
7765         (assign_hard_reg): Process only profitable hard regs.
7766         (uncolorable_allocnos_num): Make it scalar.
7767         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7768         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7769         and ira_reg_class_max_nregs.
7770         (bucket_allocno_compare_func): Check frequency first.
7771         (sort_bucket): Add compare function as a parameter.
7772         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7773         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7774         (push_allocno_to_stack): Rewrite for checking new allocno
7775         colorability.
7776         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
7777         (push_only_colorable): Pass new parameter to sort_bucket.
7778         (push_allocno_to_spill): Remove.
7779         (allocno_spill_priority_compare): Make it inline and rewrite.
7780         (splay_tree_allocate, splay_tree_free): Remove.
7781         (allocno_spill_sort_compare): New function.
7782         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
7783         build and use splay tree.  Choose first allocno in uncolorable
7784         allocno bucket to spill.  Remove setting spill cost.
7785         (all_conflicting_hard_regs): Remove.
7786         (setup_allocno_available_regs_num): Check only profitable hard
7787         regs.  Print info about hard regs nodes.
7788         (setup_allocno_left_conflicts_size): Remove.
7789         (put_allocno_into_bucket): Don't call
7790         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
7791         (improve_allocation): New.
7792         (color_allocnos): Call setup_profitable_hard_regs,
7793         form_object_hard_regs_nodes_forest, improve_allocation,
7794         finish_object_hard_regs_nodes_forest.  Setup spill cost.
7795         (print_loop_title): Use pressure classes.
7796         (color_allocnso): Ditto.
7797         (do_coloring): Remove allocation and freeing splay_tree_node_pool
7798         and allocnos_for_spilling.
7799         (ira_sort_regnos_for_alter_reg): Don't setup members
7800         {first,next}_coalesced_allocno.
7801         (color): Remove allocating and freeing removed_splay_allocno_vec.
7802         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7803         prohibited_class_mode_regs.
7804
7805         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
7806         formatting.
7807         (update_allocno_pressure_excess_length): Use pressure classes.
7808         (inc_register_pressure, dec_register_pressure): Check for pressure
7809         class.
7810         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7811         pressure class.  Use ira_reg_class_nregs instead of
7812         ira_reg_class_max_nregs.
7813         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7814         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7815         (single_reg_class): Use ira_reg_class_nregs instead of
7816         ira_reg_class_max_nregs.
7817         (process_bb_node_lives): Use pressure classes.
7818
7819         * ira-emit.c: Remove mentioning cover classes from the file.  Use
7820         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7821         (change_loop): Use pressure classes.
7822         (modify_move_list): Call ira_set_allocno_class instead of
7823         ira_set_allocno_cover_class.
7824
7825         * ira-build.c: Remove mentioning cover classes from the file.  Use
7826         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7827         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
7828         ALLOCNO_UPDATED_CLASS_COST instead of
7829         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7830         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7831         (ira_create_allocno): Remove initialization of
7832         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
7833         ALLOCNO_COLORABLE_P.
7834         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7835         Update conflict regs for the objects.
7836         (create_cap_allocno): Remove assert.  Don't propagate
7837         ALLOCNO_AVAILABLE_REGS_NUM.
7838         (ira_free_allocno_costs): New function.
7839         (finish_allocno): Change a part of code into call of
7840         ira_free_allocno_costs.
7841         (low_pressure_loop_node_p): Use pressure classes.
7842         (object_range_compare_func): Don't compare classes.
7843         (setup_min_max_conflict_allocno_ids): Ditto.
7844
7845         * loop-invariant.c: Remove mentioning cover classes from the file.
7846         Use ira_pressure_classes and ira_pressure_classes_num instead of
7847         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
7848         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7849         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7850         Use reg_allocno_class instead of reg_cover_class.
7851         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7852         STACK_REG_COVER_CLASS.
7853         (get_regno_cover_class): Rename to get_regno_pressure_class.
7854         (move_loop_invariants): Initialize and finalize regstat.
7855
7856         * ira.c: Remove mentioning cover classes from the file.  Add
7857         comments about coloring without cover classes.  Use ALLOCNO_CLASS
7858         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7859         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7860         setup_class_subset_and_memory_move_costs.
7861         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7862         (setup_cover_and_important_classes): Rename to
7863         setup_allocno_and_important_classes.
7864         (setup_class_translate_array): New.
7865         (setup_class_translate): Call it for allocno and pressure classes.
7866         (cover_class_order): Rename to allocno_class_order.
7867         (comp_reg_classes_func): Use ira_allocno_class_translate instead
7868         of ira_class_translate.
7869         (reorder_important_classes): Set up ira_important_class_nums.
7870         (setup_reg_class_relations): Set up ira_reg_class_superunion.
7871         (print_class_cover): Rename to print_classes.  Add parameter.
7872         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7873         Print pressure classes too.
7874         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
7875         setup_reg_subclasses.
7876         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7877         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7878         (setup_prohibited_class_mode_regs): Use
7879         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
7880         (clarify_prohibited_class_mode_regs): New function.
7881         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7882         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7883         (ira_init_once): Initialize them.
7884         (free_register_move_costs): Process them.
7885         (ira_init): Move calls of find_reg_classes and
7886         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7887         Call clarify_prohibited_class_mode_regs.
7888         (ira_no_alloc_reg): Remove.
7889         (too_high_register_pressure_p): Use pressure classes.
7890
7891         * sched-deps.c: Remove mentioning cover classes from the file.
7892         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7893         ira_pressure_classes and ira_pressure_classes_num instead of
7894         ira_reg_class_cover_size and ira_reg_class_cover.
7895         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7896         sched_regno_pressure_class instead of sched_regno_cover_class.
7897         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
7898         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7899
7900         * ira.h: Add 2010 to Copyright.
7901         (ira_no_alloc_reg): Remove external.
7902         (struct target_ira): Rename x_ira_hard_regno_cover_class,
7903         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7904         x_ira_class_translate to x_ira_hard_regno_allocno_class,
7905         x_ira_allocno_classes_num, x_ira_allocno_classes, and
7906         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
7907         x_ira_pressure_classes, x_ira_pressure_class_translate, and
7908         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
7909         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
7910         x_ira_no_alloc_regs.
7911         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7912         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7913         ira_allocno_classes_num and ira_allocno_classes.
7914         (ira_class_translate): Rename to ira_allocno_class_translate.
7915         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7916         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7917         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7918         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7919         (ira_no_alloc_regs): New.
7920
7921         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
7922         classes from the file.  Use ALLOCNO_CLASS instead of
7923         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
7924         ALLOCNO_COVER_CLASS_COST.
7925         (regno_cover_class): Rename to regno_aclass.
7926         (record_reg_classes): Use ira_reg_class_subunion instead of
7927         ira_reg_class_union.
7928         (record_address_regs): Check overflow.
7929         (scan_one_insn): Ditto.
7930         (print_allocno_costs): Print total mem cost fore regional allocation.
7931         (print_pseudo_costs): Use REG_N_REFS.
7932         (find_costs_and_classes): Use classes intersected with them on the
7933         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
7934         ira_reg_class_union.  Use ira_allocno_class_translate and
7935         regno_aclass instead of ira_class_translate and regno_cover_class.
7936         Modify code for finding regno_aclass.  Setup preferred classes for
7937         the next pass.
7938         (setup_allocno_cover_class_and_costs): Rename to
7939         setup_allocno_class_and_costs.  Use regno_aclass instead of
7940         regno_cover_class.  Use ira_set_allocno_class instead of
7941         ira_set_allocno_cover_class.
7942         (init_costs, finish_costs): Use regno_aclass instead of
7943         regno_cover_class.
7944         (ira_costs): Use setup_allocno_class_and_costs instead of
7945         setup_allocno_cover_class_and_costs.
7946         (ira_tune_allocno_costs_and_cover_classes): Rename to
7947         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
7948         by processing objects.  Use ira_reg_class_max_nregs instead of
7949         ira_reg_class_nregs.
7950
7951         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
7952
7953         * sched-int.h: Remove mentioning cover classes from the file.
7954         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
7955
7956         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
7957         classes from the file.
7958         (struct reg_pref): Rename coverclass into allocnoclass.
7959         (reg_cover_class): Rename to reg_allocno_class.
7960
7961         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
7962
7963         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
7964
7965         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
7966
7967         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
7968
7969         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
7970
7971         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
7972
7973         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
7974
7975         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
7976
7977         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
7978
7979         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
7980
7981         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
7982         (i386_ira_cover_classes): Ditto.
7983
7984         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
7985
7986         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
7987
7988         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
7989
7990         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
7991
7992         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
7993
7994         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
7995
7996         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
7997         (mips_ira_cover_classes): Ditto.
7998
7999         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
8000
8001         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
8002
8003         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
8004
8005         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
8006
8007         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8008
8009         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8010         (IRA_COVER_CLASSES_VSX): Ditto.
8011
8012         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8013         (rs6000_ira_cover_classes): Ditto.
8014
8015         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8016
8017         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8018
8019         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8020
8021         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8022
8023         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8024
8025         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8026
8027         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8028
8029         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8030
8031         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8032
8033         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8034
8035 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
8036
8037         PR debug/48253
8038         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8039         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8040         dw_fde_unlikely_section_end_label, cold_in_std_section,
8041         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8042         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8043         fields.
8044         (output_fde): Use dw_fde_second_{begin,end} if second is
8045         true, otherwise dw_fde_{begin,end}.
8046         (output_call_frame_info): Test dw_fde_second_begin != NULL
8047         instead of dw_fde_switched_sections.
8048         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8049         fields, initialize new fields.  Initialize in_std_section
8050         unconditionally from the first partition.
8051         (dwarf2out_end_epilogue): Don't override dw_fde_end when
8052         dw_fde_second_begin is non-NULL.
8053         (dwarf2out_switch_text_section): Stop initializing removed
8054         dw_fde_struct fields, initialize new fields, initialize
8055         also dw_fde_end here.  Set dw_fde_switch_cfi even when
8056         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
8057         (struct var_loc_list_def): Add last_before_switch field.
8058         (arange_table, arange_table_allocated, arange_table_in_use,
8059         ARANGE_TABLE_INCREMENT, add_arange): Removed.
8060         (size_of_aranges): Count !in_std_section and !second_in_std_section
8061         hunks in fdes, instead of looking at arange_table_in_use.
8062         (output_aranges): Add aranges_length argument, don't call
8063         size_of_aranges here.  Instead of using aranges_table*
8064         emit ranges for fdes when !in_std_section resp.
8065         !second_in_std_section.
8066         (dw_loc_list): Break ranges crossing section switch.
8067         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
8068         use dw_fde_second_end instead of dw_fde_end as end of last range.
8069         (gen_subprogram_die): Don't call add_arange.  Use
8070         dw_fde_{begin,end} for first partition and if switched
8071         section dw_fde_second_{begin,end} for the second.
8072         (var_location_switch_text_section_1,
8073         var_location_switch_text_section): New functions.
8074         (dwarf2out_begin_function): Initialize cold_text_section even
8075         when function_section () isn't text_section.
8076         (prune_unused_types): Don't walk arange_table.
8077         (dwarf2out_finish): Don't needlessly test
8078         flag_reorder_blocks_and_partition when testing cold_text_section_used.
8079         If info_section_emitted, call size_of_aranges and if it indicates
8080         non-empty .debug_aranges, call output_aranges with the computed
8081         size.  Stop using removed dw_fde_struct fields, use
8082         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8083         for second.
8084
8085         PR debug/48203
8086         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8087         create ENTRY_VALUE if incoming or address of incoming's MEM
8088         is a hard REG.
8089         * dwarf2out.c (mem_loc_descriptor): Don't emit
8090         DW_OP_GNU_entry_value of DW_OP_fbreg.
8091         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8092         on ENTRY_VALUE is able to find the canonical parameter VALUE.
8093         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8094         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8095         ENTRY_VALUE_EXPs.
8096         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8097         is a REG_P or MEM_P with REG_P address, compute hash directly
8098         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8099         (preserve_only_constants): Don't clear VALUES forwaring
8100         ENTRY_VALUE to some other VALUE.
8101
8102 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
8103
8104         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8105         instead of GEN_INT.
8106
8107 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8108
8109         * cfgexpand.c (expand_gimple_cond): Always set the source location and
8110         block before expanding the statement.
8111         (expand_gimple_stmt_1): Likewise.  Set them here...
8112         (expand_gimple_stmt): ...and not here.  Tidy.
8113         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8114         unknown.
8115
8116 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8117
8118         * Makefile.in: New rule for cprop.o.
8119         * gcse.c: Move constant/copy propagation to cprop.c.
8120         (compute_local_properties): Only handle expression tables.
8121         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8122         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8123         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8124         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
8125         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
8126         compute_cprop_data, find_used_regs, try_replace_reg,
8127         find_avail_set, cprop_jump, constprop_register, cprop_insn,
8128         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8129         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8130         find_bypass_set, reg_killed_on_edge, bypass_block,
8131         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8132         execute_rtl_cprop, pass_rtl_cprop): Move to...
8133         * cprop.c: ...here.  New file, constant/copy propagation for RTL
8134         moved from gcse.c to here with minor cleanups in duplicated code.
8135
8136 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8137
8138         * config/i386/i386.c (flag_opts): Fix a typo in
8139         -mavx256-split-unaligned-store.
8140
8141 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8142
8143         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8144         LIBCALL_VALUE): Remove macros.
8145         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8146         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8147         (h8300_function_value, h8300_libcall_value,
8148         h8300_function_value_regno_p): New functions.
8149
8150 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8151
8152         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8153
8154 2011-03-28  Jeff Law  <law@redhat.com>
8155
8156         * tree-ssa-threadupdate.c (redirect_edges): Call
8157         create_edge_and_update_destination_phis as needed.
8158         (create_edge_and_update_destination_phis): Accept new BB argument.
8159         All callers updated.
8160         (thread_block): Do not update the profile when threading around
8161         intermediate blocks.
8162         (thread_single_edge): Likewise.
8163         (determine_bb_domination_status): If BB is not a successor of the
8164         loop header, return NONDOMINATING.
8165         (register_jump_thread): Note when we register a jump thread around
8166         an intermediate block.
8167         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8168         (thread_across_edge): Use it.
8169
8170 2011-03-28  Tristan Gingold  <gingold@adacore.com>
8171
8172         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8173         when for_return is 2.
8174
8175 2011-03-28  Jeff Law  <law@redhat.com>
8176
8177         * var-tracking.c (canonicalize_values_mark): Delete unused
8178         lhs assignment.
8179         (canonicalize_values_star, set_variable_part): Likewise.
8180         (clobber_variable_part, delete_variable_part): Likewise.
8181
8182 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8183
8184         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8185
8186 2011-03-28  Martin Jambor  <mjambor@suse.cz>
8187
8188         * tree-inline.c (expand_call_inline): Do not check that destination
8189         node is analyzed.
8190         (optimize_inline_calls): Assert that destination node is analyzed.
8191         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8192         not call tree_lowering_passes.
8193         * cgraph.h (cgraph_analyze_function): Declare.
8194         * cgraphunit.c (cgraph_analyze_function): Make public.
8195
8196 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
8197
8198         * config/sparc/sparc-opts.h: New.
8199         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8200         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8201         (sparc_option_override): Store processor_type enumeration rather
8202         than string in cpu_default.  Remove name and enumeration from
8203         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
8204         without using sparc_select.  Use target_flags_explicit instead of
8205         fpu_option_set.
8206         * config/sparc/sparc.h (enum processor_type): Move to
8207         sparc-opts.h.
8208         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8209         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8210         HeaderInclude entry.
8211         (mcpu=, mtune=): Use Var and Enum.
8212         (sparc_processor_type): New Enum and EnumValue entries.
8213
8214 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8215             Iain Sandoe  <iains@gcc.gnu.org>
8216
8217         PR target/48245
8218         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8219
8220 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8221
8222         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8223         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8224         Insert new statements at it in lieu of STMT.
8225         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8226         * tree-vect-stmts.c (vectorizable_store): Likewise.
8227         (vectorizable_load): Likewise.
8228
8229 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
8230
8231         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8232         (divtf3): Ditto.
8233         (multf3): Ditto.
8234         (subtf3): Ditto.
8235
8236 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8237
8238         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8239         unaligned 256bit load/store.
8240         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8241         (*avx_movdqu<avxmodesuffix>): Likewise.
8242
8243 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8244
8245         PR target/48288
8246         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8247         * config/pa/pa.md (iordi3): Use new predicate in expander.
8248         (iorsi3): Likewise.
8249
8250 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
8251
8252         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
8253         FUNCTION_VALUE_REGNO_P): Remove macros.
8254         * config/mips/mips-protos.h (mips_function_value): Remove.
8255         * config/mips/mips.c (mips_function_value): Rename to...
8256         (mips_function_value_1): ... this. Make static.  Handle receiving
8257         the function type in 'fn_decl_or_type' argument.
8258         (mips_function_value, mips_libcall_value,
8259         mips_function_value_regno_p): New function.
8260         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8261         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8262
8263 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8264
8265         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8266         and -mavx256-split-unaligned-store.
8267         (ix86_option_override_internal): Split 32-byte AVX unaligned
8268         load/store by default.
8269         (ix86_avx256_split_vector_move_misalign): New.
8270         (ix86_expand_vector_move_misalign): Use it.
8271
8272         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8273         -mavx256-split-unaligned-store.
8274
8275         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8276         256bit load/store.  Generate unaligned store on misaligned memory
8277         operand.
8278         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8279         256bit load/store.
8280         (*avx_movdqu<avxmodesuffix>): Likewise.
8281
8282         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8283         -mavx256-split-unaligned-store.
8284
8285 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8286
8287         PR target/38598
8288         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8289         Update commentary.
8290
8291 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8292
8293         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8294         opno arguments with an expand_operand.  Use create_input_operand.
8295         (mips_prepare_builtin_target): Delete.
8296         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8297         functions.
8298         (mips_expand_builtin_direct): Use create_output_operand and
8299         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
8300         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
8301         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8302
8303 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
8304
8305         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8306         function.
8307         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8308
8309 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8310
8311         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8312         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
8313         basic blocks and call commit_edge_insertions directly.
8314         (fixup_abnormal_edges): Move from here to...
8315         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
8316         on the edges and return whether some have actually been inserted.
8317         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8318         compensation code.
8319
8320 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
8321
8322         PR rtl-optimization/48144
8323         * sel-sched-ir.c (merge_history_vect): Factor out from ...
8324         (merge_expr_data): ... here.
8325         (av_set_intersect): Rename to av_set_code_motion_filter.
8326         Update all callers.  Call merge_history_vect when an expression
8327         is found in both sets.
8328         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8329
8330 2011-03-26  Alan Modra  <amodra@gmail.com>
8331
8332         * config/rs6000/predicates.md (word_offset_memref_op): Handle
8333         cmodel medium addresses.
8334         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8335         64-bit gpr loads and stores.
8336         (rs6000_secondary_reload_ppc64): New function.
8337         * config/rs6000/rs6000-protos.h: Declare it.
8338         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8339
8340 2011-03-26  Alan Modra  <amodra@gmail.com>
8341
8342         PR target/47487
8343         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8344         GNU Go in traceback table.
8345
8346 2011-03-25  Richard Henderson  <rth@redhat.com>
8347
8348         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8349         if there are exactly 6 operands.
8350         (set_storage_via_setmem): Similarly.
8351
8352 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8353
8354         * collect2.c (write_c_file_stat): Handle backslash
8355         as right-hand directory separator.
8356         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8357         checking just for slash.
8358         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8359         instead of checking for trailing slash.
8360         * gcc.c (record_temp_file): Use filename_cmp instead
8361         of strcmp.
8362         (do_spec_1): Likewise.
8363         (replace_outfile_spec_function): Likewise.
8364         (is_directory): Use filename_ncmp instead of strncmp.
8365         (print_multilib_info): Likewise.
8366         * gcov.c (find_source): Use filename_cmp instead
8367         instead of strcmp.
8368         (make_gcov_file_name): Fix order of slash/backslash
8369         checks.
8370         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8371         (add_standard_paths): Likewise.
8372         * mips-tfile.c (saber_stop): Handle backslash.
8373         * prefix.c (update_path): Use filename_ncmp instead of
8374         strncmp.
8375         * profile.c (output_location): Use filename_cmp instead
8376         of strcmp.
8377         * read-md.c (handle_toplevel_file): Handle backslash.
8378         * tlink.c (frob_extension):  Likewise.
8379         * tree-cfg.c (same_line_p): Use filename_cmp instead of
8380         strcmp.
8381         * tree-dump.c (dequeue_and_dump): Handle backslash.
8382         * tree.c (get_file_function_name): Likewise.
8383         * gengtype.c (read_input_list): Likewise.
8384         (get_file_realbasename): Likewise.
8385         (get_output_file_with_visibility): Use filename_cmp
8386         instead of strcmp.
8387
8388 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
8389
8390         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8391         case to VFPv1.
8392
8393 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8394
8395         * fold-const.c (expr_location_or): New function.
8396         (fold_truth_not_expr): Call it.
8397
8398 2011-03-25  Jeff Law  <law@redhat.com>
8399
8400         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8401         va_end.
8402         * c-family/c-common.c (def_fn_type): Likewise.
8403         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8404         * emit-rtl.c (gen_rtvec): Likewise.
8405         * lto/lto-lang.c (def_fn_type): Likewise.
8406
8407 2011-03-25  Richard Guenther  <rguenther@suse.de>
8408
8409         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8410         also generate copies.
8411         (fini_copy_prop): Handle constant values properly.
8412
8413 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
8414
8415         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8416         mode size instead of bitsize with DWARF2_ADDR_SIZE.
8417         (hash_loc_operands, compare_loc_operands): Handle
8418         DW_OP_GNU_entry_value.
8419
8420 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8421
8422         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8423         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8424         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8425         comment and use macro TARGET_64BIT_MS_ABI instead.
8426         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8427         and change default behavior for 32-bit MS_ABI.
8428         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8429         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8430         32-bit, too.
8431         (ix86_cfun_abi): Likewise.
8432         (ix86_maybe_switch_abi): Adjust comment.
8433         (init_cumulative_args): Check for bit-ness in MS_ABI case.
8434         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8435         instead of checking for SYSV_ABI.
8436         (ix86_nsaved_sseregs): Likewise.
8437         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8438         to 16 bytes.
8439         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8440         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8441         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8442         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8443         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8444
8445 2011-03-25  Richard Guenther  <rguenther@suse.de>
8446
8447         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8448         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8449         (verify_gimple): Remove.
8450         * tree-cfg.c (verify_gimple_call): Merge verification
8451         from verify_stmts.
8452         (verify_gimple_phi): Merge verification from verify_stmts.
8453         (verify_gimple_label): New function.
8454         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8455         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8456         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8457         (verify_stmts): Rename to verify_gimple_in_cfg.
8458         (verify_gimple_in_cfg): New function.
8459         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8460         * tree-ssa.c (verify_ssa): Likewise.
8461         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8462
8463 2011-03-25  Richard Guenther  <rguenther@suse.de>
8464
8465         * passes.c (init_optimization_passes): Add FRE pass after
8466         early SRA.
8467
8468 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
8469             Andrew Stubbs  <ams@codesourcery.com>
8470
8471         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8472         for Cortex-A8.
8473         (arm_movdi_vfp_cortexa8): New pattern.
8474         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8475         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8476         instructions when tuning for Cortex-A8.  Set attribute "arch".
8477         * config/arm/arm.md: Move include arm-tune.md up a bit.
8478         (define_attr "arch"): Add "onlya8" and "nota8" values.
8479         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8480
8481 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8482
8483         PR bootstrap/48282
8484         Revert:
8485         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8486
8487         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8488         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8489         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8490         * passes.c (init_optimization_passes): Move
8491         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8492
8493 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8494
8495         * c-typeck.c (comptypes_internal): Replace target
8496         hook call of comp_type_attributes by version in tree.c file.
8497         * gimple.c (gimple_types_compatible_p_1): Likewise.
8498         * tree-ssa.c (useless_type_conversion_p): Likewise.
8499         * tree.c (build_type_attribute_qual_variant): Likewise.
8500         (attribute_value_equal): New static helper function.
8501         (comp_type_attributes): New function.
8502         (merge_attributes): Use attribute_value_equal for comparison.
8503         (attribute_list_contained): Likewise.
8504         * tree.h (comp_type_attributes): New prototype.
8505
8506 2011-03-25  Richard Guenther  <rguenther@suse.de>
8507
8508         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8509         of complex types at -O0.
8510         (verify_gimple_assign_binary): Likewise.
8511         (verify_gimple_assign_ternary): Likewise.
8512
8513 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8514
8515         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8516         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8517
8518 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8519
8520         PR debug/48041
8521         * dwarf2out.c (output_abbrev_section): Only write table when
8522         abbrev_die_table_in_use > 1.
8523
8524 2011-02-24  Richard Henderson  <rth@redhat.com>
8525
8526         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8527         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8528         (alpha_expand_unaligned_load_words): Use extql.
8529         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8530         (emit_insxl): Handle all modes for consistency.
8531
8532 2011-02-24  Richard Henderson  <rth@redhat.com>
8533
8534         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8535         (alpha_expand_unaligned_load): Likewise.
8536         (alpha_expand_unaligned_store): Likewise.
8537         (alpha_expand_unaligned_load_words): Likewise.
8538         (alpha_expand_unaligned_store_words): Likewise.
8539         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8540         (alpha_split_lock_test_and_set_12): Likewise.
8541         (print_operand, alpha_fold_builtin_extxx): Likewise.
8542         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8543         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8544         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8545         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8546         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8547         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8548         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8549         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8550         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8551         (extwl, extll, extql): Similarly.
8552         (inswh, inslh, insqh): Similarly.
8553         (mskbl, mskwl, mskll, mskql): Similarly.
8554         (mskwh, msklh, mskqh): Similarly.
8555
8556 2011-02-24  Richard Henderson  <rth@redhat.com>
8557
8558         * config/alpha/alpha.md (attribute isa): Add er, ner.
8559         (attribute enabled): Handle them.
8560         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8561
8562 2011-02-24  Richard Henderson  <rth@redhat.com>
8563
8564         * config/alpha/alpha.md (attribute isa): Add vms.
8565         (attribute enabled): Handle it.
8566         (*movsf): Merge *movsf_{nofix,fix,nofp}.
8567         (*movdf): Merge *movdf_{nofix,fix,nofp}.
8568         (*movtf): Rename from *movtf_internal for consistency.
8569         (*movsi): Merge with *movsi_nt_vms.
8570         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8571         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8572         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8573         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8574
8575 2011-02-24  Richard Henderson  <rth@redhat.com>
8576
8577         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8578         (extendqisi2, extendhisi2): Likewise.
8579         (extendqidi2): Simplify BWX/non-BWX expansions.
8580         (extendhidi2): Similarly.
8581
8582 2011-02-24  Richard Henderson  <rth@redhat.com>
8583
8584         * config/alpha/alpha.md (attribute isa): New.
8585         (attribute enabled): New.
8586         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8587         (zero_extendqisi2, zero_extendqidi2): Similarly.
8588         (zero_extendhisi2, zero_extendhidi2): Similarly.
8589         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8590
8591 2011-02-24  Richard Henderson  <rth@redhat.com>
8592
8593         * config/alpha/predicates.md (input_operand): Revert last change;
8594         update comment to mention 32-bit VMS rather than Windows.
8595
8596 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8597
8598         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8599         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8600         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8601         * passes.c (init_optimization_passes): Move
8602         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8603
8604 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8605
8606         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8607
8608 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8609
8610         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8611         correctly.
8612
8613 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
8614
8615         PR debug/48204
8616         * simplify-rtx.c (simplify_const_unary_operation): Call
8617         real_convert when changing mode class with FLOAT_EXTEND.
8618
8619 2011-03-24  Nick Clifton  <nickc@redhat.com>
8620
8621         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8622         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8623         * config/rx/rx.c (rx_option_override): Set align_jumps,
8624         align_loops and align_labels if not set by the user.
8625         (rx_align_for_label): New function.
8626         (rx_max_skip_for_label): New function.
8627         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8628         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8629         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8630         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8631         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8632
8633 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8634
8635         PR rtl-optimization/48263
8636         * optabs.c (expand_binop_directly): Reinstate convert_modes code
8637         and original commutative_p handling.  Use maybe_gen_insn.
8638
8639 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8640
8641         * reload.c (find_reloads_subreg_address): Add address_reloaded
8642         parameter and return true there if the full address has been
8643         reloaded.
8644         (find_reloads_toplev): Pass address_reloaded flag.
8645         (find_reloads_address_1): Don't use address_reloaded parameter.
8646
8647 2011-03-24  Jeff Law  <law@redhat.com>
8648
8649         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8650         unused variable "ann".
8651         (remove_unused_locals): Likewise.
8652
8653         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8654         statement.
8655
8656         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8657         after it is freed.
8658
8659 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8660
8661         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8662         for invalid symbolic addresses.
8663         (s390_secondary_reload): Don't use s390_check_symref_alignment for
8664         larl operands.
8665
8666 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8667
8668         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8669         the argument in calls to fold_truth_not_expr.
8670
8671 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8672
8673         * tree.c (record_node_allocation_statistics): New function.
8674         (make_node_stat, copy_node_stat, build_string): Call it.
8675         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8676         (build1_stat, build_omp_clause): Likewise.
8677
8678 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8679
8680         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8681         last commit.
8682
8683 2011-03-24  Richard Guenther  <rguenther@suse.de>
8684
8685         PR tree-optimization/48271
8686         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8687         blocks that still exist.
8688
8689 2011-03-24  Richard Guenther  <rguenther@suse.de>
8690
8691         PR tree-optimization/48270
8692         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8693         not free datarefs before ddrs.
8694
8695 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8696
8697         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8698         from the address built for a reference with variable offset.
8699
8700 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8701
8702         PR target/48237
8703         * config/i386/i386.md (*movdf_internal_rex64): Do not split
8704         alternatives that can be handled with movq or movabsq insn.
8705         (*movdf_internal): Disable for !TARGET_64BIT.
8706         (*movdf_internal_nointeger): Ditto.
8707         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8708
8709 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8710
8711         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8712         (FUNCTION_ARG_ADVANCE): Likewise.
8713         * tm.texi.in: Change references to them to hook references.
8714         * tm.texi: Regenerate.
8715         * targhooks.c (default_function_arg): Eliminate check for target macro.
8716         (default_function_incoming_arg): Likewise.
8717         (default_function_arg_advance): Likewise.
8718         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8719         (function_arg_advance): Likewise.
8720         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8721
8722 2011-03-24  Richard Guenther  <rguenther@suse.de>
8723
8724         PR middle-end/48269
8725         * tree-object-size.c (addr_object_size): Do not double-account
8726         for MEM_REF offsets.
8727
8728 2011-03-24  Diego Novillo  <dnovillo@google.com>
8729
8730         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
8731         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
8732         (lto_input_data_block): Move from lto-opts.c.  Make extern.
8733         Update all users.
8734         (lto_input_string): Rename from input_string.  Make extern.
8735         Update all users.
8736         * lto-streamer-out.c (lto_output_string_with_length): Rename from
8737         output_string_with_length.
8738         Output 0 to indicate a non-NULL string.  Update all callers to
8739         not emit 0.
8740         (lto_output_string): Rename from output_string.  Make extern.
8741         Update all users.
8742         (lto_output_decl_state_streams): Make extern.
8743         (lto_output_decl_state_refs): Make extern.
8744         * lto-streamer.h (lto_input_string): Declare.
8745         (lto_input_data_block): Declare.
8746         (lto_output_string): Declare.
8747         (lto_output_string_with_length): Declare.
8748         (lto_output_decl_state_streams): Declare.
8749         (lto_output_decl_state_refs): Declare.
8750
8751 2011-03-24  Richard Guenther  <rguenther@suse.de>
8752
8753         PR tree-optimization/46562
8754         * tree.c (build_invariant_address): New function.
8755         * tree.h (build_invariant_address): Declare.
8756         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
8757         a renamed function moved ...
8758         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
8759         Take valueization callback parameter.
8760         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8761         * gimple-fold.h: New file.
8762         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8763         (ccp_fold, fold_const_aggregate_ref,
8764         fold_ctor_reference, fold_nonarray_ctor_reference,
8765         fold_array_ctor_reference, fold_string_cst_ctor_reference,
8766         get_base_constructor): Move ...
8767         * gimple-fold.c: ... here.
8768         (gimple_fold_stmt_to_constant_1): New function
8769         split out from ccp_fold.  Take a valueization callback parameter.
8770         Valueize all operands.
8771         (gimple_fold_stmt_to_constant): New wrapper function.
8772         (fold_const_aggregate_ref_1): New function split out from
8773         fold_const_aggregate_ref.  Take a valueization callback parameter.
8774         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8775         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8776         invariant POINTER_PLUS_EXPRs to invariant form.
8777         (vn_valueize): New function.
8778         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8779         * tree-vrp.c (vrp_valueize): New function.
8780         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8781         to fold statements to constants.
8782         * tree-ssa-pre.c (eliminate): Properly guard propagation of
8783         function declarations.
8784         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8785         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8786
8787 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8788
8789         * config/h8300/predicates.md (jump_address_operand): Fix register
8790         mode check.
8791
8792 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
8793
8794         * doc/invoke.texi (max-stores-to-sink): Document.
8795         * params.h (MAX_STORES_TO_SINK): Define.
8796         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8797         if either vectorization or if-conversion is disabled.
8798         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8799         tree-vect-data-refs.c vect_equal_offsets.
8800         (dr_equal_offsets_p): New function.
8801         (find_data_references_in_bb): Remove static.
8802         * tree-data-ref.h (find_data_references_in_bb): Declare.
8803         (dr_equal_offsets_p): Likewise.
8804         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8805         (vect_drs_dependent_in_basic_block): Update calls to
8806         vect_equal_offsets.
8807         (vect_check_interleaving): Likewise.
8808         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8809         (cond_if_else_store_replacement): Rename to...
8810         (cond_if_else_store_replacement_1): ... this.  Change arguments and
8811         documentation.
8812         (cond_if_else_store_replacement): New function.
8813         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8814         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8815
8816 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
8817
8818         PR target/46934
8819         * config/arm/arm.md (casesi): Use the gen_int_mode() function
8820         to subtract lower bound instead of GEN_INT().
8821
8822 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
8823
8824         PR other/48179
8825         PR other/48221
8826         PR other/48234
8827         * doc/extend.texi (Alignment): Move section to match order in TOC.
8828         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8829         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8830
8831 2011-03-23  Jeff Law  <law@redhat.com>
8832
8833         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8834         before removing the edge.
8835
8836         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8837         it may have been freed by redirect_branch_edge or
8838         redirect_edge_succ_nodup.
8839
8840 2011-03-23  Richard Guenther  <rguenther@suse.de>
8841
8842         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
8843         (check_va_list_escapes): Likewise.
8844         (check_all_va_list_escapes): Likewise.
8845
8846 2011-03-23  Richard Guenther  <rguenther@suse.de>
8847
8848         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8849         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8850         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8851         (alias.o): Likewise.
8852         (ipa-type-escape.o): Remove.
8853         (ipa-struct-reorg.o): Likewise.
8854         (GTFILES): Remove ipa-struct-reorg.c.
8855         * alias.c: Do not include ipa-type-escape.h.
8856         * tree-ssa-alias.c: Likewise.
8857         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8858         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8859         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8860         and ipa-type-escape passes.
8861         * tree-pass.h (pass_ipa_type_escape): Remove.
8862         (pass_ipa_struct_reorg): Likewise.
8863         * ipa-struct-reorg.h: Remove.
8864         * ipa-struct-reorg.c: Likewise.
8865         * ipa-type-escape.h: Likewise.
8866         * ipa-type-escape.c: Likewise.
8867         * doc/invoke.texi (-fipa-struct-reorg): Remove.
8868         (--param struct-reorg-cold-struct-ratio): Likewise.
8869         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8870         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8871         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8872
8873 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8874
8875         * config/s390/2084.md: Enable all insn reservations also for z9_ec
8876         cpu attribute value.
8877         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8878         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8879         * config/s390/s390.c (processor_flags_table): New constant array.
8880         (s390_handle_arch_option): Remove.
8881         (s390_handle_option): Remove s390_handle_arch_option invocations
8882         and OPT_mwarn_framesize_ handling.
8883         (s390_option_override): Remove s390_handle_arch_option invocation.
8884         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8885         warnings.
8886         * config/s390/s390.md (cpu attribute): Add z9_ec value.
8887         * config/s390/s390.opt (s390_tune, s390_arch)
8888         (march=): Replace s390_arch_option enum and values with
8889         processor_type.  Set variable name to s390_arch.  Set
8890         initialization value.
8891         (mtune=): Replace s390_arch_option with processor_type.  Set
8892         variable name to s390_tune.  Set initialization value.
8893
8894 2011-03-23  Julian Brown  <julian@codesourcery.com>
8895
8896         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8897         accesses which are not naturally aligned.
8898
8899 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8900
8901         PR target/47553
8902         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8903
8904 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8905
8906         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8907         parameter from "int" to "enum insn_code".
8908         (expand_operand_type): New enum.
8909         (expand_operand): New structure.
8910         (create_expand_operand): New function.
8911         (create_fixed_operand, create_output_operand): Likewise
8912         (create_input_operand, create_convert_operand_to): Likewise.
8913         (create_convert_operand_from, create_address_operand): Likewise.
8914         (create_integer_operand): Likewise.
8915         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8916         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8917         (expand_insn, expand_jump_insn): Likewise.
8918         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8919         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8920         (expand_movstr, expand_builtin___clear_cache): Likewise.
8921         (expand_builtin_lock_release): Likewise.
8922         * explow.c (allocate_dynamic_stack_space): Likewise.
8923         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
8924         and use the default handling in that case.
8925         * expmed.c (check_predicate_volatile_ok): Delete.
8926         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8927         (emit_cstore): Likewise.
8928         * expr.c (emit_block_move_via_movmem): Likewise.
8929         (set_storage_via_setmem, expand_assignment): Likewise.
8930         (emit_storent_insn, try_casesi): Likewise.
8931         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
8932         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8933         (expand_vec_shift_expr, expand_binop_directly): Likewise.
8934         (expand_twoval_unop, expand_twoval_binop): Likewise.
8935         (expand_unop_direct, emit_indirect_jump): Likewise.
8936         (emit_conditional_move, vector_compare_rtx): Likewise.
8937         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8938         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8939         (expand_sync_lock_test_and_set): Likewise.
8940         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
8941         (emit_unop_insn): Likewise.
8942         (expand_copysign_absneg): Change icode to an insn_code.
8943         (create_convert_operand_from_type): New function.
8944         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
8945         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8946         (expand_insn, expand_jump_insn): Likewise.
8947         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
8948         than const_int_operand for operand 2.
8949
8950 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8951
8952         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
8953         if possible.
8954
8955 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8956
8957         * emit-rtl.c (emit_pattern_before_noloc): New function.
8958         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
8959         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
8960         (emit_pattern_after_noloc): New function.
8961         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
8962         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
8963
8964 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8965
8966         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
8967         (__ffsDI2): Likewise.
8968
8969 2011-03-22  Richard Henderson  <rth@redhat.com>
8970
8971         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
8972         of !TARGET_ABI_OPEN_VMS.
8973         (alpha_trampoline_init, alpha_start_function): Likewise.
8974         (alpha_expand_epilogue, alpha_file_start): Likewise.
8975         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
8976         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
8977         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
8978         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
8979         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
8980
8981 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8982
8983         * config/s390/s390-opts.h: New.
8984         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
8985         s390_arch_flags, s390_warn_framesize, s390_stack_size,
8986         s390_stack_guard): Remove.
8987         (s390_handle_arch_option): Return void.  Take enum
8988         s390_arch_option value instead of string and searching array.
8989         (s390_handle_option): Don't assert that global structures are in
8990         use.  Access variables via opts pointer.  Use error_at.  Don't use
8991         sscanf for -mstack-guard= or -mstack-size=.  Update call to
8992         s390_handle_arch_option.
8993         (s390_option_override): Update call to s390_handle_arch_option.
8994         (s390_emit_prologue): Use %d format for s390_stack_size in
8995         diagnostic.  Use %wd for HOST_WIDE_INT.
8996         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
8997         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
8998         * config/s390/s390.opt (config/s390/s390-opts.h): New
8999         HeaderInclude entry.
9000         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
9001         s390_arch_flags, s390_warn_framesize): New Variable entries.
9002         (s390_arch_option): New Enum and EnumValue entries.
9003         (march=): Use Enum instead of Var.
9004         (mstack-guard=, mstack-size=): Use UInteger and Var.
9005         (mtune=): Use Enum.
9006
9007 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9008
9009         * config/score/score.c (score_handle_option): Don't assert that
9010         global structures are in use.  Access target_flags via opts
9011         pointer.  Use value of -march= option to determine target_flags
9012         settings.
9013         * config/score/score.opt (march=): Use Enum.
9014         (score_arch): New Enum and EnumValue entries.
9015
9016 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9017
9018         * config/mep/mep.c (option_mtiny_specified): Remove.
9019         (mep_option_override): Move register handling for -mivc2 from
9020         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
9021         instead of option_mtiny_specified.
9022         (mep_handle_option): Access target_flags via opts pointer.  Don't
9023         assert that global structures are in use.  Defer part of -mivc2
9024         handling and move it to mep_option_override.
9025         * config/mep/mep.opt (IVC2): New Mask entry.
9026         (mivc2): Use Var and Defer instead of Mask.
9027
9028 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9029
9030         * config/v850/v850-opts.h: New.
9031         * config/v850/v850.c (small_memory): Replace with
9032         small_memory_physical_max array.  Make that array static const.
9033         (v850_handle_memory_option): Take integer value of argument.  Take
9034         gcc_options pointer, option text and location.  Return void.
9035         Update for changes to small memory structures.
9036         (v850_handle_option): Access target_flags via opts pointer.  Don't
9037         assert that global structures are in use.  Update calls to
9038         v850_handle_memory_option.
9039         (v850_encode_data_area): Update references to small memory settings.
9040         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
9041         (enum small_memory_type): Move to v850-opts.h.
9042         * config/v850/v850.opt (config/v850/v850-opts.h): New
9043         HeaderInclude entry.
9044         (small_memory_max): New Variable entry.
9045         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
9046         (mtda, mzda): Likewise.
9047
9048 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9049
9050         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9051         pointer.  Don't assert that global structures are in use.
9052
9053 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9054
9055         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9056         via opts pointer.  Don't assert that global structures are in use.
9057
9058 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9059
9060         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9061         (munix=93): Use Var.
9062         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9063         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9064         * config/pa/pa-opts.h: New.
9065         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9066         (pa_handle_option): Don't assert that global structures are in
9067         use.  Access target_flags via opts pointer.  Don't handle
9068         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9069         OPT_munix_98 here.
9070         (pa_option_override): Handle deferred OPT_mfixed_range_.
9071
9072 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9073
9074         * config/mn10300/mn10300-opts.h: New.
9075         * config/mn10300/mn10300.c (mn10300_processor,
9076         mn10300_tune_string): Remove.
9077         (mn10300_handle_option): Don't assert that global structures are
9078         in use.  Access mn10300_processor via opts pointer.  Don't handle
9079         OPT_mtune_ here.
9080         * config/mn10300/mn10300.h (enum processor_type): Move to
9081         mn10300-opts.h.
9082         (mn10300_processor): Remove.
9083         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9084         HeaderInclude entry.
9085         (mn10300_processor): New Variable entry.
9086         (mtune=): Use Var.
9087
9088 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9089
9090         * config/microblaze/microblaze.c: Don't include opts.h.
9091         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9092         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9093         (mno-clearbss): Use Var and Warn.
9094
9095 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9096
9097         * config/m32r/m32r-opts.h: New.
9098         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9099         (m32r_handle_option): Don't assert that global structures are in
9100         use.  Access target_flags and m32r_cache_flush_func via opts
9101         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
9102         OPT_mno_flush_trap here.
9103         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9104         include of m32r-opts.h.
9105         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9106         HeaderInclude entry.
9107         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9108         (mmodel=): Use Enum and Var.
9109         (m32r_model): New Enum and EnumValue entries.
9110         (mno-flush-trap): Use Var.
9111         (msdata=): Use Enum and Var.
9112         (m32r_sdata): New Enum and EnumValue entries.
9113
9114 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9115
9116         * config/m32c/m32c.c: Don't include opts.h.
9117         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9118         m32c_handle_option): Remove.
9119         (m32c_option_override): Check global_options_set.x_target_memregs
9120         instead of target_memregs_set.
9121         * config/m32c/m32c.h (target_memregs): Remove.
9122         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9123         variable.
9124
9125 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9126
9127         * config/iq2000/iq2000-opts.h: New.
9128         * config/iq2000/iq2000.c: Don't include opts.h.
9129         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
9130         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
9131         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9132         HeaderInclude entry.
9133         (iq2000_tune): New Variable entry.
9134         (march=): Add comment.  Use Enum.
9135         (iq2000_arch): New Enum and EnumValue entries.
9136         (mcpu=): Use Enum and Var.
9137         (iq2000_tune): New Enum and EnumValue entries.
9138
9139 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9140
9141         * config/ia64/ia64-opts.h: New.
9142         * config/ia64/ia64.c (ia64_tune): Remove.
9143         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9144         here.  Use error_at.
9145         (ia64_option_override): Handle deferred OPT_mfixed_range_.
9146         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9147         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9148         HeaderInclude entry.
9149         (ia64_tune): New Variable entry.
9150         (mfixed-range=): Use Defer and Var.
9151         (mtune=): Use Enum and Var.
9152         (ia64_tune): New Enum and EnumValue entries.
9153
9154 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9155
9156         * config/frv/frv-opts.h: New.
9157         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9158         frv-opts.h.
9159         (frv_cpu_type): Remove.
9160         * config/frv/frv.c: Don't include opts.h.
9161         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
9162         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
9163         (frv_cpu_type): New Variable entry.
9164         (frv_cpu): New Enum and EnumValue entries.
9165
9166 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9167
9168         * config/cris/cris.c (cris_handle_option): Access target_flags via
9169         opts pointer.  Don't assert that global structures are in use.
9170         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9171         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9172
9173 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9174
9175         * config/bfin/bfin-opts.h: New.
9176         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9177         bfin_si_revision, bfin_workarounds): Remove.
9178         (bfin_cpus): Make static const.
9179         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9180         not bfin_lib_id_given.
9181         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
9182         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
9183         pointer. Use error_at.  Don't assert that global structures are in use.
9184         * config/bfin/bfin.h: Include bfin-opts.h.
9185         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9186         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9187         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9188         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9189         entries.
9190
9191 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9192
9193         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9194         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9195         or -msoft-float here.
9196         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9197         -msoft-float and -mhard-float.
9198         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
9199         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9200         msoft-float.
9201         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9202         -msoft-float.
9203         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9204         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9205         not mhard-float.
9206         (LIBGCC_SPEC): Don't handle -msoft-float.
9207         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9208         -mhard-float.
9209         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9210         msoft-float.
9211         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9212         -mfloat-abi=*, not -msoft-float and -mhard-float.
9213         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9214         -msoft-float.
9215         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9216         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9217         mhard-float and msoft-float.
9218         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9219         mfloat-abi=soft in comments, not mhard-float and msoft-float.
9220         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9221         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9222         mhard-float.
9223         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9224         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9225         msoft-float.
9226         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9227         not mhard-float.
9228         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9229         not msoft-float.
9230
9231 2011-03-22  Richard Henderson  <rth@redhat.com>
9232
9233         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9234         TARGET_ABI_WINDOWS_NT.
9235         (alpha_output_function_end_prologue): Likewise.
9236         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9237         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9238         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9239         (trap, *movsi_nt_vms): Likewise.
9240         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9241         (*tablejump_osf_nt_internal): Remove.
9242         * config/alpha/predicates.md (input_operand): Only test Pmode.
9243
9244 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9245
9246         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9247         via opts pointer.  Use error_at.  Don't assert that global
9248         structures are in use.
9249
9250 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9251
9252         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9253         (ix86_handle_option): Access ix86_isa_flags and
9254         ix86_isa_flags_explicit via opts pointer.  Don't assert that
9255         global structures are in use.
9256         (ix86_function_specific_save, ix86_function_specific_restore):
9257         Update ix86_isa_flags_explicit field name.
9258         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
9259         (ix86_isa_flags_explicit): Rename TargetSave entry to
9260         x_ix86_isa_flags_explicit.
9261
9262 2011-03-22  Richard Henderson  <rth@redhat.com>
9263
9264         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9265         (alpha_option_override, direct_return): Likewise.
9266         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9267         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9268         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9269         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9270         (alpha_expand_epilogue, alpha_end_function): Likewise.
9271         (alpha_init_libfuncs): Likewise.
9272         (struct machine_function): Remove unicosmk members.
9273         (print_operand) ['t']: Remove.
9274         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9275         unicosmk_output_module_name, unicosmk_output_common,
9276         current_section_align, unicosmk_output_text_section_asm_op,
9277         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9278         unicosmk_section_type_flags, unicosmk_unique_section,
9279         unicosmk_asm_named_section, unicosmk_insert_attributes,
9280         unicosmk_output_align, unicosmk_defer_case_vector,
9281         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9282         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9283         unicosmk_output_ssib, unicosmk_add_call_info_word,
9284         unicosmk_extern_head, unicosmk_output_default_externs,
9285         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9286         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9287         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9288         * config/alpha/alpha-protos.h: Update.
9289         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9290         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9291         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9292         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9293         (*mulsi_se, mulvsi3): Likewise.
9294         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9295         (*divmodsi_internal, call, call_value, realign): Likewise.
9296         (moddi3, umoddi3): Likewise; remove duplicate expander.
9297         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9298         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9299         (*movdi_nofix): Remove r/U alternative.
9300         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9301         * config/alpha/constraints.md ("U"): Remove.
9302         * config/alpha/predicates.md (call_operand"): Don't test
9303         TARGET_ABI_UNICOSMK.
9304
9305 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9306
9307         * target.def (handle_option): Take gcc_options and
9308         cl_decoded_option pointers and location_t.
9309         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9310         * doc/tm.texi: Regenerate.
9311         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9312         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9313         * lto-opts.c (lto_reissue_options): Generate option structure for
9314         targetm.handle_option call.
9315         * opts.c (target_handle_option): Update call to
9316         targetm.handle_option.  Remove assertions about values now passed
9317         down to hook.
9318         * targhooks.c (default_target_handle_option): New.
9319         * targhooks.h (default_target_handle_option): Declare.
9320         * config/alpha/alpha.c: Include opts.h.
9321         (alpha_handle_option): Update to new hook interface.
9322         * config/arm/arm.c: Include opts.h.
9323         (arm_handle_option): Update to new hook interface.
9324         * config/arm/t-arm (arm.o): Update dependencies.
9325         * config/bfin/bfin.c: Include opts.h.
9326         (bfin_handle_option): Update to new hook interface.
9327         * config/cris/cris.c: Include opts.h.
9328         (cris_handle_option): Update to new hook interface.
9329         * config/frv/frv.c: Include opts.h.
9330         (frv_handle_option): Update to new hook interface.
9331         * config/i386/i386.c: Include opts.h.
9332         (ix86_handle_option): Update to new hook interface.
9333         (ix86_valid_target_attribute_inner_p): Generate option structure
9334         for call to ix86_handle_option.
9335         * config/i386/t-i386 (i386.o): Update dependencies.
9336         * config/ia64/ia64.c: Include opts.h.
9337         (ia64_handle_option): Update to new hook interface.
9338         * config/ia64/t-ia64 (ia64.o): Update dependencies.
9339         * config/iq2000/iq2000.c: Include opts.h.
9340         (iq2000_handle_option): Update to new hook interface.
9341         * config/m32c/m32c.c: Include opts.h.
9342         (m32c_handle_option): Update to new hook interface.
9343         * config/m32r/m32r.c: Include opts.h.
9344         (m32r_handle_option): Update to new hook interface.
9345         * config/m68k/m68k.c: Include opts.h.
9346         (m68k_handle_option): Update to new hook interface.
9347         * config/mep/mep.c: Include opts.h.
9348         (mep_handle_option): Update to new hook interface.
9349         * config/microblaze/microblaze.c: Include opts.h.
9350         (microblaze_handle_option): Update to new hook interface.
9351         * config/mips/mips.c: Include opts.h.
9352         (mips_handle_option): Update to new hook interface.
9353         * config/mn10300/mn10300.c: Include opts.h.
9354         (mn10300_handle_option): Update to new hook interface.
9355         * config/pa/pa.c: Include opts.h.
9356         (pa_handle_option): Update to new hook interface.
9357         * config/pdp11/pdp11.c: Include opts.h.
9358         (pdp11_handle_option): Update to new hook interface.
9359         * config/rs6000/rs6000.c: Include opts.h.
9360         (rs6000_handle_option): Update to new hook interface.
9361         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9362         * config/rx/rx.c: Include opts.h.
9363         (rx_handle_option): Update to new hook interface.
9364         * config/s390/s390.c: Include opts.h.
9365         (s390_handle_option): Update to new hook interface.
9366         * config/score/score.c: Include opts.h.
9367         (score_handle_option): Update to new hook interface.
9368         * config/sh/sh.c: Include opts.h.
9369         (sh_handle_option): Update to new hook interface.
9370         * config/sparc/sparc.c: Include opts.h.
9371         (sparc_handle_option): Update to new hook interface.
9372         * config/v850/v850.c: Include opts.h.
9373         (v850_handle_option): Update to new hook interface.
9374
9375 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9376
9377         * gcc.c (driver_unknown_option_callback): Only permit and save
9378         unknown -Wno- options.
9379         (driver_wrong_lang_callback): Save options directly instead of via
9380         driver_unknown_option_callback.
9381
9382 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9383
9384         * combine.c (simplify_set): Try harder to find the best CC mode when
9385         simplifying a nested COMPARE on the RHS.
9386
9387 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9388
9389         * config/alpha/gnu.h: Remove.
9390         * config/arc: Remove directory.
9391         * config/arm/netbsd.h: Remove.
9392         * config/arm/t-pe: Remove.
9393         * config/crx: Remove directory.
9394         * config/i386/netbsd.h: Remove.
9395         * config/m68hc11: Remove directory.
9396         * config/m68k/uclinux-oldabi.h: Remove.
9397         * config/mcore/mcore-pe.h: Remove.
9398         * config/mcore/t-mcore-pe: Remove.
9399         * config/netbsd-aout.h: Remove.
9400         * config/rs6000/gnu.h: Remove.
9401         * config/sh/sh-symbian.h: Remove.
9402         * config/sh/symbian-base.c: Remove.
9403         * config/sh/symbian-c.c: Remove.
9404         * config/sh/symbian-cxx.c: Remove.
9405         * config/sh/symbian-post.h: Remove.
9406         * config/sh/symbian-pre.h: Remove.
9407         * config/sh/t-symbian: Remove.
9408         * config/svr3.h: Remove.
9409         * config/vax/netbsd.h: Remove.
9410         * config.build: Don't handle i[34567]86-*-pe.
9411         * config.gcc: Remove handling of deprecations for most deprecated
9412         targets.
9413         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9414         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9415         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9416         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9417         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9418         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9419         Remove cases.
9420         * config.host: Don't handle i[34567]86-*-pe.
9421         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9422         (ASM_SPEC32): Don't handle -mcall-gnu.
9423         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9424         -mcall-gnu.
9425         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9426         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9427         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9428         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9429         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9430         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9431         conditional on SYMBIAN.
9432         * configure.ac: Don't handle powerpc*-*-gnu*.
9433         * configure: Regenerate.
9434         * doc/extend.texi (interrupt attribute): Don't mention CRX.
9435         * doc/install-old.texi (m6811, m6812): Don't mention.
9436         * doc/install.texi (arc-*-elf*): Don't document multilib option.
9437         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9438         (m68k-uclinuxoldabi): Don't mention.
9439         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9440         Remove.
9441         (-mcall-gnu): Remove.
9442         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9443         families): Remove constraint documentation.
9444
9445 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
9446
9447         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9448         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9449         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9450
9451 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9452
9453         PR target/48226
9454         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9455         vector when peeking at the next token for vector, don't expand the
9456         keywords.
9457
9458 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
9459
9460         * config/avr/avr-protos.h (expand_epilogue): Change prototype
9461         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9462         * config/avr/avr.c (init_cumulative_args)
9463         (avr_function_arg_advance): Use it.
9464         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9465         sibcall epilogues.
9466         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9467         (avr_function_ok_for_sibcall): ...this new function.
9468         (avr_lookup_function_attribute1): New static Function.
9469         (avr_naked_function_p, interrupt_function_p)
9470         (signal_function_p, avr_OS_task_function_p)
9471         (avr_OS_main_function_p): Use it.
9472         * config/avr/avr.md ("sibcall", "sibcall_value")
9473         ("sibcall_epilogue"): New expander.
9474         ("*call_insn", "*call_value_insn"): New insn.
9475         ("call_insn", "call_value_insn"): Remove
9476         ("call", "call_value", "epilogue"): Change expander to handle
9477         sibling calls.
9478
9479 2011-03-21  Nick Clifton  <nickc@redhat.com>
9480
9481         * doc/invoke.texi (Overall Options): Move closing brace to end of
9482         options list.
9483         (Optimization Options): Add missing @gol.
9484         (Directory Options): Likewise.
9485         (i386 and x86-64 Options): Likewise.
9486         (RS6000 and PowerPC Options): Likewise.
9487         (i386 and x86-64 Windows Options): Likewise.
9488         (V850 Options): Add text missing from descriptions.
9489
9490 2011-03-22  Richard Henderson  <rth@redhat.com>
9491
9492         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9493         (avr_incoming_return_addr_rtx): New.
9494         (emit_push_byte): New.
9495         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
9496         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
9497         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
9498         (emit_pop_byte): New.
9499         (expand_epilogue): Use it.  Pop frame pointer by bytes.
9500         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9501         (INCOMING_RETURN_ADDR_RTX): New.
9502         (INCOMING_FRAME_SP_OFFSET): New.
9503         (ARG_POINTER_CFA_OFFSET): New.
9504         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9505         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9506         (pophi): Remove.
9507
9508         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9509
9510 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9511
9512         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9513         (FUNCTION_ARG_ADVANCE): Likewise.
9514         * tm.texi.in: Change references to them to hook references.
9515         * tm.texi: Regenerate.
9516         * targhooks.c (default_function_arg): Eliminate check for target
9517         macro.
9518         (default_function_incoming_arg): Likewise.
9519         (default_function_arg_advance): Likewise.
9520         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9521         (function_arg_advance): Likewise.
9522         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9523
9524 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9525
9526         * tree.c (build_call_1): New function.
9527         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9528
9529 2011-03-22  Richard Guenther  <rguenther@suse.de>
9530
9531         PR tree-optimization/48228
9532         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9533         for single-arg PHIs.
9534
9535 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
9536
9537         PR rtl-optimization/48143
9538         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9539         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9540         sse2_cvtps2pd): Likewise.
9541
9542 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9543
9544         * recog.c (canonicalize_change_group): Use validate_unshare_change.
9545
9546 2011-03-22  Richard Guenther  <rguenther@suse.de>
9547
9548         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9549         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9550         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9551         and REALIGN_LOAD_EXPR.
9552         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9553         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9554         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9555         DOT_PROD_EXPR case ...
9556         (expand_expr_real_2): ... here.
9557         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9558         and REALIGN_LOAD_EXPR.
9559         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9560         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9561         (vect_create_epilog_for_reduction): Likewise.
9562         (vectorizable_reduction): Likewise.
9563         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9564         * tree-vect-stmts.c (vectorizable_load): Likewise.
9565
9566 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9567
9568         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9569
9570 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9571
9572         * config/s390/s390.c (s390_delegitimize_address): Fix offset
9573         handling for PLTOFF/GOTOFF.
9574
9575 2011-03-22  Nick Clifton  <nickc@redhat.com>
9576
9577         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9578         trailing backslash from the end of the macro definition.
9579
9580 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9581
9582         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9583         and PLT unspecs.
9584
9585 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
9586
9587         * expr.h (prepare_operand): Move to...
9588         * optabs.h (prepare_operand): ...here and change the insn code
9589         parameter from "int" to "enum insn_code".
9590         (insn_operand_matches): Declare.
9591         * expr.c (init_expr_target): Use insn_operand_matches.
9592         (compress_float_constant): Likewise.
9593         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9594         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9595         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
9596         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9597         Likewise.
9598         (gen_cond_trap): Likewise.
9599         (prepare_operand): Likewise.  Change icode to an insn_code.
9600         (insn_operand_matches): New function.
9601         * reload.c (find_reloads_address_1): Use insn_operand_matches.
9602         * reload1.c (gen_reload): Likewise.
9603         * targhooks.c (default_secondary_reload): Likewise.
9604
9605 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9606
9607         * config/alpha/alpha.md (unspec): New define_c_enum.
9608         (unspecv): Ditto.
9609
9610 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9611
9612         PR debug/48214
9613         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9614         between a call and its CALL_ARG_LOCATION note.
9615
9616 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
9617
9618         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9619
9620 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9621
9622         PR c/42544
9623         PR c/48197
9624         * c-common.c (shorten_compare): If primopN is first sign-extended
9625         to opN and then zero-extended to result type, set primopN to opN.
9626
9627 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
9628
9629         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9630         for barrier handlers.
9631
9632 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9633
9634         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9635         UNSPEC constants to be in the unspec enumeration, and redefine
9636         all UNSPECV constants to be in the unspecv enumeration, so that
9637         dumps print which unspec/unspec_volatile this is.
9638         * config/rs6000/vector.md (UNSPEC_*): Ditto.
9639         * config/rs6000/paired.md (UNSPEC_*): Ditto.
9640         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9641         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9642         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9643
9644         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9645         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9646         UNSPECV_LWSYNC, since these are used as unspec_volatile.
9647         * config/rs6000/sync.md (isync, lwsync): Ditto.
9648
9649 2011-03-21  Richard Guenther  <rguenther@suse.de>
9650
9651         * params.def (lto-min-partition): Fix typo.
9652
9653 2011-03-21  Richard Guenther  <rguenther@suse.de>
9654
9655         PR c/47939
9656         * c-decl.c (grokdeclarator): Drop to the main variant only
9657         for array types.  Drop flag_gen_aux_info check.
9658
9659 2011-03-21  Richard Guenther  <rguenther@suse.de>
9660
9661         PR translation/47911
9662         * params.def (lto-partitions): Fix typo.
9663         (lto-min-partition): Fix wording.
9664
9665 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
9666
9667         * config/rs6000/t-freebsd: Remove duplication from file.
9668
9669 2011-03-21  Richard Guenther  <rguenther@suse.de>
9670
9671         PR middle-end/47661
9672         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9673
9674 2011-03-21  Richard Guenther  <rguenther@suse.de>
9675
9676         PR lto/48210
9677         * params.def (lto-partitions): Require at least 1 partition.
9678
9679 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9680
9681         * gthr-solaris.h: Remove.
9682         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9683         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9684         (LIB_SPEC): Likewise.
9685         * config/sol2.opt (threads): Remove.
9686         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
9687         (sparc*-*-solaris2*): Likewise.
9688         * configure.ac (enable_threads): Enable solaris support.
9689         * configure: Regenerate.
9690         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
9691         * doc/install.texi (Configuration, --enable-threads=lib): Remove
9692         solaris.
9693
9694 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9695
9696         * config.gcc: Obsolete *-*-solaris2.8*.
9697         * doc/install.texi (Specific, *-*-solaris2*): Document it.
9698
9699 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9700
9701         PR bootstrap/48135
9702         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9703         reference.  Solaris 8 perl works.
9704
9705 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9706
9707         PR bootstrap/48135
9708         * doc/install.texi (Prerequisites): Move jar etc. up.
9709         Explain support library version requirements.
9710
9711 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9712
9713         PR bootstrap/48135
9714         * doc/install.texi (Prerequisites): Move Perl to build
9715         requirements.  Always necessary on Solaris 2 with Sun ld.
9716
9717 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9718
9719         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9720         binutils 2.21.
9721         (Specific, i?86-*-solaris2.[89]): Likewise.
9722         (Specific, i?86-*-solaris2.10): Likewise.
9723         (Specific, mips-sgi-irix6): Likewise.
9724         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9725         Update for binutils 2.21.
9726
9727 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9728
9729         * configure.ac (gcc_cv_lto_plugin): Fix typo.
9730         Allow -fuse-linker-plugin for non-default plugin linker.
9731         * configure: Regenerate.
9732
9733 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9734
9735         PR bootstrap/48167
9736         * gengtype.c (files_rules): Added rule for cp/parser.h.
9737
9738 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9739
9740         PR target/48213
9741         * config/s390/s390.c (s390_delegitimize_address): Don't call
9742         lowpart_subreg if orig_x has BLKmode.
9743
9744 2011-03-21  Kai Tietz  <ktietz@redhat.com>
9745
9746         PR target/12171
9747         * doc/plugins.texi: Adjust documentation for plugin register_callback.
9748         * tree.h (attribute_spec): Add new member affects_type_identity.
9749         * attribs.c (empty_attribute_table): Adjust attribute_spec
9750         initializers.
9751         * config/alpha/alpha.c: Likewise.
9752         * config/arc/arc.c: Likewise.
9753         * config/arm/arm.c: Likewise.
9754         * config/avr/avr.c: Likewise.
9755         * config/bfin/bfin.c: Likewise.
9756         * config/crx/crx.c: Likewise.
9757         * config/darwin.h: Likewise.
9758         * config/h8300/h8300.c: Likewise.
9759         * config/i386/cygming.h: Likewise.
9760         * config/i386/i386.c: Likewise.
9761         * config/ia64/ia64.c: Likewise.
9762         * config/m32c/m32c.c: Likewise.
9763         * config/m32r/m32r.c: Likewise.
9764         * config/m68hc11/m68hc11.c: Likewise.
9765         * config/m68k/m68k.c: Likewise.
9766         * config/mcore/mcore.c: Likewise.
9767         * config/mep/mep.c: Likewise.
9768         * config/microblaze/microblaze.c: Likewise.
9769         * config/mips/mips.c: Likewise.
9770         * config/rs6000/rs6000.c: Likewise.
9771         * config/rx/rx.c: Likewise.
9772         * config/sh/sh.c: Likewise.
9773         * config/sol2.h: Likewise.
9774         * config/sparc/sparc.c: Likewise.
9775         * config/spu/spu.c: Likewise.
9776         * config/stormy16/stormy16.c: Likewise.
9777         * config/v850/v850.c: Likewise.
9778
9779 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
9780
9781         * simplify-rtx.c (simplify_binary_operation_1): Handle
9782         (xor (and A B) C) case when B and C are both constants.
9783
9784 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
9785
9786         * tree-dfa.c (add_referenced_var): Fix typo in comment.
9787
9788 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
9789
9790         PR bootstrap/48168
9791         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9792
9793 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
9794
9795         PR rtl-optimization/48156
9796         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9797         assume df and df_lr are not NULL.
9798
9799 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9800
9801         PR debug/48023
9802         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9803         between a call and its CALL_ARG_LOCATION note.
9804
9805 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
9806
9807         PR debug/48178
9808         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9809         between a call and its corresponding CALL_ARG_LOCATION note.
9810
9811 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
9812
9813         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9814         instead of loop. Use HARD_REGISTER_NUM_P predicate.
9815         * haifa-sched.c (setup_ref_regs): Ditto.
9816         * caller-save.c (add_used_regs_1): Ditto.
9817         * dse.c (look_for_hardregs): Ditto.
9818         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9819         * sched-rgn.c (check_live_1): Ditto.
9820
9821 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9822
9823         * c-decl.c (diagnose_mismatched_decls): Give an error for
9824         redefining a typedef with variably modified type.
9825
9826 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9827
9828         * c-decl.c (grokfield): Don't allow typedefs for structures or
9829         unions with no tag by default.
9830         * doc/extend.texi (Unnamed Fields): Update.
9831
9832 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
9833
9834         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9835         Rewrite using indirect functions.
9836         (lwp_slwpcb): Ditto.
9837         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9838         (avx_vinsertf128<mode>): Ditto.
9839
9840 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9841
9842         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9843         unspecs.
9844
9845 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9846
9847         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9848         splitting between a call and its corresponding CALL_ARG_LOCATION note.
9849
9850 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9851
9852         PR rtl-optimization/48170
9853         * gcse.c (hoist_code): Remove bogus asserts.
9854
9855 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
9856
9857         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9858         computation for prologue/epilogue.
9859
9860 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9861
9862         * Makefile.in (check-consistency): Remove.
9863
9864 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
9865
9866         PR debug/48176
9867         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9868         arange_table_in_use is 0, but either text_section_used or
9869         cold_text_section_used is true.  Don't call it if
9870         !info_section_emitted.
9871
9872 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
9873
9874         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9875         FUNCTION_VALUE_REGNO_P): Remove.
9876         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9877         Remove.
9878         * config/avr/avr.c (avr_ret_register): Make static inline.
9879         (avr_function_value_regno_p): New function.
9880         (avr_libcall_value): Make static. Add 'func' argument.
9881         (avr_function_value): Make static. Rename 'func' argument to
9882         'fn_decl_or_type', forward it to avr_libcall_value. Call
9883         avr_ret_register function instead of RET_REGISTER macro.
9884         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9885
9886 2011-03-18  Jason Merrill  <jason@redhat.com>
9887
9888         PR c++/23372
9889         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9890
9891 2011-03-18  Richard Guenther  <rguenther@suse.de>
9892
9893         * doc/install.texi (--enable-gold): Remove.
9894         (--with-plugin-ld): Document.
9895         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9896
9897 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
9898
9899         PR middle-end/47790
9900         * expr.c (optimize_bitfield_assignment_op): Revamp to work
9901         again after expansion changes.
9902
9903 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
9904
9905         * combine.c (try_combine): Do simplification only call of
9906         subst() on i2 even when i1 is present. Update comments.
9907
9908 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9909
9910         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9911         and UNSPEC_PCREL_SYMOFF.
9912
9913 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9914
9915         * config/s390/s390.md: Use define_c_enum for the unspec constant
9916         definitions.
9917
9918 2011-03-18  Richard Henderson  <rth@redhat.com>
9919             Jakub Jelinek  <jakub@redhat.com>
9920
9921         PR bootstrap/48161
9922         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9923         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9924
9925 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9926
9927         PR middle-end/47725
9928         * combine.c (cant_combine_insn_p): Don't check zero/sign
9929         extended hard registers.
9930
9931 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9932
9933         PR middle-end/47725
9934         * combine.c (cant_combine_insn_p): Check zero/sign extended
9935         hard registers.
9936
9937 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
9938
9939         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9940         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9941         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9942         Change return type to bool.
9943         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9944
9945 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9946
9947         PR debug/48163
9948         * var-tracking.c (prepare_call_arguments): If CALL target
9949         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
9950         pc instead of looking it up using cselib_lookup and use
9951         Pmode for it if x has VOIDmode.
9952         * dwarf2out.c (gen_subprogram_die): If also both first and
9953         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
9954
9955         PR debug/48163
9956         * function.c (assign_parms): For data.passed_pointer parms
9957         use MEM of data.entry_parm instead of data.entry_parm itself
9958         as DECL_INCOMING_RTL.
9959         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
9960         also when passed and declared mode is the same, DECL_RTL
9961         is a MEM with pseudo as address and DECL_INCOMING_RTL is
9962         a MEM too.
9963
9964 2011-03-16  Jeff Law  <law@redhat.com>
9965
9966         PR rtl-optimization/37273
9967         * ira-costs.c (scan_one_insn): Detect constants living in memory and
9968         handle them like argument loads from stack slots.  Do not double
9969         count memory for memory constants and argument loads from stack slots.
9970
9971 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9972
9973         PR debug/48160
9974         * var-tracking.c (prepare_call_arguments): Check SUBREG.
9975
9976 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9977
9978         PR target/48171
9979         * config/i386/i386.opt: Add Save to -mavx and -mfma.
9980
9981 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9982
9983         PR bootstrap/48153
9984         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
9985         if dwarf_strict.
9986         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
9987         Clear call_arg_locations and call_arg_loc_last always.
9988
9989         PR middle-end/48152
9990         * var-tracking.c (prepare_call_arguments): If argument needs to be
9991         passed by reference, adjust argtype and mode.
9992
9993 2011-03-17  Richard Guenther  <rguenther@suse.de>
9994
9995         PR middle-end/48134
9996         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
9997         a value make sure to fold the statement.
9998
9999 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
10000
10001         PR target/43872
10002         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
10003         return condition with !cfun->calls_alloca.
10004
10005 2011-03-17  Richard Guenther  <rguenther@suse.de>
10006
10007         PR bootstrap/48148
10008         * lto-cgraph.c (input_overwrite_node): Clear the abstract
10009         origin for decls in other ltrans units.
10010         (input_varpool_node): Likewise.
10011
10012 2011-03-17  Richard Guenther  <rguenther@suse.de>
10013
10014         PR middle-end/48165
10015         * tree-object-size.c (compute_object_offset): Properly return
10016         the offset operand of MEM_REFs as sizetype.
10017
10018 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10019
10020         PR rtl-optimization/48141
10021         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10022         * dse.c: Include params.h.
10023         (active_local_stores_len): New variable.
10024         (add_wild_read, dse_step1): Clear it when setting active_local_stores
10025         to NULL.
10026         (record_store, check_mem_read_rtx): Decrease it when removing
10027         from the chain.
10028         (scan_insn): Likewise.  Increase it when adding to chain, if it
10029         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10030         set active_local_stores to NULL before the addition.
10031         * Makefile.in (dse.o): Depend on $(PARAMS_H).
10032
10033         PR rtl-optimization/48141
10034         * dse.c (record_store): If no positions are needed in an insn
10035         that cannot be deleted, at least unchain it from active_local_stores.
10036
10037 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
10038
10039         PR debug/47510
10040         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10041         (lookup_type_die_strip_naming_typedef): ... here.
10042         (get_context_die): Use it.
10043         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10044         the anonymous struct named by the naming typedef.
10045
10046 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
10047
10048         PR target/48154
10049         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10050         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10051
10052 2011-03-16  Jeff Law  <law@redhat.com>
10053
10054         * tree-vrp.c (identify_jump_threads): Slightly simplify type
10055         check for operands of conditional.  Allow type to be a pointer.
10056
10057 2011-03-16  Richard Guenther  <rguenther@suse.de>
10058
10059         PR tree-optimization/48149
10060         * fold-const.c (fold_binary_loc): Fold
10061         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10062
10063 2011-03-16  Richard Guenther  <rguenther@suse.de>
10064
10065         PR tree-optimization/26134
10066         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10067         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10068         (non_rewritable_mem_ref_base): Handle complex type component
10069         accesses, constrain offsets for vector and complex extracts
10070         more properly.
10071
10072 2011-03-16  Richard Guenther  <rguenther@suse.de>
10073
10074         PR tree-optimization/48146
10075         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10076         operands avoiding the need for renaming.
10077
10078 2011-03-16  Richard Guenther  <rguenther@suse.de>
10079
10080         * gimple-fold.c (maybe_fold_reference): Open-code relevant
10081         constant folding.  Move MEM_REF canonicalization first.
10082         Rely on fold_const_aggregate_ref for initializer folding.
10083         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10084
10085 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10086
10087         PR middle-end/48136
10088         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10089         arg0/arg1 or their arguments are always fold converted to matching
10090         types.
10091
10092         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10093         to nargs.
10094
10095 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10096
10097         PR lto/46944
10098         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10099         Handle in-tree gold.
10100         (ld_vers): Extract binutils version for gold.
10101         (gcc_cv_ld_hidden): Handle gold here.
10102         (gcc_cv_lto_plugin): Determine level of linker plugin support.
10103         * configure: Regenerate.
10104         * config.in: Regenerate.
10105         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10106         -fuse-linker-plugin otherwise.
10107         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
10108         (LINK_COMMAND_SPEC): Use it.
10109         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10110
10111 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10112
10113         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10114         * calls.c: Remove debug.h include.
10115         (emit_call_1): Don't call virtual_call_token debug hook.
10116         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10117         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10118         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10119         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10120         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10121         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10122         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10123         dwarf2out_virtual_call): Remove.
10124         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10125         copy_call_info and virtual_call hooks.
10126         (dwarf2out_init): Don't initialize vcall_insn_table,
10127         debug_dcall_section and debug_vcall_section.
10128         (prune_unused_types): Don't mark nodes from dcall_table.
10129         (dwarf2out_finish): Don't output dcall or vcall tables.
10130         * final.c (final_scan_insn): Don't call direct_call or
10131         virtual_call debug hooks.
10132         * debug.h (struct gcc_debug_hooks): Remove direct_call,
10133         virtual_call_token, copy_call_info and virtual_call hooks.
10134         (debug_nothing_uid): Remove prototype.
10135         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10136         copy_call_info and virtual_call hooks.
10137         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10138         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10139         * debug.c (do_nothing_debug_hooks): Likewise.
10140         (debug_nothing_uid): Remove.
10141         * doc/invoke.texi (-fenable-icf-debug): Remove.
10142         * common.opt (-fenable-icf-debug): Likewise.
10143
10144         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10145         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10146         call's MEM.  Handle functions returning aggregate through a hidden
10147         first pointer.  For virtual calls add clobbered pc to call arguments
10148         chain.
10149         * dwarf2out.c (gen_subprogram_die): Emit
10150         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10151         can't be emitted.
10152
10153         PR debug/45882
10154         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10155         * rtl.h (ENTRY_VALUE_EXP): Define.
10156         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10157         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10158         * print-rtl.c (print_rtx): Likewise.
10159         * gengtype.c (adjust_field_rtx_def): Likewise.
10160         * var-tracking.c (vt_add_function_parameter): Adjust
10161         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10162         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10163         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10164         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10165         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10166
10167         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10168         Call var_location debug hook even on CALL_INSNs.
10169         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10170         * rtl.def (ENTRY_VALUE): New.
10171         * dwarf2out.c: Include cfglayout.h.
10172         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10173         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10174         (struct call_arg_loc_node): New type.
10175         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10176         tail_call_site_count): New variables.
10177         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10178         DW_TAG_GNU_call_site_parameter.
10179         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10180         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10181         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10182         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10183         and DW_AT_GNU_all_source_call_sites.
10184         (mem_loc_descriptor): Handle ENTRY_VALUE.
10185         (add_src_coords_attributes): Don't add enything if
10186         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10187         (dwarf2out_abstract_function): Save and clear call_arg_location,
10188         call_site_count and tail_call_site_count around dwarf2out_decl call.
10189         (gen_call_site_die): New function.
10190         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10191         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10192         (dwarf2out_function_decl): Clear call_arg_locations,
10193         call_arg_loc_last, set call_site_count and tail_call_site_count
10194         to -1 and free block_map.
10195         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10196         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
10197         followed by any real instructions.
10198         (dwarf2out_begin_function): Set call_site_count and
10199         tail_call_site_count to 0.
10200         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10201         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10202         attempt to force a DIE for it and worst case remove the attribute.
10203         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10204         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10205         the decl itself.
10206         * var-tracking.c: Include tm_p.h.
10207         (vt_stack_adjustments): For calls call note_register_arguments.
10208         (argument_reg_set): New variable.
10209         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10210         ensure the VALUE is resolved.
10211         (call_arguments): New variable.
10212         (prepare_call_arguments): New function.
10213         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10214         (struct expand_loc_callback_data): Add ignore_cur_loc field.
10215         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10216         always use the best expression.
10217         (vt_expand_loc): Add ignore_cur_loc argument.
10218         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10219         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10220         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10221         note for all calls.
10222         (vt_add_function_parameter): Use cselib_lookup_from_insn.
10223         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10224         argument.  Don't call cselib_preserve_only_values and
10225         cselib_reset_table.
10226         (note_register_arguments): New function.
10227         (vt_initialize): Compute argument_reg_set.  Call
10228         vt_add_function_parameters before processing basic blocks instead of
10229         afterwards.  For calls call prepare_call_arguments before calling
10230         cselib_process_insn.
10231         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10232         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10233         (var-tracking.o): Depend on $(TM_P_H).
10234         * cfglayout.h (insn_scope): New prototype.
10235         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10236         * cfglayout.c (insn_scope): No longer static.
10237         * insn-notes.def (CALL_ARG_LOCATION): New.
10238         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10239         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10240         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10241         nothing for DECL_EXTERNAL BLOCK_VARS.
10242
10243 2011-03-16  Alan Modra  <amodra@gmail.com>
10244
10245         PR target/45844
10246         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10247         create invalid offset address for vsx splat insn.
10248         * config/rs6000/predicates.md (splat_input_operand): New.
10249         * config/rs6000/vsx.md (vsx_splat_*): Use it.
10250
10251 2011-03-15  Xinliang David Li  <davidxl@google.com>
10252
10253         PR c/47837
10254         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10255         (normalize_preds): New function.
10256         (is_use_properly_guarded): Normalize def predicates.
10257
10258 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10259
10260         PR target/46788
10261         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10262         in the output template.
10263
10264 2011-03-15  Richard Guenther  <rguenther@suse.de>
10265
10266         PR middle-end/47650
10267         * tree-pretty-print.c (dump_function_declaration): Properly
10268         dump unprototyped and varargs function types.
10269
10270 2011-03-15  Richard Guenther  <rguenther@suse.de>
10271
10272         PR tree-optimization/13954
10273         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10274         and friends.
10275
10276 2011-03-15  Richard Guenther  <rguenther@suse.de>
10277
10278         PR tree-optimization/48037
10279         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10280         selects into BIT_FIELD_REFs.
10281         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10282         vector select.
10283
10284 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
10285
10286         PR tree-optimization/48129
10287         * builtins.c (fold_builtin_snprintf): Convert to type of
10288         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10289         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10290
10291 2011-03-15  Richard Guenther  <rguenther@suse.de>
10292
10293         PR tree-optimization/41490
10294         * tree-ssa-dce.c (propagate_necessity): Handle returns without
10295         value but with VUSE.
10296         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10297         return statements.
10298         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10299         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10300         * tree-tailcall.c (find_tail_calls): Ignore returns.
10301
10302 2011-03-15  Richard Guenther  <rguenther@suse.de>
10303
10304         PR middle-end/48031
10305         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10306         or variable-indexed array accesses when in gimple form.
10307
10308 2011-03-15  Richard Guenther  <rguenther@suse.de>
10309
10310         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
10311
10312 2011-03-15  Alan Modra  <amodra@gmail.com>
10313
10314         PR target/48032
10315         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10316         presume symbol_refs without a symbol_ref_decl are suitably
10317         aligned, nor other trees we may see here.  Handle anchor symbols.
10318         (legitimate_constant_pool_address_p): Comment.  Add mode param.
10319         Check cmodel=medium addresses.  Adjust all calls.
10320         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10321         creating cmodel=medium optimized access to locals.
10322         * config/rs6000/constraints.md (R): Pass QImode to
10323         legitimate_constant_pool_address_p.
10324         * config/rs6000/predicates.md (input_operand): Pass mode to
10325         legitimate_constant_pool_address_p.
10326         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10327         Update prototype.
10328
10329 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10330
10331         PR target/48053
10332         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10333         64-bit constants being loaded into registers other than GPRs such
10334         as loading 0 into a VSX register.
10335
10336 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10337
10338         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
10339
10340 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10341
10342         PR middle-end/47917
10343         * builtins.c (fold_builtin_snprintf): New function.
10344         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10345         (fold_builtin_4): Likewise.
10346
10347         PR middle-end/38878
10348         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10349         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
10350         and C - X == X also strip nops from +/-/p+ operand.
10351         When optimizing -X == C, fold C to arg0's type.
10352
10353         PR debug/47946
10354         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10355         emit it as add_AT_int instead of add_AT_unsigned.
10356
10357 2011-03-14  Tom Tromey  <tromey@redhat.com>
10358
10359         * unwind-dw2.c: Include sys/sdt.h if it exists.
10360         (_Unwind_DebugHook): Use STAP_PROBE2.
10361         * config.in, configure: Rebuild.
10362         * configure.ac: Check for sys/sdt.h.
10363
10364 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
10365
10366         * config/i386/i386.md (ROUND_FLOOR): New constant.
10367         (ROUND_CEIL): Ditto.
10368         (ROUND_TRUNC): Ditto.
10369         (ROUND_MXCSR): Ditto.
10370         (ROUND_NO_EXC): Ditto.
10371         (rint<mode>2): Use new defines instead of numerical constants.
10372         (floor<mode>2): Ditto.
10373         (ceil<mode>2): Ditto.
10374         (btrunc<mode>2): Ditto.
10375         * config/i386/i386-builtin-types.def: Define ROUND function type
10376         aliases.
10377         * config/i386/i386.c (enum ix86_builtins): Add
10378         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10379         (struct builtin_description): Add
10380         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10381         (ix86_expand_sse_round): New static function.
10382         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10383         function types.
10384         (ix86_builtin_vectorized_function): Handle
10385         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10386
10387 2011-03-14  Tom Tromey  <tromey@redhat.com>
10388
10389         * c-parser.c (c_parser_asm_string_literal): Clear
10390         warn_overlength_strings.
10391
10392 2011-03-14  Tom Tromey  <tromey@redhat.com>
10393
10394         * c-parser.c (disable_extension_diagnostics): Save
10395         warn_overlength_strings.
10396         (restore_extension_diagnostics): Restore warn_overlength_strings.
10397
10398 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10399
10400         * BASE-VER: Change to 4.7.0.
10401
10402 2011-03-14  Richard Guenther  <rguenther@suse.de>
10403
10404         PR middle-end/48098
10405         * tree.c (build_vector_from_val): Adjust assert to requirements
10406         and reality.
10407
10408 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10409
10410         PR bootstrap/48102
10411         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
10412
10413 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
10414
10415         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
10416         terms of target_flags_explicit. Adjust copyright year.
10417
10418         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10419         * config/rs6000/t-freebsd: New file. Add override for
10420         LIB2FUNCS_EXTRA.
10421
10422 2011-03-13  Chris Demetriou  <cgd@google.com>
10423
10424         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10425         (-fno-diagnostics-show-option): this, to reflect current default.
10426         (-Werror=): Update text about -fno-diagnostics-show-option.
10427
10428 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
10429
10430         PR target/48053
10431         * config/rs6000/predicates.md (easy_vector_constant_add_self,
10432         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10433         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10434         mode is not V2DImode or V2DFmode.
10435         (vspltis_constant): Do not handle V2DImode and V2DFmode.
10436         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10437         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10438         registers to 0.
10439         (movdi_internal64): Likewise.
10440
10441 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
10442
10443         PR tree-optimization/47127
10444         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10445         parameter.
10446         (set_cloog_options): Same.
10447         (scop_to_clast): Same.
10448         (print_clast_stmt): Do not call cloog_state_malloc and
10449         cloog_state_free.
10450         (print_generated_program): Same.
10451         (gloog): Same.
10452         * graphite-clast-to-gimple.h (cloog_state): Declared.
10453         (scop_to_clast): Adjust declaration.
10454         * graphite.c (cloog_state): Defined here.
10455         (graphite_initialize): Call cloog_state_malloc.
10456         (graphite_finalize): Call cloog_state_free.
10457
10458 2011-03-11  Jason Merrill  <jason@redhat.com>
10459
10460         * attribs.c (lookup_attribute_spec): Take const_tree.
10461         * tree.h: Adjust.
10462
10463 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
10464
10465         * config/sparc/sparc.c (sparc_option_override): Use
10466         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10467
10468 2011-03-11  Richard Guenther  <rguenther@suse.de>
10469
10470         PR tree-optimization/48067
10471         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10472         multiplication result will be only used once on the target
10473         stmt.
10474
10475 2011-03-11  Richard Guenther  <rguenther@suse.de>
10476
10477         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10478
10479 2011-03-11  Richard Guenther  <rguenther@suse.de>
10480
10481         PR lto/48073
10482         * tree.c (find_decls_types_r): Do not walk types only reachable
10483         from IDENTIFIER_NODEs.
10484
10485 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10486
10487         PR middle-end/48044
10488         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10489         all vnode->force_output nodes as needed.
10490
10491 2011-03-11  Jason Merrill  <jason@redhat.com>
10492
10493         PR c++/48069
10494         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10495         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10496
10497 2011-03-11  Martin Jambor  <mjambor@suse.cz>
10498
10499         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10500         cgraph_node.
10501
10502 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10503
10504         PR tree-optimization/48063
10505         * ipa-inline.c (cgraph_decide_inlining): Don't try to
10506         inline functions called once if !tree_can_inline_p (node->callers).
10507
10508 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
10509
10510         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10511         extra_objs.
10512         * config/score/score3.c: Delete.
10513         * config/score/score3.h: Delete.
10514         * config/score/mul-div.S: Delete.
10515         * config/score/sfp-machine.h: Add new file.
10516         * config/score/constraints.md: Add new file.
10517         * config/score/t-score-softfp: Add new file.
10518         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
10519         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10520         (score7_extra_constraint): Delete.
10521         (score7_option_override): Remove unused code.
10522         * config/score/score.c: Remove score3 and score5 define and code.
10523         * config/score/score.h: Remove score3 and score5 define and code.
10524         * config/score/score.md: Remove score3 template and unusual insn.
10525         * config/score/score.opt: Remove score3 and score5 options.
10526
10527 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10528
10529         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10530         when _HPUX_SOURCE is defined.
10531         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10532
10533 2011-03-10  Jason Merrill  <jason@redhat.com>
10534
10535         PR c++/48029
10536         * stor-layout.c (layout_type): Don't set structural equality
10537         on arrays of incomplete type.
10538         * tree.c (type_hash_eq): Handle comparing them properly.
10539
10540 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
10541
10542         PR debug/48043
10543         * config/s390/s390.c (s390_delegitimize_address): Make sure the
10544         result mode matches original rtl mode.
10545
10546 2011-03-10  Nick Clifton  <nickc@redhat.com>
10547
10548         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
10549         (andsi3, andsi3_flags): Fix timings for three operand alternative.
10550
10551 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
10552
10553         PR rtl-optimization/47866
10554         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10555         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10556         if target wasn't scalar.
10557         * function.c (assign_stack_temp_for_type): Assert that neither
10558         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10559         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10560         macro.
10561         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10562
10563 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10564
10565         * config/s390/s390-protos.h (s390_label_align): New prototype.
10566         * config/s390/s390.c (s390_label_align): New function.
10567         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10568
10569 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10570
10571         PR target/47755
10572         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10573         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
10574         (output_vec_const_move): Ditto.
10575
10576 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
10577
10578         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10579         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10580         * config/mips/mips.c (mips_preferred_reload_class): Make static.
10581         Change 'rclass' argument and result type to reg_class_t.
10582         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10583
10584 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
10585
10586         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10587         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10588         (TARGET_MEMORY_MOVE_COST): Define.
10589         (avr_register_move_cost, avr_memory_move_cost): New Functions.
10590
10591 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
10592
10593         PR debug/47881
10594         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10595         removed anything.
10596
10597         PR tree-optimization/48022
10598         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10599         for EQ/NE_EXPR.
10600
10601 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
10602
10603         PR debug/47991
10604         * var-tracking.c (find_use_val): Return NULL for
10605         cui->sets && cui->store_p BLKmode MEMs.
10606
10607 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
10608
10609         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10610         Remove.
10611         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10612         xstormy16_print_operand_address): Remove.
10613         * config/stormy16/stormy16.c (xstormy16_print_operand,
10614         xstormy16_print_operand_address): Make static.
10615         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10616
10617 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
10618
10619         PR target/47862
10620         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10621         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10622         before definition.
10623
10624 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
10625
10626         PR bootstrap/48000
10627         * cfgloopmanip.c (fix_bb_placements): Return immediately
10628         if FROM is BASE_LOOP's header.
10629
10630 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
10631
10632         * gimplify.c (gimplify_function_tree): Fix building calls
10633         to __builtin_return_address.
10634
10635 2011-03-07  Alan Modra  <amodra@gmail.com>
10636
10637         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10638         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10639         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10640         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10641         return_mode args.
10642         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10643         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10644         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10645         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10646         * config/rs6000/rs6000.c
10647         (rs6000_elf_end_indicate_exec_stack): Rename to..
10648         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
10649         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
10650         (rs6000_file_start): ..here.
10651         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10652         file scope variables.
10653         (call_ABI_of_interest): New function.
10654         (init_cumulative_args): Set above vars when function return value
10655         is a float, vector, or small struct.
10656         (rs6000_function_arg_advance_1): Likewise for function args.
10657         (rs6000_va_start): Set rs6000_passes_float if variable arg function
10658         references float args.
10659
10660 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
10661
10662         * doc/cfg.texi: Remove "See" before @ref.
10663         * doc/invoke.texi: Likewise.
10664
10665 2011-03-05  Jason Merrill  <jason@redhat.com>
10666
10667         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10668
10669 2011-03-05  Anthony Green  <green@moxielogic.com>
10670
10671         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10672
10673 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
10674
10675         PR rtl-optimization/47899
10676         * cfgloopmanip.c (fix_bb_placements): Fix first argument
10677         to flow_loop_nested_p when moving the loop upward.
10678
10679 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
10680
10681         PR target/47719
10682         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
10683
10684 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
10685
10686         PR tree-optimization/47967
10687         * ipa-cp.c (build_const_val): Return NULL instead of creating
10688         VIEW_CONVERT_EXPR for mismatching sizes.
10689         (ipcp_create_replace_map): Return NULL if build_const_val failed.
10690         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10691         give up on versioning.
10692
10693 2011-03-05  Alan Modra  <amodra@gmail.com>
10694
10695         PR target/47986
10696         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10697         full cmodel medium/large lo_sum + high addresses.
10698
10699 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10700
10701         * config/s390/s390.c (s390_decompose_address): Reject non-literal
10702         pool references in UNSPEC_LTREL_OFFSET.
10703
10704 2011-03-04  Jan Hubicka  <jh@suse.cz>
10705
10706         PR lto/47497
10707         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10708         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
10709         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10710         Add node pointers.
10711         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10712         cgraph_add_thunk): Add node pointers.
10713         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10714         associated to right node.
10715         (input_node): Update use of cgraph_same_body_alias
10716         and cgraph_add_thunk.
10717
10718 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
10719
10720         * config/i386/i386.opt (mprefer-avx128): New flag.
10721         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10722         modes when the flag -mprefer-avx128 is on.
10723
10724 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
10725
10726         * dwarf2out.c (compare_loc_operands): Fix address handling.
10727
10728 2011-03-04  Alan Modra  <amodra@gmail.com>
10729
10730         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10731
10732 2011-03-04  Richard Guenther  <rguenther@suse.de>
10733
10734         PR middle-end/47968
10735         * expmed.c (extract_bit_field_1): Prefer vector modes that
10736         vec_extract patterns can handle.
10737
10738 2011-03-04  Richard Guenther  <rguenther@suse.de>
10739
10740         PR middle-end/47975
10741         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10742
10743 2011-03-04  Richard Henderson  <rth@redhat.com>
10744
10745         * explow.c (emit_stack_save): Remove 'after' parameter.
10746         (emit_stack_restore): Likewise.
10747         * expr.h: Update to match.
10748         * builtins.c, calls.c, stmt.c: Likewise.
10749         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
10750         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
10751         * function.c (expand_function_end): Insert the emit_stack_save
10752         sequence before parm_birth_insn instead of after.
10753
10754 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
10755
10756         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
10757         (ssse3_pmaddubsw128): Ditto.
10758         (ssse3_pmaddubsw): Ditto.
10759
10760 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
10761
10762         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10763
10764 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
10765
10766         PR c/47963
10767         * gimplify.c (omp_add_variable): Only call omp_notice_variable
10768         on TYPE_SIZE_UNIT if it is a DECL.
10769
10770         PR debug/47283
10771         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10772         first operand is not is_gimple_mem_ref_addr, try to fold it.
10773         If the operand still isn't is_gimple_mem_ref_addr, clear
10774         MEM_EXPR on op0.
10775
10776 2011-03-03  Richard Guenther  <rguenther@suse.de>
10777
10778         PR middle-end/47283
10779         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10780         match comment.
10781         (refs_may_alias_p_1): For release branches return true if
10782         we are confused by our input.
10783
10784 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10785
10786         * config/s390/s390.c (s390_function_value): Rename to ...
10787         (s390_function_and_libcall_value): ... this.
10788         (s390_function_value): New function.
10789         (s390_libcall_value): New function.
10790         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
10791         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10792         target macro definitions.
10793         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10794
10795 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
10796
10797         * config/i386/freebsd64.h (CC1_SPEC): Define.
10798         * config/i386/linux64.h (CC1_SPEC): Define.
10799         * config/i386/x86-64.h (CC1_SPEC): Don't define.
10800
10801 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
10802
10803         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10804         Remove.
10805         * config/stormy16/stormy16.c: Include reload.h.
10806         (xstormy16_memory_move_cost): New function.
10807         (TARGET_MEMORY_MOVE_COST): Define.
10808
10809 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
10810
10811         PR rtl-optimization/47925
10812         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10813         with side effects.  Remove the more-specific check for volatile asms.
10814
10815 2011-03-02  Alan Modra  <amodra@gmail.com>
10816
10817         PR target/47935
10818         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10819         toc relative addresses for valid offsets.
10820
10821 2011-03-01  Richard Guenther  <rguenther@suse.de>
10822
10823         PR tree-optimization/47890
10824         * tree-vect-loop.c (get_initial_def_for_induction): Set
10825         related stmt properly.
10826
10827 2011-03-01  Richard Guenther  <rguenther@suse.de>
10828
10829         PR lto/47924
10830         * lto-streamer.c (lto_record_common_node): Also register
10831         the canonical type.
10832
10833 2011-03-01  Richard Guenther  <rguenther@suse.de>
10834
10835         PR lto/46911
10836         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10837         Do not stream DECL_ABSTRACT_ORIGIN.
10838         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10839         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10840         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10841         Do not stream DECL_ABSTRACT_ORIGIN.
10842         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10843         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10844
10845 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
10846
10847         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10848         FUNCTION_VALUE_REGNO_P): Remove.
10849         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
10850         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10851         Add 'outgoing' argument.
10852         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10853         function.
10854         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10855         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10856
10857 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
10858
10859         PR debug/28047
10860         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10861         (lookup_filename): Likewise.
10862         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
10863
10864 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
10865             Jakub Jelinek  <jakub@redhat.com>
10866
10867         PR middle-end/47893
10868         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10869         (assign_stack_local_1): Change last argument type to int.
10870         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10871         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
10872         don't record padding space into frame_space_list nor use those areas.
10873         (assign_stack_local): Adjust caller.
10874         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10875         of assign_stack_local, pass 0 as last argument.
10876         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10877         callers.
10878
10879 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
10880
10881         PR debug/47283
10882         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10883         Use target address_mode and pointer_mode hooks instead of hardcoded
10884         Pmode and ptr_mode.  Handle some simple cases of extending if
10885         POINTERS_EXTEND_UNSIGNED < 0.
10886         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10887         Call convert_debug_memory_address.
10888         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10889         convert_debug_memory_address.
10890
10891         PR middle-end/46790
10892         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10893         * configure: Regenerated.
10894         * config.in: Regenerated.
10895         * varasm.c (default_function_section): Return NULL
10896         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
10897
10898 2011-02-28  Martin Jambor  <mjambor@suse.cz>
10899
10900         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10901         the description to match the printed values.
10902
10903 2011-02-28  Richard Guenther  <rguenther@suse.de>
10904
10905         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10906         of the copied scope tree.
10907
10908 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10909
10910         * doc/extend.texi (Function Attributes): Avoid deeply (and
10911         wrongly) nested tables.
10912
10913 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
10914
10915         PR middle-end/47903
10916         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10917         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10918         r isn't op0 nor op1.
10919
10920 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10921
10922         * config/avr/avr.md: Remove magic comment for emacs.
10923
10924 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10925
10926         PR target/45261
10927         * config/avr/avr.c (avr_option_override): Use error on bad options.
10928         (avr_help): New function.
10929         (TARGET_HELP): Define.
10930
10931 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
10932
10933         PR target/42240
10934         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10935         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10936
10937 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
10938
10939         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10940         (ARM Options): Ditto.
10941         (i386 and x86-64 Options): Ditto.
10942         (RX Options): Ditto.
10943         (SPARC Options): Ditto.
10944
10945 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
10946
10947         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
10948         FreeBSD 6 and later.  Generally use cpu generic.
10949
10950 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
10951
10952         * doc/cpp.texi: Update copyright years.
10953
10954 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
10955
10956         PR target/46898
10957         * config/lm32/lm32.md (ashrsi3): Added needed variable.
10958
10959 2011-02-25  Jon Beniston  <jon@beniston.com>
10960
10961         PR target/46898
10962         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
10963         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
10964         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
10965         (lm32_block_move_inline): Add type cast to remove warning.
10966         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
10967         (gen_int_relational): Move declarations to start of function.
10968
10969 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10970
10971         PR tree-optimization/45470
10972         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10973         can throw internally only.
10974         * tree-vect-stmts.c (vectorizable_call): Likewise.
10975
10976 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
10977
10978         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
10979         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10980         * config/stormy16/stormy16-protos.h
10981         (xstormy16_preferred_reload_class): Remove.
10982         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
10983         static. Change 'rclass' argument and return type to reg_class_t.
10984         (TARGET_PREFERRED_RELOAD_CLASS,
10985         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10986
10987 2011-02-24  Richard Guenther  <rguenther@suse.de>
10988
10989         * lto-streamer-in.c (input_bb): Do not find referenced vars
10990         in debug statements.
10991
10992 2011-02-23  Jason Merrill  <jason@redhat.com>
10993
10994         * common.opt (fabi-version): Document v5 and v6.
10995
10996 2011-02-23  Richard Guenther  <rguenther@suse.de>
10997
10998         PR tree-optimization/47849
10999         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
11000
11001 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11002
11003         * opts-common.c (decode_cmdline_option): Print empty string
11004         argument as "" in decoded->orig_option_with_args_text.
11005         * gcc.c (execute): Print empty string argument as ""
11006         in the verbose output.
11007         (do_spec_1): Keep empty string argument.
11008
11009 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
11010
11011         * config.gcc: Declare score-* and crx-* obsolete.
11012
11013 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11014
11015         PR rtl-optimization/47763
11016         * web.c (web_main): Ignore naked clobber when replacing register.
11017
11018 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
11019
11020         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11021         Remove.
11022
11023 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11024
11025         PR doc/47848
11026         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11027
11028 2011-02-22  Mike Stump  <mikestump@comcast.net>
11029
11030         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11031         assembler.
11032         * configure: Regenerate.
11033
11034 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
11035
11036         PR rtl-optimization/46002
11037         * ira-color.c (update_copy_costs): Change class intersection
11038         test to reg_class_contents[] test of 'hard_regno'.
11039
11040 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
11041
11042         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11043         than Driver option.
11044         * config/hpux11.opt (mt): Likewise.
11045         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11046         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11047         * config/vax/elf.opt (mno-asm-pic): Likewise.
11048         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11049
11050 2011-02-21  Mike Stump  <mikestump@comcast.net>
11051
11052         PR target/47822
11053         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11054         tree so we can get save the type.
11055         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11056         for CFString instead of trying to use past the end of the builtins.
11057         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11058         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11059         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11060         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11061         Rename to darwin_builtin_cfstring.
11062         (darwin_init_cfstring_builtins): Return the built type.
11063
11064 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
11065
11066         PR target/47840
11067         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11068         (_mm256_insert_epi64): Use _mm_insert_epi64.
11069
11070 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
11071
11072         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11073         * config/stormy16/stormy16-protos.h
11074         (xstormy16_mode_dependent_address_p): Remove.
11075         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11076         Make static. Change return type to bool. Change argument type to
11077         const_rtx. Remove dead code.
11078         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11079
11080 2011-02-21  Richard Guenther  <rguenther@suse.de>
11081
11082         PR lto/47820
11083         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11084         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11085         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11086         TUs context.
11087         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11088         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11089
11090 2011-02-20  Richard Guenther  <rguenther@suse.de>
11091
11092         PR lto/47822
11093         * tree.c (free_lang_data_in_decl): Clean builtins from
11094         the TU decl BLOCK_VARS.
11095
11096 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
11097
11098         PR debug/47620
11099         PR debug/47630
11100         * haifa-sched.c (fix_tick_ready): Skip tick computation
11101         for debug insns.
11102
11103 2011-02-19  Richard Guenther  <rguenther@suse.de>
11104
11105         PR lto/47647
11106         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11107         Remove lazy BLOCK_VARS streaming.
11108         (lto_input_ts_block_tree_pointers): Likewise.
11109         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11110
11111 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11112
11113         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11114
11115 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11116
11117         * config/i386/biarch32.h, config/i386/mach.h,
11118         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11119
11120 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
11121
11122         PR target/47800
11123         * config/i386/i386.md (peephole2 for shift and plus): Use
11124         operands[1] original mode in the first insn.
11125
11126 2011-02-18  Mike Stump  <mikestump@comcast.net>
11127
11128         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
11129
11130 2011-02-18  Jan Hubicka  <jh@suse.cz>
11131
11132         PR middle-end/47788
11133         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11134         to zero when the function is not inlinable at all.
11135
11136 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11137
11138         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11139         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11140         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11141         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11142         * config/pa/t-pa64: Likewise.
11143         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11144
11145 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11146
11147         PR driver/47787
11148         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11149
11150 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11151
11152         PR target/47792
11153         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11154
11155 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
11156
11157         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11158         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11159         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11160         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11161         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11162         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11163         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11164         m32r_load_postinc_p, m32r_store_preinc_predec_p,
11165         m32r_legitimate_address_p): New functions.
11166         * config/m32r/constraints.md (constraint "S"): Don't use
11167         STORE_PREINC_PREDEC_P.
11168         (constraint "U"): Don't use LOAD_POSTINC_P.
11169
11170 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
11171
11172         PR rtl-optimization/46178
11173         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11174         compute ira_hard_regno_cover_class[].
11175
11176 2011-02-18  Richard Guenther  <rguenther@suse.de>
11177
11178         PR lto/47798
11179         * lto-streamer.h (lto_global_var_decls): Declare.
11180         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11181         statics for global var processing.
11182
11183 2011-02-18  Richard Guenther  <rguenther@suse.de>
11184
11185         PR tree-optimization/47737
11186         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11187         edge dominance check.
11188
11189 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11190
11191         PR debug/47780
11192         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11193         avoid invalid rtx sharing.
11194
11195 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
11196
11197         * doc/cpp.texi (Obsolete Features): Add background on the
11198         origin of assertions.
11199
11200 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
11201
11202         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
11203         objc_abi == 2.
11204         * config/darwin.c (output_objc_section_asm_op): Added support for
11205         ABI v1 and v2.
11206         (is_objc_metadata): New.
11207         (darwin_objc2_section): New.
11208         (darwin_objc1_section): New.
11209         (machopic_select_section): Added support for ABI v1 and v2.
11210         (darwin_emit_objc_zeroed): New.
11211         (darwin_output_aligned_bss): Detect objc metadata and treat it
11212         appropriately.
11213         (darwin_asm_output_aligned_decl_common): Same.
11214         (darwin_asm_output_aligned_decl_local): Same.
11215         * config/darwin-sections.def: Updated for ABI v1 and v2.
11216         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11217         compiling Objective-C code for the NeXT runtime, default to using
11218         ABI version 0 for 32-bit, and version 2 for 64-bit.
11219
11220 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11221
11222         * common.opt (optimize_fast): New Variable.
11223         * opts.c (default_options_optimization): Use opts->x_optimize_fast
11224         instead of local variable ofast.
11225
11226 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
11227
11228         * doc/invoke.texi (fobjc-abi-version): Documented.
11229         (fobjc-nilcheck): Documented.
11230         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11231         version.
11232
11233 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11234
11235         PR driver/47390
11236         * common.opt (export-dynamic): New Driver option.
11237         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11238
11239 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11240
11241         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11242
11243 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
11244             Jan Hubicka  <jh@suse.cz>
11245
11246         PR debug/47106
11247         PR debug/47402
11248         * cfgexpand.c (account_used_vars_for_block): Remove.
11249         (estimated_stack_frame_size): Use referenced vars.
11250         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11251         that were referenced in the original function.  Test src_fn
11252         rather than cfun.  Drop redundant get_var_ann.
11253         (setup_one_parameter): Drop redundant get_var_ann.
11254         (declare_return_variable): Likewise.
11255         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11256         (copy_arguments_for_versioning): Drop redundant get_var_ann.
11257         * ipa-inline.c (compute_inline_parameters): Do not compute
11258         disregard_inline_limits here.
11259         (compute_inlinable_for_current, pass_inlinable): New.
11260         (pass_inline_parameters): Require PROP_referenced_vars.
11261         * cgraphunit.c (cgraph_process_new_functions): Don't run
11262         compute_inline_parameters explicitly unless function is in SSA form.
11263         (cgraph_analyze_function): Set .disregard_inline_limits.
11264         * tree-sra.c (convert_callers): Compute inliner parameters
11265         only for functions already in SSA form.
11266
11267 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11268
11269         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11270         -mlittle-endian-data.
11271
11272 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11273
11274         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11275         -mno-fpu, not -fpu and -no-fpu.
11276         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11277         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11278
11279 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
11280
11281         PR target/43653
11282         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11283         input reload with PLUS RTX.
11284
11285 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11286
11287         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11288         of InverseVar(MDMX).
11289
11290 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11291
11292         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11293         --m4-340.
11294
11295 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11296
11297         * config/mn10300/mn10300.opt (mno-crt0): New.
11298
11299 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11300
11301         * config/m68k/uclinux.opt (static-libc): New Driver option.
11302
11303 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11304
11305         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11306
11307 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11308
11309         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11310         %{muser-extend-enabled}.
11311
11312 2011-02-16  Richard Guenther  <rguenther@suse.de>
11313
11314         PR tree-optimization/47738
11315         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11316         the TODO from tree_predictive_commoning.
11317
11318 2011-02-15  Jeff Law  <law@redhat.com>
11319
11320         Revert
11321         2011-01-25  Jeff Law  <law@redhat.com>
11322
11323         PR rtl-optimization/37273
11324         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11325         handle them like argument loads from stack slots.  Do not double
11326         count memory for memory constants and argument loads from stack slots.
11327
11328 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11329
11330         PR middle-end/47725
11331         * combine.c (cant_combine_insn_p): Revert the last change.
11332
11333 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
11334
11335         PR target/47755
11336         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11337         mode for vector constants.  Remove code that checks for TImode.
11338
11339 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11340
11341         PR debug/47106
11342         PR debug/47402
11343         * cgraph.h (compute_inline_parameters): Return void.
11344         * ipa-inline.c (compute_inline_parameters): Adjust.
11345
11346 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11347
11348         PR debug/47106
11349         PR debug/47402
11350         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11351         rather than decl.
11352         * cfgexpand.c (estimated_stack_frame_size): Likewise.
11353         * ipa-inline.c (compute_inline_parameters): Adjust.
11354
11355 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11356
11357         PR debug/47106
11358         PR debug/47402
11359         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11360         Adjust all users.  Pass FN to...
11361         * tree-flow-inline.h (first_referenced_var): ... this.  Add
11362         fn argument.
11363         * ipa-struct-reorg.c: Adjust.
11364         * tree-dfa.c: Adjust.
11365         * tree-into-ssa.c: Adjust.
11366         * tree-sra.c: Adjust.
11367         * tree-ssa-alias.c: Adjust.
11368         * tree-ssa-live.c: Adjust.
11369         * tree-ssa.c: Adjust.
11370         * tree-ssanames.c: Adjust.
11371         * tree-tailcall.c: Adjust.
11372
11373 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11374
11375         PR debug/47106
11376         PR debug/47402
11377         * tree-flow.h (referenced_var_lookup): Add fn parameter.
11378         Adjust all callers.
11379         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11380         * tree-flow-inline.h: Adjust.
11381         * gimple-pretty-print.c: Adjust.
11382         * tree-into-ssa.c: Adjust.
11383         * tree-ssa.c: Adjust.
11384         * cfgexpand.c: Adjust.
11385
11386 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11387
11388         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11389         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11390         (EXTRA_CONSTRAINT): Delete.
11391         * config/iq2000/constraints.md: New file.
11392         * config/iq2000/iq2000.md: Include it.
11393         (define_insn ""): Delete.
11394         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11395         unsupported constraint letters from patterns.
11396         (call_value, call_value_internal1): Likewise.
11397         (call_value_multiple_internal1): Likewise.
11398
11399 2011-02-15  Nick Clifton  <nickc@redhat.com>
11400
11401         * config/mn10300/mn10300.c: Include tm-constrs.h.
11402         (struct liw_data): New data structure describing an LIW candidate
11403         instruction.
11404         (extract_bundle): Use struct liw_data.  Allow small integer
11405         operands for some instructions.
11406         (check_liw_constraints): Use struct liw_data.  Remove swapped
11407         parameter.  Add comments describing the checks.  Fix bug when
11408         assigning the source of liw1 to the source of liw2.
11409         (liw_candidate): Delete.  Code moved into extract_bundle.
11410         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
11411         before swapping.
11412         * config/mn10300/predicates.md (liw_operand): New predicate.
11413         Allows registers and small integer constants.
11414         * config/mn10300/constraints.md (O): New constraint.  Accetps
11415         integers in the range -8 to +7 inclusive.
11416         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11417         for moving a small integer into a register.  Give this alternative
11418         LIW attributes.
11419         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11420         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11421         using the J,K,L and M constraints,
11422         (liw): Remove SI mode on second operands to allow for HI and QI
11423         mode values.
11424         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
11425         instruction.
11426
11427 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11428
11429         PR middle-end/47725
11430         * combine.c (cant_combine_insn_p): Check zero/sign extended
11431         hard registers.
11432
11433 2011-02-15  Richard Guenther  <rguenther@suse.de>
11434
11435         PR tree-optimization/47743
11436         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11437         for a non-type-compatible VN lookup bail out.
11438
11439 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11440
11441         * config/fr30/constraints.md: New file.
11442         * config/fr30/fr30.md: Include it.
11443         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11444         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11445         (EXTRA_CONSTRAINT): Delete.
11446
11447 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11448
11449         * config/frv/constraints.md: New file.
11450         * config/frv/predicates.md: Include it.
11451         * config/frv/frv.c (reg_class_from_letter): Delete.
11452         (frv_option_override): Don't initialize it.
11453         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11454         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11455         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11456         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11457         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11458         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11459         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11460         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11461         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11462         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11463         (REG_CLASS_FROM_CONSTRAINT): Delete.
11464
11465 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
11466
11467         PR middle-end/47581
11468         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11469         if frame size is 0 in a leaf function.
11470
11471 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11472
11473         PR pch/14940
11474         * config/alpha/host-osf.c: New file.
11475         * config/alpha/x-osf: New file.
11476         * config.host (alpha*-dec-osf*): Use it.
11477
11478 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11479
11480         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11481         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11482         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11483         (rx_mode_dependent_address_p): ...this. Make static. Change argument
11484         type to const_rtx.
11485         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11486
11487 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11488
11489         * config/stormy16/constraints.md: New file.
11490         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11491         Use satisfies_constraint_Q and satisfies_constraint_R.
11492         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11493         Delete.
11494         (xstormy16_legitiamte_address_p): Declare.
11495         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11496         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11497         (EXTRA_CONSTRAINT): Delete.
11498         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
11499         Un-staticize.
11500         (xstormy16_extra_constraint_p): Delete.
11501
11502 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11503
11504         PR tree-optimization/46494
11505         * loop-unroll.c (split_edge_and_insert): Adjust comment.
11506         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11507         (pass_rtl_loop_done): Add TODO_verify_flow.
11508         * fwprop.c (pass_rtl_fwprop): Likewise.
11509         * modulo-sched.c (pass_sms): Likewise.
11510         * tree-ssa-dom.c (pass_dominator): Likewise.
11511         * tree-ssa-loop-ch.c (pass_ch): Likewise.
11512         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11513         (pass_tree_loop_done): Likewise.
11514         * tree-ssa-pre.c (execute_pre): Likewise.
11515         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11516         * tree-ssa-sink.c (pass_sink_code): Likewise.
11517         * tree-vrp.c (pass_vrp): Likewise.
11518
11519 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11520
11521         * config/v850/constraints.md: New file.
11522         * config/v850/v850.md: Include it.
11523         * config/v850/predicates.md (reg_or_0_operand): Use
11524         satisfies_constraint_G.
11525         (special_symbolref_operand): Use satisfies_constraint_K.
11526         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11527         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11528         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11529         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11530         (EXTRA_CONSTRAINT): Delete.
11531         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11532         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11533         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
11534
11535 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11536
11537         PR target/47696
11538         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11539         description.
11540
11541 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11542
11543         * config/mcore/constraints.md: New file.
11544         * config/mcore/mcore.md: Include it.
11545         * config/mcore/mcore.c (reg_class_from_letter): Delete.
11546         * config/mcore/mcore.h (reg_class_from_letter): Delete.
11547         (REG_CLASS_FROM_LETTER): Delete.
11548         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11549         insn_const_int_ok_for_constraint.
11550         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11551         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11552         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11553         (EXTRA_CONSTRAINT): Delete.
11554
11555 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11556
11557         PR ada/41929
11558         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11559         (IS_SIGHANDLER): Define.
11560         (sparc64_is_sighandler): New function, split off from
11561         sparc64_fallback_frame_state.
11562         (sparc_is_sighandler): New function, split off from
11563         sparc_fallback_frame_state.
11564         (sparc64_fallback_frame_state): Merge with ...
11565         (sparc_fallback_frame_state): ... this into ...
11566         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
11567         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
11568         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
11569         stack instead of hardcoded offsets.
11570
11571 2011-02-14  Andriy Gapon  <avg@freebsd.org>
11572
11573         PR target/45808
11574         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11575
11576 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11577
11578         * configure: Regenerate.
11579
11580 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
11581
11582         PR driver/45731
11583         * gcc.c (asm_options): Correct spec matching --target-help.
11584
11585 2011-02-12  Martin Jambor  <mjambor@suse.cz>
11586
11587         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11588         to gimple call error.
11589
11590 2011-02-12  Mike Stump  <mikestump@comcast.net>
11591
11592         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11593         comments in backslash regions.
11594
11595 2011-02-12  Mike Stump  <mikestump@comcast.net>
11596             Jakub Jelinek  <jakub@redhat.com>
11597             Iain Sandoe  <iains@gcc.gnu.org>
11598
11599         PR target/47324
11600         * dwarf2out.c (output_cfa_loc): When required, apply the
11601         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11602         (output_loc_sequence): Likewise.
11603         (output_loc_operands_raw): Likewise.
11604         (output_loc_sequence_raw): Likewise.
11605         (output_cfa_loc): Likewise.
11606         (output_loc_list): Suppress register number adjustment when
11607         calling output_loc_sequence()
11608         (output_die): Likewise.
11609
11610 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
11611
11612         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11613         Remove macros.
11614         * config/xtensa/xtensa.c (xtensa_register_move_cost,
11615         xtensa_memory_move_cost): New functions.
11616         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11617
11618 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
11619
11620         PR lto/47225
11621         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11622         in the current directory.
11623         * configure: Rebuilt.
11624
11625 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11626
11627         * config/darwin.c (darwin_override_options): Add a hunk missed
11628         from the commit of r168571.  Trim comment line lengths and
11629         correct indents of the preceding block.
11630
11631 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11632
11633         * gcc.c (driver_handle_option): Concatenate the argument to -F with
11634         the switch.
11635
11636 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11637
11638         * common.opt (nostartfiles): New Driver option.
11639
11640 2011-02-11  Xinliang David Li  <davidxl@google.com>
11641
11642         PR tree-optimization/47707
11643         * tree-chrec.c (convert_affine_scev): Keep type precision.
11644
11645 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
11646
11647         PR tree-optimization/47420
11648         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11649
11650 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
11651
11652         PR rtl-optimization/47614
11653         * rtl.h (check_for_inc_dec): Declare.
11654         * dse.c (check_for_inc_dec): Externalize...
11655         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11656         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11657
11658 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11659
11660         PR driver/47678
11661         * gcc.c (main): Do not compile inputs if there were errors in
11662         option handling.
11663         * opts-common.c (read_cmdline_option): Check for wrong language
11664         after other error checks.
11665
11666 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
11667
11668         * cgraph.c: Fix comment typos.
11669         * cgraph.h: Likewise.
11670         * cgraphunit.c: Likewise.
11671         * ipa-cp.c: Likewise.
11672         * ipa-inline.c: Likewise.
11673         * ipa-prop.c: Likewise.
11674         * ipa-pure-const.c: Likewise.
11675         * ipa-ref.c: Likewise.
11676         * ipa-reference.c: Likewise.
11677
11678 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
11679
11680         PR debug/47684
11681         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
11682
11683 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11684
11685         PR testsuite/47400
11686         * doc/sourcebuild.texi (Require Support): Document
11687         dg-require-ascii-locale.
11688
11689 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
11690
11691         * doc/lto.texi (Write summary): Fix missing parentheses.
11692
11693 2011-02-10  DJ Delorie  <dj@redhat.com>
11694
11695         * config/m32c/m32c.c (m32c_option_override): Disable
11696         -fcombine-stack-adjustments until flag value tracking and compare
11697         optimization can be rewritten.
11698
11699 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
11700
11701         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11702         PROCESSOR_POWER7.
11703         (PROCESSOR_DEFAULT64): Likewise.
11704
11705 2011-02-10  Richard Henderson  <rth@redhat.com>
11706
11707         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11708         change from 2011-02-03.
11709         * config/rx/rx.c (flags_from_code): Likewise.
11710         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11711         is valid, n/pz otherwise.
11712         (rx_select_cc_mode): Return CCmode if Y is not zero.
11713
11714 2011-02-10  Richard Guenther  <rguenther@suse.de>
11715
11716         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
11717
11718 2011-02-10  Richard Guenther  <rguenther@suse.de>
11719
11720         PR tree-optimization/47677
11721         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11722
11723 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
11724
11725         PR target/47665
11726         * combine.c (make_compound_operation): Only change shifts into
11727         multiplication for SCALAR_INT_MODE_P.
11728
11729 2011-02-10  Jie Zhang  <jie@codesourcery.com>
11730
11731         PR testsuite/47622
11732         Revert
11733         2011-02-05  Jie Zhang  <jie@codesourcery.com>
11734         PR debug/42631
11735         * web.c (entry_register): Don't clobber the number of the
11736         first uninitialized reference in used[].
11737
11738 2011-02-09  Richard Guenther  <rguenther@suse.de>
11739
11740         PR tree-optimization/47664
11741         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11742         all edges again.
11743
11744 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
11745
11746         PR target/46481
11747         PR target/47032
11748         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
11749         PROCESSOR_POWER7.
11750         (PROCESSOR_DEFAULT64): Same.
11751         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
11752
11753 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11754
11755         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
11756
11757 2011-02-09  Martin Jambor  <mjambor@suse.cz>
11758
11759         PR middle-end/45505
11760         * tree-sra.c (struct access): New flags grp_scalar_read and
11761         grp_scalar_write.  Changed description of assignment read and write
11762         flags.
11763         (dump_access): Dump new flags, reorder all of them.
11764         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11765         to detect multiple scalar reads.
11766         (analyze_access_subtree): Use the new scalar read write flags instead
11767         of the old flags.  Adjusted comments.
11768
11769 2011-02-08  DJ Delorie  <dj@redhat.com>
11770
11771         PR target/47548
11772         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11773         patterns.
11774
11775 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11776
11777         * config/m68k/uclinux.opt: New.
11778         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11779
11780 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11781
11782         * config/cris/elf.opt (sim): New Driver option.
11783
11784 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11785
11786         * config/xtensa/elf.opt: New.
11787         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11788
11789 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11790
11791         * config/vax/elf.opt: New.
11792         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11793
11794 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11795
11796         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11797
11798 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11799
11800         * config/gnu-user.opt: New.
11801         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11802         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11803         *-*-uclinux*): Use gnu-user.opt.
11804
11805 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
11806
11807         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11808         * config/i386/gnu.h (CPP_SPEC): Likewise.
11809
11810 2011-02-08  Ian Lance Taylor  <iant@google.com>
11811
11812         * common.opt (fcx-limited-range): Add SetByCombined flag.
11813         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11814         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11815         (fassociative-math, freciprocal-math): Likewise.
11816         (funsafe-math-optimizations): Likewise.
11817         * opth-gen.awk: Handle SetByCombined.
11818         * optc-gen.awk: Likewise.
11819         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
11820         (set_unsafe_math_optimizations_flags): Likewise.
11821         * doc/options.texi (Option properties): Document SetByCombined.
11822
11823 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11824
11825         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11826         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11827         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11828         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11829         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11830
11831 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
11832
11833         PR tree-optimization/46834
11834         PR tree-optimization/46994
11835         PR tree-optimization/46995
11836         * graphite-sese-to-poly.c (used_outside_reduction): New.
11837         (detect_commutative_reduction): Call used_outside_reduction.
11838         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11839         translate_scalar_reduction_to_array only when at least one
11840         loop-phi/close-phi tuple has been detected.
11841
11842 2011-02-08  Richard Guenther  <rguenther@suse.de>
11843
11844         PR middle-end/47639
11845         * tree-vect-generic.c (expand_vector_operations_1): Update
11846         stmts here ...
11847         (expand_vector_operations): ... not here.  Cleanup EH info
11848         and the CFG if required.
11849
11850 2011-02-08  Richard Guenther  <rguenther@suse.de>
11851
11852         PR tree-optimization/47641
11853         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11854         require type compatibility.
11855
11856 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11857
11858         * gimple-low.c (lower_function_body): Don't remove the location of
11859         the return statement here.
11860         (lower_gimple_return): Do it here instead but only if the return
11861         statement is actually used twice.
11862
11863 2011-02-08  Richard Guenther  <rguenther@suse.de>
11864
11865         PR tree-optimization/47632
11866         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11867         unused up_to_stmt parameter, return whether cfg-cleanup is
11868         necessary, remove EH info properly.
11869         (forward_propagate_into_gimple_cond): Adjust caller.
11870         (forward_propagate_into_cond): Likewise.
11871         (forward_propagate_comparison): Likewise.
11872         (tree_ssa_forward_propagate_single_use_vars): Make
11873         forward_propagate_comparison case similar to the two others.
11874
11875 2011-02-08  Nick Clifton  <nickc@redhat.com>
11876
11877         * config/mn10300/mn10300.opt (mliw): New command line option.
11878         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11879         (liw_bundling): New automaton.
11880         (liw): New attribute.
11881         (liw_op): New attribute.
11882         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11883         (movsi_internal): Add LIW attributes.
11884         (andsi3): Likewise.
11885         (iorsi3): Likewise.
11886         (xorsi3): Likewise.
11887         (addsi3): Separate register and immediate alternatives.
11888         Add LIW attributes.
11889         (subsi3): Likewise.
11890         (cmpsi): Likewise.
11891         (aslsi3): Likewise.
11892         (lshrsi3): Likewise.
11893         (ashrsi3): Likewise.
11894         (liw): New pattern.
11895         * config/mn10300/mn10300.c (liw_op_names): New
11896         (mn10300_print_operand): Handle 'W' operand descriptor.
11897         (extract_bundle): New function.
11898         (check_liw_constraints): New function.
11899         (liw_candidate): New function.
11900         (mn10300_bundle_liw): New function.
11901         (mn10300_reorg): New function.
11902         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11903         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11904         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11905         __LIW__ or __NO_LIW__.
11906         * doc/invoke.texi: Describe the -mliw command line option.
11907
11908 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11909
11910         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11911         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11912         pthread_mutex_unlock): Remove.
11913         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11914         * config/pa/t-pa64: Likewise.
11915         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11916         shared libc if not linking against libpthread.
11917         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11918
11919 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
11920
11921         PR target/47558
11922         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11923         on 10.6 and later to ensure that we always use the unwinder from
11924         the system.  Only add -no_compact_unwind when tarteting darwin
11925         10.6 or later.
11926
11927 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
11928
11929         PR target/46997
11930         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11931         (vec_interleave_lowv2sf): Ditto.
11932         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11933         (vec_extract_oddv2sf): Ditto.
11934
11935 2011-02-07  Mike Stump  <mikestump@comcast.net>
11936
11937         PR target/42333
11938         Add __ieee_divdc3 entry point.
11939         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11940         entry point.
11941         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11942         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
11943         * config/darwin.c (darwin_rename_builtins): Add.
11944         * config/darwin-protos.h (darwin_rename_builtins): Add.
11945
11946 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
11947
11948         PR target/47636
11949         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
11950         for the condition.
11951
11952 2011-02-07  Mike Stump  <mikestump@comcast.net>
11953
11954         * config/darwin.opt (mmacosx-version-min): Update default OS version.
11955
11956 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
11957
11958         PR target/47534
11959         * config/avr/libgcc.S (exit): Move .endfunc
11960
11961 2011-02-07  Richard Guenther  <rguenther@suse.de>
11962
11963         PR tree-optimization/47615
11964         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
11965         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
11966         (run_scc_vn): Initialize it.
11967         (visit_reference_op_load): Use it.
11968         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
11969
11970 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11971
11972         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
11973         DImode trapping arithmetic libfuncs.
11974
11975 2011-02-07  Richard Guenther  <rguenther@suse.de>
11976
11977         PR tree-optimization/47621
11978         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
11979         two duplicates ...
11980         (execute_update_addresses_taken): ... here.  Make it more
11981         conservative in what we accept.
11982
11983 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11984
11985         * config/sparc/freebsd.h (ASM_SPEC): Define.
11986         * config/sparc/vxworks.h (ASM_SPEC): Define.
11987
11988 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11989
11990         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11991
11992 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
11993
11994         * doc/invoke.texi: Remove reference to compiler internals from
11995         user documentation.
11996
11997         * reg-notes.def: Remove REG_VALUE_PROFILE.
11998         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
11999
12000 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
12001
12002         PR middle-end/47610
12003         * varasm.c (default_section_type_flags): If decl is NULL,
12004         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
12005
12006 2011-02-05  Jie Zhang  <jie@codesourcery.com>
12007
12008         PR debug/42631
12009         * web.c (entry_register): Don't clobber the number of the
12010         first uninitialized reference in used[].
12011
12012 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
12013
12014         PR tree-optimization/46194
12015         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12016         (build_classic_dist_vector_1): Do not represent classic distance
12017         vectors when the access functions are variating in different loops.
12018
12019 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12020
12021         * config/mips/iris6.opt: New.
12022         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12023
12024 2011-02-04  Richard Henderson  <rth@redhat.com>
12025             Steve Ellcey  <sje@cup.hp.com>
12026
12027         PR target/46997
12028         * config/ia64/predicates.md (mux1_brcst_element): New.
12029         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12030         * config/ia64/ia64.c (ia64_unpack_assemble): New.
12031         (ia64_unpack_sign): New.
12032         (ia64_expand_unpack): Rewrite using new routines.
12033         (ia64_expand_widen_sum): Ditto.
12034         (ia64_expand_dot_prod_v8qi): Ditto.
12035         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12036         routines, add endian check.
12037         (pmpy2_even): Rename from pmpy2_r, add endian check.
12038         (pmpy2_odd): Rename from pmpy2_l, add endian check.
12039         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12040         (vec_widen_smult_hi_v4hi): Ditto.
12041         (vec_widen_umult_lo_v4hi): Ditto.
12042         (vec_widen_umult_hi_v4hi): Ditto.
12043         (mulv2si3): Change endian checks.
12044         (sdot_prodv4hi): Rewrite with new calls.
12045         (udot_prodv4hi): New.
12046         (vec_pack_ssat_v4hi): Add endian check.
12047         (vec_pack_usat_v4hi): Ditto.
12048         (vec_pack_ssat_v2si): Ditto.
12049         (max1_even): Rename from max1_r, add endian check.
12050         (max1_odd): Rename from max1_l, add endian check.
12051         (*mux1_rev): Format change.
12052         (*mux1_mix): Ditto.
12053         (*mux1_shuf): Ditto.
12054         (*mux1_alt): Ditto.
12055         (*mux1_brcst_v8qi): Use new predicate.
12056         (vec_extract_evenv8qi): Remove endian check.
12057         (vec_extract_oddv8qi): Ditto.
12058         (vec_interleave_lowv4hi): Format change.
12059         (vec_interleave_highv4hi): Ditto.
12060         (mix2_even): Rename from mix2_r, add endian check.
12061         (mix2_odd): Rename from mux2_l, add endian check.
12062         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12063         (vec_extract_evenodd_helper): Format change.
12064         (vec_extract_evenv4hi): Remove endian check.
12065         (vec_extract_oddv4hi): Remove endian check.
12066         (vec_interleave_lowv2si): Format change.
12067         (vec_interleave_highv2si): Format change.
12068         (vec_initv2si): Remove endian check.
12069         (vecinit_v2si): Add endian check.
12070         (reduc_splus_v2sf): Add endian check.
12071         (reduc_smax_v2sf): Ditto.
12072         (reduc_smin_v2sf): Ditto.
12073         (vec_initv2sf): Remove endian check.
12074         (fpack): Add endian check.
12075         (fswap): Add endian check.
12076         (vec_interleave_highv2sf): Add endian check.
12077         (vec_interleave_lowv2sf): Add endian check.
12078         (fmix_lr): Add endian check.
12079         (vec_setv2sf): Format change.
12080         (*vec_extractv2sf_0_be): Use shift to extract operand.
12081         (*vec_extractv2sf_1_be): New.
12082         (vec_pack_trunc_v4hi): Add endian check.
12083         (vec_pack_trunc_v2si): Format change.
12084
12085 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
12086
12087         PR inline-asm/23200
12088         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
12089         do bb, locus and block comparison and disallow loads if it is not set.
12090         (stmt_is_replaceable_p): New function.
12091         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12092         callers.
12093         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12094         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12095         SSA_NAME_DEF_STMT.
12096         * tree-flow.h (stmt_is_replaceable_p): New prototype.
12097
12098 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12099
12100         * config/rs6000/xilinx.opt: New.
12101         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12102
12103 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12104
12105         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12106
12107 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
12108
12109         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12110         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12111         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12112         secondary_reload_info, xtensa_secondary_reload): Remove.
12113         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12114         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12115         (xtensa_preferred_reload_class): Make static. Change return and
12116         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12117         Use CONST_DOUBLE_P predicate.
12118         (xtensa_preferred_output_reload_class): New function.
12119         (xtensa_secondary_reload): Make static.
12120
12121 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
12122
12123         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12124         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12125         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12126
12127 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12128
12129         PR middle-end/31490
12130         * output.h (SECTION_RELRO): Define.
12131         (SECTION_MACH_DEP): Adjust.
12132         (get_variable_section): New prototype.
12133         * varpool.c (varpool_finalize_named_section_flags): New function.
12134         (varpool_assemble_pending_decls): Call it.
12135         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12136         * cgraphunit.c (cgraph_output_in_order): Call
12137         varpool_finalize_named_section_flags.
12138         * varasm.c (get_section): Allow section flags conflicts between
12139         relro and read-only sections if the section hasn't been declared yet.
12140         Set SECTION_OVERRIDE after diagnosing section type conflict.
12141         (get_variable_section): No longer static.
12142         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12143         readonly sections that need relocations.
12144         (decl_readonly_section_1): New function.
12145         (decl_readonly_section): Use it.
12146
12147         Revert:
12148         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
12149                     Steve Ellcey  <sje@cup.hp.com>
12150
12151         PR middle-end/31490
12152         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12153         if section attribute used.
12154
12155 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12156
12157         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12158         * config/darwin.c (SECTION_NO_ANCHOR): Define.
12159         (darwin_init_sections): Remove assertion.
12160
12161 2011-02-03  Nick Clifton  <nickc@redhat.com>
12162
12163         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12164         lt and ge.
12165         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
12166         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12167         instead of "n" and "pz".
12168         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12169         CC_FLAG_S.
12170
12171 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12172
12173         PR target/47312
12174         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12175         fma, expand FMA_EXPR as fma{,f,l} call.
12176
12177         PR lto/47274
12178         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12179         copy them into a unsigned char variable and pass address of it to
12180         lto_output_data_stream.
12181
12182         PR target/47564
12183         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12184         around backend_init_target and lang_dependent_init_target calls.
12185         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12186         (verify_cgraph_node): Don't call set_cfun here.  Use
12187         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12188         Set error_found for incorrectly represented calls to thunks.
12189
12190 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12191
12192         PR debug/43092
12193         PR rtl-optimization/43494
12194         * rtl.h (for_each_inc_dec_fn): New type.
12195         (for_each_inc_dec): Declare.
12196         * rtlanal.c (struct for_each_inc_dec_ops): New type.
12197         (for_each_inc_dec_find_inc_dec): New fn.
12198         (for_each_inc_dec_find_mem): New fn.
12199         (for_each_inc_dec): New fn.
12200         * dse.c (struct insn_size): Remove.
12201         (replace_inc_dec, replace_inc_dec_mem): Remove.
12202         (emit_inc_dec_insn_before): New fn.
12203         (check_for_inc_dec): Use it, along with for_each_inc_dec.
12204         (canon_address): Pass mem modes to cselib_lookup.
12205         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
12206         (cselib_lookup_from_insn): Likewise.
12207         (cselib_subst_to_values): Likewise.
12208         * cselib.c (find_slot_memmode): New var.
12209         (cselib_find_slot): New fn.  Use it instead of
12210         htab_find_slot_with_hash everywhere.
12211         (entry_and_rtx_equal_p): Use find_slot_memmode.
12212         (autoinc_split): New fn.
12213         (rtx_equal_for_cselib_p): Rename and implement in terms of...
12214         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
12215         Deal with autoinc.  Special-case recursion into MEMs.
12216         (cselib_hash_rtx): Likewise.
12217         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
12218         address and MEM modes.
12219         (cselib_subst_to_values): Add memmode, pass it on.
12220         Deal with autoinc.
12221         (cselib_lookup): Add memmode argument, pass it on.
12222         (cselib_lookup_from_insn): Add memmode.
12223         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12224         (struct cselib_record_autoinc_data): New.
12225         (cselib_record_autoinc_cb): New fn.
12226         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
12227         mode to cselib_lookup.  Reset autoinced REGs here instead of...
12228         (cselib_process_insn): ... here.
12229         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12230         to cselib_lookup.
12231         (add_uses): Likewise, also to cselib_subst_to_values.
12232         (add_stores): Likewise.
12233         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
12234         cselib_subst_to_values.
12235         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
12236         * gcse.c (do_local_cprop): Adjusted.
12237         * postreload.c (reload_cse_simplify_set): Adjusted.
12238         (reload_cse_simplify_operands): Adjusted.
12239         * sel-sched-dump (debug_mem_addr_value): Pass mode.
12240
12241 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12242
12243         PR tree-optimization/45122
12244         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12245         unsafe assumptions when there's more than one loop exit.
12246
12247 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12248
12249         PR target/47272
12250         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12251         Document using vector double with the load/store builtins, and
12252         that the load/store builtins always use Altivec instructions.
12253
12254         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12255         to use altivec memory instructions, even on VSX.
12256         (vector_altivec_store_<mode>): Ditto.
12257
12258         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12259         function.
12260
12261         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12262         V2DF, V2DI support to load/store overloaded builtins.
12263
12264         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12265         altivec load/store builtins for V2DF/V2DI types.
12266
12267         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12268         set avoid indexed addresses on power6 if -maltivec.
12269         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12270         vector_altivec_load/vector_altivec_store builtins.
12271         (altivec_expand_st_builtin): Ditto.
12272         (altivec_expand_builtin): Add VSX memory builtins.
12273         (rs6000_init_builtins): Add V2DI types to internal types.
12274         (altivec_init_builtins): Add support for V2DF/V2DI altivec
12275         load/store builtins.
12276         (rs6000_address_for_altivec): Insure memory address is appropriate
12277         for Altivec.
12278
12279         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12280         vec_vsx_ld and vec_vsx_st.
12281         (vsx_store_<mode>): Ditto.
12282
12283         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12284         variables to hold long long types for VSX vector memory builtins.
12285         (RS6000_BTI_unsigned_long_long): Ditto.
12286         (long_long_integer_type_internal_node): Ditti.
12287         (long_long_unsigned_type_internal_node): Ditti.
12288
12289         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12290         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12291         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12292
12293         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12294         short cuts.
12295         (vec_vsx_st): Ditto.
12296
12297 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12298
12299         * config/pa/pa-hpux10.opt: New.
12300         * config/hpux11.opt (pthread): New Driver option.
12301         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12302         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12303
12304 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12305
12306         * config/ia64/vms.opt: New.
12307         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12308
12309 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
12310
12311         PR target/47580
12312         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12313         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12314         generator functions.
12315         (vsx_floatuns<VSi><mode>2): Ditto.
12316         (vsx_fix_trunc<mode><VSi>2): Ditto.
12317         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12318
12319 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12320
12321         * config/i386/djgpp.opt (posix): New Driver option.
12322
12323 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12324
12325         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12326         Move to the unsupported targets list.
12327
12328 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
12329
12330         PR rtl-optimization/47525
12331         * df-scan.c: Update copyright years.
12332         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12333         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12334
12335 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12336
12337         * config/i386/sysv4.h (TARGET_VERSION): Remove.
12338         (SUBTARGET_RETURN_IN_MEMORY): Remove.
12339         (ASM_OUTPUT_ASCII): Remove.
12340         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12341
12342 2011-02-02  Jeff Law  <law@redhat.com>
12343
12344         PR middle-end/47543
12345         * reload.c (find_reloads_address): Handle reg+d address where both
12346         components are invalid by reloading the entire address.
12347
12348 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12349             Richard Guenther  <rguenther@suse.de>
12350
12351         PR tree-optimization/40979
12352         PR bootstrap/47044
12353         * passes.c (init_optimization_passes): After LIM call copy_prop
12354         and DCE to clean up.
12355         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12356
12357 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12358
12359         PR tree-optimization/47576
12360         PR tree-optimization/47555
12361         * doc/invoke.texi (scev-max-expr-complexity): Documented.
12362         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12363         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12364         * tree-scalar-evolution.c (follow_ssa_edge): Use
12365         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12366
12367 2011-02-02  Richard Guenther  <rguenther@suse.de>
12368
12369         PR tree-optimization/47566
12370         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12371
12372 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12373
12374         PR debug/47106
12375         PR debug/47402
12376         * tree-inline.c (declare_return_variable): Remove unused caller
12377         variable.
12378
12379         PR debug/47106
12380         PR debug/47402
12381         * tree-flow-inline.h (clear_is_used, is_used_p): New.
12382         * cfgexpand.c (account_used_vars_for_block): Use them.
12383         * tree-nrv.c (tree_nrv): Likewise.
12384         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12385         (dump_scope_block): Likewise.
12386         (remove_unused_locals): Likewise.
12387
12388         PR debug/47106
12389         PR debug/47402
12390         * tree-inline.c (declare_return_variable): Add result decl to
12391         local decls only once.
12392         * gimple-low.c (record_vars_into): Mark newly-created variables
12393         as referenced.
12394
12395 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12396
12397         PR debug/47498
12398         PR debug/47501
12399         PR debug/45136
12400         PR debug/45130
12401         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12402         debug insns.
12403         (no_real_insns_p, schedule_block, set_priorities): Drop special
12404         treatment of boundary debug insns.
12405         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12406         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12407         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12408         (BOUNDARY_DEBUG_INSN_P): Likewise.
12409         (SCHEDULE_DEBUG_INSN_P): Likewise.
12410         * sched-rgn.c (init_ready_list): Drop special treatment of
12411         boundary debug insns.
12412         * final.c (rest_of_clean_state): Clear notes' BB.
12413
12414 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12415
12416         * config/openbsd.opt (assert=): New Driver option.
12417
12418 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12419
12420         * config/i386/nto.opt: New.
12421         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12422
12423 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12424
12425         * config/i386/netware.opt: New.
12426         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12427
12428 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12429
12430         * config/interix.opt (posix): New Driver option.
12431
12432 2011-02-01  DJ Delorie  <dj@redhat.com>
12433
12434         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12435
12436         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12437         class for A0/A1.
12438
12439 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
12440
12441         PR tree-optimization/47561
12442         * toplev.c (process_options): Print the Graphite flags.  Add
12443         flag_loop_flatten to the list of options requiring Graphite.
12444
12445 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12446
12447         * config/i386/cygming.opt (posix): New Driver option.
12448
12449 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12450
12451         * config/arm/vxworks.opt: New.
12452         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12453
12454 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12455
12456         * config/alpha/elf.opt: New.
12457         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12458         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12459
12460 2011-02-01  Richard Guenther  <rguenther@suse.de>
12461
12462         PR tree-optimization/47559
12463         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12464         store-motion on references that can throw.
12465
12466 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
12467
12468         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12469         * tree-pass.h (TDF_CSELIB): New macro.
12470         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12471         cselib_lookup): Check for it rather than for TDF_DETAILS.
12472
12473 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
12474
12475         PR driver/47547
12476         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12477         is HOST_BIT_BUCKET.
12478
12479         * opts.c (finish_options): Don't add x_aux_base_name if it is
12480         HOST_BIT_BUCKET.
12481
12482 2011-02-01  Richard Guenther  <rguenther@suse.de>
12483
12484         PR tree-optimization/47555
12485         Revert
12486         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
12487
12488         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12489
12490 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12491
12492         PR gcc/46692
12493         * config/lm32/t-lm32: Add multilib for all CPU options.
12494
12495 2011-02-01  Richard Guenther  <rguenther@suse.de>
12496
12497         PR tree-optimization/47541
12498         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12499         sure to have a field at offset zero.
12500
12501 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12502
12503         * config/arc/arc.opt (EB, EL): New Driver options.
12504
12505 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12506
12507         * config/alpha/osf5.opt: New.
12508         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12509
12510 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12511
12512         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12513
12514 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
12515
12516         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12517         -floop-interchange.
12518         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12519         is an alias of -floop-interchange and that it requires the
12520         Graphite infrastructure.
12521         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12522         flag_loop_interchange based on the value of flag_tree_loop_linear.
12523
12524 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
12525             Richard Guenther  <rguenther@suse.de>
12526
12527         PR tree-optimization/47538
12528         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12529         type instead of r1type, except for comparisons.  For right
12530         shifts and comparisons punt if there are mismatches in
12531         sizetype vs. non-sizetype types.
12532
12533 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12534
12535         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12536         avx_runtime.
12537
12538 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12539
12540         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12541         version number.
12542         * configure: Regenerate.
12543
12544 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12545
12546         * configure.ac (gcc_cv_ld_static_option): Define.
12547         (gcc_cv_ld_dynamic_option): Define.
12548         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12549         instead.
12550         (HAVE_LD_STATIC_DYNAMIC): Update message.
12551         (LD_STATIC_OPTION): Define.
12552         (LD_DYNAMIC_OPTION): Define.
12553         * configure: Regenerate.
12554         * config.in: Regenerate.
12555         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12556         HAVE_LD_STATIC_DYNAMIC]: Use them.
12557
12558 2011-01-31  Nick Clifton  <nickc@redhat.com>
12559
12560         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12561         registers inside interrupt handlers if the handler is not a leaf
12562         function.
12563
12564 2011-01-31  Nick Clifton  <nickc@redhat.com>
12565
12566         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12567         reg_renumber returning an INVALID_REGNUM.
12568
12569 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12570
12571         PR libgcj/44341
12572         * doc/install.texi: Document host options discarded when cross
12573         configuring target libraries.
12574
12575 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12576
12577         Reverted:
12578         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12579         PR debug/45136
12580         PR debug/45130
12581         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12582         debug insns.
12583         (no_real_insns_p, schedule_block, set_priorities): Drop special
12584         treatment of boundary debug insns.
12585         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12586         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12587         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12588         (BOUNDARY_DEBUG_INSN_P): Likewise.
12589         (SCHEDULE_DEBUG_INSN_P): Likewise.
12590         * sched-rgn.c (init_ready_list): Drop special treatment of
12591         boundary debug insns.
12592         * final.c (rest_of_clean-state): Clear notes' BB.
12593
12594 2011-01-31  Alan Modra  <amodra@gmail.com>
12595
12596         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12597         toc relative expressions as we do in print_operand_address.
12598
12599 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
12600
12601         * doc/extend.texi: Follow spelling conventions.
12602         * doc/invoke.texi: Fix a typo.
12603
12604 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
12605
12606         * config/hpux11.opt: New.
12607         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12608         ia64*-*-hpux*): Use hpux11.opt.
12609
12610 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
12611
12612         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12613         to tmake_file.
12614
12615 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12616
12617         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12618         support sites.
12619
12620 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12621
12622         * doc/install.texi (Binaries): Remove outdated reference for
12623         Motorola 68HC11/68HC12 downloads.
12624
12625 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12626
12627         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12628         Drepper's paper.
12629
12630 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
12631
12632         PR bootstrap/47147
12633         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12634         used by NetBSD.
12635
12636 2011-01-28  Ahmad Sharif  <asharif@google.com>
12637
12638         * value-prof.c (check_counter): Corrected error message.
12639
12640 2011-01-29  Jie Zhang  <jie@codesourcery.com>
12641
12642         * config/arm/arm.c (arm_legitimize_reload_address): New.
12643         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12644         arm_legitimize_reload_address.
12645         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
12646
12647 2011-01-28  Ian Lance Taylor  <iant@google.com>
12648
12649         * godump.c (go_define): Ignore macros whose definitions include
12650         two adjacent operands.
12651
12652 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
12653
12654         PR target/42894
12655         * varasm.c (force_const_mem): Store copy of x in desc->constant
12656         instead of x itself.
12657         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12658         itself into REG_EQUAL note.
12659
12660 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
12661
12662         * config/freebsd.opt (posix, rdynamic): New Driver options.
12663
12664 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12665
12666         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12667         -Bstatic/-Bdynamic.
12668         * configure: Regenerate.
12669
12670 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
12671
12672         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12673         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12674
12675 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
12676
12677         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12678         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12679         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12680         (s390_preferred_reload_class): Make static. Change return and
12681         'rclass' argument type to reg_class_t.
12682
12683 2011-01-27  Jan Hubicka  <jh@suse.cz>
12684
12685         PR middle-end/46949
12686         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12687         (process_function_and_variable_attributes): Check defined weakrefs.
12688
12689 2011-01-27  Martin Jambor  <mjambor@suse.cz>
12690
12691         PR tree-optimization/47228
12692         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12693         build_ref_for_offset.
12694
12695 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12696
12697         * config/spu/spu-elf.h (ASM_SPEC): Remove.
12698
12699 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
12700
12701         PR rtl-optimization/46856
12702         * postreload.c (reload_combine_recognize_const_pattern): Do not
12703         separate cc0 setter and user on cc0 targets.
12704
12705 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
12706
12707         PR c/43082
12708         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12709         passed a VOID_TYPE expression, immediately emit an error and
12710         return error_mark_node.
12711
12712 2011-01-26  Jeff Law  <law@redhat.com>
12713
12714         PR rtl-optimization/47464
12715         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12716         rather than may_trap_p as needed.
12717
12718 2011-01-26  DJ Delorie  <dj@redhat.com>
12719
12720         PR rtl-optimization/46878
12721         * combine.c (insn_a_feeds_b): Check for the implicit cc0
12722         setter/user dependency as well.
12723
12724 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
12725
12726         PR rtl-optimization/44469
12727         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12728         after removing trivially dead basic blocks.
12729
12730 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12731
12732         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12733         * config/frv/frv.h (LINK_SPEC): Likewise.
12734         * config/i386/netware.h (LINK_SPEC): Likewise.
12735         * config/m68k/linux.h (ASM_SPEC): Likewise.
12736         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12737         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12738         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12739         * config/sparc/linux.h (ASM_SPEC): Likewise.
12740         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12741         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12742
12743 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12744
12745         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
12746         * config/frv/frv.h (ASM_SPEC): Likewise.
12747         * config/m68k/linux.h (ASM_SPEC): Likewise.
12748         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12749         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
12750         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12751         * config/sparc/linux.h (ASM_SPEC): Likewise.
12752         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12753         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12754
12755 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12756
12757         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
12758         * config/frv/frv.h (LINK_SPEC): Likewise.
12759         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12760
12761 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12762
12763         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12764         * config/frv/frv.h (ASM_SPEC): Likewise.
12765         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12766         * config/m68k/linux.h (ASM_SPEC): Likewise.
12767         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12768         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12769         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12770         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12771         * config/sparc/linux.h (ASM_SPEC): Likewise.
12772         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12773         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12774         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12775
12776 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
12777
12778         PR target/46997
12779         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12780         (*mux2): Ditto.
12781         (vec_extract_evenodd_help): Ditto.
12782         (vec_extract_evenv4hi): Ditto.
12783         (vec_extract_oddv4hi): Ditto.
12784         (vec_interleave_lowv2si): Ditto.
12785         (vec_interleave_highv2si): Ditto.
12786         (vec_extract_evenv2si): Ditto.
12787         (vec_extract_oddv2si: Ditto.
12788         (vec_pack_trunc_v2si): Ditto.
12789
12790 2011-01-22  Jan Hubicka  <jh@suse.cz>
12791
12792         PR target/47237
12793         * cgraph.h (cgraph_local_info): New field can_change_signature.
12794         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12795         signature can change.
12796         (ipcp_estimate_growth): Call sequence simplify only if calle signature
12797         can change.
12798         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12799         (cgraph_function_versioning): We can not change signature of functions
12800         that don't allow that.
12801         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12802         (lto_input_node): Likewise.
12803         * ipa-inline.c (compute_inline_parameters): Compute
12804         local.can_change_signature.
12805         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
12806         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12807         functions that can not change signature.
12808         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
12809         init_cumulative_args): Do not use local calling conventions
12810         for functions that can not change signature.
12811
12812 2011-01-22  Jan Hubicka  <jh@suse.cz>
12813
12814         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12815
12816 2011-01-26  Richard Guenther  <rguenther@suse.de>
12817
12818         PR tree-optimization/47190
12819         * cgraphunit.c (process_common_attributes): New function.
12820         (process_function_and_variable_attributes): Use it.
12821
12822 2011-01-26  Richard Guenther  <rguenther@suse.de>
12823
12824         PR lto/47423
12825         * cgraphbuild.c (record_eh_tables): Record reference to personality
12826         function.
12827
12828 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
12829
12830         PR debug/45454
12831         * sel-sched.c (moveup_expr): Don't let debug insns prevent
12832         non-debug insns from moving up.
12833
12834 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12835
12836         PR target/40125
12837         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12838         t-dlldir{,-x} fragment for build and add it to tmake_file.
12839         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12840         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12841         * config/i386/t-dlldir: New file.
12842         (SHLIB_DLLDIR): Define.
12843         * config/i386/t-dlldir-x: New file.
12844         (SHLIB_DLLDIR): Define.
12845         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12846         (SHLIB_INSTALL): Use it.
12847
12848 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
12849
12850         PR target/47246
12851         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12852         lower bound of the allowed Thumb-2 coprocessor load/store
12853         index range to -256. Add explaining comment.
12854
12855 2011-01-25  Ian Lance Taylor  <iant@google.com>
12856
12857         * godump.c (go_define): Improve lexing of macro expansion to only
12858         accept expressions which match Go spec.
12859
12860 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12861
12862         PR c++/43601
12863         * tree.c (handle_dll_attribute): Handle it.
12864         * doc/extend.texi (@item dllexport): Mention it.
12865         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12866
12867 2011-01-25  Ian Lance Taylor  <iant@google.com>
12868
12869         PR tree-optimization/26854
12870         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12871         (decl_jump_unsafe): Move higher in file, with no other change.
12872         (bind): Set has_jump_unsafe_decl if appropriate.
12873         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12874         (check_earlier_gotos): Likewise.
12875         (c_check_switch_jump_warnings): Likewise.
12876
12877 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
12878
12879         * doc/invoke.texi (Warning Options): Add missing hyphen.
12880         (-fprofile-dir): Minor grammatical fixes.
12881         (-fbranch-probabilities): Likewise.
12882
12883 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12884
12885         PR debug/45136
12886         PR debug/45130
12887         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12888         debug insns.
12889         (no_real_insns_p, schedule_block, set_priorities): Drop special
12890         treatment of boundary debug insns.
12891         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12892         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12893         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12894         (BOUNDARY_DEBUG_INSN_P): Likewise.
12895         (SCHEDULE_DEBUG_INSN_P): Likewise.
12896         * sched-rgn.c (init_ready_list): Drop special treatment of
12897         boundary debug insns.
12898         * final.c (rest_of_clean-state): Clear notes' BB.
12899
12900 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12901
12902         * Makefile.in (LAMBDA_H): Removed.
12903         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12904         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12905         lambda-trans.o, and tree-loop-linear.o.
12906         (lto-symtab.o): Remove dependence on LAMBDA_H.
12907         (tree-loop-linear.o): Remove rule.
12908         (lambda-mat.o): Same.
12909         (lambda-trans.o): Same.
12910         (lambda-code.o): Same.
12911         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12912         (tree-vect-slp.o): Same.
12913         * hwint.h (gcd): Moved here.
12914         (least_common_multiple): Same.
12915         * lambda-code.c: Removed.
12916         * lambda-mat.c: Removed.
12917         * lambda-trans.c: Removed.
12918         * lambda.h: Removed.
12919         * tree-loop-linear.c: Removed.
12920         * lto-symtab.c: Do not include lambda.h.
12921         * omega.c (gcd): Removed.
12922         * passes.c (init_optimization_passes): Remove pass_linear_transform.
12923         * tree-data-ref.c (print_lambda_vector): Moved here.
12924         (lambda_vector_copy): Same.
12925         (lambda_matrix_copy): Same.
12926         (lambda_matrix_id): Same.
12927         (lambda_vector_first_nz): Same.
12928         (lambda_matrix_row_add): Same.
12929         (lambda_matrix_row_exchange): Same.
12930         (lambda_vector_mult_const): Same.
12931         (lambda_vector_negate): Same.
12932         (lambda_matrix_row_negate): Same.
12933         (lambda_vector_equal): Same.
12934         (lambda_matrix_right_hermite): Same.
12935         * tree-data-ref.h: Do not include lambda.h.
12936         (lambda_vector): Moved here.
12937         (lambda_matrix): Same.
12938         (dependence_level): Same.
12939         (lambda_transform_legal_p): Removed declaration.
12940         (lambda_collect_parameters): Same.
12941         (lambda_compute_access_matrices): Same.
12942         (lambda_vector_gcd): Same.
12943         (lambda_vector_new): Same.
12944         (lambda_vector_clear): Same.
12945         (lambda_vector_lexico_pos): Same.
12946         (lambda_vector_zerop): Same.
12947         (lambda_matrix_new): Same.
12948         * tree-flow.h (least_common_multiple): Removed declaration.
12949         * tree-parloops.c (lambda_trans_matrix): Moved here.
12950         (LTM_MATRIX): Same.
12951         (LTM_ROWSIZE): Same.
12952         (LTM_COLSIZE): Same.
12953         (LTM_DENOMINATOR): Same.
12954         (lambda_trans_matrix_new): Same.
12955         (lambda_matrix_vector_mult): Same.
12956         (lambda_transform_legal_p): Same.
12957         * tree-pass.h (pass_linear_transform): Removed declaration.
12958         * tree-ssa-loop.c (tree_linear_transform): Removed.
12959         (gate_tree_linear_transform): Removed.
12960         (pass_linear_transform): Removed.
12961         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
12962         flag_loop_interchange.
12963
12964 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12965
12966         PR tree-optimization/47265
12967         PR tree-optimization/47443
12968         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
12969         if name still has some uses.
12970
12971 2011-01-25  Martin Jambor  <mjambor@suse.cz>
12972
12973         PR tree-optimization/47382
12974         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
12975         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
12976
12977 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
12978
12979         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
12980         sjlj_except_unwind_info.
12981
12982 2011-01-25  Richard Guenther  <rguenther@suse.de>
12983
12984         PR tree-optimization/47426
12985         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
12986         visible functions results escape.
12987
12988 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12989
12990         PR target/45701
12991         * config/arm/arm.c (any_sibcall_uses_r3): New function.
12992         (arm_get_frame_offsets): Use it.
12993
12994 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12995             Jakub Jelinek  <jakub@redhat.com>
12996
12997         PR tree-optimization/47271
12998         * tree-if-conv.c (bb_postdominates_preds): New.
12999         (if_convertible_bb_p): Call bb_postdominates_preds.
13000         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
13001         (predicate_scalar_phi): Call bb_postdominates_preds.
13002
13003 2011-01-25  Nick Clifton  <nickc@redhat.com>
13004
13005         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
13006         * config/rx/rx.c (rx_function_value): Likewise.
13007         (rx_promote_function_mode): Likewise.
13008         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13009         in order to make it legitimate.
13010         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13011         make sure that the first operand is the same as the result register.
13012         (addsi3_unspec): Delete.
13013         (subdi3): Do not accept immediate operands.
13014         (subdi3_internal): Likewise.
13015
13016 2011-01-25  Jeff Law  <law@redhat.com>
13017
13018         PR rtl-optimization/37273
13019         * ira-costs.c (scan_one_insn): Detect constants living in memory and
13020         handle them like argument loads from stack slots.  Do not double
13021         count memory for memory constants and argument loads from stack slots.
13022
13023 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13024
13025         PR tree-optimization/47427
13026         PR tree-optimization/47428
13027         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13028         coalesce if the new root var would be TREE_READONLY.
13029
13030 2011-01-25  Richard Guenther  <rguenther@suse.de>
13031
13032         PR middle-end/47414
13033         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13034         correct type for TBAA.
13035
13036 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13037
13038         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13039         (close_phi_written_to_memory): Call for_each_index with
13040         dr_indices_valid_in_loop.
13041
13042 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13043
13044         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13045         when it is initialized.
13046
13047 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13048
13049         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13050         call to graphite_find_data_references_in_stmt.
13051         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13052         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
13053         call to graphite_find_data_references_in_stmt.
13054         (analyze_drs_in_stmts): Same.
13055         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13056         in which the scalar analysis of indices is performed.
13057         (create_data_ref): Same.  Update call to dr_analyze_indices.
13058         (find_data_references_in_stmt): Update call to create_data_ref.
13059         (graphite_find_data_references_in_stmt): Same.
13060         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13061         declaration.
13062         (create_data_ref): Same.
13063         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13064         call to create_data_ref.
13065
13066 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13067
13068         * graphite-sese-to-poly.c (build_poly_scop): Move
13069         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
13070
13071 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13072
13073         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13074         VAR_DECL, PARM_DECL, and RESULT_DECL.
13075
13076 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13077
13078         * graphite-dependences.c (reduction_dr_1): Allow several reductions
13079         in a reduction PBB.
13080         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13081         that have already been marked as PBB_IS_REDUCTION.
13082
13083 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13084
13085         * graphite-scop-detection.c (same_close_phi_node): New.
13086         (remove_duplicate_close_phi): New.
13087         (make_close_phi_nodes_unique): New.
13088         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13089
13090 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13091
13092         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13093         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13094         of both data references to be the same.
13095
13096 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13097
13098         * graphite-dependences.c (build_lexicographical_constraint): Remove
13099         the gdim parameter.
13100         (build_lexicographical_constraint): Adjust call to
13101         ppl_powerset_is_empty.
13102         (dependence_polyhedron): Same.
13103         (graphite_legal_transform_dr): Same.
13104         (graphite_carried_dependence_level_k): Same.
13105         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13106         parameter.
13107         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13108
13109 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13110
13111         * graphite-sese-to-poly.c
13112         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13113         (close_phi_written_to_memory): New.
13114         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13115         and unshare_expr.
13116
13117 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13118
13119         * doc/install.texi: Update the expected version number of PPL to 0.11.
13120         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13121         #if PPL_VERSION_MINOR < 11.
13122
13123 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13124
13125         * graphite-dependences.c: Include graphite-cloog-util.h.
13126         (new_poly_ddr): Inlined into dependence_polyhedron.
13127         (free_poly_ddr): Moved close by new_poly_ddr.
13128         (dependence_polyhedron_1): Renamed dependence_polyhedron.
13129         Early return NULL when ppl_powerset_is_empty returns true.
13130         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
13131         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
13132         (graphite_legal_transform_dr): Call new_poly_ddr.
13133         (graphite_carried_dependence_level_k): Same.
13134         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
13135         (dot_transformed_deps_stmt_1): Removed.
13136         (dot_deps_stmt_1): Call dot_deps_stmt_2.
13137         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
13138         (dot_deps_1): Call dot_deps_2.
13139         * Makefile.in (graphite-dependences.o): Add missing dependence on
13140         graphite-cloog-util.h.
13141
13142 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13143
13144         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13145         (build_lexicographical_constraint): Same.
13146         (dependence_polyhedron_1): Same.
13147         (graphite_legal_transform_dr): Same.
13148         (graphite_carried_dependence_level_k): Same.
13149         * graphite-ppl.c (ppl_powerset_is_empty): New.
13150         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13151         * tree-data-ref.c (dump_data_reference): Print the basic block index.
13152
13153 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13154
13155         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13156         the "a followed by b" relation and document it.
13157
13158 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13159
13160         * graphite-dependences.c (build_lexicographical_constraint): Stop the
13161         iteration when the bag of constraints is empty.
13162
13163 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13164
13165         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13166
13167 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13168
13169         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13170         nest and two loop depths as parameters.
13171         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13172         lst_perfect_nestify.
13173
13174 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13175
13176         * graphite-dependences.c (print_pddr): Call
13177         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13178
13179 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13180
13181         * graphite-ppl.c (debug_gmp_value): New.
13182         * graphite-ppl.h (debug_gmp_value): Declared.
13183
13184 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
13185
13186         * doc/install.texi: Document availability of cloog-0.16.
13187
13188 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
13189
13190         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13191         invalid postdominance info.
13192
13193 2011-01-24  Jan Hubicka  <jh@suse.cz>
13194
13195         PR c/21659
13196         * doc/extend.texi (weak pragma): Drop claim that it must
13197         appear before definition.
13198         * varasm.c (merge_weak, declare_weak): Only sanity check
13199         that DECL is not output at a time it is declared weak.
13200
13201 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
13202
13203         * machmode.def: Fixed comments.
13204
13205 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
13206
13207         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13208
13209 2011-01-24  Paul Koning  <ni1d@arrl.net>
13210
13211         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
13212         WORDS_BIG_ENDIAN.
13213
13214 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13215
13216         PR target/46519
13217         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13218         (block_info): Add scanned and prev.
13219         (move_or_delete_vzeroupper_2): Return if the basic block
13220         has been scanned and the upper 128bit state is unchanged
13221         from the last scan.
13222         (move_or_delete_vzeroupper_1): Return true if the exit
13223         state is changed.
13224         (move_or_delete_vzeroupper): Visit basic blocks using the
13225         work-list based algorithm based on vt_find_locations in
13226         var-tracking.c.
13227
13228         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13229
13230 2011-01-24  Nick Clifton  <nickc@redhat.com>
13231
13232         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13233         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13234         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
13235         then define __v850e1__.
13236         * doc/invoke.texi: Document -mv850es.
13237
13238 2011-01-24  Richard Henderson  <rth@redhat.com>
13239
13240         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13241         compound unordered comparisons.
13242         * config/rx/rx.c (rx_split_fp_compare): Remove.
13243         * config/rx/rx-protos.h: Update.
13244         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13245         (cbranchsf4): Don't call rx_split_fp_compare.
13246         (*cbranchsf4): Use rx_split_cbranch.
13247         (*cmpsf): Don't accept "i" constraint.
13248         (*conditional_branch): Only valid after reload.
13249         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
13250
13251 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13252
13253         PR target/47385
13254         * config/rs6000/altivec.md (vector constant splitters): Add
13255         support for creating vector single precision constants if -mvsx is
13256         used and we would create the constant using Altivec primitives.
13257
13258 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
13259             Richard Sandiford  <rdsandiford@googlemail.com>
13260
13261         PR rtl-optimization/47166
13262         * reload1.c (emit_reload_insns): Disable the spill_reg_store
13263         mechanism for PRE_MODIFY and POST_MODIFY.
13264         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13265         reloadreg.
13266
13267 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
13268
13269         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
13270
13271 2011-01-22  Jan Hubicka  <jh@suse.cz>
13272
13273         PR lto/47333
13274         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13275
13276 2011-01-22  Jan Hubicka  <jh@suse.cz>
13277
13278         PR tree-optimization/43884
13279         PR lto/44334
13280         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
13281         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13282
13283 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
13284
13285         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13286         * config/s390/s390.c (s390_register_move_cost,
13287         s390_memory_move_cost): New.
13288         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13289
13290 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13291
13292         PR middle-end/47401
13293         * except.c (sjlj_assign_call_site_values): Move setting the
13294         crtl->uses_eh_lsda flag to ...
13295         (sjlj_mark_call_sites): ... here.
13296         (sjlj_emit_function_enter): Support NULL dispatch label.
13297         (sjlj_build_landing_pads): In a function with no landing pads
13298         that still has must-not-throw regions, generate code to register
13299         a personality function with empty LSDA.
13300
13301 2011-01-21  Richard Henderson  <rth@redhat.com>
13302
13303         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13304
13305         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13306
13307         * compare-elim.c: New file.
13308         * Makefile.in (OBJS-common): Add it.
13309         (compare-elim.o): New.
13310         * common.opt (fcompare-elim): New.
13311         * opts.c (default_options_table): Add OPT_fcompare_elim.
13312         * tree-pass.h (pass_compare_elim_after_reload): New.
13313         * passes.c (init_optimization_passes): Add it.
13314         * recog.h: Protect against re-inclusion.
13315         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13316         * doc/invoke.texi (-fcompare-elim): Document it.
13317         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13318         * doc/tm.texi: Rebuild.
13319
13320 2011-01-22  Nick Clifton  <nickc@redhat.com>
13321
13322         * config/rx/rx.md (cstoresf4): Pass comparison operator to
13323         rx_split_fp_compare.
13324
13325 2011-01-22  Nick Clifton  <nickc@redhat.com>
13326
13327         * config/rx/rx.md (UNSPEC_CONST): New.
13328         (deallocate_and_return): Wrap the amount popped off the stack in
13329         an UNSPEC_CONST in order to stop it being rejected by
13330         -mmax-constant-size.
13331         (pop_and_return): Add a "(return)" rtx.
13332         (call): Drop the immediate operand.
13333         (call_internal): Likewise.
13334         (call_value): Likewise.
13335         (call_value_internal): Likewise.
13336         (sibcall_internal): Likewise.
13337         (sibcall_value_internal): Likewise.
13338         (sibcall): Likewise.  Generate an explicit call using
13339         sibcall_internal.
13340         (sibcall_value): Likewise.
13341         (mov<>): FAIL if a constant operand is not legitimate.
13342         (addsi3_unpsec): New pattern.
13343
13344         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
13345         (ok_for_max_constant): New function.
13346         (gen_safe_add): New function.
13347         (rx_expand_prologue): Use gen_safe_add.
13348         (rx_expand_epilogue): Likewise.
13349         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
13350         UNSPEC CONSTs.
13351
13352 2011-01-21  Jeff Law  <law@redhat.com>
13353
13354         PR tree-optimization/47053
13355         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13356         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13357         statements are deleted.
13358         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
13359         is nonempty, then purge dead edges and cleanup the CFG.
13360
13361 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13362
13363         PR debug/47402
13364         Temporarily revert:
13365         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13366         PR debug/47106
13367         * tree-dfa.c (create_var_ann): Mark variable as used.
13368
13369 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13370
13371         PR middle-end/45566
13372         * except.c (convert_to_eh_region_ranges): Emit queued no-region
13373         notes from other section in hot/cold partitioning even if
13374         last_action is -3.  Increment call_site_base.
13375
13376         PR rtl-optimization/47366
13377         * fwprop.c (forward_propagate_into): Return bool.  If
13378         any changes are made, -fnon-call-exceptions is used and
13379         REG_EH_REGION note is present, call purge_dead_edges
13380         and return true if it purged anything.
13381         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13382         any EH edges were purged.
13383
13384 2011-01-21  Jeff Law  <law@redhat.com>
13385
13386         PR rtl-optimization/41619
13387         * caller-save.c (setup_save_areas): Break out code to determine
13388         which hard regs are live across calls by examining the reload chains
13389         so that it is always used.
13390         Eliminate code which checked REG_N_CALLS_CROSSED.
13391
13392 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13393
13394         PR tree-optimization/47355
13395         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13396         NOP has non-debug uses beyond PHIs in new_bb.
13397
13398 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13399
13400         PR debug/47106
13401         * cfgexpand.c (account_used_vars_for_block): Only account vars
13402         that are annotated as used.
13403         (estimated_stack_frame_size): Don't set TREE_USED.
13404         * tree-dfa.c (create_var_ann): Mark variable as used.
13405
13406 2011-01-21  Richard Guenther  <rguenther@suse.de>
13407
13408         PR middle-end/47395
13409         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13410
13411 2011-01-21  Richard Guenther  <rguenther@suse.de>
13412
13413         PR tree-optimization/47365
13414         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13415         (vn_reference_lookup_pieces): Adjust.
13416         (vn_reference_lookup): Likewise.
13417         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13418         (vn_reference_lookup_3): Only look through kills if in
13419         VN_WALKREWRITE mode.
13420         (vn_reference_lookup_pieces): Adjust.
13421         (vn_reference_lookup): Likewise.
13422         (visit_reference_op_load): Likewise.
13423         (visit_reference_op_store): Likewise.
13424         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13425         (compute_avail): Likewise.
13426         (eliminate): Likewise.
13427
13428 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13429
13430         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13431         DECL_IGNORED_P non-reg vars if they are used.
13432
13433         PR tree-optimization/47391
13434         * varpool.c (const_value_known_p): Return false if
13435         decl is volatile.
13436
13437 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
13438
13439         PR bootstrap/47215
13440         * config/i386/i386.c (ix86_local_alignment): Handle
13441         case for va_list_type_node is nil.
13442         (ix86_canonical_va_list_type): Likewise.
13443
13444 2011-01-21  Alan Modra  <amodra@gmail.com>
13445
13446         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13447         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13448
13449 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13450
13451         * config/arm/arm.md (define_attr type): Rename f_load
13452         and f_store to f_fpa_load and f_fpa_store. Update.
13453         (write_conflict): Deal with rename fallout.
13454         (*push_fp_multi): Likewise.
13455         * config/arm/fpa.md (f_load): Use f_fpa_load.
13456         (f_store): Use f_fpa_store.
13457         (*movsf_fpa): Likewise.
13458         (*movdf_fpa): Likewise.
13459         (*movxf_fpa): Likewise.
13460         (*thumb2_movsf_fpa): Likewise.
13461         (*thumb2_movdf_fpa): Likewise.
13462         (*thumb2_movxf_fpa): Likewise.
13463         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13464         f_loadd and f_stored.
13465         (*thumb2_movdi_vfp): Likewise.
13466         (*thumb2_movsf_vfp): Fix attribute to f_loads.
13467         (*thumb2_movsi_vfp): Likewise.
13468         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13469         Use f_loads instead of f_load.
13470         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13471
13472 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
13473
13474         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13475         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13476         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13477         (xtensa_mode_dependent_address_p): New function.
13478         (constantpool_address_p): Make static. Change return type to bool.
13479         Change argument type to const_rtx. Use CONST_INT_P predicate.
13480
13481 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
13482
13483         PR debug/46583
13484         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13485
13486 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13487
13488         PR debug/47283
13489         * cfgexpand.c (expand_debug_expr): Instead of generating
13490         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13491         etc. handling.
13492
13493 2011-01-20  Richard Guenther  <rguenther@suse.de>
13494
13495         PR middle-end/47370
13496         * tree-inline.c (remap_gimple_op_r): Recurse manually for
13497         the pointer operand of MEM_REFs.
13498
13499 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13500
13501         PR tree-optimization/46130
13502         * ipa-split.c (consider_split): If return_bb contains non-virtual
13503         PHIs other than for retval or if split_function would not adjust it,
13504         refuse to split.
13505
13506 2011-01-20  Richard Guenther  <rguenther@suse.de>
13507
13508         PR tree-optimization/47167
13509         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13510         Revert previous change, only avoid enumeral type changes.
13511
13512 2011-01-19  Mike Stump  <mikestump@comcast.net>
13513
13514         * doc/tm.texi.in (BRANCH_COST): Englishify.
13515         * doc/tm.texi (BRANCH_COST): Likewise.
13516
13517 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
13518
13519         PR c++/47291
13520         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
13521         (gen_scheduled_generic_parms_dies): New functions.
13522         (gen_struct_or_union_type_die): Schedule template parameters DIEs
13523         generation for the end of CU compilation.
13524         (dwarf2out_finish): Generate template parameters DIEs here.
13525
13526 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13527
13528         PR debug/46240
13529         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13530         debug bind stmt on merge edges.
13531
13532 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13533
13534         PR debug/47079
13535         PR debug/46724
13536         * function.c (instantiate_expr): Instantiate incoming rtl of
13537         implicit arguments, and recurse on VALUE_EXPRs.
13538         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13539         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13540
13541 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13542
13543         * c-parser.c (c_parser_for_statement): Initialize
13544         collection_expression.
13545
13546 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13547
13548         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13549
13550 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13551
13552         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13553         (LINK_SHLIB_SPEC): Don't use %(link_path).
13554         (SUBTARGET_EXTRA_SPECS): Remove link_path.
13555
13556 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13557
13558         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13559         (NO_SHARED_LIB_SUPPORT): Remove.
13560         (LINK_SHLIB_SPEC): Remove one conditional definition.
13561
13562 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13563
13564         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13565         %{call_shared}.
13566         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13567         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13568         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13569         %{call_shared} and conditionals on these options not being passed.
13570         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13571         %{call_shared}.
13572
13573 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13574
13575         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13576         simplify.
13577
13578         * ipa-split.c: Spelling fixes.
13579
13580 2011-01-19  Richard Henderson  <rth@redhat.com>
13581
13582         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13583         (*mulsi3): Likewise.
13584
13585         * longlong.h [__mn10300__] (count_leading_zeros): New.
13586         [__mn10300__] (umul_ppmm, smul_ppmm): New.
13587         [__mn10300__] (add_ssaaaa, subddmmss): New.
13588         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13589         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13590
13591 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13592
13593         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13594
13595 2011-01-19  Richard Henderson  <rth@redhat.com>
13596
13597         * config/mn10300/mn10300.md (addsi3_flags): New.
13598         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13599         (subsi3_flags, subc_internal, subdi3): New.
13600         (subdi3_internal, *subdi3_degenerate): New.
13601         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13602
13603         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13604         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13605         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
13606         * config/mn10300/mn10300-protos.h: Update.
13607         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13608         (return_ret): Likewise.  Rename from return_internal_regs.
13609         (return_internal): Remove.
13610
13611         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13612         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13613         (mn10300_legitimate_constant_p): Likewise.
13614         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13615         (mn10300_frame_size): New.
13616         (mn10300_expand_prologue): Use it.
13617         (mn10300_expand_epilogue): Likewise.
13618         (mn10300_initial_offset): Likewise.
13619         * config/mn10300/mn10300-protos.h: Update.
13620         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13621         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13622         (prologue, epilogue, return_internal): Tidy output code.
13623         (mn10300_store_multiple_operation, return): Likewise.
13624         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13625         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13626         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13627         (load_pic, am33_load_pic): New.
13628         (mn10300_load_pic0, mn10300_load_pic1): New.
13629
13630         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13631         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13632         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13633         (cc_flags_for_mode, cc_flags_for_code): New.
13634         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13635         overflow flag is not valid.  Validate that the flags we need
13636         for the comparison are valid.
13637         (mn10300_output_cmp): Remove.
13638         (mn10300_output_add): New.
13639         (mn10300_select_cc_mode): Use cc_flags_for_code.
13640         (mn10300_split_cbranch): New.
13641         (mn10300_match_ccmode): New.
13642         (mn10300_split_and_operand_count): New.
13643         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13644         to the function.
13645         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13646         (addsi3): ... here.  Use mn10300_output_add.
13647         (*addsi3_flags): New.
13648         (*am33_subsi3, *mn10300_subsi3): Merge...
13649         (subsi3): ... here.  Use attribute isa.
13650         (*subsi3_flags): New.
13651         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
13652         when possible.
13653         (*am33_andsi3, *mn10300_andsi3): Merge...
13654         (andsi3): ... here.
13655         (*andsi3_flags): New.
13656         (andsi3 splitters): New.
13657         (*am33_iorsi3, *mn10300_iorsi3): Merge...
13658         (iorsi3): ... here.
13659         (*iorsi3_flags): New.
13660         (*am33_xorsi3, *mn10300_xorsi3): Merge...
13661         (xorsi3): ... here.
13662         (*xorsi3_flags): New.
13663         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13664         (one_cmplsi2): ... here.
13665         (*one_cmplsi2_flags): New.
13666         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
13667         instead of "dax" in constraints.  Use mn10300_split_cbranch.
13668         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
13669         use matching constraints to eliminate a self-comparison.
13670         (*integer_conditional_branch): Rename from integer_conditional_branch.
13671         Use int_mode_flags to match CC_REG.
13672         (*cbranchsi4_btst, *btstsi): New.
13673         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
13674         mn10300_split_cbranch.
13675         (*am33_cmpsf): Rename from am33_cmpsf.
13676         (*float_conditional_branch): Rename from float_conditional_branch.
13677         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13678         (zero_extendqisi2): ... here.
13679         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13680         (zero_extendhisi2): ... here.
13681         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13682         (extendqisi2): ... here.
13683         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13684         (extendhisi2): ... here.
13685         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13686         (ashlsi3): ... here.
13687         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13688         (lshrsi3): ... here.
13689         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13690         (ashrsi3): ... here.
13691         (consecutive add peephole): Remove.
13692         * config/mn10300/predicates.md (label_ref_operand): New.
13693         (int_mode_flags): New.
13694         (CCZN_comparison_operator): New.
13695
13696         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13697         (throughput_42_latency_43): New reservation.
13698         (mulsidi3, umulsidi3): New expanders.
13699         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
13700         the MDR register to allocation; separately allocate the low and
13701         high parts of the DImode result.
13702         (umulsidi3_internal): Similarly.
13703         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13704         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
13705         (udivsi3, umodsi3): Remove.
13706         (udivmodsi4, divmodsi4): New expanders.
13707         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
13708         (*divmodsi4): Simiarly.
13709         (ext_internal): New.
13710
13711         * config/mn10300/constraints.md ("z"): New constraint.
13712         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13713         (FIXED_REGISTERS): Don't fix MDR.
13714         (CALL_USED_REGSITERS): Reformat nicely.
13715         (REG_ALLOC_ORDER): Add MDR.
13716         (enum regclass): Add MDR_REGS.
13717         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13718         (IRA_COVER_CLASSES): Add MDR_REGS.
13719         (REGNO_REG_CLASS): Handle MDR_REG.
13720         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13721         (mn10300_register_move_cost): Likewise.
13722         * config/mn10300/mn10300.md (MDR_REG): New.
13723         (*movsi_internal): Handle moves to/from MDR_REGS.
13724
13725         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13726         POST_MODIFY.
13727         (mn10300_secondary_reload): Tidy combination reload classes.
13728         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13729         addresses for AM33.  Allow symbolic offsets for reg+imm.
13730         (mn10300_regno_in_class_p): New.
13731         (mn10300_legitimize_reload_address): New.
13732         * config/mn10300/mn10300.h (enum reg_class): Remove
13733         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13734         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
13735         SP_OR_GENERAL_REGS.
13736         (REG_CLASS_NAMES): Update to match.
13737         (REG_CLASS_CONTENTS): Likewise.
13738         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13739         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13740         (REGNO_IN_RANGE_P): Remove.
13741         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13742         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13743         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
13744         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
13745         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
13746         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
13747         (REGNO_GENERAL_P): New.
13748         (HAVE_POST_MODIFY_DISP): New.
13749         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
13750         (LEGITIMIZE_RELOAD_ADDRESS): New.
13751         * config/mn10300/mn10300-protos.h: Update.
13752
13753         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
13754         DATA_REGS for AM33 stack-pointer destination.
13755         (mn10300_preferred_output_reload_class): Likewise.
13756         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
13757         into a form appropriate for ...
13758         (TARGET_SECONDARY_RELOAD): New.
13759         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
13760         * config/mn10300/mn10300-protos.h: Update.
13761         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13762         reload_insi; use the "A" constraint for the scratch; handle AM33
13763         moves of sp to non-address registers.
13764
13765         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13766         (*movqi_internal): ... here.
13767         (*am33_movhi, *mn10300_movhi): Merge into...
13768         (*movhi_internal): ... here.
13769         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
13770         as the source/destination of moves from/to SP.
13771         (movsf): Only allow for AM33-2.
13772         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
13773         any integer constant constraint.  Only allow for AM33-2.  Tidy
13774         all of the alternative outputs.
13775         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13776         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
13777         for MN103.
13778         (udivsi3, umodsi3): New patterns for MN103 only.
13779
13780 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
13781
13782         * doc/tm.texi.in: Spell out that a lack of register class unions
13783         can lead to ICEs.
13784         * doc/tm.texi: Regenerate.
13785
13786 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13787
13788         PR rtl-optimization/47337
13789         * dce.c (check_argument_store): New function.
13790         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
13791
13792         PR tree-optimization/47290
13793         * tree-eh.c (infinite_empty_loop_p): New function.
13794         (cleanup_empty_eh): Use it.
13795
13796 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
13797
13798         PR target/46997
13799         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13800         (a64_expand_widen_sum): Ditto.
13801         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13802         (vec_extract_evenodd_help): Ditto.
13803         (vec_extract_evenv4hi): Ditto.
13804         (vec_extract_oddv4hi): Ditto.
13805         (vec_extract_evenv2si): Ditto.
13806         (vec_extract_oddv2si): Ditto.
13807         (vec_extract_evenv2sf): Ditto.
13808         (vec_extract_oddv2sf): Ditto.
13809         (vec_pack_trunc_v4hi: Ditto.
13810         (vec_pack_trunc_v2si): Ditto.
13811         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13812         (vec_interleave_highv8qi): Ditto.
13813         (mix1_r): Ditto.
13814         (vec_extract_oddv8qi): Ditto.
13815         (vec_interleave_lowv4hi): Ditto.
13816         (vec_interleave_highv4hi): Ditto.
13817         (vec_interleave_lowv2si): Ditto.
13818         (vec_interleave_highv2si): Ditto.
13819
13820 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13821
13822         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13823         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13824         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
13825         (pa_c_mode_for_suffix): New.
13826         (TARGET_EXPAND_BUILTIN): Define.
13827         (TARGET_C_MODE_FOR_SUFFIX): Define.
13828         (pa_builtins): Define.
13829         (pa_init_builtins): Register __float128 type and init new support
13830         builtins.
13831         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13832         * config/pa/quadlib.c (_U_Qfcopysign): New.
13833
13834 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13835
13836         PR middle-end/46894
13837         * explow.c (allocate_dynamic_stack_space): Do not assume more than
13838         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13839         are defined.
13840
13841 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13842
13843         PR tree-optimization/47179
13844         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13845         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13846
13847 2011-01-18  Richard Guenther  <rguenther@suse.de>
13848
13849         PR rtl-optimization/47216
13850         * emit-rtl.c: Include tree-flow.h.
13851         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13852         of replicating it with different semantics.
13853         * Makefile.in (emit-rtl.o): Adjust.
13854
13855 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13856
13857         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
13858         (cortex_a9_dp): Handle neon types correctly.
13859
13860 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
13861
13862         PR rtl-optimization/47299
13863         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
13864         subtarget.  Use normal multiplication if both operands are constants.
13865         * expmed.c (expand_widening_mult): Don't try to optimize constant
13866         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
13867         before using it.
13868
13869 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13870
13871         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
13872         spacing after 'e.g.', typos, comma, hyphenation.
13873
13874 2011-01-17  Richard Henderson  <rth@redhat.com>
13875
13876         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13877         (rx_restricted_mem_operand): New.
13878         (rx_shift_operand): Use register_operand.
13879         (rx_source_operand, rx_compare_operand): Likewise.
13880         * config/rx/rx.md (addsi3_flags): New expander.
13881         (adddi3): Rewrite as expander.
13882         (adc_internal, *adc_flags, adddi3_internal): New patterns.
13883         (subsi3_flags): New expander.
13884         (subdi3): Rewrite as expander.
13885         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13886
13887         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13888         (rx_init_builtins): Remove sat builtin.
13889         (rx_expand_builtin): Likewise.
13890         * config/rx/rx.md (ssaddsi3): New.
13891         (*sat): Rename from sat.  Represent the CC_REG input.
13892
13893         * config/rx/predicates.md (rshift_operator): New.
13894         * config/rx/rx.c (rx_expand_insv): Remove.
13895         * config/rx/rx-protos.h: Update.
13896         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
13897         operand to the canonical position.
13898         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13899         (*bitclr, *bitclr_in_memory): Similarly.
13900         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13901         (insv): Retain the zero_extract in the expansion.
13902
13903         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13904         (bswaphi2, bitinvert, revw): Likewise.
13905
13906         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13907         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13908         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13909         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13910         (bitset, bitset_in_memory): Likewise.
13911         (bitinvert, bitinvert_in_memory): Likewise.
13912         (bitclr, bitclr_in_memory): Likewise.
13913         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13914         (rx_strend, rx_cmpstrn): Likewise.
13915         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
13916         (bitop peep2 patterns): Remove.
13917
13918         * config/rx/rx.c (rx_match_ccmode): New.
13919         * config/rx/rx-protos.h: Update.
13920         * config/rx/rx.md (abssi2): Clobber, don't set flags.
13921         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13922         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13923         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13924         (fix_truncsfsi2, floatsisf2): Likewise.
13925         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13926         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13927         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13928         (*subsi3_flags, *xorsi3_flags): New.
13929
13930         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13931
13932         * config/rx/rx.c (rx_print_operand): Remove workaround for
13933         unsplit comparison operations.
13934
13935         * config/rx/rx.md (movsicc): Split after reload.
13936         (*movsicc): Merge *movsieq and *movsine via match_operator.
13937         (*stcc): New pattern.
13938
13939         * config/rx/rx.c (rx_float_compare_mode): Remove.
13940         * config/rx/rx.h (rx_float_compare_mode): Remove.
13941         * config/rx/rx.md (cstoresi4): Split after reload.
13942         (*sccc): New pattern.
13943
13944         * config/rx/predicates.md (label_ref_operand): New.
13945         (rx_z_comparison_operator): New.
13946         (rx_zs_comparison_operator): New.
13947         (rx_fp_comparison_operator): New.
13948         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
13949         Validate that the flags are set properly for the comparison.
13950         (rx_gen_cond_branch_template): Remove.
13951         (rx_cc_modes_compatible): Remove.
13952         (mode_from_flags): New.
13953         (flags_from_code): Rename from flags_needed_for_conditional.
13954         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
13955         (rx_select_cc_mode): Likewise.
13956         (rx_split_fp_compare): New.
13957         (rx_split_cbranch): New.
13958         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
13959         (*cbranchsi4): Use match_operator and rx_split_cbranch.
13960         (*cbranchsf4): Similarly.
13961         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
13962         match_operator and rx_split_cbranch.
13963         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
13964         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
13965         (*cmpsi): Rename from cmpsi.
13966         (*tstsi): Rename from tstsi.
13967         (*cmpsf): Rename from cmpsf; use CC_Fmode.
13968         (*conditional_branch): Rename from conditional_branch.
13969         (*reveresed_conditional_branch): Remove.
13970         (b<code>): Remove expander.
13971         * config/rx/rx-protos.h: Update.
13972
13973         * config/rx/rx.c (rx_compare_redundant): Remove.
13974         * config/rx/rx.md (cmpsi): Don't use it.
13975         * config/rx/rx-protos.h: Update.
13976
13977         * config/rx/rx-modes.def (CC_F): New mode.
13978         * config/rx/rx.c (rx_select_cc_mode): New.
13979         * config/rx/rx.h (SELECT_CC_MODE): Use it.
13980         * config/rx/rx-protos.h: Update.
13981
13982 2011-01-17  Richard Henderson  <rth@redhat.com>
13983
13984         * except.c (dump_eh_tree): Fix stray ; after for statement.
13985
13986 2011-01-17  Richard Guenther  <rguenther@suse.de>
13987
13988         PR tree-optimization/47313
13989         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
13990         handling before copying the body.  Properly deal with
13991         by-reference result in SSA form.
13992
13993 2011-01-17  Ian Lance Taylor  <iant@google.com>
13994
13995         PR target/47219
13996         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
13997         (struct_value_alias_set): Don't define.
13998         (sparc_option_override): Don't set sparc_sr_alias_set and
13999         struct_value_alias_set.
14000         (save_or_restore_regs): Use gen_frame_mem rather than calling
14001         set_mem_alias_set.
14002         (sparc_struct_value_rtx): Likewise.
14003
14004 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
14005
14006         PR target/47318
14007         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
14008         (_mm_maskstore_pd): Likewise.
14009         (_mm_maskload_ps): Likewise.
14010         (_mm_maskstore_ps): Likewise.
14011         (_mm256_maskload_pd): Change mask to __m256i.
14012         (_mm256_maskstore_pd): Likewise.
14013         (_mm256_maskload_ps): Likewise.
14014         (_mm256_maskstore_ps): Likewise.
14015
14016         * config/i386/i386-builtin-types.def: Updated.
14017         (ix86_expand_special_args_builtin): Likewise.
14018
14019         * config/i386/i386.c (bdesc_special_args): Update
14020         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14021         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14022         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14023         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14024
14025         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14026         Use <avxpermvecmode> on mask register.
14027         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14028
14029 2011-01-17  Olivier Hainque  <hainque@adacore.com>
14030             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
14031             Eric Botcazou  <ebotcazou@adacore.com>
14032
14033         PR target/46655
14034         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14035         if <= USHRT_MAX in 32-bit mode.
14036
14037 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14038
14039         * doc/install.texi (Configuration, Specific): Wrap long
14040         lines in examples.  Allow line wrapping in long options
14041         and URLs where beneficial for PDF output.
14042
14043 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
14044
14045         * config/mips/mips.c (mips_classify_symbol): Don't return
14046         SYMBOL_PC_RELATIVE for nonlocal labels.
14047
14048 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
14049
14050         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14051
14052 2011-01-15  Jan Hubicka  <jh@suse.cz>
14053
14054         PR tree-optimization/47276
14055         * ipa.c (function_and_variable_visibility): Do not try to mark alias
14056         declarations as needed.
14057
14058 2011-01-15  Martin Jambor  <mjambor@suse.cz>
14059
14060         * common.opt (fdevirtualize): New flag.
14061         * doc/invoke.texi (Option Summary): Document it.
14062         * opts.c (default_options_table): Add devirtualize flag.
14063         * ipa-prop.c (detect_type_change): Return immediately if
14064         devirtualize flag is not set.
14065         (detect_type_change_ssa): Likewise.
14066         (compute_known_type_jump_func): Likewise.
14067         (ipa_analyze_virtual_call_uses): Likewise.
14068
14069 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14070
14071         PR tree-optimization/45934
14072         PR tree-optimization/46302
14073         * ipa-prop.c (type_change_info): New type.
14074         (stmt_may_be_vtbl_ptr_store): New function.
14075         (check_stmt_for_type_change): Likewise.
14076         (detect_type_change): Likewise.
14077         (detect_type_change_ssa): Likewise.
14078         (compute_complex_assign_jump_func): Check for dynamic type change.
14079         (compute_complex_ancestor_jump_func): Likewise.
14080         (compute_known_type_jump_func): Likewise.
14081         (compute_scalar_jump_functions): Likewise.
14082         (ipa_analyze_virtual_call_uses): Likewise.
14083         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14084
14085 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14086
14087         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14088         * config/i386/i386.opt (msse5): New Alias.
14089
14090 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14091
14092         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14093         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14094         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14095         * config/sparc/sparc.h (CC1_SPEC): Likewise.
14096
14097 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14098
14099         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14100         -mcpu options.
14101         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14102         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14103         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14104         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14105         Likewise.
14106         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14107
14108 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14109
14110         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
14111
14112 2011-01-14  Mike Stump  <mikestump@comcast.net>
14113
14114         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14115         * config/fr30/fr30.md: Likweise
14116         (movsi_push): Likewise.
14117         (movsi_pop): Likewise.
14118         (enter_func): Likewise.
14119         * config/moxie/moxie.md (movsi_push): Likewise.
14120         (movsi_pop): Likewise.
14121
14122 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14123
14124         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14125         %{no_archive} %{exact_version}.
14126         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14127         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14128         %{no_archive} %{exact_version}.
14129         * config/mips/openbsd.h (LINK_SPEC): Likewise.
14130         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14131         * config/mips/vxworks.h: Likewise.
14132
14133 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14134
14135         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
14136
14137 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14138
14139         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14140         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14141
14142 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14143
14144         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14145         -nodefaultlib.
14146
14147 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14148
14149         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14150         for mcpu not cpu.
14151         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14152         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14153         not cpu.
14154         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14155         Don't handle -shlib.
14156
14157 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14158
14159         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14160         (CC1_SPEC): Don't handle -profile.
14161
14162 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14163
14164         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14165         * config/mips/mips.h (CC1_SPEC): Likewise.
14166
14167 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14168
14169         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14170         * config/mips/mips.h (CC1_SPEC): Likewise.
14171
14172 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14173
14174         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14175         * config/m32r/linux.h (LINK_SPEC): Likewise.
14176         * config/mips/linux.h (LINK_SPEC): Likewise.
14177         * config/mips/linux64.h (LINK_SPEC): Likewise.
14178         * config/sparc/linux.h (LINK_SPEC): Likewise.
14179         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14180         LINK_SPEC): Likewise.
14181         * config/xtensa/linux.h (LINK_SPEC): Likewise.
14182
14183 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14184
14185         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14186         %{version:-v}.
14187         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14188
14189 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14190
14191         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14192         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14193
14194 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14195
14196         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14197
14198 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14199
14200         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14201         supports -Bstatic/-Bdynamic.
14202         * configure: Regenerate.
14203
14204 2011-01-14  Jan Hubicka  <jh@suse.cz>
14205             Jack Howarth  <howarth@bromo.med.uc.edu>
14206
14207         PR target/46037
14208         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14209         when checking debug_info_level. Test write_symbols instead of
14210         debug_hooks->var_location when setting flag_var_tracking_uninit.
14211
14212 2011-01-14  Richard Guenther  <rguenther@suse.de>
14213
14214         PR tree-optimization/47179
14215         * target.def (ref_may_alias_errno): New target hook.
14216         * targhooks.h (default_ref_may_alias_errno): Declare.
14217         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14218         (default_ref_may_alias_errno): New function.
14219         * target.h (struct ao_ref_s): Declare.
14220         * tree-ssa-alias.c: Include target.h.
14221         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14222         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14223         (targhooks.o): Likewise.
14224         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14225         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14226
14227 2011-01-14  Richard Guenther  <rguenther@suse.de>
14228
14229         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
14230
14231 2011-01-14  Richard Guenther  <rguenther@suse.de>
14232
14233         PR tree-optimization/47280
14234         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14235         return CFG changes.
14236         (tree_ssa_forward_propagate_single_use_vars): Deal with
14237         CFG changes from associate_plusminus.
14238
14239 2011-01-14  Richard Guenther  <rguenther@suse.de>
14240
14241         PR middle-end/47281
14242         Revert
14243         2011-01-11  Richard Guenther  <rguenther@suse.de>
14244
14245         PR tree-optimization/46076
14246         * tree-ssa.c (useless_type_conversion_p): Conversions from
14247         unprototyped to empty argument list function types are useless.
14248
14249 2011-01-14  Richard Guenther  <rguenther@suse.de>
14250
14251         PR tree-optimization/47286
14252         * tree-ssa-structalias.c (new_var_info): Register variables are global.
14253
14254 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14255
14256         PR middle-end/46823
14257         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14258
14259 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
14260
14261         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14262         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14263         * config/xtensa/xtensa.c (xtensa_libcall_value,
14264         xtensa_function_value_regno_p): New functions.
14265         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14266
14267 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
14268
14269         PR c++/47213
14270         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14271         PE specific hook.
14272         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14273         New function prototype.
14274         * config/i386/winnt.c (i386_pe_assemble_visibility):
14275         Warn only if attribute was specified by user.
14276
14277 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
14278
14279         PR target/47251
14280         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14281         floating point.
14282         (floatunsdidf2_fcfidu): Ditto.
14283
14284 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14285
14286         * config/s390/s390.c (print_operand_address): Replace 'error' with
14287         'output_operand_lossage'.
14288         (print_operand): Likewise.
14289
14290 2011-01-13  Jeff Law  <law@redhat.com>
14291
14292         PR rtl-optimization/39077
14293         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14294         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14295         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14296         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14297         * gcse.c (prune_insertions_deletions): New function.
14298         (compute_pre_data): Use it.
14299
14300 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
14301
14302         PR debug/PR46973
14303         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14304         static function.
14305         (prune_unused_types_mark): Use it.
14306
14307 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
14308
14309         PR rtl-optimization/45352
14310         * sel-sched.c: Update copyright years.
14311         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
14312         in the advancing loop when we have issued issue_rate insns.
14313
14314 2011-01-12  Richard Henderson  <rth@redhat.com>
14315
14316         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14317         (TARGET_MD_ASM_CLOBBERS): New.
14318
14319         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14320         (TARGET_DELEGITIMIZE_ADDRESS): New.
14321
14322         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14323         (clzsi2, *bsch): New patterns.
14324
14325         * config/mn10300/mn10300.md (INT): New mode iterator.
14326         (*mov<INT>_clr): New pattern, and peep2 to generate it.
14327
14328         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14329         flag_split_wide_types.
14330
14331         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14332         (mn10300_trampoline_init): Rewrite without a template, an immediate
14333         load and a direct branch.
14334         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14335
14336 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
14337
14338         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14339         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14340         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14341         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14342
14343 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
14344
14345         PR debug/47209
14346         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14347         of type.
14348
14349 2011-01-12  Jan Hubicka  <jh@suse.cz>
14350
14351         PR driver/47244
14352         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14353         (PLUGIN_COND_CLOSE): New macro.
14354         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14355
14356 2011-01-12  Richard Guenther  <rguenther@suse.de>
14357
14358         PR lto/47259
14359         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14360         register variables in a MEM_REF.
14361
14362 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
14363
14364         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14365         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14366         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14367         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14368         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14369         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14370         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14371         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14372         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14373         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14374         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14375         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14376         * config/gnu-user.h: New.  Copied from linux.h.
14377         (LINUX_TARGET_STARTFILE_SPEC): Rename to
14378         GNU_USER_TARGET_STARTFILE_SPEC.
14379         (LINUX_TARGET_ENDFILE_SPEC): Rename to
14380         GNU_USER_TARGET_ENDFILE_SPEC.
14381         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14382         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14383         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14384         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14385         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14386         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14387         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14388         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14389         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14390         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14391         * config/arm/linux-eabi.h (CC1_SPEC): Use
14392         GNU_USER_TARGET_CC1_SPEC.
14393         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14394         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14395         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14396         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14397         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14398         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14399         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14400         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14401
14402 2011-01-12  Richard Guenther  <rguenther@suse.de>
14403
14404         PR other/46946
14405         * doc/invoke.texi (ffast-math): Document it is turned on
14406         with -Ofast.
14407
14408 2011-01-12  Jan Hubicka  <jh@suse.cz>
14409
14410         PR tree-optimization/47233
14411         * opts.c (common_handle_option): Disable ipa-reference with profile
14412         feedback.
14413
14414 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14415
14416         * c-parser.c (c_parser_objc_at_property_declaration): Improved
14417         error message.
14418
14419 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14420
14421         * c-parser.c (c_lex_one_token): Updated and reindented some
14422         comments.  No changes in code.
14423
14424 2011-01-11  Ian Lance Taylor  <iant@google.com>
14425
14426         * godump.c (go_output_var): Don't output the variable if there is
14427         already a type with the same name.
14428
14429 2011-01-11  Ian Lance Taylor  <iant@google.com>
14430
14431         * godump.c (go_format_type): Don't generate float80.
14432
14433 2011-01-11  Richard Henderson  <rth@redhat.com>
14434
14435         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14436         declaration.  Rewrite for both speed and size.
14437         (mn10300_address_cost_1): Remove.
14438         (mn10300_register_move_cost): New.
14439         (mn10300_memory_move_cost): New.
14440         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
14441         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
14442         extensions, shifts, BSWAP, CLZ.
14443         (mn10300_wide_const_load_uses_clr): Remove.
14444         (TARGET_REGISTER_MOVE_COST): New.
14445         (TARGET_MEMORY_MOVE_COST): New.
14446         * config/mn10300/mn10300-protos.h: Update.
14447         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14448
14449         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14450         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14451         * config/mn10300/mn10300-protos.h: Update.
14452         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14453         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14454         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14455         (*test_int_bitfield, *test_byte_bitfield): Remove.
14456         (*bit_test, *subreg_bit_test): Remove.
14457         * config/mn10300/predicates.md (const_8bit_operand): Remove.
14458
14459         * config/mn10300/constraints.md ("c"): Rename from "A".
14460         ("A", "D"): New constraint letters.
14461         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14462         (fmssf4, fnmasf4, fnmssf4): Likewise.
14463
14464         * config/mn10300/mn10300.md (isa): New attribute.
14465         (enabled): New attribute.
14466
14467         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14468         (abssf2, negsf2): Define only for hardware fp.
14469         (sqrtsf2): Reformat.
14470         (addsf3, subsf3, mulsf3): Merge expander and insn.
14471
14472         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14473         (DEBUGGER_AUTO_OFFSET): Remove.
14474         (DEBUGGER_ARG_OFFSET): Remove.
14475
14476         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14477         Emit register stores with the same offsets as the hardware.
14478         (mn10300_store_multiple_operation): Don't check that the register
14479         save offsets are monotonic.
14480         * config/mn10300/mn10300-protos.h: Update.
14481
14482         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14483
14484         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14485         in terms of the value on the stack, not the MDR register.
14486
14487 2011-01-11  Jan Hubicka  <jh@suse.cz>
14488
14489         PR lto/45721
14490         PR lto/45375
14491         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14492         (symbol_alias_set_destroy, symbol_alias_set_contains,
14493         propagate_aliases_backward): Declare.
14494         * lto-streamer-out.c (struct sets): New sturcture.
14495         (trivally_defined_alias): New function.
14496         (output_alias_pair_p): Rewrite.
14497         (output_unreferenced_globals): Fix output of alias pairs.
14498         (produce_symtab): Likewise.
14499         * ipa.c (function_and_variable_visibility): Set weak alias destination
14500         as needed in lto.
14501         * varasm.c (symbol_alias_set_t): Remove.
14502         (symbol_alias_set_destroy): Export.
14503         (propagate_aliases_forward, propagate_aliases_backward): New functions
14504         based on ...
14505         (compute_visible_aliases): ... this one; remove.
14506         (trivially_visible_alias): New
14507         (trivially_defined_alias): New.
14508         (remove_unreachable_alias_pairs): Rewrite.
14509         (finish_aliases_1): Reorganize code checking if alias is defined.
14510         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14511         in LTO mode.
14512
14513 2011-01-11  Richard Guenther  <rguenther@suse.de>
14514
14515         PR tree-optimization/46076
14516         * tree-ssa.c (useless_type_conversion_p): Conversions from
14517         unprototyped to empty argument list function types are useless.
14518
14519 2011-01-11  Richard Guenther  <rguenther@suse.de>
14520
14521         PR middle-end/45235
14522         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14523         volatile MEMs as MEM_READONLY_P.
14524
14525 2011-01-11  Richard Guenther  <rguenther@suse.de>
14526
14527         PR tree-optimization/47239
14528         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14529
14530 2011-01-11  Jeff Law  <law@redhat.com>
14531
14532         PR tree-optimization/47086
14533         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14534         IVs from statements that might throw.
14535
14536 2011-01-10  Jan Hubicka  <jh@suse.cz>
14537
14538         PR lto/45375
14539         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14540
14541 2011-01-10  Jan Hubicka  <jh@suse.cz>
14542
14543         PR lto/45375
14544         * profile.c (read_profile_edge_counts): Ignore profile inconistency
14545         when correcting profile.
14546
14547 2011-01-10  Jan Hubicka  <jh@suse.cz>
14548
14549         PR lto/46083
14550         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14551         DECL_FINI_PRIORITY.
14552         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14553         Restore DECL_FINI_PRIORITY.
14554
14555 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14556
14557         * doc/gimple.texi: Fix quoting of multi-word return values in
14558         @deftypefn statements.  Ensure presence of return value.  Wrap
14559         overlong @deftypefn lines.
14560         (is_gimple_operand, is_gimple_min_invariant_address): Remove
14561         descriptions of removed functions.
14562         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14563         of multi-word return value in @deftypefn statement.
14564
14565 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14566
14567         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14568         (Conditional Expressions, Logical Operators)
14569         (Statement and operand traversals): Do not indent smallexample
14570         code.  Fix duplicate function argument in example.
14571
14572 2011-01-10  Jeff Law  <law@redhat.com>
14573
14574         PR tree-optimization/47141
14575         * ipa-split.c (split_function): Handle case where we are
14576         returning a value and the return block has a virtual operand phi.
14577
14578 2011-01-10  Jan Hubicka  <jh@suse.cz>
14579
14580         PR tree-optimization/47234
14581         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14582         (pass_feedback_split_functions): Declare.
14583         * passes.c (init_optimization_passes): Add ipa-split as subpass of
14584         tree-profile.
14585         * ipa-split.c (gate_split_functions): Update comments; disable
14586         split-functions for profile_arc_flag and branch_probabilities.
14587         (gate_feedback_split_functions): New function.
14588         (execute_feedback_split_functions): New function.
14589         (pass_feedback_split_functions): New global var.
14590
14591 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
14592
14593         PR lto/46760
14594         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14595         calling gimple_call_set_cannot_inline.
14596
14597 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
14598
14599         * config/darwin-sections.def: Remove unused section.
14600
14601 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
14602
14603         PR c++/47218
14604         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14605
14606 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14607
14608         PR objc/47232
14609         * c-parser.c (c_parser_declaration_or_fndef): Improved
14610         error message.
14611
14612 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
14613
14614         * config/i386/winnt.c (i386_pe_start_function): Make sure
14615         to switch back to function's section.
14616
14617 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
14618
14619         PR gcc/46902
14620         PR testsuite/46912
14621         * plugin.c: Move include of dlfcn.h from here...
14622         * system.h: ... to here.
14623
14624 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14625
14626         * doc/cpp.texi (C++ Named Operators): Fix markup for header
14627         file name.
14628         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14629         two extra empty pages in PDF output.
14630
14631 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
14632
14633         PR objc/47078
14634         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14635         for error recovery purposes behave as if it was not specified so
14636         that the default type is usd.
14637
14638 2011-01-07  Jan Hubicka  <jh@suse.cz>
14639
14640         PR tree-optmization/46469
14641         * ipa.c (function_and_variable_visibility): Clear needed flags on
14642         nodes with external decls; handle weakrefs merging correctly.
14643
14644 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
14645
14646         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14647         not false.
14648
14649 2011-01-07  Jan Hubicka  <jh@suse.cz>
14650
14651         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
14652         and no longer claim that gold is required for linker plugin.
14653         * configure: Regenerate.
14654         * gcc.c (PLUGIN_COND): New macro.
14655         (LINK_COMMAND_SPEC): Use it.
14656         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14657         * config.in (HAVE_LTO_PLUGIN): New.
14658         * configure.ac (--with-lto-plugin): New parameter; autodetect
14659         HAVE_LTO_PLUGIN.
14660
14661 2011-01-07  Jan Hubicka  <jh@suse.cz>
14662
14663         PR tree-optimization/46367
14664         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14665         when we can update original.
14666         (cgraph_mark_inline_edge): Sanity check.
14667         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14668
14669 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14670
14671         * config/spu/spu.h (ASM_COMMENT_START): Define.
14672
14673 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
14674
14675         PR driver/42445
14676         * gcc.c (%>S): New.
14677         (SWITCH_KEEP_FOR_GCC): Likewise.
14678         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14679         (do_spec_1): Handle "%>".
14680
14681         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14682
14683 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
14684
14685         PR target/47201
14686         * config/i386/i386.c (ix86_delegitimize_address): If
14687         simplify_gen_subreg fails, return orig_x.
14688
14689         PR bootstrap/47187
14690         * value-prof.c (gimple_stringop_fixed_value): Handle
14691         lhs of the call properly.
14692
14693 2011-01-07  Jan Hubicka  <jh@suse.cz>
14694
14695         PR lto/45375
14696         * lto-opt.c (lto_reissue_options): Set flag_shlib.
14697
14698 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14699
14700         * target.def (function_switched_text_sections): New hook.
14701         * doc/tm.texi: Regenerated.
14702         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14703         * final.c (default_function_switched_text_sections): New.
14704         (final_scan_insn): Call function_switched_text_sections when a
14705         mid-function section change occurs.
14706         * output.h (default_function_switched_text_sections): Declare.
14707         * config/darwin-protos.h (darwin_function_switched_text_sections):
14708         Likewise.
14709         * config/darwin.c (darwin_function_switched_text_sections): New.
14710         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14711
14712 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14713
14714         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
14715         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
14716         the secondary code fragment when outputting for DWARF == 2.
14717
14718 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
14719
14720         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14721         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14722         Remove.
14723         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14724         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14725
14726 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
14727
14728         PR debug/46704
14729         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14730         when it is not empty.
14731
14732 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
14733
14734         Bobcat Enablement
14735         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
14736         (case ${target}): Add btver1.
14737         * config/i386/driver-i386.c (host_detect_local_cpu): Let
14738         -march=native recognize btver1 processors.
14739         * config/i386/i386-c.c (ix86_target_macros_internal): Add
14740         btver1 def_and_undef
14741         * config/i386/i386.c (struct processor_costs btver1_cost): New
14742         btver1 cost table.
14743         (m_BTVER1): New definition.
14744         (m_AMD_MULTIPLE): Includes m_BTVER1.
14745         (initial_ix86_tune_features): Add btver1 tune.
14746         (processor_target_table): Add btver1 entry.
14747         (static const char *const cpu_names): Add btver1 entry.
14748         (software_prefetching_beneficial_p): Add btver1.
14749         (ix86_option_override_internal): Add btver1 instruction sets.
14750         (ix86_issue_rate): Add btver1.
14751         (ix86_adjust_cost): Add btver1.
14752         * config/i386/i386.h (TARGET_BTVER1): New definition.
14753         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
14754         (enum processor_type): Add PROCESSOR_BTVER1.
14755         * config/i386/i386.md (define_attr "cpu"): Add btver1.
14756
14757 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14758
14759         PR target/43309
14760         * config/i386/i386.c (legitimize_tls_address)
14761         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14762         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14763         (tls_initial_exec_64_sun): New pattern.
14764
14765 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
14766
14767         * doc/invoke.texi (Overall Options): Improve wording and markup
14768         of the description of -wrapper.
14769
14770 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14771
14772         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14773         rdynamic, threads): New Driver options.
14774
14775 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14776
14777         PR target/38118
14778         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14779         if coming from .tdata.
14780         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14781
14782 2011-01-06  Jan Hubicka  <jh@suse.cz>
14783
14784         PR lto/47188
14785         * collect2.c (main): Do not enable LTOmode when plugin is active.
14786
14787 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14788
14789         PR other/45915
14790         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14791         --version output if supported.
14792         * configure: Regenerate.
14793
14794 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14795
14796         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14797         Driver options.
14798
14799 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
14800
14801         PR c/47150
14802         * c-convert.c (convert): When converting a complex expression
14803         other than COMPLEX_EXPR to a different complex type, ensure
14804         c_save_expr is called instead of save_expr, unless in_late_binary_op.
14805         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14806         when converting COMPLEX_TYPE.
14807
14808 2011-01-06  Ira Rosen  <irar@il.ibm.com>
14809
14810         PR tree-optimization/47139
14811         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14812         only the last reduction value is used outside the loop.  Update
14813         documentation.
14814
14815 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
14816
14817         * config/rtems.opt: New.
14818         * config.gcc (*-*-rtems*): Use rtems.opt.
14819
14820 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
14821
14822         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14823         processors do not support 3DNow instructions.
14824
14825 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14826
14827         * config/spu/spu.c (spu_option_override): Set parameter
14828         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14829
14830 2011-01-05  Jan Hubicka  <jh@suse.cz>
14831
14832         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14833         at the command line.
14834
14835 2011-01-05  Martin Jambor  <mjambor@suse.cz>
14836
14837         PR lto/47162
14838         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14839         deltas on streamed outgoing edges.
14840         (output_node_opt_summary): Output info for outgoing edges only when
14841         the node is in new parameter set.
14842         (output_cgraph_opt_summary): New parameter set, passed to the two
14843         aforementioned functions.  Update its forward declaration and its
14844         callee too.
14845
14846 2011-01-05  Tom Tromey  <tromey@redhat.com>
14847
14848         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14849         operator to c_finish_omp_atomic.
14850         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14851         (build_unary_op): Update.
14852         (build_modify_expr): Update.
14853         (build_asm_expr): Update.
14854
14855 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14856
14857         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14858         newly inserted insns.
14859         (pad_bb): Likewise.
14860         (spu_emit_branch_hint): Likewise.
14861         (insert_hbrp_for_ilb_runout): Likewise.
14862         (spu_machine_dependent_reorg): Call df_finish_pass after
14863         schedule_insns returns.
14864
14865 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14866
14867         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14868
14869 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14870
14871         PR tree-optimization/47005
14872         * tree-sra.c (struct access): Add 'non_addressable' bit.
14873         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14874         (decide_one_param_reduction): Return 0 if the parameter is passed by
14875         reference and one of the accesses in the group is non_addressable.
14876
14877 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14878
14879         PR tree-optimization/47056
14880         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14881         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
14882         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
14883
14884 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14885
14886         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14887         initializer.  Skip view conversions from aggregate types.
14888
14889 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
14890
14891         PR bootstrap/47055
14892         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14893
14894 2011-01-04  Philipp Thomas  <pth@suse.de>
14895
14896         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14897         obvious typo.
14898
14899 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14900
14901         * function.c (thread_prologue_and_epilogue_insns): Do not crash
14902         on empty epilogue sequences.
14903
14904 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
14905
14906         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14907         non-static): New Driver options.
14908
14909 2011-01-04  Jie Zhang  <jie@codesourcery.com>
14910
14911         PR driver/47137
14912         * gcc.c (default_compilers[]): Set combinable field to 0
14913         for all assembly languages.
14914
14915 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
14916
14917         * config/mips/loongson3a.md: New file.
14918         * config/mips/mips.md: Include loongson3a.md.
14919         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14920         TUNE_LOONGSON_3A.
14921
14922 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14923
14924         PR middle-end/47017
14925         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14926         instead of convert_memory_address_addr_space on the base expression.
14927
14928 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14929
14930         * config/spu/spu.c (spu_option_override): Update error text
14931         for bad -march= / -mtune= values.
14932
14933 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14934
14935         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14936         if branch-hint optimization will be performed.
14937
14938 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14939
14940         PR tree-optimization/47148
14941         * ipa-split.c (split_function): Convert arguments to
14942         DECL_ARG_TYPE if possible.
14943
14944         PR tree-optimization/47155
14945         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
14946         when computing uns.
14947
14948         PR rtl-optimization/47157
14949         * combine.c (try_combine): If undobuf.other_insn becomes
14950         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
14951         and set *new_direct_jump_p too.
14952
14953 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
14954
14955         PR tree-optimization/47021
14956         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
14957
14958 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14959
14960         * gcc.c (process_command): Update copyright notice dates.
14961         * gcov.c (print_version): Likewise.
14962         * gcov-dump.c (print_version): Likewise.
14963         * mips-tfile.c (main): Likewise.
14964         * mips-tdump.c (main): Likewise.
14965
14966 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14967
14968         PR tree-optimization/46801
14969         * tree-sra.c (type_internals_preclude_sra_p): Check whether
14970         aggregate fields start at byte boundary instead of the bit-field flag.
14971
14972 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14973
14974         PR driver/47137
14975         * gcc.c (main): Revert revision 168407.
14976
14977 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14978
14979         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
14980
14981 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14982
14983         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
14984         vector optab to expand vector/scalar shift, update gimple to vector.
14985
14986 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14987
14988         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
14989         a thunk.
14990
14991 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14992
14993         PR tree-optimization/46984
14994         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
14995         HOST_WIDE_INT.
14996         (cgraph_create_indirect_edge): Fixed line length.
14997         (cgraph_indirect_call_info): Declare.
14998         (cgraph_make_edge_direct) Update declaration.
14999         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
15000         (cgraph_create_indirect_edge): Use it.
15001         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
15002         callees.
15003         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
15004         the new thunk_delta representation.
15005         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
15006         HOST_WIDE_INT.
15007         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15008         (ipa_read_indirect_edge_info): Likewise.
15009         * lto-cgraph.c (output_edge_opt_summary): New function.
15010         (output_node_opt_summary): Call it on all outgoing edges.
15011         (input_edge_opt_summary): New function.
15012         (input_node_opt_summary): Call it on all outgoing edges.
15013
15014 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
15015
15016         PR driver/47137
15017         * gcc.c (main): Don't check have_o when settting combine_inputs.
15018
15019 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
15020
15021         * regrename.c: Add general comment describing the pass.
15022         (struct du_head): Remove 'length' field.
15023         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15024         (regrename_optimize): Do not sort chains.  Rework comments, add others.
15025         Force renaming to the preferred class (if any) in the first pass and do
15026         not consider registers that belong to it in the second pass.
15027         (create_new_chain): Do not set 'length' field.
15028         (scan_rtx_reg): Likewise.
15029
15030 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
15031
15032         PR tree-optimization/47140
15033         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15034         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15035         to bit_value_binop.
15036
15037         PR rtl-optimization/47028
15038         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15039         parm_birth_insn instead of at the beginning of first bb.
15040
15041 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
15042
15043         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15044         Remove the word "see" before "@pxref".
15045         * doc/rtl.texi: Remove the word "see" before "@pxref".
15046
15047 2011-01-01  Jan Hubicka  <jh@suse.cz>
15048
15049         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15050         memory.
15051
15052 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
15053
15054         PR target/38662
15055         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
15056
15057 \f
15058 Copyright (C) 2011 Free Software Foundation, Inc.
15059
15060 Copying and distribution of this file, with or without modification,
15061 are permitted in any medium without royalty provided the copyright
15062 notice and this notice are preserved.