OSDN Git Service

Always add -mno-XXX for -march=native.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR target/49128
4         * config/i386/driver-i386.c (host_detect_local_cpu): Always
5         add -mno-XXX.  Handle FMA.
6
7 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
8
9         PR rtl-optimization/48633
10         * ira-build.c (loop_with_eh_edge_p): New function.
11         (mark_loops_for_removal): Use it.
12
13 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
14
15         PR rtl-optimization/48971
16         * ira.c (setup_pressure_classes): Don't check register move cost
17         for classes with one registers.  Don't add pressure class if there
18         is a pressure class with the same available hard registers.
19         Check contains_reg_of_mode.  Fix a typo in collecting
20         temp_hard_regset.  Ignore hard registers not belonging to a class.
21
22 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
23
24         PR target/49133
25         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
26
27 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
28             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29
30         PR gcov-profile/48845
31         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
32
33 2011-05-24  Richard Guenther  <rguenther@suse.de>
34
35         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
36         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
37         (gimple_types_compatible_p_1): Adjust.
38         (iterative_hash_canonical_type): Do not bother about complete vs.
39         incomplete types.
40         (gimple_canonical_types_compatible_p): Likewise.
41
42 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43
44         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
45
46 2011-05-24  Richard Guenther  <rguenther@suse.de>
47
48         PR bootstrap/49078
49         * gimple.c (gimple_register_canonical_type): Revert
50         previous change.
51         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
52         does not for a tree for the case where it matters.  Cache
53         pointer-type alias-sets.
54
55 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
56
57         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
58         (OBJS): Remove options.o, opts-common.o and prefix.o.
59         (OBJS-libcommon-target): New.
60         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
61         (BACKEND): Include libcommon-target.a.
62         (MOSTLYCLEANFILES): Include libcommon-target.a.
63         (libcommon-target.a): New.
64         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
65         prefix.o.
66
67 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
68
69         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
70         parts of output shared with the driver.
71         * optc-gen.awk: Don't generate parts of output not shared with the
72         driver.
73         * opth-gen.awk: Remove GCC_DRIVER conditionals.
74         * doc/options.texi (SourcerInclude): Mention options-save.c.
75         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
76         (OBJS): Add options-save.o.
77         (options-save.c, options-save.o): New.
78         (options.o): Update dependencies.
79         (gcc-options.o): Remove.
80         (mostlyclean): Remove options-save.c.
81
82 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
83
84         PR debug/49032
85         * dbxout.c: Include cgraph.h.
86         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
87         and without value expr, return NULL if no varpool node exists for
88         it or if it is not needed.
89         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
90
91         PR c/49120
92         * c-decl.c (start_decl): Convert expr to void_type_node.
93
94 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
95
96         PR rtl-optimization/48826
97         * emit-rtl.c (try_split): When splitting a call that is followed
98         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
99
100 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
101
102         * cfgexpand.c (expand_debug_expr): For unused non-addressable
103         parameters passed in memory prefer using DECL_INCOMING_RTL over
104         the pseudos it will be copied into.
105
106 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
107
108         PR target/47315
109         * config/i386/i386.c (ix86_option_override_internal): Save the
110         initial options after checking vzeroupper.
111
112 2011-05-23  David Li  <davidxl@google.com>
113
114         PR tree-optimization/48988
115         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
116         Initialize has_valid_pred for each pred chain.
117
118 2011-05-23  Richard Guenther  <rguenther@suse.de>
119
120         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
121         (iterative_hash_gimple_type): Always hash type names.
122
123 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
124
125         * c-typeck.c (build_function_call_vec): Tweak call to
126         check_function_arguments.
127
128 2011-05-23  Richard Guenther  <rguenther@suse.de>
129
130         PR tree-optimization/49115
131         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
132         is not necessarily carried out, do not claim it kills the ref.
133         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
134
135 2011-05-23  Richard Guenther  <rguenther@suse.de>
136
137         PR middle-end/15419
138         * builtins.c (fold_builtin_memory_op): Be less restrictive about
139         what pointer types we accept for folding.
140
141 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
142
143         * gthr-gnat.c: Remove.
144         * gthr-gnat.h: Remove.
145         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
146         * config/t-freebsd (LIB2ADDEH): Likewise.
147         * config/t-linux (LIB2ADDEH): Likewise.
148         * config/t-sol2 (LIB2ADDEH): Likewise.
149         * config/ia64/t-vms (LIB2ADDEH): Likewise.
150         * configure.ac (target_thread_file): Remove gnat handling.
151         * configure: Regenerate.
152         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
153
154 2011-05-23  Tristan Gingold  <gingold@adacore.com>
155             Eric Botcazou  <ebotcazou@adacore.com>
156
157         * gcov.c (create_file_names): If no object directory is specified,
158         keep the directory of the file.
159
160 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
161
162         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
163         * configure: Regenerate.
164
165 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
166
167         PR middle-end/48973
168         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
169         failed and the comparison has a single bit signed type, use
170         constm1_rtx instead of const1_rtx for true value.
171         (do_store_flag): If ops->type is single bit signed type, disable
172         signel bit test optimization and pass -1 instead of 1 as last
173         parameter to emit_store_flag_force.
174
175 2011-05-23  Tom de Vries  <tom@codesourcery.com>
176
177         PR target/45098
178         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
179         function.
180         (infer_loop_bounds_from_undefined): Use new function.
181
182 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
183
184         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
185         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
186         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
187         and -O0 otherwise.
188         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
189
190 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
191
192         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
193         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
194         returns true.
195
196 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
197
198         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
199
200 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
201
202         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
203         UNSPEC_MOVE_PIC pattern.
204
205 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
206
207         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
208         (sparc-*-rtems*): Likewise.
209         (sparc64-*-elf*): Likewise.
210         (sparc64-*-rtems*): Likewise.
211         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
212         * config/sparc/t-crtin: New file.
213         * config/sparc/t-sol2 (crti.o): Delete rule.
214         (crtn.o): Likewise.
215         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
216         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
217         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
218         (ENDFILE_SPEC): Add crtn.o.
219
220 2011-05-22  Tom de Vries  <tom@codesourcery.com>
221
222         PR middle-end/48689
223         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
224         CODE_CONTAINS_STRUCT (TS_COMMON).
225
226 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
227
228         PR middle-end/49029
229         * expmed.c (extract_fixed_bit_field): Test whether target can be used
230         only after deciding which mode to use.
231
232 2011-05-22  Tom de Vries  <tom@codesourcery.com>
233
234         PR target/45098
235         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
236         for call to get_shiftadd_cost.
237
238 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
239
240         PR target/49104
241         * config/i386/cpuid.h (bit_MMXEXT): New define.
242
243 2011-05-22  Nick Clifton  <nickc@redhat.com>
244
245         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
246         initialisation of non-existant args[2] element.  Use args[] array
247         not arg[] array to pass arguments to build_function_type_list.
248
249 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
250
251         PR tree-optimization/49087
252         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
253
254 2011-05-21  Jason Merrill  <jason@redhat.com>
255
256         PR c++/49092
257         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
258         static storage duration.
259
260 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
261
262         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
263         frame pointer.
264
265 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
266
267         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
268         false if there are call-saved registers here...
269         (sparc_can_use_return_insn_p): ...but here instead.
270         (save_or_restore_regs): Fix thinko.
271         (sparc_expand_prologue): Use current_function_is_leaf.
272         (sparc_frame_pointer_required): Likewise.
273
274 2011-05-21  Nick Clifton  <nickc@redhat.com>
275
276         PR target/49098
277         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
278
279 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
280
281         * gengtype.c (walk_type): Implemented "atomic" GTY option.
282         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
283
284 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
285
286         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
287         * optc-gen.awk: Move common code to opt-read.awk.
288         * opth-gen.awk: Likewise.
289         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
290
291 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
292
293         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
294
295 2011-05-20  Tom de Vries  <tom@codesourcery.com>
296
297         PR target/45098
298         * tree-ssa-loop-ivopts.c: Include expmed.h.
299         (get_shiftadd_cost): New function.
300         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
301
302 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
303
304         PR bootstrap/49086
305         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
306         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
307
308 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
309
310         * Makefile.in: Update comment referring to $(OBJS-common).
311
312 2011-05-20  Ian Lance Taylor  <iant@google.com>
313
314         * godump.c (go_output_typedef): Put enum constants in the macro
315         hash table to avoid duplicate Go const definitions.
316
317 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
318
319         * Makefile.in (LIBDEPS): Add libcommon.a.
320         (LIBS): Likewise.
321         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
322         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
323         pretty-print.o and version.o.
324         (OBJS-libcommon): New.
325         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
326         (BACKEND): Add libcommon.a.
327         (MOSTLYCLEANFILES): Likewise.
328         (libcommon.a): New.
329         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
330         (cpp$(exeext)): Likewise.
331         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
332         pretty-print.o and input.o.
333         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
334         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
335         (errors.o): Remove.
336         (mips-tfile): Don't explicitly use version.o.
337         (mips-tdump): Likewise.
338         (gcov.o): Depend on $(DIAGNOSTIC_H).
339         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
340         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
341         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
342         * gcov-dump.c: Include intl.h and diagnostic.h.
343         (main): Initialize diagnostics.
344         * gcov.c: Include diagnostic.h.
345         (fnotice): Remove.
346         (main): Initialize diagnostics.
347         * lto-wrapper.c: Include diagnostic.h.
348         (main): Initialize diagnostics.
349
350 2011-05-20  Michael Matz  <matz@suse.de>
351
352         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
353
354 2011-05-20  Michael Matz  <matz@suse.de>
355             Richard Guenther  <rguenther@suse.de>
356
357         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
358         use lto_streamer_cache_append directly instead of returning a VEC.
359         (preload_common_node): Remove.
360         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
361         track seen nodes.
362         (lto_streamer_cache_create): Call lto_preload_common_nodes.
363
364 2011-05-20  Richard Guenther  <rguenther@suse.de>
365
366         PR tree-optimization/49079
367         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
368         MEM_REFs correctly for the trailing array access detection.
369         Special case constants the same way as decls for overall size
370         constraining.
371
372 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
373
374         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
375         argument expansion.
376
377 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
378
379         PR tree-optimization/49073
380         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
381         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
382         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
383
384 2011-05-20  Richard Guenther  <rguenther@suse.de>
385
386         PR middle-end/48849
387         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
388         of pointer types the same way the middle-end does.
389
390 2011-05-20  Richard Guenther  <rguenther@suse.de>
391
392         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
393         or pointer-to chains.  Delay all fixup to uniquify_nodes.
394
395 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
396
397         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
398         (fma4_fmaddsub): Likewise
399
400 2011-05-19  Jan Hubicka  <jh@suse.cz>
401
402         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
403         (GIMPLE_TYPE_PAIR_SIZE): New macro.
404         (type_pair_cache): New static var.
405         (lookup_type_pair): Use fixed sized custom hash; make inline.
406         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
407         calls of lookup_type_pair.
408         (print_gimple_types_stats): Remove cache stats.
409         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
410         and gtc_ob.
411
412 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
413
414         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
415         when TARGET_RDRND is active.
416         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
417         Generate dummy SImode target register when target is NULL.
418
419 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
420
421         * config/arm/arm-fpus.def: New.
422         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
423         arm-fpus.def.
424         * config/arm/arm-tables.opt: Regenerate.
425         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
426         (arm_option_override): Don't decode FPU name to string here.
427         * config/arm/arm.opt (mfpu=): Use Enum.
428         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
429         Update dependencies.
430
431 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
432
433         * collect2.c: Include diagnostic.h.
434         (fatal_perror, fatal, error, fancy_abort): Remove.
435         (main): Set progname.  Call xmalloc_set_program_name and
436         diagnostic_initialize.
437         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
438         scan_libraries, resolve_lib_name): Call fatal_error instead of
439         fatal and fatal_perror.
440         * collect2.h (error, fatal, fatal_perror): Don't declare.
441         * tlink.c: Include diagnostic-core.h.
442         (recompile_files): Call fatal_error instead of fatal_perror.
443         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
444         pretty-print.o and input.o.
445         (collect2.o, tlink.o): Update dependencies.
446
447 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
448
449         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
450
451 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
452
453         PR target/40483
454         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
455         COMDAT group syntax, both SPARC and x86 variants.
456         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
457         * configure: Regenerate.
458         * config/sol2.h (TARGET_SOLARIS): Define.
459         (PUSHSECTION_FORMAT): Remove.
460         (SECTION_NAME_FORMAT): Define.
461         * config/sol2.c: Include hashtab.h.
462         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
463         expansion, using SECTION_NAME_FORMAT.
464         (solaris_comdat_htab): New variable.
465         (struct comdat_entry): Define.
466         (comdat_hash): New function.
467         (comdat_eq): New function.
468         (solaris_elf_asm_comdat_section): New function.
469         (solaris_define_comdat_signature): New function.
470         (solaris_code_end): New function.
471         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
472         (solaris_code_end): Declare.
473         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
474         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
475         solaris_code_end.
476         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
477         Remove ATTRIBUTE_UNUSED.
478         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
479         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
480         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
481         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
482         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
483         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
484         (PUSHSECTION_FORMAT): Remove.
485         (SECTION_NAME_FORMAT): Redefine.
486
487 2011-05-19  Kai Tietz  <ktietz@redhat.com>
488
489         * tree-cfg.c (verify_gimple_assign_binary): Barf on
490         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
491         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
492
493 2011-05-19  Anatoly Sokolov <aesok@post.ru>
494             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
495
496         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
497
498 2011-05-19  Richard Guenther  <rguenther@suse.de>
499
500         PR middle-end/48985
501         * tree-object-size.c (addr_object_size): If the pointed-to
502         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
503
504 2011-05-19  Richard Guenther  <rguenther@suse.de>
505
506         * gimple.c (gimple_types_compatible_p_1): Compare names of
507         the types themselves.
508         (iterative_hash_gimple_type): And hash them that way.
509         (gimple_register_type_1): If we register a main variant properly
510         initialize the leader to ourselves.
511
512 2011-05-19  Tom de Vries  <tom@codesourcery.com>
513
514         PR target/45098
515         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
516         get_loop_invariant_expr_id.
517         (get_loop_invariant_expr_id): Use get_expr_id.
518         (parm_decl_cost): New function.
519         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
520         Improve bound cost estimation.  Use different inv_expr_id for elim and
521         express cases.
522
523 2011-05-19  Tom de Vries  <tom@codesourcery.com>
524
525         PR target/45098
526         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
527         cost_base.cost == 0.
528
529 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
530
531         PR target/49002
532         * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
533         Properly handle load cast.
534
535 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
536
537         PR tree-optimization/49039
538         * tree-vrp.c (extract_range_from_binary_expr): For
539         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
540         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
541
542 2011-05-18  Tom de Vries  <tom@codesourcery.com>
543
544         PR target/45098
545         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
546
547 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
548
549         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
550         (*tls_global_dynamic_64): Ditto.
551         (*tls_local_dynamic_base_32_gnu): Ditto.
552         (*tls_local_dynamic_base_64): Ditto.
553         (tls_initial_exec_64_sun): Ditto.
554
555 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
556
557         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
558         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
559         bf592-none.
560         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
561         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
562         * config/bfin/bfin.c (bfin_cpus): Add bf592.
563         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
564         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
565         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
566         * config/bfin/elf.h (LIB_SPEC): Add bf592.
567
568 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
569
570         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
571         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
572         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
573         target_thread_pointer, arm_structure_size_boundary, struct
574         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
575         struct abi_name, arm_all_abis): Remove.
576         (arm_option_override) Don't process most enumerated option values here.
577         Don't process target_fpe_name here.  Work with integer not string for
578         structure size boundary; use separate diagnostics for each case.
579         * config/arm/arm.h (enum float_abi_type, enum
580         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
581         to arm-opts.h.
582         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
583         arm_structure_size_boundary): Remove.
584         * config/arm/arm.opt (mabi=): Use Enum and Init.
585         (arm_abi_type): New Enum and EnumValue entries.
586         (mfloat-abi=): Use Enum and Init.
587         (float_abi_type): New Enum and EnumValue entries.
588         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
589         (mfp16-format=): Use Enum and Init.
590         (arm_fp16_format_type): New Enum and EnumValue entries.
591         (mstructure-size-boundary=): Use UInteger and Init.
592         (mtp=): Use Enum and Init.
593         (arm_tp_type): New Enum and EnumValue entries.
594
595 2011-05-18  Richard Guenther  <rguenther@suse.de>
596
597         PR tree-optimization/49018
598         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
599         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
600         gimple_has_side_effects.
601
602 2011-05-18  Richard Guenther  <rguenther@suse.de>
603
604         * gimple.c (gimple_register_type_1): New function, split out from ...
605         (gimple_register_type): ... here.  Avoid infinite recursion.
606
607 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
608
609         PR tree-optimization/41881
610         * tree-vectorizer.h (struct _loop_vec_info): Add new field
611         reduction_chains along with a macro for its access.
612         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
613         (destroy_loop_vec_info): Free reduction chains.
614         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
615         (vect_is_slp_reduction): New function.
616         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
617         (vect_create_epilog_for_reduction): Support SLP reduction chains.
618         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
619         definition types for reduction chains.
620         (vect_supported_load_permutation_p): Don't allow permutations for
621         reduction chains.
622         (vect_analyze_slp_instance): Support reduction chains.
623         (vect_analyze_slp): Try to build SLP instance from reduction chains.
624         (vect_get_constant_vectors):  Handle reduction chains.
625         (vect_schedule_slp_instance): Mark the first statement of the
626         reduction chain as reduction.
627
628 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
629
630         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
631         names for group elements access.
632         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
633         reduction chains as well.  Remove data reference and interleaving
634         related words from the fields names.
635         * tree-vect-loop.c (vect_transform_loop): Use new names for group
636         elements access.
637         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
638         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
639         vect_update_interleaving_chain, vect_same_range_drs,
640         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
641         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
642         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
643         vect_analyze_group_access, vect_analyze_data_ref_access,
644         vect_create_data_ref_ptr, vect_transform_strided_load,
645         vect_record_strided_load_vectors): Likewise.
646         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
647         vect_model_load_cost, vectorizable_store, vectorizable_load,
648         vect_remove_stores, new_stmt_vec_info): Likewise.
649         * tree-vect-slp.c (vect_build_slp_tree,
650         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
651
652 2011-05-18  Richard Guenther  <rguenther@suse.de>
653
654         PR middle-end/48989
655         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
656         operand verification.
657         (verify_gimple_assign_binary): Likewise.
658         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
659         to non-1-precision BOOLEAN_TYPEs.
660
661 2011-05-18  Tom de Vries  <tom@codesourcery.com>
662
663         PR target/45098
664         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
665
666 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
667
668         PR tree-optimization/49000
669         * tree-ssa.c (execute_update_addresses_taken): Call
670         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
671         be rewritten and decl has been marked for renaming, reset
672         the debug stmt.
673
674 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
675
676         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
677         enum_opts_set when testing if attributes have set -mfpmath=.
678
679 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
680
681         * config/mips/mips.c (mips_handle_option): Remove unused variable.
682
683 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
684
685         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
686         info->entry with 0
687         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
688         id.transform_lang_insert_block with NULL.
689
690 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
691
692         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
693         (output_fp_compare): Change args 3 and 4 to bool.
694         (ix86_expand_call): Change arg 6 to bool.
695         (ix86_attr_length_immediate_default): Change arg 2 to bool.
696         (ix86_attr_length_vex_default): Change arg 3 to bool.
697         * config/i386/i386.md: Update all uses.
698         * config/i386/i386.c: Ditto.
699         (ix86_flags_dependent): Change return type to bool.
700
701 2011-05-17  Richard Guenther  <rguenther@suse.de>
702
703         * gimple.c (type_hash_pair_compare): Fix comparison.
704
705 2011-05-17  Richard Guenther  <rguenther@suse.de>
706
707         * gimple.c (iterative_hash_gimple_type): Simplify singleton
708         case some more, fix final hash value of the non-singleton case.
709
710 2011-05-17  Richard Guenther  <rguenther@suse.de>
711
712         PR bootstrap/49013
713         Revert
714         2011-05-16  Richard Guenther  <rguenther@suse.de>
715
716         * gimple.c (gimple_types_compatible_p_1): Use names of the
717         type itself, not its main variant.
718         (iterative_hash_gimple_type): Likewise.
719
720 2011-05-17  Richard Guenther  <rguenther@suse.de>
721
722         * gimple.c (gimple_register_canonical_type): Use the main-variant
723         leader for computing the canonical type.
724
725 2011-05-17  Nick Clifton  <nickc@redhat.com>
726
727         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
728         moves.
729
730         * config/rx/rx.md: Add peephole to remove redundant extensions
731         after loads.
732         (bitset_in_memory): Use rx_restricted_mem_operand.
733         (bitinvert_in_memory): Likewise.
734         (bitclr_in_memory): Likewise.
735
736 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
737             Nick Clifton  <nickc@redhat.com>
738
739         * config/rx/rx.md: Add peepholes to match a register move followed
740         by a comparison of the moved register.  Replace these with an
741         addition of zero that does both actions in one instruction.
742
743 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
744
745         PR target/48986
746         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
747         predicate to allow CONST_INT.
748         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
749
750 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
751
752         * opts-common.c (opt_enum_arg_to_value): New.
753         * opts.h (opt_enum_arg_to_value): Declare.
754         * config/i386/i386.opt (fpmath): Remove.
755         (mfpmath=): Use Enum, Init and Save.
756         (fpmath_unit): New Enum and EnumValue entries.
757         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
758         name for function fpmath state.
759         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
760         * config/i386/i386.c: Include diagnostic.h.
761         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
762         (ix86_target_string): Take enum fpmath_unit value instead of string.
763         (ix86_debug_options): Update call to ix86_target_string.
764         (ix86_option_override_internal): Don't process fpmath strings here.
765         (x86_function_specific_save, ix86_function_specific_restore):
766         Don't handle fpmath state specially.
767         (ix86_function_specific_print): Pass fpmath state to
768         ix86_target_string instead of printing in this function.
769         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
770         Handle enum attributes.
771         (IX86_ATTR_ENUM, ix86_opt_enum): New.
772         (ix86_valid_target_attribute_tree): Update option_strings
773         handling.  Handle fpmath as enum option.
774         (ix86_can_inline_p): Update field names for function fpmath state.
775         (ix86_expand_builtin): Update call to ix86_target_string.
776         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
777         (ix86_fpmath): Remove.
778         * config/i386/t-i386 (i386.o): Update dependencies.
779
780 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
781
782         PR preprocessor/48677
783         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
784         from decoded_options[0], not from itself.
785
786 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
787
788         * config/i386/constraints.md (z): New constraint.
789         * config/i386/i386.c (c): New mode attribute.
790         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
791         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
792         constraint for operand 0.
793         (*call_vzeroupper): Ditto.
794         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
795         (*call_rex64_ms_sysv_vzeroupper): Ditto.
796         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
797         Use "lzm" constraint for operand 0.
798         (*call_pop_vzeroupper): Ditto.
799         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
800         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
801         constraint for operand 0.
802         (*sibcall_vzeroupper): Ditto.
803         (*sibcall_rex64_ms_sysv): Ditto.
804         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
805         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
806         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
807         (*sibcall_pop_vzeroupper): Ditto.
808         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
809         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
810         mode iterator.  Use "<c>zm" constraint for operand 1.
811         (*call_value_vzeroupper): Ditto.
812         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
813         for operand 1.
814         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
815         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
816         *call_value_pop_1.  Use "lzm" constraint for operand 1.
817         (*call_value_pop_vzeroupper): Ditto.
818         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
819         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
820         mode iterator.  Use "Uz" constraint for operand 1.
821         (*sibcall_value_vzeroupper): Ditto.
822         (*sibcall_value_rex64_ms_sysv): Ditto.
823         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
824         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
825         constraint for operand 1.
826         (*sibcall_value_pop_vzeroupper): Ditto.
827         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
828         and "z" constraint for operand 2.
829         (*tls_global_dynamic_32_gnu): Ditto.
830         (*tls_local_dynamic_base_32_gnu): Ditto.
831         (*tls_local_dynamic_base_64): Ditto.
832         (*tls_local_dynamic_32_once): Ditto.
833         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
834         Update all callers.
835         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
836
837 2011-05-16  Richard Guenther  <rguenther@suse.de>
838
839         * gimple.c (gimple_types_compatible_p_1): Use names of the
840         type itself, not its main variant.
841         (iterative_hash_gimple_type): Likewise.
842
843 2011-05-16  Richard Guenther  <rguenther@suse.de>
844
845         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
846         always visit pointer target and function result and argument types.
847
848 2011-05-16  Jason Merrill  <jason@redhat.com>
849
850         PR c++/48999
851         * tree-inline.c (copy_statement_list): Put back recursion.
852
853 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
854
855         PR target/27663
856         PR target/41076
857         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
858         * config/avr/avr.md ("*ior<mode>qi.byte0",
859         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
860
861 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
862
863         PR target/45099
864         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
865         register is needed for a function argument.
866
867 2011-05-16  Richard Guenther  <rguenther@suse.de>
868
869         * gimple.c (struct type_hash_pair): New type.
870         (type_hash_pair_compare): New function.
871         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
872
873 2011-05-16  Revital Eres  <revital.eres@linaro.org>
874
875         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
876
877 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
878
879         * config/i386/i386.md (floating point move splitters): Fix
880         usage of standard_80387_constant_p.
881         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
882
883 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
884
885         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
886
887 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
888
889         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
890         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
891         (tree_ssa_lim_finalize): Likewise.
892
893 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
894
895         * config/i386/constraint.md (Yd, Yx): New register constraints.
896         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
897         Yd conditional register constraint.
898         (*movtf_internal): Use standard_sse_constant_opcode.
899         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
900         Yx conditional register constraint.
901         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
902         Yd conditional register constraint.  Use standard_sse_constant_p to
903         check for valid SSE constants and call standard_sse_constant_opcode to
904         output SSE insn.
905         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
906         constants and call standard_sse_constant_opcode to output SSE insn.
907         * config/i386/i386.c (ix86_option_ovverride_internal): Set
908         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
909         optimize_size is set.
910         (standard_sse_constant_opcode): Output conditional AVX insn templates.
911
912 2011-05-14  Tobias Burnus  <burnus@net-b.de>
913
914         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
915
916 2011-05-13  Martin Jambor  <mjambor@suse.cz>
917
918         * ipa-prop.c (ipa_cst_from_jfunc): New function.
919         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
920         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
921         (evaluate_conditions_for_ipcp_clone): Removed.
922         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
923         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
924         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
925
926 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
927
928         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
929         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
930         lieu of MAY_HAVE_DEBUG_STMTS.
931         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
932         debug statements if !MAY_HAVE_DEBUG_STMTS.
933
934 2011-05-13  Martin Thuresson  <martint@google.com>
935
936         PR gcov-profile/47793
937         * libgcov.c (gcov_exit): Support relative profile paths.
938         * doc/invoke.texi (-fprofile-dir): Update for above change.
939
940 2011-05-13  Richard Guenther  <rguenther@suse.de>
941
942         * gimple.c (gimple_canonical_types_compatible_p): Do not use
943         type-pair caching, do not compare hashes.
944
945 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
946
947         PR middle-end/48965
948         * tree-cfg.c (edge_to_cases_cleanup): Return true.
949         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
950
951 2011-05-13  Kai Tietz  <ktietz@redhat.com>
952
953         * gimplify.c (gimplify_expr): Make sure operand is boolified.
954         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
955         compatible type for TRUTH_NOT_EXPR.
956
957 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
958
959         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
960         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
961         can_create_pseudo_p ().
962
963 2011-05-13  Richard Guenther  <rguenther@suse.de>
964
965         PR lto/48978
966         * gimple.c (iterative_hash_gimple_type): Revert change in
967         pointer target and function result and argument hashing.
968
969 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
970
971         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
972         (*movxf_internal_nointeger): Ditto.
973         (*movdf_internal_rex64): Ditto.
974         (*movdf_internal): Ditto.
975         (*movdf_internal_nointeger): Ditto.
976         (*movsf_internal): Ditto.
977         (sincos splitters): Use can_create_pseudo ().
978
979 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
980
981         * config/i386/i386-opts.h: New.
982         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
983         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
984         ix86_section_threshold): Remove.
985         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
986         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
987         OPT_mbranch_cost_.
988         (ix86_option_override_internal): Don't decode strings for options
989         other than -march=, -mtune= and -mfpmath=.  Don't allow for
990         __attribute__ uses in remaining diagnostics for options with
991         string arguments.  Don't check for integer arguments being negative.
992         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
993         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
994         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
995         ix86_branch_cost, ix86_section_threshold): Remove.
996         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
997         HeaderInclude.
998         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
999         but not Var.
1000         (masm=): Use Enum and Init.
1001         (asm_dialect): New Enum and EnumValue entries.
1002         (mbranch-cost=): Use UInteger.
1003         (mlarge-data-threshold=): Use UInteger and Init.
1004         (mcmodel=): Use Enum and Init.
1005         (cmodel): New Enum and EnumValue entries.
1006         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1007         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1008         mregparm=): Use UInteger.
1009         (mstringop-strategy=): Use Enum and Init.
1010         (stringop_alg): New Enum and EnumValue entries.
1011         (mtls-dialect=): Use Enum and Init.
1012         (tls_dialect): New Enum and EnumValue entries.
1013         (mabi=): Use Enum and Init.
1014         (calling_abi): New Enum and EnumValue entries.
1015         (mveclibabi=): Use Enum and Init.
1016         (ix86_veclibabi): New Enum and EnumValue entries.
1017
1018 2011-05-13  Nick Clifton  <nickc@redhat.com>
1019
1020         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1021         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1022
1023 2011-05-13  Kai Tietz  <ktietz@redhat.com>
1024
1025         PR middle-end/48984
1026         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1027         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1028         (gimple_boolify): Check for cast for boolean_type_node instead for
1029         BOOLEAN_TYPE.
1030
1031 2011-05-13  Richard Guenther  <rguenther@suse.de>
1032
1033         PR tree-optimization/48172
1034         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1035         multiplying by number of iterations for equal step.
1036         (vect_create_cond_for_alias_checks): Likewise.
1037
1038 2011-05-13  Andreas Schwab  <schwab@redhat.com>
1039
1040         * configure.ac: Use AS_HELP_STRING throughout.
1041         * configure: Regenerate.
1042
1043 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1044
1045         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1046         (ix86_emit_restore_regs_using_mov): Likewise.
1047         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1048
1049 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
1050
1051         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1052         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1053         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1054         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1055         RTX_OK_FOR_OLO10_P): ...here.
1056         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1057         SYMBOLIC_CONST.
1058
1059 2011-05-12  Kai Tietz  <ktietz@redhat.com>
1060
1061         * gimplify.c (gimple_boolify): Re-boolify expression
1062         arguments even if expression type is of kind BOOLEAN_TYPE.
1063         (gimplify_boolean_expr): Removed.
1064         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1065         and XOR. Additional take care that we keep expression's type.
1066         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1067         of TRUTH_AND|OR|XOR_EXPR.
1068
1069 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1070
1071         PR tree-optimization/48975
1072         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1073         on all bbs here and free and clear ifc_bbs at the end.
1074
1075 2011-05-12  Richard Guenther  <rguenther@suse.de>
1076
1077         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1078         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
1079         until after simple checks.
1080         (gimple_types_compatible_p): Likewise.
1081         (iterative_hash_gimple_type): Always hash pointer targets
1082         and function return and argument types.
1083         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1084         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
1085         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1086         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
1087         completely in the simple compare section.
1088         (gimple_register_canonical_type): Query the cache again after
1089         registering.
1090
1091 2011-05-12  Richard Guenther  <rguenther@suse.de>
1092
1093         PR tree-optimization/48172
1094         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1095         the number of iterations from the segment size calculation.
1096         (vect_create_cond_for_alias_checks): Adjust.
1097
1098 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
1099
1100         PR debug/48967
1101         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1102         if validate_subreg fails.
1103
1104 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
1105
1106         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1107         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1108         early.
1109
1110 2011-05-12  DJ Delorie  <dj@redhat.com>
1111
1112         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1113         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1114         created builtin into rx_builtins array.
1115         (rx_builtin_decl): New function.
1116         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
1117
1118 2011-05-12  DJ Delorie  <dj@redhat.com>
1119             Nick Clifton  <nickc@redhat.com>
1120
1121         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1122         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1123         (rx_is_legitimate_address): Add pre-decrement and post-increment
1124         addressing in HImode and QImode.  Fix test for out of range
1125         REG+INT addressing.
1126         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
1127         (rx_align_for_label): Test label before extracting its usage count.
1128         (rx_adjust_insn_lengths): Fix selection of insn codes.
1129         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
1130
1131 2011-05-11  Jason Merrill  <jason@redhat.com>
1132
1133         * tree.c (type_hash_canon): Use struct tree_type_non_common.
1134
1135 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1136
1137         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1138         reindent the subsequent block.
1139
1140 2011-05-11  Satoru Takabayashi  <satorux@google.com>
1141             Paul Pluzhnikov  <ppluzhnikov@google.com>
1142
1143         * doc/install.texi (Configuration): Document --with-linker-hash-style.
1144         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1145         * config.in: Add LINKER_HASH_STYLE.
1146         * configure.ac: Add --with-linker-hash-style.
1147         * configure: Regenerate.
1148
1149 2011-05-11  Richard Guenther  <rguenther@suse.de>
1150
1151         PR middle-end/48964
1152         * gimple.c (iterative_hash_canonical_type): Fix typo.
1153
1154 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
1155
1156         * config/i386/i386.c (legitimize_tls_address)
1157         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1158         expanders directly for TARGET_GNU2_TLS.  Determine pic and
1159         __tls_get_addr symbol reference here.  Update call to
1160         gen_tls_global_dynamic_{32,64} for added arguments.
1161         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1162         expanders directly for TARGET_GNU2_TLS.  Determine
1163         __tls_get_addr symbol reference here.  Update call to
1164         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
1165         unique UNSPEC REG_EQUIV to libcall block.
1166         (ix86_tls_get_addr): Declare static.
1167         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1168         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1169         Do not determine pic and __tls_get_addr symbol reference here. Do not
1170         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1171         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1172         (tls_global_dynamic_64): Add operand 2.  Do not determine
1173         __tls_get_addr symbol reference here.  Do not call
1174         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1175         (tls_local_dynamic_base64): Ditto for operand 1.
1176
1177 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
1178
1179         * function.c (expand_function_start): Initialize stack_check_probe_note
1180         only if the generic stack checking mechanism is used.
1181
1182 2011-05-11  Richard Guenther  <rguenther@suse.de>
1183
1184         PR tree-optimization/15256
1185         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1186         (A & B) | C, combine (A op CST1) op CST2.
1187         (tree_ssa_forward_propagate_single_use_vars): Only bother to
1188         visit assigns that have uses.
1189
1190 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
1191
1192         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
1193         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1194         (unpack_ts_type_common_value_fields): ...this.  Update comment.
1195         (unpack_value_fields): Adjust for renaming.
1196         (lto_input_ts_type_tree_pointers): Split into...
1197         (lto_input_ts_type_common_tree_pointer): ...this and...
1198         (lto_input_ts_type_non_common_tree_pointers): ...this.
1199         (lto_input_tree_pointers): Adjust for above split.
1200         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1201         (pack_ts_type_common_value_fields): ...this.  Update comment.
1202         (lto_output_ts_type_tree_pointers): Split into...
1203         (lto_output_ts_type_common_tree_pointers): ...this and...
1204         (lto_output_ts_type_non_common_tree_pointers): ...this.
1205         (lto_output_tree_pointers): Adjust for above split.
1206         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1207         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1208         * stor-layout.c (vector_type_mode): Adjust location of mode field.
1209         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1210         Define.
1211         (struct tree_type): Split into...
1212         (struct tree_type_common: ...this and...
1213         (struct tree_type_with_lang_specific): ...this and...
1214         (struct tree_type_non_common): ...this.  Adjust accessor macros
1215         accordingly.
1216         (TYPE_VALUES_RAW): Define.
1217         (union tree_node): Update for above changes.
1218         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
1219         TS_TYPE_NON_COMMON.
1220         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
1221         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
1222         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
1223         * treestructu.def (TS_TYPE): Remove.
1224         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
1225         Define.
1226
1227 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
1228
1229         PR debug/48159
1230         * tree-ssa.c (reset_debug_uses): New function.
1231         * tree-flow.h (reset_debug_uses): New prototype.
1232         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1233         * tree-loop-distribution.c (generate_loops_for_partition): Call
1234         reset_debug_uses on the stmts that will be removed.  Keep around
1235         all debug stmts, don't count them as bits in partition bitmap.
1236         (generate_builtin): Don't count debug stmts or labels as bits in
1237         partition bitmap.
1238
1239 2011-05-11  Richard Guenther  <rguenther@suse.de>
1240
1241         * gimple.c (gimple_type_hash_1): Merge with ...
1242         (gimple_type_hash): ... this.
1243         (gtc_visit): Remove mode parameter and simplify accordingly.
1244         (gimple_types_compatible_p_1): Likewise.
1245         (gimple_types_compatible_p): Likewise.
1246         (iterative_hash_gimple_type): Likewise.
1247         (visit): Likewise.
1248         (gimple_type_eq): Adjust.
1249
1250 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1251
1252         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1253         enters the branch create an anti edge in the opposite direction
1254         to prevent the creation of reg-moves.
1255         * modulo-sched.c: Adjust comment to reflect the fact we are
1256         scheduling closing branch.
1257         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1258         (stage_count): New field in struct partial_schedule.
1259         (calculate_stage_count): New function.
1260         (normalize_sched_times): Rename to reset_sched_times and handle
1261         incrementing the sched time of the nodes by a constant value
1262         passed as parameter.
1263         (duplicate_insns_of_cycles): Skip closing branch.
1264         (sms_schedule_by_order): Schedule closing branch.
1265         (ps_insn_find_column): Handle closing branch.
1266         (sms_schedule): Call reset_sched_times and adjust the code to
1267         support scheduling of the closing branch.
1268         (ps_insert_empty_row): Update calls to normalize_sched_times
1269         and rotate_partial_schedule functions.
1270
1271 2011-05-11  Richard Guenther  <rguenther@suse.de>
1272
1273         PR middle-end/48953
1274         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1275
1276 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
1277
1278         * opts.c (finish_options): Move warning settings from process_options.
1279         * toplev.c (process_options): Move warning settings to finish_options.
1280
1281 2011-05-11  Richard Guenther  <rguenther@suse.de>
1282
1283         PR tree-optimization/18041
1284         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1285         (simplify_bitwise_binary): ... this.  Handle operand conversions
1286         by applying them to the result instead.
1287         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
1288
1289 2011-05-11  Richard Guenther  <rguenther@suse.de>
1290
1291         * gimple.c (gimple_canonical_types_compatible_p): Split out
1292         from gimple_types_compatible_p and friends.  Do not recurse
1293         to pointed-to types.
1294         (gimple_canonical_type_eq): Use it.
1295         (iterative_hash_canonical_type): Split out from
1296         iterative_hash_gimple_type and friends.  Do not recurse
1297         to pointed-to types.
1298         (gimple_canonical_type_hash): Use it, allocate the hash here.
1299
1300 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1301
1302         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1303         recognizing doloop.
1304
1305 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1306
1307         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1308         instead of PREV_INSN.
1309
1310 2011-05-11  Revital Eres  <revital.eres@linaro.org>
1311
1312         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1313         * loop-doloop.c (doloop_condition_get): Likewise.
1314         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1315         (doloop_end): New.
1316         * config/arm/arm.md (*addsi3_compare0): Remove "*".
1317
1318 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
1319
1320         * tree.def (CASE_LABEL_EXPR): Add an operand.
1321         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1322
1323 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1324
1325         * c-decl.c (c_override_global_bindings_to_false): Remove.
1326         (global_bindings_p): Don't check
1327         c_override_global_bindings_to_false.
1328         * c-tree.h (c_override_global_bindings_to_false): Remove.
1329         * c-typeck.c (composite_type): Don't set
1330         c_override_global_bindings_to_false.
1331
1332 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
1333
1334         PR target/48857, 48495
1335         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1336         (VSX_MODE): Ditto.
1337         (VSX_MOVE_MODE): Ditto.
1338         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1339         VSX vector types.  Add V2DImode.
1340         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1341         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1342         (MODES_TIEABLE_P): Ditto.
1343
1344         * config/rs6000/rs6000.c (rs6000_emit_move): Use
1345         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1346         VSX_VECTOR_MODE.
1347         (init_cumulative_args): Ditto.
1348         (rs6000_function_arg_boundary): Ditto.
1349         (rs6000_function_arg_advance_1): Ditto.
1350         (rs6000_function_arg): Ditto.
1351         (rs6000_function_ok_for_sibcall): Ditto.
1352         (emit_frame_save): Ditto.
1353         (rs6000_function_value): Ditto.
1354         (rs6000_libcall_value): Ditto.
1355
1356 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1357
1358         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1359         i386/darwin-lib.h to $libgcc_tm_file.
1360         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1361
1362 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1363
1364         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1365
1366 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1367
1368         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
1369         * config/rs6000/rs6000-tables.opt: New file (generated).
1370         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1371         rs6000/rs6000-tables.opt to extra_options.
1372         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1373         * config/rs6000/rs6000.c (rs6000_select): Remove.
1374         (processor_target_table): Move contents to rs6000-cpus.def.
1375         (darwin_rs6000_override_options): Check
1376         global_options_set.x_rs6000_cpu_index instead of
1377         rs6000_select[1].string.
1378         (rs6000_option_override_internal): Likewise.
1379         (rs6000_handle_option): Don't assert that global structures are in
1380         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
1381         (rs6000_default_cpu): New variable.
1382         (rs6000_file_start): Set it instead of local default_cpu.  Check
1383         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1384         global_options_set.x_rs6000_tune_index instead of rs6000_select.
1385         (rs6000_darwin_file_start): Check rs6000_default_cpu and
1386         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1387         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1388         rs6000_select): Remove.
1389         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1390         Remove.
1391         (mcpu=, mtune=): Use Var, Init, Enum and Save.
1392         * config/rs6000/t-rs6000
1393         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1394         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1395         global_options_set.x_rs6000_cpu_index instead of
1396         rs6000_select[1].string.
1397         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1398         global_options_set.x_rs6000_cpu_index instead of
1399         rs6000_select[1].string.
1400
1401 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
1402
1403         * config.gcc (libgcc_tm_file): Define instead of including files
1404         from ../../libgcc/config/ in tm_file.
1405         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
1406         * configure: Regenerate.
1407         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1408         libgcc_tm.h, cs-libgcc_tm.h): New.
1409         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1410         (clean): Remove libgcc_tm.h.
1411         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1412         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1413         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1414
1415 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
1416
1417         PR target/48896
1418         * config/avr/avr.c (avr_ret_register): Return unsigned int
1419         instead of int.
1420         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1421         it to avr_libcall_value.
1422         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1423         expand_expr.
1424         (avr_expand_binop_builtin): Ditto.
1425         (avr_expand_unop_builtin): Ditto.
1426
1427 2011-05-10  DJ Delorie  <dj@redhat.com>
1428
1429         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1430         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1431         * config/rx/rx.c (rx_align_for_label): Add label and
1432         uses_threshold parameters.  Do not align when the label is not
1433         used enough.
1434         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1435
1436 2011-05-10  Richard Guenther  <rguenther@suse.de>
1437
1438         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1439         a series of conversions and apply foldings similar to what
1440         fold-const does.
1441         (tree_ssa_forward_propagate_single_use_vars): Call it.
1442
1443 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
1444
1445         PR tree-optimization/48611
1446         PR tree-optimization/48794
1447         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1448         referenced from RESX or EH_DISPATCH arguments.
1449
1450         PR debug/48928
1451         * dfp.c (decimal_to_decnumber): Handle conversion from
1452         dconst{1,2,m1,half}.
1453
1454 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1455
1456         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1457         for !flag_prefer_avx128.
1458         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1459
1460 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1461
1462         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1463         (fold_ternary_loc): Use expr_location_or.
1464
1465 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1466
1467         PR debug/48853
1468         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1469         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1470         Pmode and mem_mode is not VOIDmode.
1471
1472 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
1473
1474         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1475         TYPE_QUAL_RESTRICT): Convert to enum.
1476
1477 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1478
1479         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1480         (const_pow2_1_to_8_operand): Ditto.
1481         (const_pow2_1_to_128_operand): Ditto.
1482         (const_pow2_1_to_32768_operand): Ditto.
1483         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1484         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
1485         in insn constraint to check integer value of operand 3.
1486         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1487
1488         (PINSR_MODE): New mode iterator.
1489         (sse2p4_1): New mode attribute.
1490         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1491         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1492         iterator.  Use const_int_operand instead of
1493         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
1494         exact_log2 in insn constraint to check integer value of operand 3.
1495
1496 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1497
1498         * config/i386/sse.md (blendbits): Remove mode attribute.
1499         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1500         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1501         Check integer value of operand 3 in insn constraint.
1502
1503 2011-05-09  Richard Guenther  <rguenther@suse.de>
1504
1505         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1506         for diagnostics.
1507         (lto_symtab_merge): Likewise.  Do not register types here.
1508         (lto_symtab_merge_decls_2): Likewise.
1509         (lto_symtab_merge_decls_1): Likewise.
1510         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1511         * gimple.c (enum gtc_mode): Declare.
1512         (gimple_types_compatible_p): Make static.
1513
1514 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1515
1516         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1517         temporary register to match Pmode.
1518
1519 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1520
1521         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1522         and *vec_concatv4si_1_avx.
1523
1524 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
1525
1526         PR rtl-optimization/48927
1527         * ira-conflicts.c (commutative_constraint_p): Use
1528         recog_data.alternative_enabled_p to disable alternatives where
1529         "enabled" attribute is false.
1530         (get_dup_num): Ditto.
1531         * ira-lives.c (single_reg_class): Ditto.
1532         (ira_implicitly_set_insn_hard_regs): Ditto.
1533
1534 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
1535
1536         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1537         (dataflow_set_preserve_mem_locs): Likewise.
1538
1539 2011-05-09  Philipp Thomas  <pth@suse.de>
1540
1541         * config/mep/mep.c (mep_validate_vliw): Syntax description
1542         should not be translated.
1543
1544 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
1545
1546         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1547         * config/mips/mips-tables.opt: New file (generated).
1548         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
1549         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1550         MIPS_ARCH_OPTION_NATIVE): Define.
1551         * config/mips/mips.c (mips_cpu_info_table): Move contents to
1552         mips-cpus.def.
1553         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1554         mips_parse_cpu): Remove.
1555         (mips_cpu_info_from_opt, mips_default_arch): New.
1556         (mips_handle_option): Don't assert that global structures are in
1557         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1558         (mips_option_override): Use new variables and functions to set
1559         state of these options.  Use strcmp to check for individual CPU names.
1560         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1561         definition.
1562         * config/mips/mips.opt (march=): Use ToLower and Enum.
1563         (mips): Use ToLower, Enum and Var.
1564         (mtune=): Use ToLower and Enum.
1565         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1566
1567 2011-05-08  Jan Hubicka  <jh@suse.cz>
1568
1569         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1570         Arrange type pairs to be UID ordered.
1571         (gimple_lookup_type_leader): Make inline.
1572
1573 2011-05-09  Nick Clifton  <nickc@redhat.com>
1574
1575         PR target/48899
1576         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1577         PROCESSOR_DEFAULT.
1578
1579         PR target/48897
1580         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1581         variable 's'.
1582
1583 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
1584
1585         * combine.c (simplify_comparison): Abstract out parts into...
1586         (simplify_compare_const): ... new function.
1587         (try_combine): Generalize parallel arithmetic/compare combining
1588         to call simplify_compare_const() and CANONICALIZE_COMPARE().
1589
1590 2011-05-08  Jan Hubicka  <jh@suse.cz>
1591
1592         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
1593         (cgraph_create_virtual_clone): Call hooks once virtual clone
1594         is finished.
1595         * cgraph.h (cgraph_clone_node): Update prototype.
1596         * ipa-cp.c (ipcp_estimate_growth): Use
1597         estimate_ipcp_clone_size_and_time.
1598         * ipa-inline-transform.c (clone_inlined_nodes): Update.
1599         * lto-cgraph.c (input_node): Update.
1600         * ipa-inline.c (recursive_inlining): Update.
1601         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1602         (evaluate_conditions_for_known_args): Break out from ...
1603         (evaluate_conditions_for_edge): ... here.
1604         (evaluate_conditions_for_ipcp_clone): New function.
1605         (inline_node_duplication_hook): Update clone summary based
1606         on parameter map.
1607         (estimate_callee_size_and_time): Rename to ...
1608         (estimate_node_size_and_time): take NODE instead of EDGE;
1609         take POSSIBLE_TRUTHS as argument.
1610         (estimate_callee_size_and_time): Update.
1611         (estimate_ipcp_clone_size_and_time): New function.
1612         (do_estimate_edge_time): Update.
1613
1614 2011-05-08  Richard Guenther  <rguenther@suse.de>
1615
1616         PR middle-end/48908
1617         PR middle-end/48905
1618         * expmed.c (expand_shift_1): Compute adjusted constant shift
1619         amount manually.
1620
1621 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1622
1623         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1624
1625 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1626
1627         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1628
1629 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
1630
1631         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1632
1633 2011-05-07  Jan Hubicka  <jh@suse.cz>
1634
1635         * ipa-inline-transform.c (inline_call): Account when program size
1636         decreases.
1637         * ipa-inline.c (relative_time_benefit): New function.
1638         (edge_badness): Reorganize to be power 2 based; fix thinko when
1639         computing badness for negative growth; update comments to match
1640         reality; better dumps.
1641
1642 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
1643
1644         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1645         type to bool and adjust comment.
1646         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1647         (fold_mathfn_compare): Remove calls to global_bindings_p.
1648         (fold_inf_compare): Likewise.
1649         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1650         * c-tree.h (global_bindings_p): Adjust prototype.
1651         * c-decl.c (global_bindings_p): Return bool and simplify.
1652
1653 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
1654
1655         PR tree-optimization/48837
1656         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1657         when accumulator transformation is performed.
1658
1659 2011-05-06  Jan Hubicka  <jh@suse.cz>
1660
1661         * i386.h (ix86_tune_indices): Add
1662         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
1663         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
1664         * i386.c (initial_ix86_tune_features): Add
1665         X86_SOFTARE_PREFETCHING_BENEFICIAL.
1666         (software_prefetching_beneficial_p): Remove predicate.
1667         (ix86_option_override_internal): Use new macro.
1668
1669 2011-05-06  Jan Hubicka  <jh@suse.cz>
1670
1671         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1672
1673 2011-05-06  Jan Hubicka  <jh@suse.cz>
1674
1675         * cgraph.c (cgraph_add_thunk): Create real function node instead
1676         of alias node; finalize it and mark needed/reachale; arrange visibility
1677         to be right and add it into the corresponding same comdat group list.
1678         (dump_cgraph_node): Dump thunks.
1679         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
1680         cgraph_function_with_gimple_body_p,
1681         cgraph_first_function_with_gimple_body,
1682         cgraph_next_function_with_gimple_body): New functions.
1683         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1684         New macros.
1685         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1686         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1687         * cgraphunit.c (cgraph_finalize_function): Only look into possible
1688         devirtualization when optimizing.
1689         (verify_cgraph_node): Verify thunks.
1690         (cgraph_analyze_function): Analyze thunks.
1691         (cgraph_mark_functions_to_output): Output thunks only in combination
1692         with function they are assigned to.
1693         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1694         alias into normal node.
1695         (assemble_thunks): New functoin.
1696         (cgraph_expand_function): Use it.
1697         * lto-cgraph.c (lto_output_node): Stream thunks.
1698         (input_overwrite_node): Stream in thunks.
1699         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1700         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1701         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1702         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1703         (inline_analyze_function): Do not care about thunk jump functions.
1704         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
1705         * ipa-prop.c (ipa_prop_write_jump_functions): Use
1706         cgraph_function_with_gimple_body_p.
1707         * passes.c (do_per_function_toporder): Use
1708         cgraph_function_with_gimple_body_p.
1709         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1710         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1711         (function_called_by_processed_nodes_p): Likewise.
1712
1713 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1714
1715         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1716         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1717         entries.
1718         (mabi=): Replace with separate entries for mabi=altivec,
1719         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1720         mabi=ieeelongdouble and mabi=ibmlongdouble.
1721         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1722         check for -mabi=spe without SPE ABI support here.
1723         (rs6000_handle_option): Replace OPT_mabi_ handling with
1724         OPT_mabi_altivec and OPT_mabi_spe handling.
1725
1726 2011-05-06  Cary Coutant  <ccoutant@google.com>
1727
1728         * dwarf2out.c (contains_subprogram_definition): New function.
1729         (should_move_die_to_comdat): Call it.
1730
1731 2011-05-06  Jeff Law  <law@redhat.com>
1732
1733         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1734         remove_ctrl_stmt_and_useless_edges.
1735         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1736         (fixup_template_block, thread_single_edge): Likewise.
1737         (mark_threaded_blocks): Use THREAD_TARGET.
1738
1739 2011-05-06  Alan Modra  <amodra@gmail.com>
1740
1741         PR target/48900
1742         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1743         const0_rtx as the arg to the dummy __tls_get_addr libcall.
1744
1745 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1746
1747         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1748         constraint modifier to "r".
1749
1750 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
1751
1752         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1753         fall through for OPT_mcmodel_.
1754
1755 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1756
1757         * config/s390/s390.c (s390_asm_trampoline_template): Comment
1758         instruction sizes.
1759         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
1760
1761 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1762
1763         PR target/47930
1764         * config/arm/arm.opt (marm): Document it.
1765         (mthumb): Reject negative variant.
1766
1767 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
1768
1769         PR target/48898
1770         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1771         Fix typo in "ccvt" variable name.
1772
1773 2011-05-06  Tristan Gingold  <gingold@adacore.com>
1774
1775         PR target/48895
1776         * config/vms/vms-ar.c (main): Remove cwd variable.
1777
1778 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1779
1780         PR debug/48902
1781         * var-tracking.c (prepare_call_arguments): Move else before #endif.
1782
1783 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1784
1785         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
1786         * gimplify.c (gimplify_switch_expr): Likewise.
1787         * omp-low.c (expand_omp_sections): Likewise.
1788         * tree-eh.c (lower_try_finally_switch): Likewise.
1789         (lower_eh_dispatch): Likewise.
1790         * tree.h (build_case_label): Declare.
1791         * tree.c (build_case_label): Define.
1792
1793 2011-05-05  Jason Merrill  <jason@redhat.com>
1794
1795         PR c++/40975
1796         * tree-inline.c (copy_tree_r): Use copy_statement_list.
1797         (copy_statement_list): Don't recurse.
1798         * stor-layout.c (copy_self_referential_tree_r): Don't allow
1799         STATEMENT_LIST.
1800
1801 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1802
1803         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
1804         through from -mfpu= handling.
1805         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
1806
1807 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
1808
1809         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
1810         POST_MODIFY.
1811
1812 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
1813
1814         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1815         for 11.31.
1816         (hppa[12]*-*-hpux11*): Ditto.
1817         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1818         * config/ia64/hpux-unix2003.h: New.
1819         * config/pa/pa-hpux1131.opt: New.
1820         * config/pa/pa-hpux1131.h: New.
1821         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1822         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
1823         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
1824
1825 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1826
1827         PR debug/48853
1828         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1829         instead of mode as 3rd argument to recursive call.
1830         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1831         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1832         VOIDmode.
1833         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1834         don't give up if mode is Pmode and mem_mode is not VOIDmode.
1835         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1836         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1837
1838 2011-05-05  Julian Brown  <julian@codesourcery.com>
1839
1840         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1841         parenthesis in D-register case.
1842
1843 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1844
1845         * opt-functions.awk (var_type_struct): Handle Enum options.
1846         * optc-gen.awk: Don't check range of variables of character type.
1847         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1848         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1849         rs6000_sdata_name, rs6000_explicit_options): Remove.
1850         (rs6000_option_override_internal): Check for -malign-power here.
1851         Use global_options_set instead of rs6000_explicit_options.
1852         (rs6000_parse_fpu_option): Remove.
1853         (rs6000_handle_option): Access variables via opts and opts_set
1854         pointers.  Use error_at and warning_at.  Add fall-through
1855         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1856         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1857         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1858         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1859         here.  Don't use rs6000_parse_fpu_option.
1860         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1861         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1862         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1863         (mrecip=): Use Var.
1864         (mspe): Use Var and Save.
1865         (mtraceback=): Use Enum and Var.
1866         (rs6000_traceback_type): New Enum and EnumValue entries.
1867         (mfloat-gprs=): Use Enum, Var and Save.
1868         (rs6000_float_gprs): New Enum and EnumValue entries.
1869         (mlong-double-): use Var and Save.
1870         (msched-costly-dep=, minsert-sched-nops=): Use Var.
1871         (malign-): Use Enum and Var.
1872         (rs6000_alignment_flags): New Enum and EnumValue entries.
1873         (mfpu=): Use Enum.
1874         (fpu_type_t): New Enum and EnumValue entries.
1875         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1876         global_options_set instead of rs6000_explicit_options.
1877         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1878         global_options_set instead of rs6000_explicit_options.
1879         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1880         global_options_set instead of rs6000_explicit_options.
1881         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1882         global_options_set instead of rs6000_explicit_options.
1883         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1884         global_options_set instead of rs6000_explicit_options.
1885         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1886         global_options_set instead of rs6000_explicit_options.
1887         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1888         definition.
1889         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1890         global_options_set instead of rs6000_explicit_options.
1891         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1892         (rs6000_cmodel): New Enum and EnumValue entries.
1893         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1894         global_options_set instead of rs6000_explicit_options.
1895         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1896         (mtls-size=): Use Enum and Var.
1897         (rs6000_tls_size): New Enum and EnumValue entries.
1898
1899 2011-05-05  Michael Matz  <matz@suse.de>
1900
1901         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1902         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1903         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1904         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1905         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1906         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1907         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1908         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1909         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1910         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1911         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1912         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1913         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1914         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1915         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1916         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1917
1918 2011-05-05  Richard Guenther  <rguenther@suse.de>
1919
1920         * expmed.c (expand_variable_shift): Rename to ...
1921         (expand_shift_1): ... this.  Take an expanded shift amount.
1922         For rotates recurse directly not building trees for the shift amount.
1923         (expand_variable_shift): Wrap around expand_shift_1.
1924         (expand_shift): Adjust.
1925
1926 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
1927
1928         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1929
1930 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1931
1932         * tree.h (get_pending_sizes): Remove prototype.
1933         (put_pending_size): Likewise.
1934         (put_pending_sizes): Likewise.
1935         * stor-layout.c (pending_sizes): Delete.
1936         (get_pending_sizes): Likewise.
1937         (put_pending_size): Likewise.
1938         (put_pending_sizes): Likewise.
1939         (variable_size): Do not call put_pending_size and tidy up.
1940         * function.h (struct function): Remove dont_save_pending_sizes_p.
1941         * lto-streamer-in.c (input_function): Do not stream it.
1942         * lto-streamer-out.c (output_function): Likewise.
1943         * tree-inline.c (initialize_cfun): Do not copy it.
1944         * c-decl.c (store_parm_decls): Do not set it.
1945         * omp-low.c (create_task_copyfn): Likewise.
1946         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1947
1948 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
1949
1950         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1951         conditions.
1952         (*movdf_internal): Ditto.
1953         (*movdf_internal_nointeger): Ditto.
1954         (*movsf_internal): Ditto.
1955
1956 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1957
1958         * c-decl.c (finish_decl): Don't call get_pending_sizes.
1959         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
1960         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
1961         (c_variable_size): Remove.
1962         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
1963         call put_pending_sizes.
1964         (get_parm_info): Add parameter expr.  Use it to set
1965         arg_info->pending_sizes.
1966         (store_parm_decls): Use arg_info->pending_sizes instead or calling
1967         get_pending_sizes.
1968         * c-parser.c (c_parser_parms_declarator): Update call to
1969         c_parser_parms_list_declarator.
1970         (c_parser_parms_list_declarator): Take parameter expr.  Update
1971         call to push_parm_decl.  Update recursive call.  Don't call
1972         get_pending_sizes.  Update calls to get_parm_info.
1973         (c_parser_objc_method_definition): Update calls to
1974         c_parser_objc_method_decl and objc_start_method_definition.
1975         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
1976         (c_parser_objc_method_decl): Add parameter expr.  Update call to
1977         grokparm.
1978         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
1979         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1980         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1981
1982 2011-05-05  Michael Hope  <michael.hope@linaro.org>
1983
1984         PR pch/45979
1985         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1986         __ARM_EABI__ hosts.
1987
1988 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1989
1990         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1991         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1992         (spu_output_mi_thunk): New function.
1993
1994 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1995
1996         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1997         targetm.asm_out.print_operand.
1998         * config/sol2.c: Include target.h.
1999
2000 2011-05-04  Jan Hubicka  <jh@suse.cz>
2001
2002         * ipa-inline.c (reset_edge_caches): New function.
2003         (update_caller_keys): Add check_inlinablity_for; do not
2004         reset edge caches; remove now unnecesary loop.
2005         (update_callee_keys): Add comments; reset node_growth_cache of callee.
2006         (update_all_callee_keys): Likewise.
2007         (inline_small_functions): Sanity check cache; update code
2008         recomputing it.
2009
2010 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
2011
2012         PR rtl-optimization/47612
2013         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2014         as the last insn of the sequence to be moved.
2015
2016 2011-05-04  Tobias Burnus  <burnus@net-b.de>
2017
2018         PR fortran/48864
2019         * doc/invoke.texi (Ofast): Document that it
2020         enables Fortran's -fno-protect-parens.
2021
2022 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2023
2024         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2025
2026 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2027
2028         * stor-layout.c (variable_size): Do not issue errors.
2029
2030 2011-05-04  Richard Guenther  <rguenther@suse.de>
2031
2032         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2033         for array-ref indices.
2034         (tree_coverage_counter_addr): Likewise.
2035         (build_fn_info_type): Use size_int for index types.
2036         (build_gcov_info): Likewise.
2037
2038 2011-05-04  Richard Guenther  <rguenther@suse.de>
2039
2040         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2041         to build_int_cst.
2042         * c-typeck.c (really_start_incremental_init): Use bitsize_int
2043         for constructor indices.
2044         (push_init_level): Likewise.
2045
2046 2011-05-04  Richard Guenther  <rguenther@suse.de>
2047
2048         * explow.c (promote_mode): Move variable declarations before code.
2049
2050 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2051
2052         * tree.h (build_function_type_array): Declare.
2053         (build_varargs_function_type_array): Declare.
2054         (build_function_type_vec, build_varargs_function_type_vec): Define.
2055         * tree.c (build_function_type_array_1): New function.
2056         (build_function_type_array): New function.
2057         (build_varargs_function_type_array): New function.
2058
2059 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
2060
2061         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2062         before setting STMT_VINFO_TYPE.
2063
2064 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2065
2066         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2067         instead of spu_pass_by_reference.
2068
2069 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2070
2071         * calls.c (emit_library_call_value_1): Invoke
2072         promote_function_mode hook on libcall arguments.
2073         * explow.c (promote_function_mode, promote_mode): Handle TYPE
2074         argument being NULL.
2075         * targhooks.c (default_promote_function_mode): Lisewise.
2076         * config/s390/s390.c (s390_promote_function_mode): Likewise.
2077         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2078
2079         * doc/tm.texi: Document that TYPE argument might be NULL.
2080
2081 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2082
2083         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2084
2085 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2086
2087         From Bernd Schmidt
2088         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2089
2090 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2091
2092         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2093         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2094         Move ...
2095         * mips-tfile.c: ... here.
2096         Don't include coretypes.h, tm.h, filenames.h.
2097         (saber_stop): Remove definition and all calls.
2098         [__SABER__]: Remove.
2099         (__LINE__): Remove default.
2100         (Size_t, Ptrdiff_t): Remove definitions.
2101         Replace by size_t, ptrdiff_t.
2102         [!MIPS_DEBUGGING_INFO]: Remove.
2103         (SHASH_SIZE, THASH_SIZE): Remove defaults.
2104         (progname): Add const.
2105         (STATIC): Remove.
2106         Replace all uses by static.
2107         (ALIGN_SYMTABLE_OFFSET): Remove default.
2108         * mips-tdump.c: Don't include coretypes.h, tm.h.
2109         Remove !MIPS_IS_STAB guard.
2110         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2111         $(TM_H), filenames.h dependencies.
2112         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2113
2114 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2115
2116         From Jie Zhang
2117         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2118         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2119
2120 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2121
2122         From Bernd Schmidt
2123         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2124         account and save/restore RETS.
2125         (PROFILE_BEFORE_PROLOGUE): Define.
2126         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
2127         the push insn to use predecrement.
2128
2129 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
2130
2131         From Jie Zhang
2132         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2133
2134 2011-05-04  Nick Clifton  <nickc@redhat.com>
2135
2136         * config/mn10300/mn10300.c: Include cfgloop.h.
2137         (DUMP): New macro.
2138         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
2139         Lcc or a FLcc insn into the instruction stream.
2140         (mn10300_block_contains_call): New function.  Returns true if the
2141         given basic block contains a CALL insn.
2142         (mn10300_loop_contains_call_insn): New function.  Returns true if
2143         the given loop contains a CALL insn.
2144         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
2145         to use the SETLB and Lcc or FLcc insns.
2146         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2147         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2148         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
2149         disable the SETLB optimization.
2150         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2151         __SETLB__ or __NO_SETLB__.
2152         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2153         (movsf_internal): Handle MDR register.
2154         (cmpsi): Make visible.
2155         (setlb): New pattern.
2156         (Lcc): New pattern.
2157         (FLcc): New pattern.
2158
2159 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
2160
2161         PR target/48860
2162         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2163         for reg<->xmm moves.
2164         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2165         (vec_concatv2di_rex64_sse): Ditto.
2166         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2167         (*vec_extractv2di_1_rex64): Ditto.
2168
2169         Revert:
2170         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2171
2172         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2173         reg<->xmm moves.
2174         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2175
2176 2011-05-04  Richard Guenther  <rguenther@suse.de>
2177
2178         * tree.h (int_const_binop): Remove notrunc argument.
2179         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
2180         create integer constants that are properly truncated.
2181         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2182         (const_binop): Remove zero notrunc argument to int_const_binop.
2183         (size_binop_loc): Likewise.
2184         (fold_div_compare): Likewise.
2185         (maybe_canonicalize_comparison_1): Likewise.
2186         (fold_comparison): Likewise.
2187         (fold_binary_loc): Likewise.
2188         (multiple_of_p): Likewise.
2189         * expr.c (store_constructor): Likewise.
2190         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2191         (maybe_fold_stmt_addition): Likewise.
2192         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2193         * stor-layout.c (layout_type): Likewise.
2194         * tree-data-ref.c (tree_fold_divides_p): Likewise.
2195         * tree-sra.c (build_ref_for_offset): Likewise.
2196         (build_user_friendly_ref_for_offset): Likewise.
2197         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2198         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2199         * tree-ssa-loop-niter.c (inverse): Likewise.
2200         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2201         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2202         * tree-switch-conversion.c (check_range): Likewise.
2203         (build_constructors): Likewise.
2204         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2205         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2206         (extract_range_from_assert): Likewise.
2207         (vrp_int_const_binop): Likewise.
2208         (extract_range_from_binary_expr): Likewise.
2209         (extract_range_from_unary_expr): Likewise.
2210         (check_array_ref): Likewise.
2211         (find_case_label_range): Likewise.
2212         (simplify_div_or_mod_using_ranges): Likewise.
2213         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2214         comparing case labels for merging.
2215
2216 2011-05-03  Mark Wielaard  <mjw@redhat.com>
2217
2218         * dwarf2out.c (debug_str_hash_forced): Removed.
2219         (gen_label_for_indirect_string): Removed.
2220         (get_debug_string_label): Removed.
2221         (AT_string_form): Generate label directly.
2222         (output_indirect_string): Test indirect_string_node for
2223         DW_FORM_strp instead of checking label and refcount.
2224         (prune_indirect_string): Removed.
2225         (prune_unused_types): Don't check debug_str_hash_forced or
2226         call prune_indirect_string.
2227
2228 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2229
2230         PR other/48093
2231         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2232
2233 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
2234
2235         PR debug/47994
2236         PR debug/47919
2237         * combine.c (try_combine): Skip debug insns at m_split tests.
2238
2239 2011-04-26  Mark Wielaard  <mjw@redhat.com>
2240
2241         PR42288
2242         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2243         when info_section_emitted.
2244
2245 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
2246
2247         * config/mips/mips-opts.h: New.
2248         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2249         to mips-opts.h.
2250         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2251         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2252         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
2253         via opts pointer.
2254         * config/mips/mips.h (enum mips_code_readable_setting): Move to
2255         mips-opts.h.
2256         (mips_abi, mips_code_readable): Don't declare.
2257         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
2258         (mabi=): Use Enum and Var.
2259         (mips_abi): New Enum and EnumValue entries.
2260         (mcode-readable=): Use Enum and Var.
2261         (mips_code_readable_setting): New Enum and EnumValue entries.
2262         (mr10k-cache-barrier=): Use Enum and Var.
2263         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2264
2265 2011-05-03  Jan Hubicka  <jh@suse.cz>
2266
2267         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2268         replace hash by pointer map.
2269         (cgraph_node_set_element_def, cgraph_node_set_element,
2270         const_cgraph_node_set_element, varpool_node_set_element_def,
2271         varpool_node_set_element, const_varpool_node_set_element): Remove.
2272         (free_cgraph_node_set, free_varpool_node_set): New function.
2273         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2274         * tree-emutls.c: Free varpool node set.
2275         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2276         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2277         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2278         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2279         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2280         Move here from ipa.c; implement using pointer_map
2281         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2282         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2283         debug_cgraph_node_set, varpool_node_set_new,
2284         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2285         dump_varpool_node_set, debug_varpool_node_set):
2286         Move to ipa-uitls.c.
2287         * passes.c (ipa_write_summaries): Update.
2288
2289 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2290
2291         From Mike Frysinger:
2292         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2293         bf542/bf544/bf547/bf548/bf549.
2294
2295 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2296
2297         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2298
2299 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2300
2301         From Bernd Schmidt:
2302         * config/bfin/bfin.md (MOVCC): New mode_macro.
2303         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2304         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
2305         comments from generated assembly.
2306
2307 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2308
2309         From Bernd Schmidt
2310         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2311         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2312         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2313         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2314         * config/bfin/lib1funcs.asm (___muldi3): New function.
2315
2316 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2317
2318         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2319         build_function_type_list instead of build_function_type.
2320         Rearrange initialization of `args' to do so.
2321
2322 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2323
2324         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2325         instead of build_function_type.
2326
2327 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2328
2329         * config/rs6000/rs6000.c (spe_init_builtins): Call
2330         build_function_type_list instead of build_function_type.
2331         (paired_init_builtins, altivec_init_builtins): Likewise.
2332         (builtin_function_type): Likewise.
2333
2334 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2335
2336         * config/sh/sh.c (sh_media_init_builtins): Call
2337         build_function_type_list instead of build_function_type.
2338
2339 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2340
2341         * config/sparc/sparc.c (sparc_file_end): Call
2342         build_function_type_list instead of build_function_type.
2343
2344 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2345
2346         * config/alpha/alpha.c (alpha_init_builtins): Call
2347         build_function_type_list instead of build_function_type.
2348
2349 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2350
2351         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2352         build_function_type_list instead of build_function_type.
2353
2354 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2355
2356         * config/iq2000/i2000.c (iq2000_init_builtins): Call
2357         build_function_type_list instead of build_function_type.
2358         Delete `endlink' variable.
2359
2360 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2361
2362         * config/avr/avr.c (avr_init_builtins): Call
2363         build_function_type_list instead of build_function_type.
2364
2365 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2366
2367         * config/picochip/picochip.c (picochip_init_builtins): Call
2368         build_function_type_list instead of build_function_type.
2369         Delete `endlink' variable.
2370
2371 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
2372
2373         * config/bfin/bfin.c (bfin_init_builtins): Call
2374         build_function_type_list instead of build_function_type.
2375
2376 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2377
2378         From Bernd Schmidt
2379         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2380         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
2381
2382 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2383
2384         From Jie Zhang:
2385         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2386         libbffastfp overrides libgcc when -mfast-fp.
2387
2388 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2389
2390         Originally from Bernd Schmidt
2391         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2392         * config/bfin/bfin.c (override_options): Test it and error if
2393         TARGET_FDPIC.
2394
2395 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2396
2397         Originally From Bernd Schmidt
2398         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2399         FD-PIC.
2400
2401 2011-05-03  Jeff Law  <law@redhat.com>
2402
2403         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2404         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2405         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
2406         than accessing AUX field directly.  Free the AUX field before
2407         clearing it.
2408         (thread_block, thread_through_loop_header): Likewise.
2409         (thread_single_edge, mark_threaded_blocks): Likewise.
2410         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
2411         (register_jump_thread): Do not attempt to thread to a NULL edge.
2412
2413 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2414
2415         * function.c (init_function_start): Call decide_function_section.
2416         * varasm.c (decide_function_section): New function.
2417         (assemble_start_function): When not using
2418         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2419         or first_function_block_is_cold.
2420         * rtl.h (decide_function_section): Declare.
2421
2422 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
2423             Jakub Jelinek  <jakub@redhat.com>
2424
2425         PR target/48774
2426         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2427         only succeed if req_mode is the same as set_mode.
2428
2429 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
2430
2431         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2432         * genemit.c (gen_exp): Handle RETURN.
2433         * emit-rtl.c (verify_rtx_sharing): Likewise.
2434         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2435         * rtl.c (copy_rtx): RETURN is shared.
2436         * rtl.h (enum global_rtl_index): Add GR_RETURN.
2437         (ret_rtx): New.
2438         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2439         * config/s390/s390.c (s390_emit_epilogue): Likewise.
2440         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2441         * config/cris/cris.c (cris_expand_return): Likewise.
2442         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2443         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2444         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2445         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2446         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2447         Likewise.
2448         * config/v850/v850.c (expand_epilogue): Likewise.
2449         * config/bfin/bfin.c (bfin_expand_call): Likewise.
2450         * config/arm/arm.md (epilogue): Likewise.
2451         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2452         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2453         variable to ret_reg.
2454
2455 2011-05-03  Richard Guenther  <rguenther@suse.de>
2456
2457         PR lto/48846
2458         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2459         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2460         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2461
2462 2011-05-03  Richard Guenther  <rguenther@suse.de>
2463
2464         * c-decl.c (grokdeclarator): Instead of looking at
2465         TREE_OVERFLOW check if the constant fits in the index type.
2466
2467 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2468
2469         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2470         (vec_store_lanes<mode><mode>): Likewise.
2471
2472 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2473
2474         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2475         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2476         convert_optab_index values.
2477         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2478         * genopinit.c (optabs): Initialize the new optabs.
2479         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2480         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2481         (expand_STORE_LANES): New functions.
2482         * tree.h (build_array_type_nelts): Declare.
2483         * tree.c (build_array_type_nelts): New function.
2484         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2485         (vect_model_load_cost): Likewise.
2486         (vect_store_lanes_supported, vect_load_lanes_supported)
2487         (vect_record_strided_load_vectors): Declare.
2488         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2489         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2490         (vect_transform_strided_load): Split out statement recording into...
2491         (vect_record_strided_load_vectors): ...this new function.
2492         * tree-vect-stmts.c (create_vector_array, read_vector_array)
2493         (write_vector_array, create_array_ref): New functions.
2494         (vect_model_store_cost): Add store_lanes_p argument.
2495         (vect_model_load_cost): Add load_lanes_p argument.
2496         (vectorizable_store): Try to use store-lanes functions for
2497         interleaved stores.
2498         (vectorizable_load): Likewise load-lanes and loads.
2499         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2500         to vect_model_store_cost.
2501         (vect_build_slp_tree): Likewise vect_model_load_cost.
2502
2503 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
2504
2505         * hooks.h (hook_bool_mode_uhwi_false): Declare.
2506         * hooks.c (hook_bool_mode_uhwi_false): New function.
2507         * target.def (array_mode_supported_p): New hook.
2508         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2509         * doc/tm.texi: Regenerate.
2510         * stor-layout.c (mode_for_array): New function.
2511         (layout_type): Use it.
2512         * config/arm/arm.c (arm_array_mode_supported_p): New function.
2513         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2514
2515 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
2516
2517         PR target/48723
2518         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2519         for -fstack-check if the size to allocate is negative.
2520
2521 2011-05-02  Lawrence Crowl  <crowl@google.com>
2522
2523         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2524         (timevar_cond_start): New for starting a timer only when it is not
2525         already running.
2526         (timevar_cond_stop): New for stopping a timer when it was not already
2527         running.
2528
2529         * timevar.c (timevar_stop): Enable start/stop timers to start again.
2530         (timevar_cond_start): New as above.
2531         (timevar_cond_stop): New as above.
2532
2533         * timevar.def: Add start/stop timers for compiler phases,
2534         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2535         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2536         and TV_PHASE_FINALIZE.
2537         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2538         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2539         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2540         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2541         Make unused TV_OVERLOAD into a start/stop timer.
2542
2543         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2544         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2545         to indicate that they are start/stop timers.
2546
2547         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2548         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2549         Move initialization to do_compile.
2550         (do_compile): Add initialization from above.
2551         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2552
2553         * c-decl.c (c_write_global_declarations): Add start/stop of
2554         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2555
2556         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2557         or TV_PARSE_INLINE, as appropriate.
2558         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2559         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2560
2561 2011-05-02  Jason Merrill  <jason@redhat.com>
2562
2563         PR c++/40975
2564         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2565
2566 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
2567
2568         PR c/35445
2569         * c-decl.c (finish_decl): Only create a composite if the types are
2570         compatible.
2571
2572 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2573
2574         * config/fr30/fr30-protos.h (Mmode): Don't define.
2575         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
2576         definition where used.
2577         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2578         define.  Expand definitions where used.
2579         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2580         Expand definitions where used.
2581         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2582         rx_function_arg, rx_function_arg_advance,
2583         rx_function_arg_boundary): Expand definitions of those macros.
2584         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
2585         definition where used.
2586
2587 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2588
2589         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2590         reg<->xmm moves.
2591         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2592         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
2593         with *movv2sf_internal_rex64_avx.
2594         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2595         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2596         Use %v prefix in insn mnemonic to handle TARGET_AVX.
2597         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
2598         "vex" in "prefix" attribute calculation.
2599         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
2600
2601 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
2602
2603         PR target/47951
2604         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2605         inputs match the output.
2606
2607 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
2608
2609         PR target/47955
2610         * config/m68k/m68k.c (m68k_expand_prologue): Set
2611         current_function_static_stack_size.
2612
2613 2011-05-02   Jan Hubicka  <jh@suse.cz>
2614
2615         * lto-streamer.c (lto_streamer_cache_insert_1,
2616         lto_streamer_cache_lookup, lto_streamer_cache_create,
2617         lto_streamer_cache_delete): Use pointer map instead of hashtable.
2618         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2619
2620 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
2621
2622         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2623         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2624         config/m68k/t-opts: New files.
2625         * config/m68k/m68k-tables.opt: New file (generated).
2626         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2627         extra_options and m68k/t-opts to tmake_file.
2628         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2629         (all_isas): Initialize using m68k-isas.def.
2630         (all_microarchs): Initialize using m68k-microarchs.def.
2631         (m68k_find_selection): Remove.
2632         (m68k_handle_option): Don't assert that global structures are in
2633         use.  Use error_at.  Access variables via opts pointer.  Don't
2634         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
2635         directly for -m68020-40 and -m68020-60.
2636         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2637         m68k_tune_entry here.
2638         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2639         to m68k-opts.h.
2640         (m68k_library_id_string): Remove declaration.
2641         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
2642         (m68k_library_id_string): New Variable.
2643         (march=, mcpu=, mtune=): Use Enum and Var.
2644
2645 2011-05-02  Richard Guenther  <rguenther@suse.de>
2646
2647         * varasm.c (output_constructor_regular_field): Compute zero-based
2648         index with double-ints.  Make sure to ICE instead of producing
2649         wrong code.
2650         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2651         in asserts.  Properly use a signed type.
2652
2653 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
2654
2655         * config/i386/sse.md (V): New mode iterator.
2656         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
2657         TARGET_SSE2.
2658         (V_256): Rename from AVX256MODE.
2659         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
2660         condition to all users.
2661         (VF1): Ditto.
2662         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
2663         condition to all users.
2664         (VF_128): Make V4SF mode unconditional.
2665         (VF_256): Rename from AVX256MODEF2P.
2666         (VI4F_128): Rename from SSEMODE4S.
2667         (VI8F_128): Rename from SSEMODE2D.
2668         (VI4F_256): Rename from AVX256MODE8P.
2669         (VI8F_256): Rename from AVX256MODE4P.
2670         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2671         (ssescalarmodesuffix): Remove SF and DF modes.
2672         (SSEMODE124): Remove.
2673         (SSEMODE1248): Ditto.
2674         (SSEMODEF2P): Ditto.
2675         (AVXMODEF2P): Ditto.
2676         (AVXMODEFDP): Ditto.
2677         (AVXMODEFSP): Ditto.
2678         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2679         unconditional.
2680         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
2681         unconditional.
2682         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2683         xop_pcmov_<mode>256.  Use V mode iterator.
2684
2685         Adjust RTX patterns globally for renamed mode attributes.
2686
2687 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2688
2689         * haifa-sched.c (sched_emit_insn): Emit insn before first
2690         non-scheduled insn.  Inform back-end about new insn.  Add
2691         new insn to scheduled_insns list.
2692
2693 2011-05-02  Richard Guenther  <rguenther@suse.de>
2694
2695         PR tree-optimization/48822
2696         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2697         (process_scc): Indicate which iteration we start.
2698
2699 2011-05-02  Jan Hubicka  <jh@suse.cz>
2700
2701         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2702         (lto_section_overrun): New.
2703         * lto-section-out.c (append_block): Rename to ...
2704         (lto_append_block): ... this one; export.
2705         (lto_output_1_stream): Move lto lto-streamer.h
2706         (lto_output_data_stream): Update.
2707         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2708         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2709         functions.
2710
2711 2011-05-02  Richard Guenther  <rguenther@suse.de>
2712
2713         * tree.c (tree_code_counts): New global array.
2714         (record_node_allocation_statistics): Count individual tree codes.
2715         (dump_tree_statistics): Dump individual code stats.
2716
2717 2011-05-01  Jan Hubicka  <jh@suse.cz>
2718
2719         * ipa-inline.c (caller_growth_limits): Fix thinko when
2720         looking for largest stack frame.
2721         * ipa-inline.h (dump_inline_summary): Declare.
2722         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2723         on stack usage.
2724         (dump_inline_summary): Export.
2725         (debug_inline_summary): Declare as DEBUG_FUNCTION.
2726
2727 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
2728
2729         * reginfo.c (memory_move_cost): Change rclass argument type form
2730         'enum reg_class' to reg_class_t.
2731         * reload.h (memory_move_cost): Update prototype.
2732         * postreload.c reload_cse_simplify_set): Change type dclass var to
2733         reg_class_t.
2734         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2735         Update prototype.
2736         (ira_allocate_and_set_costs): Change aclass argument type form
2737         'enum reg_class' to reg_class_t.
2738         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
2739         Change aclass argument type to reg_class_t.
2740         (update_conflict_hard_reg_costs): Change type aclass and pref vars
2741         to reg_class_t.
2742         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2743         memory_move_cost call.
2744
2745         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2746         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2747         Change type tmp var to reg_class_t.
2748
2749 2011-04-30  Jan Hubicka  <jh@suse.cz>
2750
2751         * ipa-inline.c (can_inline_edge_p): Disregard limits when
2752         inlining into function with flatten attribute.
2753         (want_inline_small_function_p): Be more realistic about inlining
2754         cold calls where callee size grows.
2755
2756 2011-04-30  Jan Hubicka  <jh@suse.cz>
2757
2758         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2759         flags.
2760
2761 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
2762
2763         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2764         PRINT_OPERAND_PUNCT_VALID_P): Remove.
2765         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2766         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2767         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2768         (print_operand): Rename to...
2769         (sparc_print_operand): ...this. Make static. Adjust
2770         sparc_print_operand function call.
2771         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
2772         functions.
2773
2774 2011-04-30  Jan Hubicka  <jh@suse.cz>
2775
2776         PR middle-end/48752
2777         * ipa-inline.c (early_inliner): Disable when doing late
2778         addition of function.
2779
2780 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
2781
2782         * dwarf2out.c (get_address_mode): New inline.
2783         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
2784         if not dwarf_strict emit
2785         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
2786         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
2787         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
2788         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
2789         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
2790         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
2791         mem_loc_descriptor callers.
2792         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
2793         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
2794         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2795         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
2796         (base_types): New variable.
2797         (get_base_type_offset, calc_base_type_die_sizes,
2798         base_type_for_mode, mark_base_types, base_type_cmp,
2799         move_marked_base_types): New functions.
2800         (calc_die_sizes): Assert that die_offset is 0 or equal to
2801         next_die_offset.
2802         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
2803         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
2804         callers.  If not dwarf_strict, call mem_loc_descriptor even for
2805         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
2806         (gen_subprogram_die): Don't give up on call site parameters
2807         with non-integral or large integral modes.  Adjust
2808         mem_loc_descriptor callers.
2809         (prune_unused_types): Call prune_unused_types_mark on base_types
2810         vector entries.
2811         (resolve_addr): Call mark_base_types.
2812         (dwarf2out_finish): Call move_marked_base_types.
2813
2814         PR tree-optimization/48809
2815         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2816         type.
2817         (gen_inbound_check): Don't compute index_expr - range_min in utype
2818         again, instead reuse SSA_NAME initialized in build_arrays.
2819         Remove two useless gsi_for_stmt calls.
2820
2821 2011-04-29  Jeff Law  <law@redhat.com>
2822
2823         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2824
2825 2011-04-29  Martin Jambor  <mjambor@suse.cz>
2826
2827         * cgraph.h (cgraph_postorder): Remove declaration.
2828         * ipa-utils.h (ipa_free_postorder_info): Declare.
2829         (ipa_reverse_postorder): Likewise.
2830         * cgraphunit.c: Include ipa-utils.h.
2831         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2832         * ipa-inline.c: Include ipa-utils.h.
2833         (ipa_inline): Update call to ipa_reverse_postorder.
2834         * ipa-pure-const.c (propagate_pure_const): Update call to
2835         ipa_reduced_postorder and ipa_print_order.  Call
2836         ipa_free_postorder_info to clean up.
2837         (propagate_nothrow): Likewise.
2838         * ipa-reference.c (propagate): Removed a useless call to
2839         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2840         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
2841         * ipa.c: Include ipa-utils.h.
2842         (ipa_profile): Update call to ipa_reverse_postorder.
2843         (cgraph_postorder): Moved to...
2844         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2845         (ipa_utils_print_order): Renamed to ipa_print_order.
2846         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2847         comments.
2848         (ipa_free_postorder_info): New function.
2849         * passes.c: Include ipa-utils.h.
2850         (do_per_function_toporder): Update call to ipa_reverse_postorder.
2851         (ipa_write_summaries): Likewise.
2852         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2853         (cgraphunit.o): Likewise.
2854         (ipa.o): Likewise.
2855         (ipa-inline.o): Likewise.
2856
2857 2011-04-29  Jan Hubicka  <jh@suse.cz>
2858
2859         * gcc.dg/tree-ssa/inline-10.c: New testcase.
2860         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2861         * ipa-inline.h (clause_t): Turn into unsigned int.
2862         * ipa-inline-analysis.c (add_clause): Do more simplification.
2863         (and_predicates): Shortcut more cases.
2864         (predicates_equal_p): Move forward; check that clauses are properly
2865         ordered.
2866         (or_predicates): Shortcut more cases.
2867         (edge_execution_predicate): Rewrite as...
2868         (set_cond_stmt_execution_predicate): ... this function; handle
2869         __builtin_constant_p.
2870         (set_switch_stmt_execution_predicate): New .
2871         (compute_bb_predicates): New.
2872         (will_be_nonconstant_predicate): Update TODO.
2873         (estimate_function_body_sizes): Use compute_bb_predicates
2874         and free them later, always try to estimate if stmt is constant.
2875         (estimate_time_after_inlining, estimate_size_after_inlining):
2876         Gracefully handle optimized out edges.
2877         (read_predicate): Fix off by one error.
2878
2879 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2880
2881         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2882
2883 2011-04-27  Xinliang David Li  <davidxl@google.com>
2884
2885         * tree-profile.c (init_ic_make_global_vars): Set
2886         tls attribute on ic vars.
2887         * coverage.c (coverage_end_function): Initialize
2888         function_list with zero.
2889
2890 2011-04-29  Richard Guenther  <rguenther@suse.de>
2891
2892         * builtins.c (fold_builtin_classify_type): Use integer_type_node
2893         for the type of the result.
2894         (fold_builtin_isascii): Likewise.
2895         (fold_builtin_toascii): Use integer_type_node where appropriate.
2896         (fold_builtin_logb): Likewise.
2897         (fold_builtin_frexp): Likewise.
2898         (fold_builtin_strstr): Likewise.
2899         (fold_builtin_strpbrk): Likewise.
2900         (fold_builtin_fputs): Likewise.
2901         (fold_builtin_sprintf): Likewise.
2902         (fold_builtin_snprintf): Likewise.
2903         (fold_builtin_printf): Likewise.
2904         (do_mpfr_remquo): Use a proper type for the assigned constant.
2905         (do_mpfr_lgamma_r): Likewise.
2906         * dwarf2out.c (resolve_one_addr): Use size_int.
2907         * except.c (init_eh): Likewise.
2908         (assign_filter_values): Use integer_type_node for filter values.
2909         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2910         indices.
2911         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2912         for EH region numbers.
2913         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2914         for the shift amount.
2915
2916 2011-04-29  Richard Guenther  <rguenther@suse.de>
2917
2918         * expr.h (expand_shift): Rename to ...
2919         (expand_variable_shift): ... this.
2920         (expand_shift): Take a constant shift amount.
2921         * expmed.c (expand_shift): Rename to ...
2922         (expand_variable_shift): ... this.
2923         (expand_shift): New wrapper around expand_variable_shift.
2924         * expr.c (convert_move, emit_group_load_1, emit_group_store,
2925         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2926         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2927         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2928         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2929         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2930         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2931         emit_store_flag_1, emit_store_flag): Likewise.
2932         * builtins.c (expand_builtin_signbit): Likewise.
2933         * calls.c (load_register_parameters): Likewise.
2934         * function.c (assign_parm_setup_block): Likewise.
2935         * lower-subreg.c (resolve_shift_zext): Likewise.
2936         * optabs.c (widen_bswap, expand_abs_nojump,
2937         expand_one_cmpl_abs_nojump, expand_float): Likewise.
2938         * spu/spu.c (spu_expand_extv): Likewise.
2939         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2940
2941 2011-04-29  Richard Guenther  <rguenther@suse.de>
2942
2943         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2944         for the remapped region number.
2945         * predict.c (build_predict_expr): Use integer_type_node for the
2946         predict kind.
2947         * fold-const.c (fold_binary_loc): Use integer_type_node for
2948         the shift amount.  Use a proper type for the PLUS_EXPR operand.
2949
2950 2011-04-29  Michael Matz  <matz@suse.de>
2951
2952         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2953         other trees that just builtins.
2954         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2955
2956 2011-04-29  Richard Guenther  <rguenther@suse.de>
2957
2958         * tree-nested.c (get_trampoline_type): Use size_int.
2959         (get_nl_goto_field): Likewise.
2960         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2961         for all indexes.
2962         (lower_eh_constructs_2): Likewise.
2963         (lower_resx): Likewise.
2964         (lower_eh_dispatch): Likewise.
2965         * tree-mudflap.c (mf_build_string): Use size_int.
2966         (mudflap_register_call): Use integer_type_node for the flag.
2967         (mudflap_enqueue_constant): Use size_int.
2968         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2969         instead of rebuilding it.
2970
2971 2011-04-29  Richard Guenther  <rguenther@suse.de>
2972
2973         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2974         Handle OBJ_TYPE_REF.
2975         (find_func_aliases_for_call): Use it more consistently.
2976
2977 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
2978
2979         * haifa-sched.c (last_nondebug_scheduled_insn): New.
2980         (rank_for_schedule): Use it.
2981         (schedule_block): Set it.
2982
2983 2011-04-28  David Li  <davidxl@google.com>
2984
2985         * tree.c (crc32_string): Use crc32_byte.
2986         (crc32_byte): New function.
2987         * tree.h (crc32_byte): New function.
2988         * gcov.c (read_graph_file): Handle new cfg_cksum.
2989         (read_count_file): Ditto.
2990         * profile.c (instrument_values): Ditto.
2991         (get_exec_counts): Ditto.
2992         (read_profile_edge_counts): Ditto.
2993         (compute_branch_probabilities): Ditto.
2994         (compute_value_histograms): Ditto.
2995         (branch_prob): Ditto.
2996         (end_branch_prob): Ditto.
2997         * coverage.c (read_counts_file): Ditto.
2998         (get_coverage_counts): Ditto.
2999         (tree_coverage_counter_addr): Ditto.
3000         (coverage_checksum_string): Ditto.
3001         (coverage_begin_output): Ditto.
3002         (coverage_end_function): Ditto.
3003         (build_fn_info_type): Ditto.
3004         (build_fn_info_value): Ditto.
3005         * libgcov.c (gcov_exit): Ditto.
3006         * gcov-dump.c (tag_function): Ditto.
3007         (compute_checksum): Remove.
3008
3009 2011-04-29  Alan Modra  <amodra@gmail.com>
3010
3011         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3012         unspec plus offset.  Tidy macho code.
3013
3014 2011-04-29  Martin Jambor  <mjambor@suse.cz>
3015
3016         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3017         node instead of a decl.  Update all callers.
3018         * cgraph.h: Update declaration.
3019
3020 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
3021
3022         PR tree-optimization/48765
3023         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3024         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3025         to indicate if loop aware SLP is being used.  Scan the statements
3026         and update the vectorization factor according to the type of
3027         vectorization before statement analysis.
3028         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3029         pass it to vect_analyze_loop_operations.
3030         (vectorizable_reduction): Set number of copies to 1 in case of pure
3031         SLP statement.
3032         * tree-vect-stmts.c (vectorizable_conversion,
3033         vectorizable_assignment, vectorizable_shift,
3034         vectorizable_operation, vectorizable_type_demotion,
3035         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3036         Likewise.
3037         (vectorizable_condition): Move the check that it is not SLP
3038         vectorization before the number of copies check.
3039         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3040         to vectorize the loop using SLP.
3041
3042 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
3043
3044         PR middle-end/48597
3045         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3046         inline asm.
3047
3048 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
3049
3050         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3051         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3052         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3053         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3054         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3055         linux*.h headers.
3056         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
3057         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3058         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3059         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3060         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3061         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3062         REG_NAME.
3063         * config/i386/linux.h (REG_NAME): Don't define.
3064         * config/i386/linux64.h (REG_NAME): Don't define.
3065         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3066         Undefine before defining.
3067
3068 2011-04-28  Jan Hubicka  <jh@suse.cz>
3069
3070         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3071         nonconstant_names array.
3072         (estimate_function_body_sizes): Build nonconstant_names array; handle
3073         BUILT_IN_CONSTANT_P.
3074
3075 2011-04-28  Richard Guenther  <rguenther@suse.de>
3076
3077         PR bootstrap/48804
3078         Revert
3079         2011-04-28  Richard Guenther  <rguenther@suse.de>
3080
3081         * tree-ssa-structalias.c (solve_constraints): Build succ graph
3082         as late as possible.
3083
3084 2011-04-28  Richard Guenther  <rguenther@suse.de>
3085
3086         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3087         (debug_constraint): Do it here.
3088         (dump_constraints): And here.
3089         (rewrite_constraints): And here.
3090         (dump_constraint_edge): Remove.
3091         (dump_constraint_graph): Rewrite to produce DOT output.
3092         (solve_constraints): Build succ graph as late as possible.
3093         Dump constraint graphs before and after solving.
3094
3095 2011-04-28  Richard Guenther  <rguenther@suse.de>
3096
3097         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3098         New function split out from ...
3099         (find_func_aliases): ... here.  Call it.
3100         (find_func_aliases_for_call): Likewise.
3101
3102 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3103
3104         * internal-fn.h (internal_fn_name_array): Declare.
3105         (internal_fn_flags_array): Likewise.
3106
3107 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3108
3109         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
3110         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3111         Move from sse.md.
3112         (ssemodefsuffix): Remove.
3113         (ssevecmodesuffix): New mode attribute.
3114         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3115         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3116         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3117         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3118         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3119         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3120         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3121         ssemodesuffix mode attribute.
3122         (float splitters): Use ssevecmodesuffix mode attribute.
3123         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3124         (sseinsmode): Rename from avxvecmode.
3125         (avxsizesuffix): Rename from avxmodesuffix.
3126         (sseintvecmode): Rename from avxpermvecmode.
3127         (ssedoublevecmode): Rename from ssedoublesizemode.
3128         (ssehalfvecmode): Rename from avxhalfvecmode.
3129         (ssescalarmode): Rename from avxscalarmode.
3130         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3131         templates for ssemodesuffix mode attribute.
3132         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3133         mode attribute.
3134
3135         Adjust RTX patterns globally for renamed mode attributes.
3136
3137 2011-04-27  Jan Hubcika  <jh@suse.cz>
3138
3139         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3140         * ipa-inline-analysis.c: Include alloc-pool.h.
3141         (edge_predicate_pool): New.
3142         (trye_predicate_p): New function
3143         (false_predicate_p): New function.
3144         (add_clause): Sanity check that false clauses are "optimized";
3145         never add clauses to predicate that is already known to be false.
3146         (and_predicate): Use flase_predicate_p.
3147         (evaulate_predicate): Rename to ...
3148         (evaluate_predicate): ... this one; update all callers; assert
3149         that false is not listed among possible truths.
3150         (dump_predicate): Use true_predicate_p.
3151         (account_size_time): Use false_predicate_p.
3152         (evaulate_conditions_for_edge): Rename to ...
3153         (evaluate_conditions_for_edge) ... this one.
3154         (edge_set_predicate): New function.
3155         (inline_edge_duplication_hook): Duplicate edge predicates.
3156         (inline_edge_removal_hook): Free edge predicates.
3157         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
3158         (dump_inline_summary): Update.
3159         (estimate_function_body_sizes): Set edge predicates.
3160         (estimate_calls_size_and_time): Handle predicates.
3161         (estimate_callee_size_and_time): Update.
3162         (remap_predicate): Add toplev_predicate; update comment.
3163         (remap_edge_predicates): New function.
3164         (inline_merge_summary): Compute toplev predicate; update.
3165         (read_predicate): New function.
3166         (read_inline_edge_summary): Use it.
3167         (inline_read_section): Likewise.
3168         (write_predicate): New function.
3169         (write_inline_edge_summary): Use it.
3170         (inline_write_summary): Likewise.
3171         (inline_free_summary): Free alloc pool and edge summary vec.
3172
3173 2011-04-27  Richard Guenther  <rguenther@suse.de>
3174
3175         * tree-ssa-structalias.c (changed_count): Remove.
3176         (changed): Use a bitmap.
3177         (unify_nodes): Adjust.
3178         (do_sd_constraint): Likewise.
3179         (do_ds_constraint): Likewise.
3180         (do_complex_constraint): Likewise.
3181         (solve_graph): Likewise.
3182
3183 2011-04-27  Jan Hubicka  <jh@suse.cz>
3184
3185         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
3186
3187 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
3188
3189         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
3190         (avx_vperm2f128_*_operand): Ditto.
3191         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
3192         Use avx_vpermilp_parallel in insn condition.
3193         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
3194         Use avx_vperm2f128_parallel in insn condition.
3195
3196 2011-04-27  Richard Guenther  <rguenther@suse.de>
3197
3198         * Makefile.in (tree-ssa-structalias.o): Remove
3199         gt-tree-ssa-structalias.h dependency.
3200         (GTFILES): Remove tree-ssa-structalias.c.
3201         * tree.c (allocate_decl_uid): New function.
3202         (make_node_stat): Use it.
3203         (copy_node_stat): Likewise.
3204         * tree.h (allocate_decl_uid): Declare.
3205         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
3206         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
3207         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
3208         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
3209         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
3210         (struct heapvar_map): Likewise.
3211         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
3212         heapvar_insert): Likewise.
3213         (make_heapvar_for): Rename to ...
3214         (make_heapvar): ... this.  Simplify.
3215         (fake_var_decl_obstack): New global var.
3216         (build_fake_var_decl): New function.
3217         (make_constraint_from_heapvar): Adjust.
3218         (handle_lhs_call): Likewise.
3219         (create_function_info_for): Likewise.
3220         (intra_create_variable_infos): Likewise.
3221         (init_alias_vars): Allocate fake_var_decl_obstack.
3222         (init_alias_heapvars, delete_alias_heapvars): Remove.
3223         (compute_points_to_sets): Do not call init_alias_heapvars.
3224         (ipa_pta_execute): Likewise.
3225         (delete_points_to_sets): Free fake_var_decl_obstack.
3226
3227 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3228
3229         * config/spu/divmovti4.c (union qword_UTItype): New data type.
3230         (si_from_UTItype, si_to_UTItype): New functions.
3231         (__udivmodti4): Use them to implement type-punning.
3232         * config/spu/multi3.c (union qword_TItype): New data type.
3233         (si_from_TItype, si_to_TItype): New functions.
3234         (__multi3): Use them to implement type-punning.
3235
3236 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3237
3238         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
3239
3240 2011-04-27  Jan Hubicka  <jh@suse.cz>
3241
3242         * ipa-prop.c (function_insertion_hook_holder): New holder.
3243         (ipa_add_new_function): New function.
3244         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
3245         Register/deregister holder.
3246
3247 2011-04-27  Richard Guenther  <rguenther@suse.de>
3248
3249         PR tree-optimization/48772
3250         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
3251
3252 2011-04-27  Richard Guenther  <rguenther@suse.de>
3253
3254         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3255         TARGET_MEM_REF handling.
3256
3257 2011-04-27  Nick Clifton  <nickc@redhat.com>
3258
3259         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3260         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3261         (REG_CLASS_NAMES): Likewise.
3262         (REG_CLASS_CONTENTS): Likewise.
3263         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3264         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
3265         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
3266         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
3267         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
3268         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3269         duplicate register classes.
3270         (frv_class_likely_spilled_p): Likewise.
3271         (frv_register_move_cost): Likewise.
3272
3273         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3274         end of the regno_reg_class array.
3275
3276 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
3277
3278         PR c/48742
3279         * c-typeck.c (build_binary_op): Don't wrap arguments if
3280         int_operands is true.
3281
3282 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
3283
3284         PR target/48767
3285         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3286         targetm.calls.must_pass_in_stack for void type.
3287
3288 2011-04-26  Jan Hubicka  <jh@suse.cz>
3289
3290         * cgraphbuild.c (build_cgraph_edges): Update call
3291         of cgraph_create_edge and cgraph_create_indirect_edge.
3292         * cgraph.c (cgraph_create_edge_including_clones,
3293         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3294         cgraph_update_edges_for_call_stmt_node): Do not take nest
3295         argument; do not initialize call_stmt_size/time.
3296         (dump_cgraph_node): Do not dump nest.
3297         (cgraph_clone_edge): Do not take loop_nest argument;
3298         do not propagate it; do not clone call_stmt_size/time.
3299         (cgraph_clone_node): Likewise.
3300         (cgraph_create_virtual_clone): Update.
3301         * cgraph.h (struct cgraph_edge): Remove
3302         call_stmt_size/call_stmt_time/loop_nest.
3303         (cgraph_create_edge, cgraph_create_indirect_edge,
3304         cgraph_create_edge_including_clones, cgraph_clone_node): Update
3305         prototype.
3306         * tree-emutls.c (gen_emutls_addr): Update.
3307         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3308         loop_nest; handle indirect calls, too.
3309         (clone_inlined_nodes): Do not care about updating inline summaries.
3310         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3311         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3312         stream call_stmt_size/call_stmt_time/loop_nest.
3313         * ipa-inline.c (edge_badness): Update.
3314         (ipa_inline): dump summaries after inlining.
3315         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
3316         New.
3317         (inline_edge_summary): New function.
3318         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3319         (inline_edge_removal_hook): Handle edge summaries.
3320         (inline_edge_duplication_hook): New hook.
3321         (inline_summary_alloc): Alloc hooks.
3322         (initialize_growth_caches): Do not register removal hooks.
3323         (free_growth_caches); Do not free removal hook.
3324         (dump_inline_edge_summary): New function.
3325         (dump_inline_summary): Use it.
3326         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3327         (inline_update_callee_summaries): New function.
3328         (inline_merge_summary): Use it.
3329         (do_estimate_edge_time, do_estimate_edge_growth): Update.
3330         (read_inline_edge_summary): New function.
3331         (inline_read_section): Use it.
3332         (write_inline_edge_summary): New function.
3333         (inline_write_summary): Use it.
3334         (inline_free_summary): Free edge new holders.
3335         * tree-inline.c (copy_bb): Update.
3336
3337 2011-04-26  Jason Merrill  <jason@redhat.com>
3338
3339         * tree-eh.c (lower_try_finally_switch): Create the label along with
3340         the CASE_LABEL_EXPR.
3341
3342 2011-04-26  David S. Miller  <davem@davemloft.net>
3343             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3344
3345         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3346         * configure: Regenerate.
3347
3348 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3349
3350         PR target/48258
3351         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3352         reduction.
3353         (VEC_reduc): New code iterator and splitters for vector reduction.
3354         (VEC_reduc_name): Ditto.
3355         (VEC_reduc_rtx): Ditto.
3356         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3357         (reduc_<VEC_reduc_name>_v4sf): Ditto.
3358
3359         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3360         support for extracting SF on VSX.
3361
3362         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3363         generating xscvspdp.
3364         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3365         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3366         double add, minimum, maximum vector reduction.
3367         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3368         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3369         optimize double vector reduction.
3370         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3371
3372 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
3373
3374         * config/fr30/fr30.h (inhibit_libc): Don't define.
3375         * config/m32r/m32r-protos.h: Correct comment.
3376         * config/v850/v850.h (GHS_default_section_names,
3377         GHS_current_section_names): Use tree, not union tree_node *.
3378
3379 2011-04-26  Xinliang David Li  <davidxl@google.com>
3380
3381         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
3382         * c-family/c-opts.c (c_common_handle_option): Set
3383         warn_maybe_uninitialized.
3384         * opts.c (common_handle_option): Ditto.
3385         * common.opt:  New option.
3386         * tree-ssa.c (warn_uninit): Add one more parameter.
3387         (warn_uninitialized_var): Pass warning code.
3388         * tree-flow.h: Interface change.
3389
3390
3391 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3392
3393         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
3394         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3395         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3396
3397 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3398
3399         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3400         * config/mips/mips.opt (mmips-tfile): Remove.
3401
3402         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3403         mips-tdump reference to ...
3404         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
3405         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3406         reference by Tru64 UNIX.
3407
3408 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
3409
3410         PR debug/48768
3411         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3412         is error_mark_node, set value to NULL.
3413
3414         PR tree-optimization/48734
3415         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3416         if return value from maybe_fold_*_comparsions isn't something
3417         the code is prepared to handle.
3418
3419 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
3420
3421         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3422         mode check.
3423         (ext_QIreg_nomode_operands): Remove.
3424         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3425         (*andsi_1): Ditto.
3426         (*andhi_1): Ditto.
3427
3428 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
3429
3430         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3431
3432 2011-04-26  Richard Guenther  <rguenther@suse.de>
3433
3434         * c-typeck.c (build_unary_op): Do not expand array-refs via
3435         pointer arithmetic.  Only adjust qualifiers for function types.
3436
3437 2011-04-26  Richard Guenther  <rguenther@suse.de>
3438
3439         PR middle-end/48694
3440         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3441         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
3442         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
3443         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
3444
3445 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
3446
3447         * doc/extend.texi: Document __underlying_type.
3448
3449 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
3450
3451         * config/rs6000/titan.md (automata_option "progress"): Remove.
3452
3453 2011-04-25  Jeff Law  <law@redhat.com>
3454
3455         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3456
3457 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
3458
3459         * system.h (ENUM_BITFIELD): Remove.
3460
3461 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
3462             Eric Botcazou  <ebotcazou@adacore.com>
3463
3464         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3465         for STORE_FLAG_VALUE==-1 case.
3466
3467 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
3468
3469         PR target/43804
3470         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3471         LEGITIMATE_PIC_OPERAND_P.
3472
3473 2011-04-24  Jan Hubicka  <jh@suse.cz>
3474
3475         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3476         WPA hack.
3477         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3478         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3479         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
3480         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3481         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3482         Sanity check predicate length.
3483         (remap_predicate): Likewise; sanity check jump functions.
3484         (inline_read_section, inline_write_summary): Sanity check
3485         predicate length.
3486
3487 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
3488
3489         PR other/48748
3490         * doc/extend.texi (Type Traits): Document __is_standard_layout,
3491         __is_literal_type, and __is_trivial; update throughout about
3492         possibly cv-qualified void types.
3493
3494 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3495
3496         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3497         testsuite and make it version agnostic.
3498
3499 2011-04-22  Jan Hubicka  <jh@suse.cz>
3500
3501         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3502
3503 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
3504
3505         PR c/48685
3506         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3507         to VOID_TYPE even around MODIFY_EXPR.
3508
3509 2011-04-22  Mike Stump  <mikestump@comcast.net>
3510
3511         * gensupport.c (read_md_rtx): Fix typo in comment.
3512         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3513         comment.
3514
3515 2011-04-22  Jan Hubicka  <jh@suse.cz>
3516
3517         * gengtype.c (open_base_files): Add ipa-inline.h include.
3518         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3519         ipa-prop.c; update all uses.
3520         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
3521         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3522         merge summary of inlined function into former caller.
3523         * ipa-inline.c (max_benefit): Remove.
3524         (edge_badness): Compensate for removal of benefits.
3525         (update_caller_keys): Use
3526         reset_node_growth_cache/reset_edge_growth_cache.
3527         (update_callee_keys): Likewise.
3528         (update_all_callee_keys): Likewise.
3529         (inline_small_functions): Do not collect max_benefit; do not reset
3530         estimated_growth; call free_growth_caches and initialize_growth_caches.
3531         * ipa-inline.h (struct condition, type clause_t, struct predicate,
3532         struct size_time_entry): New structures.
3533         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
3534         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3535         and estimated_growth.
3536         (edge_growth_cache_entry): New structure.
3537         (node_growth_cache, edge_growth_cache): New global vars.
3538         (estimate_growth): Turn into inline.
3539         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3540         initialize_growth_caches, free_growth_caches): Declare.
3541         (estimate_edge_growth): Rewrite.
3542         (estimate_edge_time): Implement as inline cache lookup.
3543         (reset_node_growth_cache, reset_edge_growth_cache): New inline
3544         functions.
3545         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3546         (NUM_CONDITIONS): New constant.
3547         (predicate_conditions): New enum.
3548         (IS_NOT_CONSTANT): New constant.
3549         (edge_removal_hook_holder): New var.
3550         (node_growth_cache, edge_growth_cache): New global vars.
3551         (true_predicate, single_cond_predicate, false_predicate,
3552         not_inlined_predicate, add_condition, add_clause, and_predicates,
3553         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3554         dump_clause, dump_predicate, account_size_time,
3555         evaulate_conditions_for_edge): New functions.
3556         (inline_summary_alloc): Move to heap.
3557         (inline_node_removal_hook): Clear condition and entry vectors.
3558         (inline_edge_removal_hook): New function.
3559         (initialize_growth_caches, free_growth_caches): New function.
3560         (dump_inline_summary): Update.
3561         (edge_execution_predicate): New function.
3562         (will_be_nonconstant_predicate): New function.
3563         (estimate_function_body_sizes): Compute BB and constantness predicates.
3564         (compute_inline_parameters): Do not clear estimated_growth.
3565         (estimate_edge_size_and_time): New function.
3566         (estimate_calls_size_and_time): New function.
3567         (estimate_callee_size_and_time): New function.
3568         (remap_predicate): New function.
3569         (inline_merge_summary): New function.
3570         (do_estimate_edge_time): New function based on...
3571         (estimate_edge_time): ... this one.
3572         (do_estimate_edge_growth): New function.
3573         (do_estimate_growth): New function based on....
3574         (estimate_growth): ... this one.
3575         (inline_analyze_function): Analyze after deciding on jump functions.
3576         (inline_read_section): New function.
3577         (inline_read_summary): Use it.
3578         (inline_write_summary): Write all the new data.
3579         * ipa-prop.c (ipa_get_param_decl_index): Export.
3580         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
3581         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3582         Declare.
3583         (ipa_get_lattice): Move here from ipa-cp.c
3584         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3585         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3586         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3587         cgraph_edge_inlinable_p): Remove.
3588         * cgraphunit.c: Include ipainline.h
3589         (cgraph_process_new_functions): Update call of
3590         compute_inline_parameters.
3591
3592 2011-04-22  Richard Guenther  <rguenther@suse.de>
3593
3594         * tree.c (build_int_cst): Properly create canonicalized integer
3595         constants.
3596         (build_int_cst_type): Remove scary comments.
3597
3598 2011-04-22  Xinliang David Li  <davidxl@google.com>
3599
3600         * toplev.c (process_options): Enable -Werror=coverage-mismatch
3601         by default when -Wno-error is not specified.
3602         * opts-global.c (decode_options): Remove call to
3603         control_warning_options.
3604
3605 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3606
3607         PR tree-optimization/48717
3608         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3609         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3610
3611 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
3612
3613         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
3614         definition where used.
3615
3616 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
3617
3618         PR c/48716
3619         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3620         TREE_STATIC variables declared inside of some OpenMP construct.
3621
3622 2011-04-22  Martin Jambor  <mjambor@suse.cz>
3623
3624         PR middle-end/48585
3625         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
3626
3627 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
3628
3629         PR c/36750
3630         * c-typeck.c (pop_init_level): Do not warn about initializing
3631         with ` = {0}'.
3632
3633 2011-04-22  Alan Modra  <amodra@gmail.com>
3634
3635         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3636         when returning call_cookie.
3637         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3638         pointers, to functions with no more vector args than the current
3639         function, and some non-local calls for ABI_V4.
3640         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3641         sibcall_nonlocal_aix64): Combine to ..
3642         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
3643         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3644         (sibcall_value_nonlocal_aix<mode>): ..likewise.
3645         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3646         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
3647         operand.
3648         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3649         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3650         sibcall_value_symbolic_64): Delete.
3651
3652 2011-04-21  Xinliang David Li  <davidxl@google.com>
3653
3654         * cgraph.h: Remove pid.
3655         * cgraph.c: Remove pid.
3656         * value-prof.c (init_node_map): New function.
3657         (del_node_map): New function.
3658         (find_func_by_funcdef_no): New function.
3659         (gimple_ic_transform): Call new function.
3660         * cgraphunit.c (cgraph_finalize_function): Remove pid.
3661         * function.c (get_last_funcdef_no): New function.
3662         * function.h (get_last_funcdef_no): New function.
3663         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3664         to libgcov function.
3665         (tree-profiling): Call node map init and delete function.
3666
3667 2011-04-21  Ian Lance Taylor  <iant@google.com>
3668
3669         * godump.c (go_format_type): Use exported Go name for anonymous
3670         field name.
3671
3672 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3673
3674         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3675         Call builtin_function_type_list instead of builtin_function_type.
3676         (UNARY, BINARY, TRINARY, QUAD): Likewise.
3677
3678 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3679
3680         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3681         build_function_type_list instead of build_function_type.
3682         Delete variable `endlink'.
3683
3684 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3685
3686         * config/s390/s390.c (s390_init_builtins): Call
3687         build_function_type_list instead of build_function_type.
3688
3689 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
3690
3691         * config/ia64/ia64.c (ia64_init_builtins): Call
3692         build_function_type_list instead of builtin_function_type.
3693
3694 2011-04-21  Easwaran Raman  <eraman@google.com>
3695
3696         * cfgexpand.c (stack_var): Remove OFFSET...
3697         (add_stack_var): ...and its reference here...
3698         (expand_stack_vars): ...and here.
3699         (stack_var_cmp): Sort by descending order of size.
3700         (partition_stack_vars): Change heuristic.
3701         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
3702         (dump_stack_var_partition): Add newline after each partition.
3703
3704 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
3705             Jeff Law  <law@redhat.com>
3706
3707         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
3708         * gengtype.c (matching_file_name_substitute): Likewise.
3709
3710 2011-04-21  Richard Guenther  <rguenther@suse.de>
3711
3712         PR lto/48703
3713         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
3714
3715 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3716
3717         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3718
3719 2011-04-21  Richard Guenther  <rguenther@suse.de>
3720
3721         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3722         file name.
3723
3724 2011-04-21  Richard Guenther  <rguenther@suse.de>
3725
3726         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3727         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3728         Use DECL_P, not SSA_VAR_P.
3729         (ptr_derefs_may_alias_p): Likewise.
3730         (ptr_deref_may_alias_ref_p_1): Likewise.
3731         (decl_refs_may_alias_p): Likewise.
3732         (refs_may_alias_p_1): Likewise.
3733         (ref_maybe_used_by_call_p_1): Likewise.
3734         (call_may_clobber_ref_p_1): Likewise.
3735         (indirect_ref_may_alias_decl_p): Assume indirect refrences
3736         are either MEM_REF or TARGET_MEM_REF.
3737         (indirect_refs_may_alias_p): Likewise.
3738         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3739         for MEM_EXPR of indirect calls.
3740
3741 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3742
3743         * vmsdbgout.c (write_srccorr): Compute file length from the string.
3744         (dst_file_info_struct): Remove flen field.
3745         (lookup_filename): Remove code that set flen field.
3746
3747 2011-04-21  Tristan Gingold  <gingold@adacore.com>
3748
3749         * config/ia64/ia64.c (ia64_start_function): Add a guard.
3750
3751 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
3752
3753         PR target/48708
3754         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3755         vec_extract and vec_concat for non-SSE4_1 targets.
3756
3757 2011-04-21  Richard Guenther  <rguenther@suse.de>
3758
3759         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3760         return statements.
3761
3762 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3763
3764         * config/i386/cygming.h (union tree_node, TREE): Don't define or
3765         undefine.
3766         (FILE): Don't undefine.
3767
3768 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
3769
3770         * config/alpha/alpha.c (struct machine_function): Use rtx, not
3771         struct rtx_def *.
3772         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
3773         struct rtx_def *.
3774         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
3775         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
3776         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
3777         rtx_def *.
3778         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
3779         definitions where used.
3780         * config/microblaze/microblaze.h (struct microblaze_args): Use
3781         rtx, not struct rtx_def *.
3782         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
3783         rtx_def *.
3784         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
3785         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
3786         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
3787         not struct rtx_def *.
3788         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
3789         struct rtx_def *.
3790         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
3791         rtx_def *.
3792         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
3793
3794 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3795
3796         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
3797         operand_equal_p to compare DR_BASE_ADDRESSes.
3798         (vect_check_interleaving): Likewise.
3799
3800 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3801
3802         PR target/46329
3803         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
3804         for all Neon struct constants.
3805
3806 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
3807
3808         * target.def (legitimate_constant_p): New hook.
3809         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
3810         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
3811         * doc/tm.texi: Regenerate.
3812         * hooks.h (hook_bool_mode_rtx_true): Declare.
3813         * hooks.c (hook_bool_mode_rtx_true): Define.
3814         * system.h (LEGITIMATE_CONSTANT_P): Poison.
3815         * calls.c (precompute_register_parameters): Replace uses of
3816         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3817         (emit_library_call_value_1): Likewise.
3818         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3819         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3820         * ira-costs.c (scan_one_insn): Likewise.
3821         * recog.c (general_operand, immediate_operand): Likewise.
3822         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3823         * reload1.c (init_eliminable_invariants): Likewise.
3824
3825         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3826         mode argument.
3827         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3828         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3829         argument.
3830         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3831         * config/alpha/predicates.md (input_operand): Update call to
3832         alpha_legitimate_constant_p.
3833
3834         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3835         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3836         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3837         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3838         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3839         (arm_legitimate_constant_p): New functions.
3840         (arm_cannot_force_const_mem): Make static.
3841
3842         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3843
3844         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3845         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3846         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3847         instead of bfin_legitimate_constant_p.
3848         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
3849         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3850
3851         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3852
3853         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3854
3855         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3856         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3857         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3858         (frv_legitimate_constant_p): Make static.  Add a mode argument.
3859
3860         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3861         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3862         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3863
3864         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3865         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3866         * config/i386/i386.c (legitimate_constant_p): Rename to...
3867         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
3868         argument.
3869         (ix86_cannot_force_const_mem): Update accordingly.
3870         (ix86_legitimate_address_p): Likewise.
3871         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3872         * config/i386/i386.md: Update commentary.
3873
3874         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3875         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3876         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3877         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
3878
3879         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3880
3881         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3882         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3883         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3884         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
3885
3886         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3887         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3888         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3889
3890         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3891         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3892         (m32r_legitimate_constant_p): New function.
3893
3894         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3895         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3896         LEGITIMATE_CONSTANT_P.
3897         (LEGITIMATE_CONSTANT_P): Delete.
3898         * config/m68k/m68k.c (m68k_expand_prologue): Call
3899         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3900         (m68k_legitimate_constant_p): New function.
3901         * config/m68k/m68k.md: Update comments.
3902
3903         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3904         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3905         (mcore_legitimate_constant_p): New function.
3906
3907         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3908         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3909         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3910         Add a mode argument.
3911         (mep_legitimate_address): Update accordingly.
3912         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3913
3914         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3915         Delete.
3916         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3917         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3918         static.  Check OP's mode for VOIDmode.
3919         (microblaze_legitimate_constant_p): New function.
3920         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3921
3922         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3923         * config/mips/mips.c (mips_legitimate_constant_p): New function.
3924         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3925         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3926         * config/mips/predicates.md: Update comments.
3927
3928         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3929         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3930         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3931         (mmix_legitimate_constant_p): Make static, return a bool, and take
3932         a mode argument.
3933         (mmix_print_operand_address): Update accordingly.
3934
3935         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3936         Delete.
3937         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
3938         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3939         static.  Add a mode argument.
3940         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3941
3942         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3943
3944         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3945         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3946         (pa_legitimate_constant_p): New function.
3947
3948         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3949
3950         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3951         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3952         (pdp11_legitimate_constant_p): New function.
3953
3954         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3955         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3956         (rs6000_legitimate_constant_p): New function.
3957
3958         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3959         (rx_legitimate_constant_p): ...this.
3960         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3961         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3962         (rx_legitimate_constant_p): ...this.
3963         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3964         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3965
3966         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3967         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3968         * config/s390/s390.c (legitimate_constant_p): Rename to...
3969         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
3970         and add a mode argument.
3971         (TARGET_LEGITIMATE_CONSTANT_P): Define.
3972
3973         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3974
3975         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3976         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3977         (sh_legitimate_constant_p): New function.
3978
3979         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3980         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3981         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3982         (legitimate_constant_p): Rename to...
3983         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
3984         argument.
3985         (constant_address_p): Update accordingly.
3986
3987         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3988         argument and return a bool.
3989         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3990         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3991         (spu_legitimate_constant_p): Add a mode argument and return a bool.
3992         (spu_rtx_costs): Update accordingly.
3993         * config/spu/predicates.md (vec_imm_operand): Likewise.
3994
3995         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3996
3997         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3998         * config/v850/v850.c (v850_legitimate_constant_p): New function.
3999         (TARGET_LEGITIMATE_CONSTANT_P): Define.
4000
4001         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4002         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4003         * config/vax/vax.c (legitimate_constant_p): Likewise.
4004
4005         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4006         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4007         (xtensa_legitimate_constant_p): New function.
4008
4009 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
4010
4011         * target.def (cannot_force_const_mem): Add a mode argument.
4012         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4013         * doc/tm.texi: Regenerate.
4014         * hooks.h (hook_bool_mode_rtx_false): Declare.
4015         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4016         (hook_bool_mode_const_rtx_true): Likewise.
4017         (hook_bool_mode_rtx_false): New function.
4018         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4019         to be non-VOID.  Update call to cannot_force_const_mem.
4020         (find_reloads): Update accordingly.
4021         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4022         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4023         argument.
4024         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4025         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4026         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4027         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4028         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4029         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4030         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4031         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4032         (m68k_cannot_force_const_mem): ...this new function.
4033         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4034         argument.
4035         (mips_const_insns, mips_legitimize_const_move): Update calls.
4036         (mips_secondary_reload_class): Likewise.
4037         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4038         (pa_cannot_force_const_mem): ...this new function.
4039         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
4040         (rs6000_cannot_force_const_mem): ...this new function.
4041         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4042         argument.
4043         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4044         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4045         to...
4046         (xtensa_cannot_force_const_mem): ...this new function.
4047
4048 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4049
4050         * config/mips/mips.c (mips16_build_function_stub): Call
4051         build_function_type_list instead of build_function_type.
4052         (mips16_build_call_stub): Likewise.
4053
4054 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4055
4056         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4057         instead of build_function_type.
4058
4059 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
4060
4061         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4062         instead of build_function_type.
4063
4064 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
4065
4066         PR target/48678
4067         * config/i386/i386.md (insv): Change operand 0 constraint to
4068         "register_operand".  Change operand 1 and 2 constraint to
4069         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
4070         * config/i386/sse.md (sse4_1_pinsrb): Export.
4071         (sse2_pinsrw): Ditto.
4072         (sse4_1_pinsrd): Ditto.
4073         (sse4_1_pinsrq): Ditto.
4074         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4075         * config/i386/i386.c (ix86_expand_pinsr): New.
4076
4077 2011-04-20  Easwaran Raman  <eraman@google.com>
4078
4079         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4080         containing union type only with -fstrict-aliasing.
4081
4082 2011-04-20  Jim Meyering  <meyering@redhat.com>
4083
4084         Remove useless if-before-free tests.
4085         * calls.c (expand_call, save_area): Likewise.
4086         * cfgcleanup.c (try_forward_edges): Likewise.
4087         * collect2.c (collect_execute): Likewise.
4088         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4089         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4090         * coverage.c (coverage_checksum_string): Likewise.
4091         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4092         * cselib.c (cselib_init): Likewise.
4093         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4094         (df_set_clean_cfg): Likewise.
4095         * function.c (free_after_compilation): Likewise.
4096         * gcc.c (do_spec_1, main): Likewise.
4097         * gcov.c (create_file_names): Likewise.
4098         * gensupport.c (identify_predicable_attribute): Likewise.
4099         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4100         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4101         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4102         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4103         * ipa-pure-const.c (local_pure_const): Likewise.
4104         * ipa-reference.c (propagate): Likewise.
4105         * ira-costs.c (free_ira_costs): Likewise.
4106         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4107         * matrix-reorg.c (mat_free): Likewise.
4108         * prefix.c (get_key_value): Likewise.
4109         * profile.c (compute_value_histograms): Likewise.
4110         * reload1.c (free_reg_equiv): Likewise.
4111         * sched-deps.c (free_deps): Likewise.
4112         * sel-sched-ir.c (fence_clear): Likewise.
4113         * sese.c (set_rename, if_region_set_false_region): Likewise.
4114         * tree-data-ref.c (free_rdg): Likewise.
4115         * tree-eh.c (lower_try_finally): Likewise.
4116         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4117         * tree-ssa-live.c (delete_var_map): Likewise.
4118         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
4119         * tree-ssa-pre.c (phi_trans_add): Likewise.
4120
4121 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
4122
4123         PR tree-optimization/48611
4124         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
4125         beyond ERT_MUST_NOT_THROW region.
4126
4127 2011-04-20  Catherine Moore  <clm@codesourcery.com>
4128
4129         * config/mips/mips.opt (mfix-24k): New.
4130         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
4131         * config/mips/mips.md (length): Increase by 4 for stores if
4132         fixing 24K errata.
4133         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
4134         all noreorder if fixing 24K errata.
4135         * doc/invoke.texi: Document mfix-24k.
4136
4137 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
4138
4139         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
4140         quad-word modes, reduce to 9-bit index range when above 1016 limit.
4141
4142 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
4143
4144         * config/arm/arm.c (arm_gen_constant): Move movw support ....
4145         (const_ok_for_op): ... to here.
4146
4147 2011-04-20  Kai Tietz  <ktietz@redhat.com>
4148
4149         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
4150         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
4151
4152 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
4153
4154         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
4155
4156 2011-04-20  Richard Guenther  <rguenther@suse.de>
4157
4158         PR tree-optimization/47892
4159         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
4160         are if-convertible.
4161
4162 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4163
4164         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
4165
4166 2011-04-20  Tristan Gingold  <gingold@adacore.com>
4167
4168         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
4169
4170 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
4171
4172         PR target/18145
4173
4174         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
4175         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
4176         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
4177         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
4178         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
4179
4180         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
4181         New prototype.
4182
4183         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
4184         (avr_asm_named_section, avr_asm_output_aligned_common,
4185         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
4186         New functions to update...
4187         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
4188         (avr_asm_init_sections): Overwrite section callbacks for
4189         data_section, bss_section.
4190         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
4191         from here to...
4192         (avr_file_end): ...here.
4193
4194 2011-04-20  Richard Guenther  <rguenther@suse.de>
4195
4196         PR middle-end/48695
4197         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
4198         objects and types here.  Adjust for their offset before comparing.
4199
4200 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
4201
4202         * tree-vect-stmts.c (vectorizable_store): Only chain one related
4203         statement per copy.
4204
4205 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
4206
4207         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
4208         (GIMPLE_H): Include $(INTERNAL_FN_H).
4209         (OBJS-common): Add internal-fn.o.
4210         (internal-fn.o): New rule.
4211         * internal-fn.def: New file.
4212         * internal-fn.h: Likewise.
4213         * internal-fn.c: Likewise.
4214         * gimple.h: Include internal-fn.h.
4215         (GF_CALL_INTERNAL): New gf_mask.
4216         (gimple_statement_call): Put fntype into a union with a new
4217         internal_fn field.
4218         (gimple_build_call_internal): Declare.
4219         (gimple_build_call_internal_vec): Likewise.
4220         (gimple_call_same_target_p): Likewise.
4221         (gimple_call_internal_p): New function.
4222         (gimple_call_internal_fn): Likewise.
4223         (gimple_call_fntype): Return null for internal calls.
4224         (gimple_call_set_fntype): Assert that the function is not internal.
4225         (gimple_call_set_fn): Likewise.
4226         (gimple_call_set_fndecl): Likewise.
4227         (gimple_call_set_internal_fn): New function.
4228         (gimple_call_addr_fndecl): Handle null functions.
4229         (gimple_call_return_type): Likewise null types.
4230         * gimple.c (gimple_build_call_internal_1): New function.
4231         (gimple_build_call_internal): Likewise.
4232         (gimple_build_call_internal_vec): Likewise.
4233         (gimple_call_same_target_p): Likewise.
4234         (gimple_call_flags): Handle calls to internal functions.
4235         (gimple_call_fnspec): New function.
4236         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
4237         (gimple_has_side_effects): Handle null functions.
4238         (gimple_rhs_has_side_effects): Likewise.
4239         (gimple_call_copy_skip_args): Handle calls to internal functions.
4240         * cfgexpand.c (expand_call_stmt): Likewise.
4241         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
4242         * gimple-fold.c (gimple_fold_call): Handle null functions.
4243         (gimple_fold_stmt_to_constant_1): Don't fold
4244         calls to internal functions.
4245         * gimple-low.c (gimple_check_call_args): Handle calls to internal
4246         functions.
4247         * gimple-pretty-print.c (dump_gimple_call): Likewise.
4248         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
4249         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
4250         (do_warn_unused_result): Likewise.
4251         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
4252         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
4253         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
4254         the target of a call.
4255         (initialize_hash_element): Update accordingly.
4256         (hashable_expr_equal_p): Use gimple_call_same_target_p.
4257         (iterative_hash_hashable_expr): Handle calls to internal functions.
4258         (print_expr_hash_elt): Likewise.
4259         * tree-ssa-pre.c (can_value_number_call): Likewise.
4260         (eliminate): Handle null functions.
4261         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
4262         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
4263         (find_func_aliases): Likewise.
4264         * value-prof.c (gimple_ic_transform): Likewise.
4265         (gimple_indirect_call_to_profile): Likewise.
4266         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4267         * lto-streamer-out.c (output_gimple_stmt): Likewise.
4268
4269 2011-04-19  Jan Hubicka  <jh@suse.cz>
4270
4271         * ipa-inline-transform.c (save_inline_function_body): Add comments.
4272         * ipa-inline.c (inline_small_functions): Compute summaries first,
4273         populate heap later.
4274
4275 2011-04-19  Jan Hubicka  <jh@suse.cz>
4276
4277         * cgraph.h (save_inline_function_body): Remove.
4278         * ipa-inline-transform.c: New file, broke out of...
4279         * ipa-inline.c: ... this one; Update toplevel comment.
4280         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
4281         make global.
4282         (update_noncloned_frequencies): Move to ipa-inline-transform.c
4283         (cgraph_mark_inline_edge): Rename to inline_call; move to
4284         ipa-inline-transform.c.
4285         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
4286         move to ipa-inline-transform.c
4287         (recursive_inlining, inline_small_functions, flatten_function,
4288         ipa_inline, inline_always_inline_functions,
4289         early_inline_small_functions): Update.
4290         (inline_transform): Move to ipa-inline-transform.c.
4291         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4292         Declare.
4293         * Makefile.in (ipa-inline-transform.o): New file.
4294         * cgraphunit.c (save_inline_function_body): Move to
4295         ipa-inline-transform.c
4296
4297 2011-04-19  DJ Delorie  <dj@redhat.com>
4298
4299         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4300         registers if we already know there aren't any.
4301         (m32c_emit_epilogue): Don't emit a barrier here.
4302         (m32c_emit_eh_epilogue): Likewise.
4303         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4304         operands at expand time.
4305         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4306         int" wchar type.
4307         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4308         duplicates.  Provide aliases instead.
4309         * config/m32c/prologue.md (eh_return): Emit a barrier here.
4310         (eh_epilogue): Add a "(return)" here as a hint to other parts of
4311         the compiler.
4312
4313 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
4314
4315         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4316         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4317         (general_or_i64_p, sparc_register_move_cost): New function.
4318
4319 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4320
4321         * doc/install.texi (Configuration, --enable-threads): Remove mach.
4322         Add lynx, mipssde.  Sort table.
4323
4324 2011-04-19  Xinliang David Li  <davidxl@google.com>
4325
4326         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4327         not negative.
4328
4329 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
4330
4331         PR target/48678
4332         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4333         is a SUBREG with non-MODE_INT mode inside of it.
4334
4335 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4336
4337         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4338         also according to actual contants.
4339         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4340         (gimple_fold_call): Use it.
4341         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4342
4343 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4344
4345         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4346         non-pointer assignments.
4347
4348 2011-04-19  Martin Jambor  <mjambor@suse.cz>
4349
4350         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4351         account anc_offset and otr_type from the indirect edge info.
4352         * ipa-prop.c (get_ancestor_addr_info): New function.
4353         (compute_complex_ancestor_jump_func): Assignment analysis moved to
4354         get_ancestor_addr_info, call it.
4355         (ipa_note_param_call): Do not initialize information about polymorphic
4356         calls, return the indirect call graph edge.  Remove the last
4357         parameter, adjust all callers.
4358         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4359         parameters.  Initialize polymorphic information in the indirect edge.
4360
4361 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4362
4363         PR lto/48148
4364         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4365         the types if they have different enumeration identifiers.
4366
4367 2011-04-19  Jan Hubicka  <jh@suse.cz>
4368
4369         * cgraph.h (cgraph_optimize_for_size_p): Declare.
4370         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4371         * predict.c (cgraph_optimize_for_size_p): Break out from ...
4372         (optimize_function_for_size_p) ... here.
4373
4374 2011-04-19  Richard Guenther  <rguenther@suse.de>
4375
4376         PR lto/48207
4377         * tree.c (free_lang_data): Do not reset the decl-assembler-name
4378         langhook.
4379
4380 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4381
4382         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4383         if DECL_NO_INLINE_WARNING_P is set on the function.
4384
4385 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
4386
4387         PR fortran/47976
4388         * reload1.c (inc_for_reload): Return void. All callers changed.
4389         (emit_input_reload_insns): Don't try to delete previous output
4390         reloads to a register, or record spill_reg_store for autoincs.
4391
4392 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
4393
4394         * gengtype.h: Updated copyright year.
4395         (struct input_file_st): Add inpisplugin field.
4396         (type_fileloc): New function.
4397         * gengtype.c
4398         (write_typed_struct_alloc_def): Add gcc_assert.
4399         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4400         (write_typed_alloc_defns): Don't output for plugin files.
4401         (input_file_by_name): Clear inpisplugin field.
4402         (main): Set inpisplugin field for plugin files.
4403
4404 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
4405
4406         * gengtype-state.c (string_eq): New.
4407         (read_state): Use string_eq instead of strcmp when creating the
4408         state_ident_tab.
4409
4410 2011-04-19  Wei Guozhi  <carrot@google.com>
4411
4412         PR target/47855
4413         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4414         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4415         linkage.
4416         * config/arm/constraints.md (Uu): New constraint.
4417         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4418
4419 2011-04-19  Tristan Gingold  <gingold@adacore.com>
4420
4421         * config.gcc (-*-*-*vms): Added.
4422         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4423         definitions moved.
4424         * config/vms/vms-ld.c: New file.
4425         * config/vms/vms-ar.c: New file.
4426         * config/vms/t-vmsnative: New file.
4427
4428 2011-04-18  Xinliang David Li  <davidxl@google.com>
4429
4430         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4431
4432 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4433
4434         PR middle-end/48661
4435         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4436         if TREE_TYPE (v) is non-NULL.
4437
4438         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4439         gimple_get_virt_mehtod_for_binfo.
4440         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4441         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4442         callers.
4443         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4444
4445 2011-04-18  Michael Matz  <matz@suse.de>
4446             Steve Ellcey  <sje@cup.hp.com>
4447
4448         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4449         use its mode as source mode if it isn't VOIDmode.
4450
4451 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
4452
4453         * doc/passes.texi: Fill crossref nodes.
4454
4455 2011-04-18  Jim Meyering  <meyering@redhat.com>
4456
4457         Fix doubled-word typos in comments and strings
4458         * config/alpha/vms-unwind.h: s/for for/for/
4459         * config/arm/unwind-arm.h: Likewise.
4460         * config/microblaze/microblaze.c: Likewise.
4461         * config/sh/constraints.md: s/in in/in/
4462         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4463
4464 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
4465
4466         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4467         (AVX_FLOAT_MODE_P): Ditto.
4468         (AVX128_VEC_FLOAT_MODE_P): Ditto.
4469         (AVX256_VEC_FLOAT_MODE_P): Ditto.
4470         (AVX_VEC_FLOAT_MODE_P): Ditto.
4471         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4472         (UNSPEC_MASKSTORE): Ditto.
4473         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4474         Merge from <sse>_movmsk<ssemodesuffix> and
4475         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
4476         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
4477         iterator.
4478         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4479         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4480         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4481
4482 2011-04-18  Jan Hubicka  <jh@suse.cz>
4483
4484         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4485
4486         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4487         (want_inline_function_called_once_p): Break out the logic from
4488         ipa_inline.
4489         (edge_badness): Ensure that profile is not misupdated.
4490         (lookup_recursive_calls): Prioritize by call frequencies.
4491         (inline_small_functions): Move program size estimates here;
4492         actually process whole queue even when unit growth has been
4493         met. (to properly compute inline_failed reasons and for the
4494         case unit size decrease.) Revisit comments on recursive inlining.
4495         (ipa_inline): Remove unit summary code; first inline hot calls
4496         of functions called once, cold calls next.
4497         (order, nnodes): Remove unused variables.
4498         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4499         (GTFILES): Remove ipa-inline.c
4500         * sel-sched.c (fill_insns): Silence uninitialized var warning.
4501
4502 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4503
4504         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4505
4506 2011-04-18  Jie Zhang  <jie@codesourcery.com>
4507             Richard Earnshaw  <rearnsha@arm.com>
4508
4509         * arm.c (neon_builtin_type_bits): Remove.
4510         (typedef enum neon_builtin_mode): New.
4511         (T_MAX): Don't define.
4512         (typedef enum neon_builtin_datum): Remove bits, codes[],
4513         num_vars and base_fcode.  Add mode, code and fcode.
4514         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4515         VAR10): Change accordingly.
4516         (neon_builtin_data[]): Change accordingly
4517         (arm_init_neon_builtins): Change accordingly.
4518         (neon_builtin_compare): Remove.
4519         (locate_neon_builtin_icode): Remove.
4520         (arm_expand_neon_builtin): Change accordingly.
4521
4522         * arm.h (enum arm_builtins): Move to ...
4523         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4524
4525         * arm.c (arm_builtin_decl): Declare.
4526         (TARGET_BUILTIN_DECL): Define.
4527         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4528         (arm_builtin_decls[]): New.
4529         (arm_init_neon_builtins): Store builtin declarations in
4530         arm_builtin_decls[].
4531         (arm_init_tls_builtins): Likewise.
4532         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
4533         (arm_builtin_decl): New.
4534
4535 2011-04-18  Richard Guenther  <rguenther@suse.de>
4536
4537         * tree.c (upper_bound_in_type): Build properly canonicalized
4538         INTEGER_CSTs.
4539         (lower_bound_in_type): Likewise.
4540
4541 2011-04-18  Richard Guenther  <rguenther@suse.de>
4542
4543         * gimple.h (gimple_call_addr_fndecl): New function.
4544         (gimple_call_fndecl): Use it.
4545         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4546         for direct calls.
4547         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4548         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4549
4550 2011-04-18  Richard Guenther  <rguenther@suse.de>
4551
4552         PR middle-end/48650
4553         * tree.c (build_string): STRING_CST is now derived from tree_typed.
4554
4555 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4556
4557         PR lto/48492
4558         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4559         DECL_IN_CONSTANT_POOL without RTL.
4560
4561 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
4562             Ira Rosen  <ira.rosen@linaro.org>
4563
4564         PR target/48252
4565         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4566         to match neon_vzip/vuzp/vtrn_internal.
4567         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4568         outputs explicitly dependent on both inputs.
4569         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4570
4571 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
4572
4573         PR tree-optimization/48616
4574         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4575         whether the shift is by scalar or vector based on whether all SLP
4576         scalar stmts have the same rhs.
4577
4578 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
4579
4580         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4581         memory operands.
4582
4583 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
4584
4585         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4586         registers.
4587
4588 2011-04-17  Jan Hubicka  <jh@suse.cz>
4589
4590         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
4591         * cgrpahunit.c (cgraph_finalize_function): Do not set
4592         finalized_by_frontend.
4593         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4594         finalized_by_frontend.
4595
4596 2011-04-17  Jan Hubicka  <jh@suse.cz>
4597
4598         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4599         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4600         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
4601         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4602         method.
4603         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4604         gimple-fold.c
4605         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4606
4607 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4608
4609         PR lto/48538
4610         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4611         is non-null before accessing it.
4612         (input_cgraph): Remove trailing spaces.
4613
4614 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4615
4616         * params.def (sms-min-sc): New param flag.
4617         * modulo-sched.c (sms_schedule): Use it.
4618         * doc/invoke.texi (sms-min-sc): Document it.
4619
4620 2011-04-17  Jan Hubicka  <jh@suse.cz>
4621
4622         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4623         present, also set gimple_call_set_cannot_inline.
4624         * ipa-inline.c: Update toplevel comment.
4625         (MAX_TIME): Remove.
4626         (cgraph_clone_inlined_nodes): Fix linebreaks.
4627         (cgraph_check_inline_limits): Restructure to ...
4628         (caller_growth_limits): ... this one; be more tolerant
4629         on growth in nested inline chains; add explanatory comment;
4630         fix stack accounting thinko introduced by previous patch.
4631         (cgraph_default_inline_p): Remove.
4632         (report_inline_failed_reason): New function.
4633         (can_inline_edge_p): New function.
4634         (can_early_inline_edge_p): New function.
4635         (leaf_node_p): Move upwards in file.
4636         (want_early_inline_function_p): New function.
4637         (want_inline_small_function_p): New function.
4638         (want_inline_self_recursive_call_p): New function.
4639         (cgraph_edge_badness): Rename to ...
4640         (edge_badness) ... this one; fix linebreaks.
4641         (update_edge_key): Update call of edge_baddness; add
4642         detailed dump about queue updates.
4643         (update_caller_keys): Use can_inline_edge_p and
4644         want_inline_small_function_p.
4645         (cgraph_decide_recursive_inlining): Rename to...
4646         (recursive_inlining): Use can_inline_edge_p and
4647         want_inline_self_recursive_call_p; simplify and remove no longer
4648         valid FIXME.
4649         (cgraph_set_inline_failed): Remove.
4650         (add_new_edges_to_heap): Use can_inline_edge_p and
4651         want_inline_small_function_p.
4652         (cgraph_decide_inlining_of_small_functions): Rename to ...
4653         (inline_small_functions): ... this one; cleanup; use
4654         can/want predicates; cleanup debug ouput; work edges till fibheap
4655         is exhausted and do not stop once unit growth is reached; remove
4656         later loop processing remaining edges.
4657         (cgraph_flatten): Rename to ...
4658         (flatten_function): ... this one; use can_inline_edge_p
4659         and can_early_inline_edge_p predicates.
4660         (cgraph_decide_inlining): Rename to ...
4661         (ipa_inline): ... this one; remove unreachable nodes before
4662         inlining functions called once; simplify the pass.
4663         (cgraph_perform_always_inlining): Rename to ...
4664         (inline_always_inline_functions): ... this one; use
4665         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4666         (cgraph_decide_inlining_incrementally): Rename to ...
4667         (early_inline_small_functions): ... this one; simplify
4668         using new predicates; cleanup; make dumps prettier.
4669         (cgraph_early_inlining): Rename to ...
4670         (early_inliner): newer inline regular functions into always-inlines;
4671         fix updating of call stmt summaries.
4672         (pass_early_inline): Update for new names.
4673         (inline_transform): Fix formating.
4674         (gate_cgraph_decide_inlining): Rename to ...
4675         (pass_ipa_inline): ... this one.
4676         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4677         * ipa-inline-analysis.c (dump_inline_summary): Update.
4678         (compute_inline_parameters): Do not compute disregard_inline_limits;
4679         look for mismatching arguments.
4680         (estimate_growth): Fix handlig of non-trivial self recursion.
4681         (inline_read_summary): Do not read info->disregard_inline_limits.
4682         (inline_write_summary): Do not write info->disregard_inline_limits.
4683         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4684         and move all checks into can_inline_edge_p predicate; re-enable code
4685         comparing optimization levels.
4686         (expand_call_inline): Do not test inline_forbidden_into_p.
4687         * Makefile.in (ipa-inline.o): Update arguments.
4688
4689 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4690
4691         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4692
4693 2011-04-17  Revital Eres  <revital.eres@linaro.org>
4694
4695         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4696
4697 2011-04-17  Michael Matz  <matz@suse.de>
4698
4699         PR tree-optimization/48622
4700         PR lto/48645
4701         * ipa-inline-analysis.c (inline_read_summary): Read size/time
4702         in same order as they're written.
4703
4704 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4705
4706         * config/pa/predicates.md: Reorganize and simplify predicates.
4707         Eliminate duplicate code checks.
4708         (arith_operand): Rename to arith14_operand
4709         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4710         * config/pa/pa.md: Use renamed operands.
4711         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4712         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4713         arith11_operand, adddi3_operand, indexed_memory_operand,
4714         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4715         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4716         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4717         move_dest_operand, move_src_operand, prefetch_cc_operand,
4718         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4719         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4720         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4721         div_operand, int5_operand, movb_comparison_operator,
4722         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4723         arith_double_operand, ireg_operand, lhs_lshift_operand,
4724         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4725         integer_store_memory_operand): Likewise.
4726         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4727         (integer_store_memory_operand, read_only_operand,
4728         function_label_operand, borx_reg_operand,
4729         non_hard_reg_operand): Likewise.
4730         (eq_neq_comparison_operator): Delete unused operator.
4731         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4732         function_label_operand.
4733         (emit_move_sequence): Likewise.
4734
4735 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4736
4737         * config/i386/sse.md (sseunpackmode): New mode attribute.
4738         (ssepackmode): Ditto.
4739         (vec_pack_trunc_<mode>): Macroize expander from
4740         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4741         (vec_unpacks_lo_<mode>): Macroize expander from
4742         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4743         (vec_unpacks_hi_<mode>): Macroize expander from
4744         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4745         (vec_unpacku_lo_<mode>): Macroize expander from
4746         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4747         (vec_unpacku_hi_<mode>): Macroize expander from
4748         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4749         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4750         ix86_expand_sse4_unpack.
4751         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4752
4753 2011-04-16  Jan Hubicka  <jh@suse.cz>
4754
4755         * cgraphbuild.c: Include ipa-inline.h.
4756         (reset_inline_failed): Use initialize_inline_failed.
4757         * cgraph.c: Include ipa-inline.h.
4758         (cgraph_create_node_1): Do not initialize estimated_growth.
4759         (initialize_inline_failed): More to ipa-inline-analysis.c
4760         (dump_cgraph_node): Do not dump inline flags.
4761         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4762         and disregard_inline_limits flags.
4763         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4764         time, size, estimated_growth.
4765         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4766         Update.
4767         * cgraphunit.c (cgraph_decide_is_function_needed): Use
4768         DECL_DISREGARD_INLINE_LIMITS.
4769         (cgraph_analyze_function): Do not initialize
4770         node->local.disregard_inline_limits.
4771         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4772         inlinable, versionable and disregard_inline_limits.
4773         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4774         cgraph_check_inline_limits, cgraph_default_inline_p,
4775         cgraph_edge_badness, update_caller_keys, update_callee_keys,
4776         add_new_edges_to_heap): Update.
4777         (cgraph_decide_inlining_of_small_function): Update; set
4778         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
4779         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
4780         cgraph_decide_inlining_incrementally): Update.
4781         * ipa-inline.h (inline_summary): Add inlinable, versionable,
4782         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
4783         time, size and estimated_growth parameters.
4784         (estimate_edge_growth): Update.
4785         (initialize_inline_failed): Declare.
4786         * ipa-split.c: Include ipa-inline.h
4787         (execute_split_functions): Update.
4788         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
4789         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
4790         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
4791         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
4792         estimated_growth to INT_MIN.
4793         (inline_node_duplication_hook): Likewise.
4794         (dump_inline_summary): Dump new fields.
4795         (compute_inline_parameters): Update.
4796         (estimate_edge_time, estimate_time_after_inlining,
4797         estimate_size_after_inlining, estimate_growth, inline_read_summary,
4798         inline_write_summary):
4799         (initialize_inline_failed): Move here from cgraph.c.
4800         * tree-sra.c: Include ipa-inline.h.
4801         (ipa_sra_preliminary_function_checks): Update.
4802         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
4803         ipa-inline.h.
4804
4805 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
4806
4807         * config/i386/sse.md (V16): New mode iterator.
4808         (VI1, VI8): Ditto.
4809         (AVXMODEQI, AVXMODEDI): Remove.
4810         (sse2, sse3): New mode attribute.
4811         (mov<mode>): Use V16 mode iterator.
4812         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
4813         (push<mode>1): Use V16 mode iterator.
4814         (movmisalign<mode>): Ditto.
4815         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4816         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4817         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4818         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4819         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4820         avx_movdqu<avxmodesuffix>.
4821         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4822         *avx_movdqu<avxmodesuffix>.
4823         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4824         avx_lddqu<avxmodesuffix>.
4825         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4826         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4827         avx_movnt<AVXMODEDI:mode>.
4828         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4829         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4830
4831 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4832
4833         PR target/48629
4834         * haifa-sched.c (prune_ready_list, schedule_block): Use
4835         sched_pressure_p rather than flag_sched_pressure.
4836
4837 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4838
4839         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4840         cgraph_get_node instead of cgraph_get_create_node.
4841
4842 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
4843
4844         * cfgexpand.c (expand_debug_expr): Use
4845         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4846
4847 2011-04-15  Michael Matz  <matz@suse.de>
4848
4849         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4850         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4851         * function.c (gimplify_parameters): Ditto.
4852         * gimplify.c (gimplify_vla_decl): Ditto.
4853
4854         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4855         (gimple_call_set_alloca_for_var): New inline function.
4856         (gimple_call_alloca_for_var_p): Ditto.
4857         * gimple.c (gimple_build_call_from_tree): Remember
4858         CALL_ALLOCA_FOR_VAR_P state.
4859         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4860
4861         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4862         calls if they were for VLA objects.
4863
4864 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4865
4866         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4867         of ADR_EXPRs.
4868
4869 2011-04-15  Martin Jambor  <mjambor@suse.cz>
4870
4871         PR middle-end/48601
4872         * tree-emutls.c (lower_emutls_function_body): Call
4873         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
4874         result is non-NULL.
4875
4876 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4877
4878         * c-decl.c (detect_field_duplicates): Call
4879         objc_detect_field_duplicates instead of objc_get_interface_ivars.
4880
4881 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
4882
4883         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4884         * gimple.c (gimple_asm_clobbers_memory_p): Define.
4885         * ipa-pure-const.c (check_stmt): Call it.
4886         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4887
4888 2011-04-15  Richard Guenther  <rguenther@suse.de>
4889
4890         PR tree-optimization/48290
4891         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4892         Properly decide inhibiting propagation based on the valueized
4893         operand.  Do loop-closed SSA form preserving here ...
4894         (init_copy_prop): ... not here.
4895
4896 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4897
4898         PR target/48612
4899         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4900         (*ieee_smax<mode>3): Likewise.
4901
4902 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4903
4904         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4905         Replace match_operand with match_dup for the third operand in
4906         these expanders.
4907
4908 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4909
4910         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4911         to track processing of conditionals.  Update all callers.
4912         (try_combine, simplify_if_then_else): Update.
4913
4914 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4915
4916         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4917         -fsched-pressure.
4918
4919 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
4920
4921         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4922         instead of match_operand for operand 3.
4923
4924 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
4925
4926         * recog.h (insn_operand_data): Add an "allows_mem" field.
4927         * genoutput.c (output_operand_data): Initialize it.
4928         * optabs.c (maybe_legitimize_operand_same_code): New function.
4929         (maybe_legitimize_operand): Use it when matching the original
4930         op->value.
4931
4932 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4933
4934         * gimplify.c: Fix issues in comments throughout.
4935         (voidify_wrapper_expr): Fix long line.
4936         (build_stack_save_restore): Likewise.
4937         (gimplify_loop_expr): Likewise.
4938         (gimplify_compound_lval): Likewise.
4939         (gimplify_init_ctor_eval): Likewise.
4940         (gimplify_modify_expr_rhs): Likewise.
4941         (omp_notice_threadprivate_variable): Likewise.
4942
4943 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4944
4945         * cfgexpand.c (expand_call_stmt): Convert the function type to the
4946         original one if this is not a builtin function.
4947
4948 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
4949
4950         PR target/48605
4951         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4952         offset it as needed based on top 2 bits in operands[3], change
4953         MEM mode to SFmode and mask those 2 bits away from operands[3].
4954
4955 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4956
4957         * c-parser.c (c_parser_objc_protocol_definition): Updated for
4958         change from objc_declare_protocols() to objc_declare_protocol().
4959
4960 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
4961
4962         * config/i386/sse.md (sse4_1): New mode attribute.
4963         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4964         avx_blend<ssemodesuffix><avxmodesuffix> and
4965         sse4_1_blend<ssemodesuffix> using VF mode iterator.
4966         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4967         avx_blendv<ssemodesuffix><avxmodesuffix> and
4968         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4969         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4970         avx_dp<ssemodesuffix><avxmodesuffix> and
4971         sse4_1_dp<ssemodesuffix> using VF mode iterator.
4972         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4973         (sse4_1_packusdw): Merge with *avx_packusdw.
4974         (sse4_1_pblendvb): Merge with *avx_pblendvb.
4975         (sse4_1_pblendw): Merge with *avx_pblendw.
4976         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4977         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4978         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4979         VF mode iterator.
4980         (sse4_1_round<ssescalarmodesuffix>): Merge with
4981         *avx_round<ssescalarmodesuffix>.
4982         (aesenc): Merge with *avx_aesenc.
4983         (aesenclast): Merge with *avx_aesenclast.
4984         (aesdec): Merge with *avx_aesdec.
4985         (aesdeclast): Merge with *avx_aesdeclast.
4986         (pclmulqdq): Merge with *pclmulqdq.
4987         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4988         New predicate.
4989         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4990
4991 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
4992
4993         PR middle-end/48608
4994         * cfgexpand.c (get_decl_align_unit): Renamed to ...
4995         (align_local_variable): This.  Update DECL_ALIGN.
4996         (add_stack_var): Updated.
4997         (expand_one_stack_var): Likewise.
4998
4999 2011-04-14  Richard Guenther  <rguenther@suse.de>
5000
5001         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5002         Remove.
5003         (dse_initialize_block_local_data, dse_leave_block,
5004         record_voperand_set, get_stmt_uid): Likewise.
5005         (dse_possible_dead_store_p): Allow any kind of killing stmt.
5006         (dse_optimize_stmt): Remove voperand set handling code.
5007         Simplify and improve to handle any kind of killing stmt.
5008         (dse_record_phi): Remove.
5009         (dse_enter_block): Simplify.
5010         (tree_ssa_dse): Likewise.
5011         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5012
5013 2011-04-14  Jan Hubicka  <jh@suse.cz>
5014
5015         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5016         * cgraph.h (struct inline_summary): Move to ipa-inline.h
5017         (cgraph_local_info): Remove inline_summary.
5018         * ipa-cp.c: Include ipa-inline.h.
5019         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5020         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5021         accesor.
5022         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5023         (input_overwrite_node): Do not set inline summary.
5024         (input_node): Do not stream inline summary.
5025         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5026         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5027         growth; we do not have inline parameters computed for that anyway.
5028         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5029         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5030         (inline_summary_t): New type and VECtor.
5031         (debug_inline_summary, dump_inline_summaries): Declare.
5032         (inline_summary): Use VOCtor.
5033         (estimate_edge_growth): Kill hack computing call stmt size directly.
5034         * lto-section-in.c (lto_section_name): Add inline section.
5035         * ipa-inline-analysis.c: Include lto-streamer.h
5036         (node_removal_hook_holder, node_duplication_hook_holder): New holders
5037         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5038         (inline_summary_vec): Define.
5039         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5040         dump_inline_summaries): New functions.
5041         (estimate_function_body_sizes): Properly compute size/time of outgoing
5042         calls.
5043         (compute_inline_parameters): Alloc inline_summary; do not compute
5044         size/time of incomming calls.
5045         (estimate_edge_time): Avoid missing time summary hack.
5046         (inline_read_summary): Read inline summary info.
5047         (inline_write_summary): Write inline summary info.
5048         (inline_free_summary): Free all hooks and inline summary vector.
5049         * lto-streamer.h: Add LTO_section_inline_summary section.
5050         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5051         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5052
5053 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5054
5055         * tree-vectorizer.h (vect_strided_store_supported): Add a
5056         HOST_WIDE_INT argument.
5057         (vect_strided_load_supported): Likewise.
5058         (vect_permute_store_chain): Return void.
5059         (vect_transform_strided_load): Likewise.
5060         (vect_permute_load_chain): Delete.
5061         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5062         count argument.  Check that the count is a power of two.
5063         (vect_strided_load_supported): Likewise.
5064         (vect_permute_store_chain): Return void.  Update after above changes.
5065         Assert that the access is supported.
5066         (vect_permute_load_chain): Likewise.
5067         (vect_transform_strided_load): Return void.
5068         * tree-vect-stmts.c (vectorizable_store): Update calls after
5069         above interface changes.
5070         (vectorizable_load): Likewise.
5071         (vect_analyze_stmt): Don't check for strided powers of two here.
5072
5073 2011-04-14  Richard Guenther  <rguenther@suse.de>
5074
5075         PR tree-optimization/48590
5076         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5077         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5078         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5079         BUILT_IN_STACK_SAVE.
5080         * tree-ssa-dce.c (propagate_necessity): Handle
5081         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5082
5083 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
5084
5085         * c-parser.c (c_parser_objc_class_declaration): Updated call to
5086         objc_declare_class.
5087
5088 2011-04-14  Richard Guenther  <rguenther@suse.de>
5089
5090         * tree.h (get_object_alignment_1): Declare.
5091         * builtins.c (get_object_alignment_1): Split out worker from ...
5092         (get_object_alignment): ... here.
5093         * fold-const.c (get_pointer_modulus_and_residue): Use
5094         get_object_alignment_1.
5095
5096 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5097
5098         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5099         type parameter.
5100         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5101         parameter.  Generalise code to handle arrays as well as vectors.
5102         (vect_setup_realignment): Update accordingly.
5103         * tree-vect-stmts.c (vectorizable_store): Likewise.
5104         (vectorizable_load): Likewise.
5105
5106 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5107
5108         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5109         within the per-copy loop.
5110
5111 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5112
5113         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5114         in the dump file.
5115
5116 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
5117
5118         * doc/options.texi (Negative): Explicitly mention that the
5119         Negative chain must be circular.
5120
5121 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
5122
5123         * function.h (block_chainon): Declare.
5124         * function.c (block_chainon): Define.
5125
5126 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
5127             Eric Weddington  <eric.weddington@atmel.com>
5128             Georg-Johann Lay  <avr@gjlay.de>
5129
5130         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
5131         New Includes
5132         (avr_init_builtins, avr_expand_builtin,
5133         avr_expand_delay_cycles, avr_expand_unop_builtin,
5134         avr_expand_binop_builtin ): New functions.
5135         (avr_builtin_id): New enum
5136         (struct avr_builtin_description): New struct
5137         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
5138         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5139
5140         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5141         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
5142         UNSPECV_DELAY_CYCLES): new enumeration values
5143         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
5144         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
5145         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
5146         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
5147         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
5148         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
5149         "fmulsu"): New insns
5150
5151         * config/avr/avr-c.c: fix line endings
5152         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
5153         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
5154         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
5155         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
5156         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5157
5158         * doc/extend.texi (AVR Built-in Functions): New node
5159         (Target Builtins): Add documentation of AVR
5160         built-in functions.
5161
5162 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
5163
5164         PR target/44643
5165         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
5166         alone. Error if non-const data has attribute progmem.
5167
5168 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5169
5170         * tree.h (struct tree_constructor): Include tree_typed instead of
5171         tree_common.
5172         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
5173         TS_TYPED instead of TS_COMMON.
5174
5175 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
5176
5177         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
5178         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
5179         (sse2_psadbw): Merge with *avx_psadbw.
5180         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
5181         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
5182         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
5183         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
5184         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
5185         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
5186         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
5187         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
5188         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
5189         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
5190         (ssse3_palignrti): Merge with *avx_palignrti.
5191
5192 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5193
5194         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
5195         * tree-ssanames.c (fini_ssanames): VEC_free it.
5196         (make_ssa_name_fn): Update for VECness of free_ssanames.
5197         (release_ssa_name, release_dead_ssa_names): Likewise.
5198         * tree.h (struct tree_ssa_name): Include tree_typed instead of
5199         tree_common.
5200         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
5201         TS_TYPED instead of TS_COMMON.
5202
5203 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5204
5205         * postreload-gcse.c (gcse_after_reload_main): Add calls to
5206         statistics_counter_event.
5207         * tree-ssa-copyrename.c (stats): Define.
5208         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
5209         statistics_counter_event.
5210         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
5211         (bswap_stats, widen_mul_stats): Define.
5212         (insert_reciprocals): Increment rdivs_inserted.
5213         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
5214         rfuncs_inserted.  Add calls to statistics_counter_event.
5215         (execute_cse_sincos_1): Increment inserted.
5216         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
5217         statistics_counter_event.
5218         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
5219         of bswap_stats.  Add calls to statistics_counter_event.
5220         (convert_mult_to_widen): Increment widen_mults_inserted.
5221         (convert_plusminus_to_widen): Increment maccs_inserted.
5222         (convert_mult_to_fma): Increment fmas_inserted.
5223         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
5224         calls to statistics_counter_event.
5225
5226 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5227
5228         PR rtl-optimization/48455
5229         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
5230         `temp_costs->mem_cost'.
5231
5232 2011-04-13  Jan Hubicka  <jh@suse.cz>
5233
5234         * ipa-inline.h: New file.
5235         * ipa-inline-analysis.c: New file. Broken out of ...
5236         * ipa-inline.c: ... this file; update toplevel comment;
5237         include ipa-inline.h
5238         (inline_summary): Move to ipa-inline.h
5239         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
5240         ipa-inline-analysis.c.
5241         (cgraph_estimate_time_after_inlining): Rename to
5242         estiamte_time_after_inlining; move to ipa-inline-analysis.c
5243         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
5244         to estimate_edge_growth.
5245         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
5246         rename to estimate_size_after_inlining.
5247         (cgraph_mark_inline_edge): Update for new naming convention.
5248         (cgraph_check_inline_limits): Likewise.
5249         (cgraph_edge_badness): Likewise.
5250         (cgraph_decide_recursive_inlining): Likewise.
5251         (cgraph_decide_inlining_of_small_functions): Likewise.
5252         (cgraph_decide_inlining_incrementally): Likewise.
5253         (cgraph_estimate_growth): Rename to estimate_growth; move to
5254         ipa-inline-analysis.c.
5255         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
5256         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
5257         (compute_inline_parameters): Likewise.
5258         (compute_inline_parameters_for_current): Likewise.
5259         (pass_inline_parameters): Likewise.
5260         (inline_indirect_intraprocedural_analysis): Likewise.
5261         (analyze_function): Rename to inline_analyze_function; likewise.
5262         (add_new_function): Move to ipa-inline-analysis.c.
5263         (inline_generate_summary): Likewise.
5264         (inline_read_summary): Likewise.
5265         (inline_write_summary): Likewise.
5266         * Makefile.in (ipa-inline-analysis.c): New file.
5267
5268 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5269
5270         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
5271         * configure: Regenerate.
5272
5273 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
5274
5275         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
5276         instead of tree_common.
5277         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
5278         Likewise.
5279         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
5280         TS_TYPED rather than TS_COMMON.
5281         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
5282
5283 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
5284
5285         PR target/45263
5286         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
5287         r20 around calls of __tablejump_elpm__
5288
5289 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
5290
5291         PR middle-end/48591
5292         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5293         NULL.
5294         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5295
5296 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
5297
5298         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5299         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5300         (cfi_vec): New typedef.
5301         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5302         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5303         (cie_cfi_vec): New static variable.
5304         (cie_cfi_head): Delete.
5305         (add_cfi): Accept a cfi_vec * as first argument. All callers and
5306         declaration changed. Use vector rather than list operations.
5307         (new_cfi): Don't initialize the dw_cfi_next field.
5308         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5309         rather than list operations.
5310         (lookup_cfa): Use vector rather than list operations.
5311         (output_cfis): New argument upto. Accept a cfi_vec rather than
5312         a dw_cfi_ref list head as argument. All callers changed.
5313         Iterate over the vector using upto as a maximum index.
5314         (output_all_cfis): New static function.
5315         (output_fde): Use vector rather than list operations. Use the
5316         new upto argument for output_cfis rather than manipulating a
5317         list.
5318         (dwarf2out_begin_prologue): Change initializations to match
5319         new struct members.
5320         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5321         from the vector length rather than searching for the end of a list.
5322         Use output_all_cfis.
5323         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5324
5325 2011-04-13  Nick Clifton  <nickc@redhat.com>
5326
5327         * config/rx/rx.md (movmemsi): Do not use this pattern when
5328         volatile pointers are involved.
5329
5330 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
5331
5332         * config/i386/sse.md (pinsrbits): Remove.
5333         (sse2_packsswb): Merge with *avx_packsswb.
5334         (sse2_packssdw): Merge with *avx_packssdw.
5335         (sse2_packuswb): Merge with *avx_packuswb.
5336         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5337         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5338         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5339         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5340         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5341         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5342         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5343         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5344         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5345         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5346         (sse2_loadld): Merge with *avx_loadld.
5347         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5348         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5349         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5350         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5351         (vec_concatv2di): Merge with *vec_concatv2di_avx.
5352
5353 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
5354
5355         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5356         calling TREE_CHAIN.
5357         * print-tree.c (print_node): Likewise.
5358         * tree-inline.c (copy_tree_r): Likewise.
5359         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5360         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5361         instead of TS_COMMON.
5362         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5363         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5364         (copy_node_stat): Zero TREE_CHAIN only if necessary.
5365         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5366         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5367         ...and these...
5368         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5369         * tree.h: ...here.
5370         (TREE_CHAIN): Check for a TS_COMMON structure.
5371         (TREE_TYPE): Check for a TS_TYPED structure.
5372
5373 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
5374
5375         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5376         cgraph_get_create_node instead of cgraph_node.
5377
5378 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5379
5380         * c-parser.c (c_parser_initelt): Updated call to
5381         objc_build_message_expr.
5382         (c_parser_postfix_expression): Likewise.
5383
5384 2011-04-12  Kai Tietz  <ktietz@redhat.com>
5385
5386         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5387         MASK_MS_BITFIELD_LAYOUT bit.
5388
5389 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5390
5391         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5392         assert it is always true.
5393         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5394         moves.
5395
5396 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
5397
5398         * c-parser.c (c_lex_one_token): Rewritten conditional used when
5399         compiling Objective-C to be more efficient.
5400
5401 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
5402
5403         * opts-common.c (decode_cmdline_options_to_array): Remove variable
5404         argv_copied.
5405
5406 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5407
5408         * recog.h, genoutput.c, optabs.c: Revert last patch.
5409
5410 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5411
5412         PR target/48090
5413         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
5414
5415 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5416
5417         * recog.h (insn_operand_data): Add an "allows_mem" field.
5418         * genoutput.c (output_operand_data): Initialize it.
5419         * optabs.c (maybe_legitimize_operand_same_code): New function.
5420         (maybe_legitimize_operand): Use it when matching the original
5421         op->value.
5422
5423 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5424
5425         * genpreds.c (process_define_predicate): Move most processing
5426         to gensupport.c.  Continue to validate the expression.
5427         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5428         (process_define_predicate): Move processing to gensupport.c.
5429         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5430         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5431         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
5432         argument.
5433         (valid_predicate_name_p): New function, split out from old
5434         genpreds.c:process_define_predicate.
5435         (process_define_predicate): New function, combining code from
5436         old genpreds.c and genrecog.c functions.
5437         (process_rtx): Call it for DEFINE_PREDICATE and
5438         DEFINE_SPECIAL_PREDICATE.
5439
5440 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
5441
5442         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5443         size of a '%A' memory reference.
5444         (T_DREG, T_QREG): New neon_builtin_type_bits.
5445         (arm_init_neon_builtins): Assert that the load and store operands
5446         are neon_struct_operands.
5447         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5448         (NEON_ARG_MEMORY): New builtin_arg.
5449         (neon_dereference_pointer): New function.
5450         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5451         Handle NEON_ARG_MEMORY.
5452         (arm_expand_neon_builtin): Update after above interface changes.
5453         Use NEON_ARG_MEMORY for loads and stores.
5454         * config/arm/predicates.md (neon_struct_operand): New predicate.
5455         * config/arm/iterators.md (V_two_elem): Tweak formatting.
5456         (V_three_elem): Use BLKmode for accesses that have no associated mode.
5457         (V_four_elem): Tweak formatting.
5458         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5459         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5460         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5461         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5462         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5463         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5464         (neon_vst4<mode>): Replace pointer operand with a memory operand.
5465         Use %A in the output template.
5466         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5467         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5468         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5469         the width of the memory access.  Remove post-increment.
5470         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5471
5472 2011-04-12  Nick Clifton  <nickc@redhat.com>
5473
5474         * config/v850/v850.c (expand_prologue): Do not use the CALLT
5475         instruction for interrupt handlers if the target is the basic V850
5476         architecture.
5477         (expand_epilogue): Likewise.
5478
5479 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5480
5481         PR rtl-optimization/48549
5482         * combine.c (propagate_for_debug): Also stop after BB_END of
5483         this_basic_block.  Process LAST and just stop processing after it.
5484         (combine_instructions): If last_combined_insn has been deleted,
5485         set last_combined_insn to its PREV_INSN.
5486
5487 2011-04-12  Richard Guenther  <rguenther@suse.de>
5488
5489         PR tree-optimization/46076
5490         * gimple.h (struct gimple_statement_call): Add fntype field.
5491         (gimple_call_fntype): Adjust.
5492         (gimple_call_set_fntype): New function.
5493         * gimple.c (gimple_build_call_1): Set the call function type.
5494         * gimplify.c (gimplify_call_expr): Preserve the function
5495         type the frontend used for the call.
5496         (gimplify_modify_expr): Likewise.
5497         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5498         function type.
5499         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5500         function type.
5501         * tree-ssa.c (useless_type_conversion_p): Function pointer
5502         conversions are useless.
5503
5504 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5505
5506         * cgraph.h (cgraph_node): Remove function declaration.
5507         (cgraph_create_node): Declare.
5508         (cgraph_get_create_node): Likewise.
5509         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5510         Updated all callers.
5511         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5512         the decl does not already exist.  Call cgraph_get_create_node instead
5513         of cgraph_node.
5514         (cgraph_get_create_node): New function.
5515         (cgraph_same_body_alias): Update comment.
5516         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5517         assert it does not return NULL.
5518         (cgraph_update_edges_for_call_stmt): Likewise.
5519         (cgraph_clone_edge): Likewise.
5520         (cgraph_create_virtual_clone): Likewise.
5521         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5522         instead of cgraph_node.
5523         (cgraph_add_new_function): Call cgraph_create_node or
5524         cgraph_get_create_node instead of cgraph_node.
5525         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5526         instead of cgraph_node.
5527         (record_eh_tables): Likewise.
5528         (mark_address): Likewise.
5529         (mark_load): Likewise.
5530         (build_cgraph_edges): Call cgraph_get_create_node instead
5531         of cgraph_node.
5532         (rebuild_cgraph_edges): Likewise.
5533         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5534         instead of cgraph_node.
5535         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5536         cgraph_node.
5537         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5538         cgraph_create_node instead of cgraph_node.
5539         * c-decl.c (finish_function): Call cgraph_get_create_node instead
5540         of cgraph_node.
5541         * lto-cgraph.c (input_node): Likewise.
5542         * lto-streamer-in.c (input_function): Likewise.
5543         * varasm.c (mark_decl_referenced): Likewise.
5544         (assemble_alias): Likewise.
5545
5546 2011-04-12  Martin Jambor  <mjambor@suse.cz>
5547
5548         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5549         instead of cgraph_node and assert it does not return NULL.
5550         * lto-streamer-in.c (lto_read_body): Likewise.
5551         * omp-low.c (new_omp_context): Likewise.
5552         (create_task_copyfn): Likewise.
5553         * tree-emutls.c (lower_emutls_function_body): Likewise.
5554         * matrix-reorg.c (transform_allocation_sites): Likewise.
5555
5556 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
5557
5558         PR c/48552
5559         * c-typeck.c (build_asm_expr): Error out on attempts to use
5560         void type outputs or inputs for constraints that allow reg or
5561         don't allow memory.
5562
5563 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
5564             Richard Earnshaw  <rearnsha@arm.com>
5565
5566         PR target/48250
5567         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5568         to use sign-magnitude offsets. Reject unsupported unaligned
5569         cases. Add detailed description in comments.
5570         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5571         condition from TARGET_32BIT to TARGET_ARM.
5572
5573 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
5574
5575         * tree.h (struct typed_tree): New.
5576         (struct tree_common): Include it instead of tree_base.
5577         (TREE_TYPE): Update for new location of type field.
5578         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5579         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5580         (union tree_node): Add typed field.
5581         * treestruct.def (TS_TYPED): New.
5582         * lto-streamer.c (check_handled_ts_structures): Handle it.
5583         * tree.c (MARK_TS_TYPED): New macro.
5584         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5585
5586 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
5587
5588         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5589         (force_nonfallthru): Do not alter the loop nest if no basic block
5590         was created.
5591
5592 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5593
5594         * config/i386/sse.md (VI): New mode iterator.
5595         (SSEMODEI): Remove.
5596         (AVX256MODEI): Ditto.
5597         (AVXMODEF4P): Ditto.
5598         (avxvecpsmode): Ditto.
5599         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
5600         (sse2_andnot<mode>3): New expander.
5601         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5602         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
5603         (<any_logic:code><mode>3): Use VI mode iterator.
5604         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5605         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
5606         (*andnottf3): Handle AVX three-operand constraints.
5607         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5608
5609 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5610             Robert Millan  <rmh@gnu.org>
5611
5612         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5613         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5614         GNU_USER_DYNAMIC_LINKER64): Define.
5615         (REG_NAME): Don't undefine.
5616         (MD_UNWIND_SUPPORT): Undefine.
5617         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5618         (REG_NAME): Don't undefine.
5619         (MD_UNWIND_SUPPORT): Undefine.
5620         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
5621
5622 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5623
5624         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5625         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5626
5627 2011-04-11  Xinliang David Li  <davidxl@google.com>
5628
5629         * value-profile.c (check_ic_target): New function.
5630         (gimple_ic_transform): Sanity check indirect call target.
5631         * gimple-low.c (gimple_check_call_args): Interface change.
5632         (gimple_check_call_matching_types): New function.
5633         * tree-inline.c (tree_can_inline_p): Call new function.
5634
5635 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
5636
5637         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5638         tree-pretty-print.h & realmpfr.h.
5639
5640 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
5641
5642         PR middle-end/48464
5643         * ira.c (setup_pressure_classes): Fix typo in loop condition.
5644         (setup_allocno_and_important_classes): Ditto.
5645
5646 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5647
5648         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5649         GNU_USER_DYNAMIC_LINKER.
5650         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5651         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5652         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5653         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5654         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5655         GNU_USER_TARGET_OS_CPP_BUILTINS.
5656         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5657         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5658         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5659         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5660         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5661         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5662         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5663         GNU_USER_TARGET_OS_CPP_BUILTINS.
5664         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5665         GNU_USER_DYNAMIC_LINKER.
5666         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5667         GNU_USER_TARGET_OS_CPP_BUILTINS.
5668         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5669         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5670         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5671         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5672         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5673         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5674         GNU_USER_DYNAMIC_LINKER64): Remove.
5675         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5676         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5677         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5678         GNU_USER_DYNAMIC_LINKER.
5679         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5680         GNU_USER_TARGET_OS_CPP_BUILTINS.
5681         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5682         GNU_USER_TARGET_OS_CPP_BUILTINS.
5683         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5684         to GNU_USER_TARGET_OS_CPP_BUILTINS.
5685         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5686         GNU_USER_TARGET_OS_CPP_BUILTINS.
5687         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5688         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5689         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5690         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5691         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5692         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5693         GNU_USER_DYNAMIC_LINKER.
5694         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5695         GNU_USER_TARGET_OS_CPP_BUILTINS.
5696         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5697         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5698         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5699         GNU_USER_DYNAMIC_LINKER.
5700         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5701         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5702         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5703         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5704         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5705         GNU_USER_DYNAMIC_LINKER.
5706         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5707         GNU_USER_DYNAMIC_LINKERN32.
5708         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5709         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
5710         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
5711         GNU_USER_DYNAMIC_LINKER32.
5712         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5713         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5714         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5715         GNU_USER_DYNAMIC_LINKER.
5716         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5717         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5718         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5719         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5720         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5721         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5722         GNU_USER_DYNAMIC_LINKER32.
5723         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5724         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5725         GNU_USER_DYNAMIC_LINKER.
5726         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5727         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5728         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5729         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
5730         GNU_USER_DYNAMIC_LINKER64.
5731         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5732         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5733         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5734         GNU_USER_DYNAMIC_LINKER.
5735         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5736         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5737         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5738         GNU_USER_DYNAMIC_LINKER.
5739         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5740         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5741         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5742         GNU_USER_DYNAMIC_LINKER32.
5743         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5744         GNU_USER_DYNAMIC_LINKER64.
5745         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5746         GNU_USER_DYNAMIC_LINKER64.
5747         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5748         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5749         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5750         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5751         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5752
5753 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5754
5755         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
5756         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5757         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5758         GNU_USER_DYNAMIC_LINKER.
5759         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5760         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
5761         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5762         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5763         GNU_USER_DYNAMIC_LINKER64.
5764         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5765         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5766         GNU_USER_LINK_EMULATION.
5767         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
5768         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
5769         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
5770         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
5771         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
5772         CPP_SPEC, CC1_SPEC): Remove.
5773         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
5774         (GNU_USER_DYNAMIC_LINKER): Define.
5775         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
5776         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
5777         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
5778         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
5779         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
5780         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
5781         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5782         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
5783         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
5784         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
5785         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
5786         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
5787         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
5788         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
5789         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
5790         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
5791         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5792         GNU_USER_DYNAMIC_LINKER.
5793         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5794         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5795         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5796         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5797         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
5798         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
5799         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
5800         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
5801         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
5802         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
5803
5804 2011-04-11  Kai Tietz  <ktietz@redhat.com>
5805
5806         PR target/9601
5807         PR target/11772
5808         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
5809         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
5810         comment.
5811         (ix86_is_msabi_thiscall): Removed.
5812         (ix86_is_type_thiscall): Likewise.
5813         (ix86_get_callcvt): New function.
5814         (ix86_comp_type_attributes): Simplify check.
5815         (ix86_function_regparm): Use ix86_get_callcvt for calling
5816         convention attribute checks.
5817         (ix86_return_pops_args): Likewise.
5818         (ix86_static_chain): Likewise.
5819         (x86_this_parameter): Likewise.
5820         (x86_output_mi_thunk): Likewise.
5821         (ix86_function_type_abi): Optimize check for types without attributes.
5822         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5823         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5824         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5825         by flag-values.
5826         (IX86_BASE_CALLCVT): Helper macro.
5827         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5828         Use ix86_get_callcvt for calling convention attribute checks and avoid
5829         symbol-decoration for stdcall in TARGET_RTD case.
5830         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5831         Likewise.
5832         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5833         for declaration.
5834
5835 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
5836
5837         * config/i386/sse.md (VI_128): New mode iterator.
5838         (VI12_128): Rename from SSEMODE12.
5839         (VI14_128): Rename from SSEMODE14.
5840         (VI124_128): New mode iterator.
5841         (VI24_128): Rename from SSEMODE248.
5842         (VI248_128): Rename from SSEMODE248.
5843         (SSEMODE124C8): Remove.
5844         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5845         (*sse2_<plusminus_insn><mode>3): Merge with
5846         *avx_<plusminus_insn><mode>3.
5847         (*mulv8hi3): Merge with *avx_mulv8hi3.
5848         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5849         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5850         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5851         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5852         (ashr<mode>3): Merge with *avx_ashr<mode>3.
5853         (lshr<mode>3): Merge with *avx_lshr<mode>3.
5854         (ashl<mode>3): Merge with *avx_ashl<mode>3.
5855         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5856         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5857         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5858         (*<smaxmin:code>v8hi3): Ditto.
5859         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5860         (*<smaxmin:code>v16qi3): Ditto.
5861         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5862         (*sse2_eq<mode>3): Ditto.
5863         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5864         (*sse2_gt<mode>3): Ditto.
5865         (vcondv2di): Split out of vcond<mode>.
5866         (vconduv2di): Split out of vcondu<mode>.
5867
5868 2011-04-11  Richard Guenther  <rguenther@suse.de>
5869
5870         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5871         before calling tree_low_cst.
5872
5873 2011-04-11  Richard Guenther  <rguenther@suse.de>
5874
5875         * stor-layout.c (layout_type): Compute all array index size operations
5876         in the original type.
5877         (initialize_sizetypes): Add comment.
5878         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5879
5880 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
5881
5882         * common.opt (Tbss=, Tdata=, Ttext=): New options.
5883
5884 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5885
5886         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5887         of cgraph_node, handle NULL return value.
5888         (cgraph_global_info): Likewise.
5889         (cgraph_rtl_info): Likewise.
5890         * tree-inline.c (estimate_num_insns): Likewise.
5891         * gimplify.c (unshare_body): Likewise.
5892         (unvisit_body): Likewise.
5893         (gimplify_body): Likewise.
5894         * predict.c (optimize_function_for_size_p): Likewise.
5895         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5896         (call_may_clobber_ref_p_1): Likewise.
5897         * varasm.c (function_section_1): Likewise.
5898         (assemble_start_function): Likewise.
5899
5900 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5901
5902         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5903         of cgraph_node.
5904         * final.c (rest_of_clean_state): Likewise.
5905         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5906         * passes.c (pass_init_dump_file): Likewise.
5907         (execute_all_ipa_transforms): Likewise.
5908         (function_called_by_processed_nodes_p): Likewise.
5909         * predict.c (maybe_hot_frequency_p): Likewise.
5910         (probably_never_executed_bb_p): Likewise.
5911         (compute_function_frequency): Likewise.
5912         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5913         (unnest_nesting_tree_1): Likewise.
5914         (lower_nested_functions): Likewise.
5915         * tree-optimize.c (execute_fixup_cfg): Likewise.
5916         (tree_rest_of_compilation): Likewise.
5917         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5918         * tree-sra.c (ipa_early_sra): Likewise.
5919         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5920         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5921         * ipa.c (record_cdtor_fn): Likewise.
5922         * ipa-inline.c (cgraph_early_inlining): Likewise.
5923         (compute_inline_parameters_for_current): Likewise.
5924         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5925         * ipa-pure-const.c (local_pure_const): Likewise.
5926         * ipa-split.c (split_function): Likewise.
5927         (execute_split_functions): Likewise.
5928         * cgraphbuild.c (build_cgraph_edges): Likewise.
5929         (rebuild_cgraph_edges): Likewise.
5930         (cgraph_rebuild_references): Likewise.
5931         (remove_cgraph_callee_edges): Likewise.
5932         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5933         (verify_cgraph_node): Likewise.
5934         (cgraph_analyze_functions): Likewise.
5935         (cgraph_preserve_function_body_p): Likewise.
5936         (save_inline_function_body): Likewise.
5937         (save_inline_function_body): Likewise.
5938         * tree-inline.c (copy_bb): Likewise.
5939         (optimize_inline_calls): Likewise.
5940
5941 2011-04-11  Martin Jambor  <mjambor@suse.cz>
5942
5943         PR tree-optimization/48195
5944         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5945         ipa_check_create_edge_args.
5946         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5947         ipa_check_create_edge_args.
5948         * ipa-inline.c (inline_generate_summary): Do not call
5949         ipa_check_create_node_params and ipa_check_create_edge_args.
5950         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5951         ipa_check_create_edge_args.
5952
5953 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
5954
5955         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5956         instead of loop.
5957         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5958         * function.c (record_hard_reg_sets): Likewise.
5959         * ira.c (compute_regs_asm_clobbered): Likewise.
5960         * sched-deps.c (sched_analyze_1): Likewise.
5961         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5962
5963 2011-04-09  Xinliang David Li  <davidxl@google.com>
5964
5965         PR tree-optimization/PR48484
5966         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5967         has_valid_pred lazily
5968
5969 2011-04-09  Duncan Sands  <baldrick@free.fr>
5970
5971         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5972
5973 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5974
5975         * combine.c (combine_validate_cost): Adjust comments.  Set registered
5976         cost of I0 to zero at the end, if any.
5977
5978 2011-04-08  Xinliang David Li  <davidxl@google.com>
5979
5980         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5981         to insane profile data.
5982
5983 2011-04-08  Xinliang David Li  <davidxl@google.com>
5984
5985         * ipa-cp.c (ipcp_update_profiling): Correct
5986          negative scale factor due to insane profile data.
5987
5988 2011-04-08  Xinliang David Li  <davidxl@google.com>
5989
5990         * final.c (dump_basic_block_info): New function.
5991         (final): Dump basic block.
5992         (final_scan_insn): Remove old dump.
5993
5994 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
5995
5996         PR target/47829
5997         * config.gcc (i386-*-freebsd): Disable unwind table generation for
5998         crtbegin/crtend.
5999
6000 2011-04-08  Michael Matz  <matz@suse.de>
6001
6002         PR middle-end/48389
6003         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6004         functions.
6005         (rebuild_jump_labels): Call rebuild_jump_labels_1.
6006         * rtl.h (rebuild_jump_labels_chain): Declare.
6007         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6008         insns inserted on edges.
6009
6010 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
6011
6012         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6013         * config/arm/arm-arches.def: New.
6014         * config/arm/arm-opts.h: New.
6015         * config/arm/genopt.sh: New.
6016         * config/arm/arm-tables.opt: New (generated).
6017         * config/arm/arm.c (arm_handle_option, arm_target_help,
6018         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6019         (all_architectures): Get most table contents from arm-arches.def.
6020         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6021         arm_selected_tune here.
6022         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6023         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6024         (march=, mcpu=, mtune=): Use Enum and Var.
6025         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6026         (arm.o): Update dependencies.
6027
6028 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
6029
6030         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6031         of header_file.
6032         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6033         (write_typed_alloc_defns): Likewise.
6034         (main): Calls write_typed_alloc_defns with output_header.
6035
6036 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
6037
6038         PR inline-asm/48435
6039         * ira-color.c (setup_profitable_hard_regs): Add comments.
6040         Don't take prohibited hard regs into account.
6041         (setup_conflict_profitable_regs): Rename to
6042         get_conflict_profitable_regs.
6043         (check_hard_reg_p): Check prohibited hard regs.
6044
6045 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
6046
6047         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6048         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6049         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6050
6051 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6052
6053         PR target/48366
6054         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
6055         move from floating point to shift amount register.
6056         (emit_move_sequence): Remove secondary reload support for floating
6057         point to shift amount amount register copies.
6058         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6059         amount register copies.
6060         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6061         register, return false if mode isn't a scalar integer mode.
6062         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6063
6064 2011-04-08  Richard Guenther  <rguenther@suse.de>
6065
6066         * gimple.c (gimple_call_flags): Remove kludge.
6067
6068 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6069
6070         * sel-sched.c (sel_region_init): Move call to
6071         sel_setup_region_sched_flags after setup_current_loop_nest.
6072
6073 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
6074
6075         PR rtl-optimization/48272
6076         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6077         init_insn_reg_pressure_info.  Adjust a caller.
6078         * sched-int.h (init_insn_reg_pressure_info): Declare.
6079         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6080         when sched-pressure is enabled.
6081
6082 2011-04-08  Richard Guenther  <rguenther@suse.de>
6083
6084         * gimple.c (gimple_set_modified): Do not queue calls to
6085         MODIFIED_NORETURN_CALLS here ...
6086         * tree-ssa-operands.c (update_stmt_operands): ... but here.
6087
6088 2011-04-08  Richard Guenther  <rguenther@suse.de>
6089
6090         PR lto/48467
6091         * toplev.c (lang_dependent_init): Do not open asm_out_file
6092         in WPA mode, nor perform debug machinery initialization.
6093         (finalize): Do not unlink asm_out_file in WPA mode.
6094
6095 2011-04-08  Richard Guenther  <rguenther@suse.de>
6096
6097         * gimple.h (gimple_call_fntype): New function.
6098         (gimple_call_return_type): Use it.
6099         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6100         * gimple-low.c (gimple_check_call_args): Likewise.
6101         * gimple.c (gimple_call_flags): Likewise.
6102         (gimple_call_arg_flags): Likewise.
6103         (gimple_call_return_flags): Likewise.
6104         * tree-cfg.c (verify_gimple_call): Likewise.
6105         (do_warn_unused_result): Likewise.
6106         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6107         * value-prof.c (gimple_ic_transform): Fix fndecl check.
6108
6109 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
6110
6111         PR rtl-optimization/48235
6112         * sel-sched.c (code_motion_process_successors): Recompute the last
6113         insn in basic block if control flow changed.
6114         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
6115         Update condition for ilist_remove.
6116
6117 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6118
6119         PR rtl-optimization/48302
6120         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
6121         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
6122         it to record added preheader blocks.
6123         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
6124         on to sel_add_loop_preheaders.
6125         (sel_region_init): Move call to setup_current_loop_nest after
6126         sel_init_bbs.
6127
6128 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6129
6130         PR target/48273
6131         * cfgloop.h (loop_has_exit_edges): New helper.
6132         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
6133         non-clonable.
6134         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
6135         that have no exit edges.
6136
6137 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
6138
6139         PR rtl-optimization/48442
6140         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
6141         all callers.  Adjust assert.
6142
6143 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
6144
6145         PR tree-optimization/48377
6146         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
6147         is_packed to true even for types with smaller TYPE_ALIGN than
6148         TYPE_SIZE.
6149
6150 2011-04-08  Richard Guenther  <rguenther@suse.de>
6151
6152         PR bootstrap/48513
6153         * doc/tm.texi: Re-generate.
6154
6155 2011-04-08  Wei Guozhi  <carrot@google.com>
6156
6157         PR target/47855
6158         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
6159         * config/arm/arm.c (arm_attr_length_push_multi): New function.
6160         * config/arm/arm.md (*push_multi): Change the length computation to
6161         call a C function.
6162
6163 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
6164
6165         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
6166         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
6167         * doc/tm.texi: Regenerate.
6168         * system.h (ASM_OUTPUT_BSS): Poison.
6169         * varasm.c (asm_output_bss): Remove function.
6170         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
6171
6172         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
6173         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
6174         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
6175         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6176         Likewise.
6177         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6178         Likewise.
6179         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6180         Likewise.
6181         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
6182
6183 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
6184
6185         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
6186         EnumValue lines.
6187
6188 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
6189
6190         * config/m68k/m68k.c (m68k_handle_option): Don't handle
6191         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
6192         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
6193         OPT_mcpu32.
6194         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6195         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
6196         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
6197         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
6198         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
6199         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
6200         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
6201         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
6202         options.  Don't map other m68k options manually.  Don't handle
6203         old-style options as canonical.
6204         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
6205         * doc/install.texi (m68k-*-*): Document binutils version requirement.
6206
6207 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6208
6209         * basic-block.h (force_nonfallthru): Move to...
6210         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
6211         (force_nonfallthru): ...here.
6212         * cfghooks.c (force_nonfallthru): New function.
6213         * cfgrtl.c (force_nonfallthru): Rename into...
6214         (rtl_force_nonfallthru): ...this.
6215         (commit_one_edge_insertion): Do not set AUX field.
6216         (commit_edge_insertions): Do not discover new basic blocks.
6217         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
6218         (cfg_layout_rtl_cfg_hooks): Likewise.
6219         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
6220         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
6221         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
6222
6223 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
6224
6225         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6226         Remove macros.
6227
6228 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
6229
6230         * config/i386/sse.md: Update copyright year.
6231         (avxcvtvecmode): Remove.
6232         (sse_movhlps): Merge with *avx_movhlps.
6233         (sse_movlhps): Merge with *avx_movlhps.
6234         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
6235         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
6236         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
6237         (sse_loadhps): Merge with *avx_loadhps.
6238         (sse_storelps): Merge with *avx_storelps.
6239         (sse_loadlps): Merge with *avx_loadlps.
6240         (sse_movss): Merge with *avx_movss.
6241         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
6242         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
6243         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
6244         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
6245         (vec_set<mode>_0): Ditto.
6246         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
6247         (sse4_1_insertps): Merge with *avx_insertps.
6248         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
6249         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
6250         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
6251         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
6252         (sse2_storehpd): Merge with *avx_storehpd.
6253         (sse2_loadhpd): Merge with *avx_loadhpd.
6254         (sse2_loadlpd): Merge with *avx_loadlpd.
6255         (sse2_movsd): Merge with *avx_movsd.
6256         (*vec_concatv2df): Merge with *vec_concatv2df.
6257
6258 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
6259
6260         PR debug/48343
6261         * combine.c (combine_instructions): Add last_combined_insn,
6262         update it if insn is after it, pass it to all try_combine calls.
6263         (try_combine): Add last_combined_insn parameter, pass it instead of
6264         i3 to propagate_for_debug.
6265
6266 2011-04-07  Nick Clifton  <nickc@redhat.com>
6267
6268         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
6269         to handle MDR <-> data register transfers.
6270         (movhi_internal): Likewise.
6271
6272 2011-04-07  Alan Modra  <amodra@gmail.com>
6273
6274         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
6275         previous stack info.
6276
6277 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6278
6279         PR target/43920
6280         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
6281         flow_find_cross_jump.  Swap variables to implement backward replacement.
6282         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
6283
6284 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6285
6286         PR target/43920
6287         * cfgcleanup.c (walk_to_nondebug_insn): New function.
6288         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
6289         and bb2.
6290         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6291         src1 or src2.  Redirect edges to the last basic block.  Update
6292         frequency and count on multiple basic blocks in case of fallthru.
6293
6294 2011-04-07  Tom de Vries  <tom@codesourcery.com>
6295
6296         PR target/43920
6297         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6298         function.
6299         (old_insns_match_p): Change return type.  Replace return false/true
6300         with return dir_none/dir_both.  Use can_replace_by.
6301         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
6302         direction from dir_p.  Register replacement direction in dir, last_dir
6303         and afterlast_dir.  Handle new return type of old_insns_match_p using
6304         merge_dir.  Return replacement direction in dir_p.
6305         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6306         return type of old_insns_match_p.
6307         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6308         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6309         flow_find_cross_jump.
6310         * basic-block.h (enum replace_direction): New type.
6311         (flow_find_cross_jump): Add parameter to declaration.
6312
6313 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6314
6315         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6316         (AVXMODEDCVTPS2DQ): Ditto.
6317         (VEC_FLOAT_MODE): Ditto.
6318         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
6319         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6320         (<any_logic:code><mode>3): Use VF mode iterator.
6321         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6322         Use VF mode iterator.
6323         (copysign<mode>3): Use VF mode iterator.
6324         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
6325         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6326         (*<any_logic:code><MODEF:mode>3): Merge with
6327         *avx_<any_logic:code><MODEF:mode>3.
6328         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6329         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6330         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6331         (avx_cvtdq2ps<avxmodesuffix>): Remove.
6332         (sse2_cvtdq2ps): Use %v modifier.
6333         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6334         (avx_cvtps2dq<avxmodesuffix>): Remove.
6335         (sse2_cvtps2dq): Use %v modifier.
6336         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6337         (avx_cvttps2dq<avxmodesuffix>): Remove.
6338         (sse2_cvttps2dq): Use %v modifier.
6339         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6340         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6341         (sse2_cvtsd2siq): Fix insn template.
6342         (sse2_cvtsd2siq_2): Ditto.
6343         (sse2_cvttsd2siq): Ditto.
6344         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6345         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6346
6347 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6348
6349         * gcov-io.c: Use GCC Runtime Library Exception.
6350
6351 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
6352
6353         PR debug/48466
6354         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6355         as base_reg whatever register reg has been eliminated to, instead
6356         of hardcoding STACK_POINTER_REGNUM.
6357
6358 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
6359
6360         * doc/tm.texi.in: Document C target hooks as separate from general
6361         target hooks.
6362         * doc/tm.texi: Regenerate.
6363         * genhooks.c (struct hook_desc): Add docname field.
6364         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
6365         docname field.
6366         (hook_array): Include c-target.def.
6367         (emit_documentation): Use docname field in output.
6368         (emit_init_macros): Take docname argument.  Only emit definitions
6369         for hooks matching docname.
6370         (main): Expect additional arguments in all cases.  Pass argument
6371         to emit_init_macros.
6372         * target.def: Move initial macro definitions and comments to
6373         target-hooks-macros.h.
6374         (gcc_targetcm): Move to c-family/c-target.def.
6375         * target.h (targetcm): Move declaration to c-family/c-target.h.
6376         * targhooks.c (default_handle_c_option): Move to
6377         c-family/c-opts.c.
6378         * targhooks.h (default_handle_c_option): Move declaration to
6379         c-family/c-common.h.
6380         * target-hooks-macros.h: New file.
6381         * config.gcc (target_has_targetcm): Define and use to add to
6382         c_target_objs and cxx_target_objs.
6383         * config/default-c.c: New file.
6384         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6385         of target.h and target-def.h.
6386         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6387         (darwin_objc_construct_string, darwin_cfstring_ref_p,
6388         darwin_check_cfstring_format_arg): Make static.
6389         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6390         TARGET_STRING_OBJECT_REF_TYPE_P,
6391         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6392         * config/darwin-protos.h (darwin_objc_construct_string,
6393         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6394         declare.
6395         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6396         TARGET_STRING_OBJECT_REF_TYPE_P,
6397         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
6398         * config/t-darwin (darwin-c.o): Update dependencies.
6399         * system.h (TARGET_HAS_TARGETCM): Poison.
6400         * Makefile.in (TARGET_H): Update.
6401         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6402         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6403         (default-c.o): New target.
6404         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
6405         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
6406         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
6407         c-target.def.
6408         (build/genhooks.o): Update dependencies.
6409
6410 2011-04-06  Richard Guenther  <rguenther@suse.de>
6411
6412         * ipa-inline.c (enum inlining_mode): Remove.
6413         (cgraph_flatten): Use some other token.
6414         (cgraph_edge_early_inlinable_p): New function, split out from ...
6415         (cgraph_perform_always_inlining): New function, split out from ...
6416         (cgraph_decide_inlining_incrementally): ... here.
6417         (cgraph_mark_inline_edge): Adjust.
6418         (cgraph_early_inlining): Re-structure.
6419         (pass_early_inline): Require SSA form.
6420
6421 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
6422             Julian Brown  <julian@codesourcery.com>
6423             Mark Shinwell  <shinwell@codesourcery.com>
6424
6425         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6426         LO_REGS only for Thumb-1.
6427         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6428         be used in short instructions when optimising for size on Thumb-2.
6429
6430 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6431
6432         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6433         associated with user returns to be preserved.
6434
6435 2011-04-06  Tristan Gingold  <gingold@adacore.com>
6436
6437         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6438         symbol_queue_size, DBXOUT_DECR_NESTING,
6439         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6440         if XCOFF_DEBUGGING_INFO.
6441
6442 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
6443
6444         * config/i386/i386.md (attribute isa): New.
6445         (attribute enabled): New.
6446         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6447         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6448         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6449         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6450         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6451         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6452         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6453         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6454
6455         * config/i386/sse.md (VF): New mode iterator.
6456         (VF1): Ditto.
6457         (VF2): Ditto.
6458         (VF_128): Ditto.
6459         (SSEMODEF4): Remove.
6460         (attribute sse): Handle V8SF and V4DF modes.
6461         (<absneg:code><mode>2): Use VF mode iterator.
6462         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
6463         mode iterator.
6464         (<plusminus_insn><mode>3): Use VF mode iterator.
6465         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6466         Use VF mode iterator.
6467         (<sse>_vm<plusminus_insn><mode>3): Merge with
6468         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
6469         (mul<mode>3): Use VF mode iterator.
6470         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
6471         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
6472         mode iterator.
6473         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6474         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6475         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
6476         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
6477         mode iterator.
6478         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6479         Use VF1 mode iterator.
6480         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6481         (sqrt<VF2:mode>2): New expander.
6482         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6483         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6484         and sqrtv2df2.  Use VF mode iterator.
6485         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
6486         mode iterator.
6487         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6488         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6489         Use VF1 mode iterator.
6490         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6491         (<smaxmin:code><mode>3): Use VF mode iterator.
6492         (*<smaxmin:code><mode>3_finite): Merge with
6493         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
6494         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6495         (<sse>_vm<smaxmin:code><mode>2): Merge with
6496         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
6497         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
6498         mode iterator.
6499         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
6500         mode iterator.
6501         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6502         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6503         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6504         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6505         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
6506         VF mode iterator.
6507         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6508         Use VF_128 mode iterator.
6509         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
6510         mode iterator.
6511         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
6512         VF_128 mode iterator.
6513         (vcond<mode>): Use VF mode iterator.
6514         * config/i386/predicates.md (sse_comparison_operator): Merge with
6515         avx_comparison_float_operator.  Do not declare as special_predicate.
6516         * config/i386/i386.c (struct builtin_description): Update for renamed
6517         compare patterns.
6518         (ix86_expand_args_builtin): Ditto.
6519         (ix86_expand_sse_compare_mask): Ditto.
6520
6521 2011-04-06  Richard Guenther  <rguenther@suse.de>
6522
6523         * tree-inline.c (estimate_num_insns): For calls simply account
6524         for all passed arguments and a used return value.
6525
6526 2011-04-06  Richard Guenther  <rguenther@suse.de>
6527
6528         PR tree-optimization/47663
6529         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6530         call_stmt_time fields.
6531         (cgraph_edge_inlinable_p): Declare.
6532         (cgraph_edge_recursive_p): New inline function.
6533         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6534         (cgraph_clone_edge): Copy it.
6535         * ipa-inline.c (cgraph_estimate_edge_time): New function.
6536         Account for call stmt time.
6537         (cgraph_estimate_time_after_inlining): Take edge argument.
6538         (cgraph_estimate_edge_growth): Account call stmt size.
6539         (cgraph_estimate_size_after_inlining): Take edge argument.
6540         (cgraph_mark_inline_edge): Adjust.
6541         (cgraph_check_inline_limits): Likewise.
6542         (cgraph_recursive_inlining_p): Remove.
6543         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6544         (cgraph_decide_recursive_inlining): Take edge argument and
6545         adjust.
6546         (cgraph_decide_inlining_of_small_functions): Do not avoid
6547         diags for recursive inlining here.
6548         (cgraph_flatten): Adjust.
6549         (cgraph_decide_inlining_incrementally): Likewise.
6550         (estimate_function_body_sizes): Remove call cost handling.
6551         (compute_inline_parameters): Initialize caller edge call costs.
6552         (cgraph_estimate_edge_growth): New function.
6553         (cgraph_estimate_growth): Use it.
6554         (cgraph_edge_badness): Likewise.
6555         (cgraph_check_inline_limits): Take an edge argument.
6556         (cgraph_decide_inlining_of_small_functions): Adjust.
6557         (cgraph_decide_inlining): Likewise.
6558         * tree-inline.c (estimate_num_insns): Only account for call
6559         return value if it is used.
6560         (expand_call_inline): Avoid diagnostics on recursive inline
6561         functions here.
6562         * lto-cgraph.c (lto_output_edge): Output edge call costs.
6563         (input_edge): Input edge call costs.
6564
6565 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6566
6567         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6568
6569 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
6570
6571         * doc/invoke.texi (Spec Files): Fix typo.
6572
6573 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6574
6575         * profile.c (branch_prob): Move declaration of local variable.  Remove
6576         obsolete ??? comment.  Expand the location explicitly instead of using
6577         the LOCATION_FILE and LOCATION_LINE macros.
6578
6579 2011-04-06  Wei Guozhi  <carrot@google.com>
6580
6581         PR target/47855
6582         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6583         (arm_cond_branch): Likewise.
6584         (arm_cond_branch_reversed): Likewise.
6585         (arm_jump): Likewise.
6586         (push_multi): Likewise.
6587         * config/arm/constraints.md (Py): New constraint.
6588
6589 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6590
6591         PR bootstrap/48471
6592         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6593         Move these...
6594         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6595         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6596         #ifdef DBX_DEBUGGING_INFO.
6597
6598 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
6599
6600         PR bootstrap/48403
6601         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6602         if old and new states differ.
6603
6604 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6605
6606         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6607         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6608         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6609         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6610         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6611         mcfv4e): Use Alias.
6612         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6613         ColdFire options to -mcpu= options.
6614
6615 2011-04-05  Jeff Law  <law@redhat.com>
6616
6617         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6618         check if BB is a successor of LOOP->header and return
6619         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6620
6621 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6622
6623         * cprop.c (struct reg_use): Remove.
6624         (reg_use_table): Make an array of RTX.
6625         (find_used_regs, constprop_register, local_cprop_pass,
6626         bypass_block): Simplify users of reg_use_table.
6627         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
6628         on one of the uses found by find_used_regs.
6629
6630 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6631
6632         PR bootstrap/48469
6633         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6634         declaration.
6635
6636 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6637
6638         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6639         as an rtx.
6640         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6641
6642 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
6643
6644         PR middle-end/48441
6645         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6646
6647 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6648
6649         * combine.c: Include obstack.h.
6650         (struct insn_link): Define.
6651         (uid_log_links): Adjust type.
6652         (FOR_EACH_LOG_LINK): New macro.
6653         (insn_link_obstack): Declare.
6654         (alloc_insn_link): Define.
6655         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
6656         type of link variables.
6657         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6658         (try_combine, record_promoted_values, distribute_notes): Likewise.
6659         (distribute_links): Likewise.  Tweak prototype.
6660         (clear_log_links): Delete.
6661         (adjust_for_new_dest): Call alloc_insn_link.
6662         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6663
6664 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6665
6666         * gcse.c (modify_mem_list): Convert to an array of VECs.
6667         (canon_modify_mem_list, compute_transp): Tweak formatting.
6668         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
6669         (load_killed_in_block_p): Likewise.
6670         (record_last_mem_set_info): Likewise.
6671         (clear_modify_mem_tables): Likewise.
6672
6673 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6674
6675         PR middle-end/48461
6676         * function.c (emit_use_return_register_into_block): Only define if
6677         HAVE_return.
6678
6679 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
6680
6681         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6682
6683 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
6684
6685         * config/rx/rx-opts.h: New.
6686         * config/rx/rx.c (rx_cpu_type): Remove.
6687         (rx_handle_option): Don't assert that global structures are in
6688         use.  Access variables via opts pointer.  Defer most handling of
6689         OPT_mint_register_.  Use error_at.
6690         (rx_option_override): Handle deferred OPT_mint_register_ here.
6691         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6692         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6693         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6694         (rx_cpu_types): New Enum and EnumValue entries.
6695         (mint-register=): Use Defer and use Var accordingly.
6696
6697 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6698
6699         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6700         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6701         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6702         Move these...
6703         (debug_free_queue, debug_nesting, symbol_queue_index):
6704         ...and these...
6705         * dbxout.c: ...to here.  Make static.
6706
6707 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
6708
6709         * gcse.c (modify_pair): Define.  Define a VEC of it.
6710         (canon_modify_mem_list): Convert to an array of VECs.
6711         (free_insn_expr_list_list): Delete.
6712         (clear_modify_mem_tables): Call VEC_free instead.
6713         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6714         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6715         (canon_list_insert, compute_transp): Likewise.
6716
6717 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6718
6719         PR target/43920
6720         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6721         for size.
6722
6723 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6724
6725         PR target/43920
6726         * function.c (emit_use_return_register_into_block): New function.
6727         (thread_prologue_and_epilogue_insns): Use
6728         emit_use_return_register_into_block.
6729
6730 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6731
6732         PR target/43920
6733         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6734         insn.
6735
6736 2011-04-05  Tom de Vries  <tom@codesourcery.com>
6737
6738         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6739
6740 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
6741
6742         * config/arm/arm.md (define_constants for unspec): Replace with
6743         define_c_enum.
6744         (define_constants for unspecv): Replace with define_c_enum.
6745         * config/arm/neon.md (define_constants for unspec): Replace with
6746         define_c_enum.
6747
6748 2011-04-04  Richard Henderson  <rth@redhat.com>
6749
6750         PR bootstrap/48400
6751         * dwarf2out.c (output_line_info): Always emit line info from
6752         at least one section.
6753         (dwarf2out_init): Create text_section_line_info here ...
6754         (set_cur_line_info_table): ... not here.
6755
6756 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
6757
6758         PR target/48380
6759         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
6760         not called.
6761
6762         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
6763
6764 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
6765
6766         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6767         (expr_equiv_p): Remove.
6768         (insert_set_in_table): Look at <dest, src> pair instead of expr.
6769         (hash_scan_set): Update call to insert_set_in_table.
6770         (dump_hash_table): Dump <dest, src> pair.
6771         (lookup_set): Simplify.  Lookup <dest, src> pair.
6772         (compute_transp): Remove, fold heavily simplified code into...
6773         (compute_local_properties): ...here.  Expect COMP and TRANSP
6774         unconditionally.
6775         (find_avail_set): Take set directly from struct expr.
6776         (find_bypass-set): Likewise.
6777         (bypass_block): Likewise.
6778         (cprop_insn): Likewise.  Remove redundant INSN_P test.
6779
6780         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
6781         checks on form of COND from find_implicit_sets to here.
6782         (find_implicit_sets): Cleanup control flow. Split critical edges
6783         if it exposes implicit sets.  Allocate/resize implicit_sets as
6784         necessary.
6785         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
6786         changed something.  Run df_analyze after find_implicit_sets if any
6787         edges were split.  Do not allocate implicit_sets here.
6788
6789         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
6790         (gcse_obstack): Renamed to cprop_obstack.
6791         (GNEW, GNEWVEC, GNEWVAR): Remove.
6792         (gmalloc): Remove.
6793         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
6794         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
6795         (gcse_alloc): Likewise, and rename to cprop_alloc.
6796         (alloc_gcse_men, free_gcse_mem): Remove.
6797         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
6798         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
6799         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
6800
6801         * cprop.c (oprs_not_set_p): Remove.
6802         (mark_set, mark_clobber): Remove.
6803         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
6804         (reg_not_set_p): New function.
6805         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
6806         (cprop_insn): Likewise.
6807         (cprop_jump): Use FOR_EACH_EDGE.
6808
6809 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
6810
6811         PR bootstrap/48403
6812         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
6813         (rank_for_schedule): Use scheduled_insns vector instead of
6814         last_scheduled_insn.
6815         (ok_for_early_queue_removal): Likewise.
6816         (queue_to_ready): Search forward in nonscheduled_insns_begin if
6817         we have a dbg_cnt.
6818         (choose_ready): Likewise.
6819         (commit_schedule): Use VEC_iterate.
6820         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
6821         a dbg_cnt, use it and ensure the first insn is in the ready list.
6822         (haifa_sched_init): Allocate scheduled_insns.
6823         (sched_extend_ready_list): Don't allocate it; reserve space.
6824         (haifa_sched_finish): Free it.
6825
6826 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6827
6828         * optc-gen.awk: Always remove type from Variable entry before
6829         recording in var_seen.
6830
6831 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
6832
6833         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6834         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6835         call to tidy_fallthru_edges.
6836
6837 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
6838
6839         * doc/options.texi (ToLower): Document.
6840         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
6841         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6842         * opts.h (cl_option): Add cl_tolower field.
6843         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6844         arguments with lowercase strings.
6845         * config/rx/rx.opt (mcpu=): Add ToLower.
6846         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6847         argument.
6848
6849 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6850
6851         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6852
6853 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
6854
6855         * config/vax/vax.c: Include reload.h.
6856
6857 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
6858
6859         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6860         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6861         (sparc_preferred_reload_class): New function.
6862
6863 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
6864
6865         PR debug/48401
6866         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6867         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6868
6869 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
6870
6871         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6872         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6873
6874 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
6875
6876         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6877         (ASM_OUTPUT_ALIGNED_BSS): Define.
6878
6879 2011-04-03  Michael Matz  <matz@suse.de>
6880
6881         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6882         and next_slot members.
6883         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6884         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6885         (lto_streamer_cache_append): Declare.
6886         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6887         unsigned index, remove offset parameter, ensure that we append
6888         or update existing entries.
6889         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6890         parameter, update next_slot for append.
6891         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6892         parameter.
6893         (lto_streamer_cache_insert_at): Likewise.
6894         (lto_streamer_cache_append): New function.
6895         (lto_streamer_cache_lookup): Use unsigned index.
6896         (lto_streamer_cache_get): Likewise.
6897         (lto_record_common_node): Don't test tree_node_can_be_shared.
6898         (preload_common_node): Adjust call to lto_streamer_cache_insert.
6899         (lto_streamer_cache_delete): Don't free offsets member.
6900         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6901         (lto_output_string_with_length): Use lto_output_data_stream.
6902         (lto_output_tree_header): Remove ix parameter, don't write it.
6903         (lto_output_builtin_tree): Likewise.
6904         (lto_write_tree): Adjust callers to above, don't track and write
6905         offset, write unsigned index.
6906         (output_unreferenced_globals): Don't emit all global vars.
6907         (write_global_references): Use unsigned indices.
6908         (lto_output_decl_state_refs): Likewise.
6909         (write_symbol): Likewise.
6910         * lto-streamer-in.c (lto_input_chain): Move earlier.
6911         (input_function): Use unsigned index.
6912         (input_alias_pairs): Don't read and then ignore all global vars.
6913         (lto_materialize_tree): Remove ix_p parameter, don't read index,
6914         don't pass it back, use lto_streamer_cache_append.
6915         (lto_register_var_decl_in_symtab): Use unsigned index.
6916         (lto_register_function_decl_in_symtab): Likewise.
6917         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6918         index.
6919         (lto_get_builtin_tree): Don't read index, use
6920         lto_streamer_cache_append.
6921         (lto_read_tree): Adjust call to lto_materialize_tree.
6922
6923         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6924         don't use function calls in arguments to MIN.
6925
6926         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6927         twice.
6928
6929         * gimple.c (gimple_type_leader_entry): Mark deletable.
6930
6931 2011-04-03  Alan Modra  <amodra@gmail.com>
6932
6933         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6934
6935 2011-04-03  Michael Matz  <matz@suse.de>
6936
6937         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6938         an integer.
6939         * tree.h (tree_decl_non_common.vindex): Adjust comment.
6940
6941 2011-04-03  Michael Matz  <matz@suse.de>
6942
6943         * cgraphbuild.c (record_reference): Canonicalize constructor values.
6944         * gimple-fold.c (canonicalize_constructor_val): Accept being called
6945         without function context.
6946         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6947         current_function_decl and cfun.
6948
6949 2011-04-03  Michael Matz  <matz@suse.de>
6950
6951         * tree.c (decl_init_priority_insert): Don't create entry for
6952         default priority.
6953         (decl_fini_priority_insert): Ditto.
6954         (fields_compatible_p, find_compatible_field): Remove.
6955         * tree.h (fields_compatible_p, find_compatible_field): Remove.
6956         * gimple.c (gimple_compare_field_offset): Adjust block comment.
6957
6958 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
6959
6960         * combine.c (try_combine): Remove useless local variable.
6961
6962 2011-04-03  Richard Guenther  <rguenther@suse.de>
6963             Ira Rosen  <ira.rosen@linaro.org>
6964
6965         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6966         non-variable offsets and compare the remaining bases of the two
6967         accesses instead of looking for exact same data-ref.
6968
6969 2011-04-02  Kai Tietz  <ktietz@redhat.com>
6970
6971         PR target/48416
6972         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6973
6974         * i386.c (ix86_is_msabi_thiscall): New helper function.
6975         (ix86_is_type_thiscall): New helper function.
6976         (ix86_comp_type_attributes): Handle thiscall for method-functions
6977         special.
6978         (init_cumulative_args): Likewise.
6979         (find_drap_reg): Likewise.
6980         (ix86_static_chain): Likewise.
6981         (x86_this_parameter): Likewise.
6982         (x86_output_mi_thunk): Likewise.
6983
6984 2011-04-01  Olivier Hainque  <hainque@adacore.com>
6985             Nicolas Setton  <setton@adacore.com>
6986             Eric Botcazou  <ebotcazou@adacore.com>
6987
6988         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6989         (add_gnat_descriptive_type_attribute): New function.
6990         (gen_array_type_die): Call it.
6991         (gen_enumeration_type_die): Likewise.
6992         (gen_struct_or_union_type_die): Likewise.
6993         (modified_type_die): Likewise.
6994         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6995         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6996         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6997
6998 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
6999
7000         PR bootstrap/48148
7001         * dwarf2out.c (resolve_addr): Don't call force_decl_die
7002         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7003
7004         Revert:
7005         2011-03-17  Richard Guenther  <rguenther@suse.de>
7006
7007         PR bootstrap/48148
7008         * lto-cgraph.c (input_overwrite_node): Clear the abstract
7009         origin for decls in other ltrans units.
7010         (input_varpool_node): Likewise.
7011
7012 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
7013
7014         PR middle-end/48335
7015         * expr.c (expand_assignment): Handle all possibilities
7016         if TO_RTX is CONCAT.
7017         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
7018         (store_split_bit_field): If SUBREG_REG (op0) or
7019         op0 itself has smaller mode than word, return it
7020         for offset 0 and const0_rtx for out-of-bounds stores.
7021         If word is const0_rtx, skip it.
7022
7023 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
7024
7025         * config/h8300/h8300.c (print_operand_address): Rename to...
7026         (h8300_print_operand_address): ...this. Make static. Adjust comments.
7027         Call h8300_print_operand and h8300_print_operand_address instead of
7028         print_operand and print_operand_address. Declare.
7029         (print_operand): Renake to...
7030         (h8300_print_operand): ...this. Make static. Adjust comments.
7031         Call h8300_print_operand instead of print_operand. Declare.
7032         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7033         (h8300_register_move_cost): Likewise.
7034         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7035         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7036         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7037         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7038         * config/h8300/h8300-protos.h (print_operand): Delete.
7039         (print_operand_address): Delete.
7040
7041 2011-04-01  Richard Henderson  <rth@redhat.com>
7042
7043         PR 48400
7044         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7045         in strict mode before dwarf4.  Re-order tests to early out
7046         before switching sections.
7047
7048 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
7049
7050         * config/h8300/constraints.md: New file.
7051         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
7052         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7053         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7054         * config/h8300/predicates.md (bit_operand): Likewise.
7055         (incdec_operand): Use satisfies_constraint_M and
7056         satisfies_constraint_O.  Don't use C code block.
7057         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7058         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7059         (compute_mov_length): Use satisfies_constraint_G.
7060         (fix_bit_operand): Use satisfies_constraint_U.
7061         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7062         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7063         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7064         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7065         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7066         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7067         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7068         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7069         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7070         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7071         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7072         (EXTRA_MEMORY_CONSTRAINT): Delete.
7073
7074 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
7075             Michael Meissner  <meissner@linux.vnet.ibm.com>
7076
7077         PR target/48262
7078         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7079         operands, as per the specifications.
7080
7081         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7082         (vec_extract_evenv4sf): Ditto.
7083         (vec_extract_evenv8hi): Ditto.
7084         (vec_extract_evenv16qi): Ditto.
7085         (vec_extract_oddv4si): Ditto.
7086
7087 2011-03-31  Mark Wielaard  <mjw@redhat.com>
7088
7089         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7090         high_pc attribute if the CU has no associated code. Only output
7091         DW_AT_entry_pc for CU if not generating strict dwarf and
7092         dwarf_version < 4.
7093
7094 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
7095
7096         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7097         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7098         out of ...
7099         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7100         * final.c (final_start_function): Call the new function rather
7101         than using a NULL argument for dwarf2out_frame_debug.
7102
7103         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7104         that contains the prologue.
7105
7106         * haifa-sched.c (queue_insn): New arg REASON.  All callers
7107         changed.  Print it in debugging output.
7108
7109         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7110
7111         * sched-ebb.c (begin_schedule_ready): Remove second argument.
7112         Split most of the code into...
7113         (begin_move_insn): ... here.  New function.
7114         (ebb_sched_info): Add a pointer to it.
7115         * haifa-sched.c (scheduled_insns): New static variable.
7116         (sched_extend_ready_list): Allocate it.
7117         (schedule_block): Use it to record the order of scheduled insns.
7118         Perform RTL changes to move insns only after all scheduling
7119         decisions have been made.
7120         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
7121         begin_move_insn field.
7122         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7123         * sched-int.h (struct haifa_sched_info): Remove second argument
7124         from begin_schedule_ready hook.  Add new member begin_move_insn.
7125         * sched-rgn.c (begin_schedule_ready): Remove second argument.
7126         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
7127
7128         * haifa-sched.c (prune_ready_list): New function, broken out of
7129         schedule_block.
7130         (schedule_block): Use it.
7131
7132 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7133
7134         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
7135
7136 2011-04-01  Kai Tietz  <ktietz@redhat.com>
7137
7138         * config.gcc (*-*-mingw*): Allow as option the
7139         posix threading model.
7140         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
7141         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
7142         definition.
7143         (CPP_SPEC): Add pthread/no-pthread handling.
7144         (LIB_SPEC): Likewise.
7145         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
7146         (LIB_SPEC): Likewise.
7147         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
7148         flag to pass -pthread option for shared libgcc build.
7149         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
7150         for shared libgcc build.
7151         * config/i386/t-mingw-pthread: New file.
7152         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
7153         New define to enable use of library pthread by default.
7154         * config/i386/mingw.opt (pthread): New driver option.
7155         (no-pthread): New driver option.
7156         * config/i386/cygming.opt: Make sure trailing empty line is retained.
7157         * config/i386/mingw-w64.opt: Likewise.
7158
7159 2011-04-01  Gary Funck  <gary@intrepid.com>
7160
7161         * c-decl.c (grokdeclarator): Fix formatting.
7162
7163 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
7164
7165         * expr.c (emit_block_move_via_movmem): Use n_generator_args
7166         instead of n_operands.
7167         (set_storage_via_setmem): Likewise.
7168         * optabs.c (maybe_gen_insn): Likewise.
7169         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
7170         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
7171         (mips_expand_builtin_direct): Likewise.
7172         * config/spu/spu.c (expand_builtin_args): Likewise.
7173
7174 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
7175
7176         * recog.h (insn_data_d): Add n_generator_args.
7177         * genoutput.c (data): Likewise.
7178         (output_insn_data): Print it.
7179         (max_opno, num_dups): Delete.
7180         (scan_operands): Just fill in "d->operand[...]".
7181         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
7182
7183 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
7184
7185         * gensupport.h (pattern_stats): New structure.
7186         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
7187         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
7188         (max_operand_1, max_operand_vec): Delete.
7189         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
7190
7191 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
7192
7193         * emit-rtl.c (emit_pattern_after_setloc): New function.
7194         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
7195         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
7196         (emit_pattern_after): New function.
7197         (emit_insn_after, emit_jump_insn_after): Call it.
7198         (emit_call_insn_after, emit_debug_insn_after): Likewise.
7199         (emit_pattern_before_setloc): New function.
7200         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
7201         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
7202         Likewise.
7203         (emit_pattern_before): New function.
7204         (emit_insn_before, emit_jump_insn_before): Call it.
7205         (emit_call_insn_before, emit_debug_insn_before): Likewise.
7206
7207 2011-03-31  Richard Henderson  <rth@redhat.com>
7208
7209         * dwarf2out.c (dw_separate_line_info_ref): Remove.
7210         (dw_separate_line_info_entry): Remove.
7211         (enum dw_line_info_opcode): New.
7212         (dw_line_info_entry): Use it.
7213         (dw_line_info_table, dw_line_info_table_p): New.
7214         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
7215         (line_info_table, line_info_label_num): Remove.
7216         (line_info_table_in_use): Remove.
7217         (separate_line_info_table): Remove.
7218         (separate_line_info_table_allocated): Remove.
7219         (separate_line_info_table_in_use): Remove.
7220         (LINE_INFO_TABLE_INCREMENT): Remove.
7221         (line_info_label_num): New.
7222         (cur_line_info_table): New.
7223         (text_section_line_info, cold_text_section_line_info): New.
7224         (separate_line_info): New.
7225         (SEPARATE_LINE_CODE_LABEL): Remove.
7226         (print_dwarf_line_table): Remove.
7227         (debug_dwarf): Don't dump it.
7228         (output_one_line_info_table): New.
7229         (output_line_info): Use it.
7230         (new_line_info_table): New.
7231         (set_cur_line_info_table): New.
7232         (dwarf2out_switch_text_section): Use it.
7233         (dwarf2out_begin_function): Likewise.
7234         (push_dw_line_info_entry): New.
7235         (dwarf2out_source_line): Rewrite for new line info tables.
7236         (dwarf2out_init): Remove dead initailizations.
7237
7238 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7239
7240         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
7241         various flags.
7242         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
7243         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
7244         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
7245         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
7246         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
7247         * opt-functions.awk (flag_init, switch_bit_fields): New.
7248         (switch_flags): Don't handle flags moved to bit-fields.  Don't
7249         generate CL_MISSING_OK or CL_SAVE.
7250         * optc-gen.awk: Update to generate bit-field output as well as
7251         flags field.
7252         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
7253         bit-field instead of CL_REJECT_DRIVER flag.
7254         * opts-common.c (generate_canonical_option,
7255         decode_cmdline_option): Use bit-fields instead of CL_* flags.
7256         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
7257         instead of CL_REJECT_NEGATIVE flag.
7258         * toplev.c (print_switch_values): Use cl_report bit-field instead
7259         of CL_REPORT flag.
7260
7261 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7262
7263         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
7264         a zero minimum index only if it is redundant.
7265
7266 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
7267
7268         PR rtl-optimization/48381
7269         * ira-color.c (assign_hard_reg): Use hard reg set intersection
7270         instead of ira_class_hard_reg_index for calculating conflicting
7271         hard registers.
7272
7273 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
7274
7275         * cprop.c: Clean up hash table building.
7276         (reg_avail_info): Remove.
7277         (oprs_available_p): Remove.
7278         (record_last_reg_set_info): Remove.
7279         (record_last_set_info): Remove.
7280         (reg_available_p): New function.
7281         (gcse_constant_p): Do not treat unfolded conditions as constants.
7282         (make_set_regs_unavailable): New function.
7283         (hash_scan_set): Simplify with new reg_available_p.
7284         (compute_hash_table_work): Traverse insns stream only once.
7285         Do not compute reg_avail_info. Traverse insns in reverse order.
7286         Record implicit sets after recording explicit sets from the block.
7287
7288 2011-03-31  Michael Matz  <matz@suse.de>
7289
7290         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
7291
7292 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
7293
7294         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7295         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7296         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7297         (h8300_mode_dependent_address_p): New function.
7298         (h8300_get_index): Make static.
7299
7300 2011-03-31  Jeff Law  <law@redhat.com>
7301
7302         * reload1.c (elimination_effects): Fix typo in recent change.
7303
7304         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
7305         typo potentially leading to null pointer dereference.
7306
7307         * caller-save.c (new_saved_hard_reg): Eliminate return value.
7308         (setup_save_areas): Corresponding changes to avoid useless
7309         assignments.
7310
7311         * jump.c (reversed_comparison_code_parts): Avoid successive return
7312         statements when REVERSE_CONDITION is defined.
7313
7314         * expr.c (expand_assignment): Avoid useless assignments.
7315         (expand_expr_real_1): Likewise.
7316         (expand_expr_real_2): Avoid useless statements.
7317
7318         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7319
7320         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7321
7322         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7323         statements.
7324
7325         * stmt.c (expand_expr_stmt): Avoid useless assignment.
7326
7327 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
7328
7329         PR target/47109
7330         * doc/tm.texi.in (TARGET_VERSION): Remove.
7331         * doc/tm.texi: Regenerate.
7332         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7333         * collect2.c (main): Don't use TARGET_VERSION.
7334         * mips-tdump.c (main): Don't use TARGET_VERSION.
7335         * mips-tfile.c (main): Don't use TARGET_VERSION.
7336         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
7337         * config/rs6000/vxworksae.h: Remove.
7338         * config/alpha/alpha.h (TARGET_VERSION): Remove.
7339         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7340         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7341         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7342         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7343         * config/arm/arm.h (TARGET_VERSION): Remove.
7344         * config/arm/coff.h (TARGET_VERSION): Remove.
7345         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7346         * config/arm/elf.h (TARGET_VERSION): Remove.
7347         * config/arm/freebsd.h (TARGET_VERSION): Remove.
7348         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7349         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7350         * config/arm/pe.h (TARGET_VERSION): Remove.
7351         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7352         * config/arm/semi.h (TARGET_VERSION): Remove.
7353         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7354         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7355         * config/arm/vxworks.h (TARGET_VERSION): Remove.
7356         * config/avr/avr.h (TARGET_VERSION): Remove.
7357         * config/bfin/bfin.h (TARGET_VERSION): Remove.
7358         * config/fr30/fr30.h (TARGET_VERSION): Remove.
7359         * config/frv/frv.h (TARGET_VERSION): Remove.
7360         * config/h8300/h8300.h (TARGET_VERSION): Remove.
7361         * config/i386/cygwin.h (TARGET_VERSION): Remove.
7362         * config/i386/darwin.h (TARGET_VERSION): Remove.
7363         * config/i386/darwin64.h (TARGET_VERSION): Remove.
7364         * config/i386/djgpp.h (TARGET_VERSION): Remove.
7365         * config/i386/freebsd.h (TARGET_VERSION): Remove.
7366         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7367         * config/i386/gnu.h (TARGET_VERSION): Remove.
7368         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7369         * config/i386/i386elf.h (TARGET_VERSION): Remove.
7370         * config/i386/linux.h (TARGET_VERSION): Remove.
7371         * config/i386/linux64.h (TARGET_VERSION): Remove.
7372         * config/i386/lynx.h (TARGET_VERSION): Remove.
7373         * config/i386/mingw32.h (TARGET_VERSION): Remove.
7374         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7375         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7376         * config/i386/netware.h (TARGET_VERSION): Remove.
7377         * config/i386/nto.h (TARGET_VERSION): Remove.
7378         * config/i386/openbsd.h (TARGET_VERSION): Remove.
7379         * config/i386/vxworks.h (TARGET_VERSION): Remove.
7380         * config/ia64/elf.h (TARGET_VERSION): Remove.
7381         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7382         * config/ia64/hpux.h (TARGET_VERSION): Remove.
7383         * config/ia64/linux.h (TARGET_VERSION): Remove.
7384         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7385         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7386         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7387         * config/lm32/lm32.h (TARGET_VERSION): Remove.
7388         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7389         * config/m32c/m32c.h (TARGET_VERSION): Remove.
7390         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7391         * config/m32r/m32r.h (TARGET_VERSION): Remove.
7392         * config/m68k/linux.h (TARGET_VERSION): Remove.
7393         * config/m68k/m68k.h (TARGET_VERSION): Remove.
7394         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7395         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7396         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7397         * config/mep/mep.h (TARGET_VERSION): Remove.
7398         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7399         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7400         * config/mips/iris6.h (MACHINE_TYPE): Remove.
7401         * config/mips/linux.h (TARGET_VERSION): Remove.
7402         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7403         * config/mips/vxworks.h (TARGET_VERSION): Remove.
7404         * config/mmix/mmix.h (TARGET_VERSION): Remove.
7405         * config/mn10300/linux.h (TARGET_VERSION): Remove.
7406         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7407         * config/pa/pa.h (TARGET_VERSION): Remove.
7408         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7409         * config/picochip/picochip.h (TARGET_VERSION): Remove.
7410         * config/rs6000/aix.h (TARGET_VERSION): Remove.
7411         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7412         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7413         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7414         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7415         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7416         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7417         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7418         * config/rs6000/linux.h (TARGET_VERSION): Remove.
7419         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7420         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7421         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7422         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7423         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7424         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7425         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7426         * config/s390/linux.h (TARGET_VERSION): Remove.
7427         * config/s390/s390.h (TARGET_VERSION): Remove.
7428         * config/s390/tpf.h (TARGET_VERSION): Remove.
7429         * config/score/score.h (TARGET_VERSION): Remove.
7430         * config/sh/linux.h (TARGET_VERSION): Remove.
7431         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7432         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7433         * config/sh/sh.h (TARGET_VERSION): Remove.
7434         * config/sh/sh64.h (TARGET_VERSION): Remove.
7435         * config/sh/superh.h (TARGET_VERSION): Remove.
7436         * config/sh/vxworks.h (TARGET_VERSION): Remove.
7437         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7438         * config/sparc/linux.h (TARGET_VERSION): Remove.
7439         * config/sparc/linux64.h (TARGET_VERSION): Remove.
7440         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7441         TARGET_NAME32, TARGET_NAME): Remove.
7442         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7443         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7444         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7445         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7446         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7447         * config/spu/spu.h (TARGET_VERSION): Remove.
7448         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7449         * config/v850/v850.h (TARGET_VERSION): Remove.
7450         * config/vax/linux.h (TARGET_VERSION): Remove.
7451         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7452         * config/xtensa/elf.h (TARGET_VERSION): Remove.
7453         * config/xtensa/linux.h (TARGET_VERSION): Remove.
7454
7455 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7456
7457         PR target/48142
7458         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7459         frame-related from frame-unrelated adjustments to the stack pointer.
7460
7461 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
7462
7463         * common.opt (fdebug-types-section): Move earlier.
7464         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7465
7466 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
7467
7468         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7469         var.
7470
7471 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
7472
7473         * tree.h (CASE_CHAIN): Define.
7474         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7475         (gimple_redirect_edge_and_branch): Likewise.
7476
7477 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7478
7479         PR middle-end/48367
7480         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7481         calculation.
7482
7483 2011-03-30  Jeff Law  <law@redhat.com>
7484
7485         * PR bootstrap/48371
7486         * reload1.c (reload): Fix botch in last change.
7487
7488         * reload.h (struct reload): Fix typo introduced in last change.
7489
7490 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7491
7492         * config/arm/arm.opt (mhard-float, msoft-float): Mark
7493         Undocumented.  Remove help text.
7494         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7495         -mhard-float.
7496
7497 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7498
7499         * doc/options.texi (NegativeAlias): Document.
7500         (Alias): Mention NegativeAlias.
7501         * opt-functions.awk: Handle NegativeAlias.
7502         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
7503         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7504         * opts.h (CL_NEGATIVE_ALIAS): Define.
7505         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7506         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7507         OPT_mspe_.
7508         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7509         Alias entries.
7510         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7511         mno-spe and mno-isel instead of mspe=no and -misel=no.
7512
7513 2011-03-29  Mark Wielaard  <mjw@redhat.com>
7514
7515         * common.opt (fdebug-types-section): New flag.
7516         * doc/invoke.texi: Document new -fno-debug-types-section flag.
7517         * dwarf2out.c (use_debug_types): New define.
7518         (struct die_struct): Mark die_id with GTY desc use_debug_types.
7519         (print_die): Guard output of type unit signatures using
7520         use_debug_types.
7521         (build_abbrev_table): Replace assert of dwarf_version >= 4
7522         with assert on use_debug_types.
7523         (size_of_die): Likewise.
7524         (unmark_dies): Likewise.
7525         (value_format): Decide AT_ref_external form on use_debug_types.
7526         (output_die): Replace dwarf_version version check guard with
7527         use_debug_types where appropriate.
7528         (modified_type_die): Likewise.
7529         (gen_reference_type_die): Likewise.
7530         (dwarf2out_start_source_file): Likewise.
7531         (dwarf2out_end_source_file): Likewise.
7532         (prune_unused_types_walk_attribs): Likewise.
7533         (dwarf2out_finish): Likewise.
7534
7535 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7536
7537         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7538
7539 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7540
7541         PR rtl-optimization/48332
7542         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7543         mode of input operand N and modeN to its actual mode.
7544
7545 2011-03-30  Jeff Law  <law@redhat.com>
7546
7547         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7548         define accessor macro.
7549         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7550         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7551         (reg_equiv_init): Likewise.
7552         (reg_equivs_size): New variable.
7553         (reg_equiv_init_size): Remove.
7554         (allocate_initial_values): Move prototype to here from....
7555         * integrate.h (allocate_initial_values): Remove prototype.
7556         * integrate.c: Include reload.h.
7557         (allocate_initial_values): Corresponding changes.
7558         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7559         (fix_reg_equiv_init, no_equiv): Corresponding changes.
7560         (update_equiv_regs): Corresponding changes.
7561         (ira): Corresponding changes.
7562         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7563         (push_secondary_reload): Corresponding changes.
7564         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7565         (make_memloc, find_reloads_address): Corresponding changes.
7566         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7567         (find_reloads_address_1): Corresponding changes.
7568         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7569         (refers_to_regno_for_reload_p): Corresponding changes.
7570         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7571         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7572         * reload1.c: Include ggc.h.
7573         (grow_reg_equivs): New function.
7574         (replace_pseudos_in, reload): Corresponding changes.
7575         (calculate_needs_all_insns, alter_regs): Corresponding changes.
7576         (eliminate_regs_1, elimination_effects): Corresponding changes.
7577         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7578         (delete_output_reload): Likewise.
7579         * caller-save.c (mark_referenced_regs): Corresponding changes.
7580         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7581         * frv/predicates.md (frv_load_operand): Corresponding changes.
7582         * microblaze/microblaze.c (double_memory_operand): Corresponding
7583         changes.
7584         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7585         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
7586         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
7587         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7588         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7589         changes.
7590         * pa/pa.c (emit_move_sequence): Corresponding changes.
7591         * vax/vax.c (nonindexed_address_p): Corresponding changes.
7592
7593 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7594
7595         PR target/47551
7596         * config/arm/arm.c (coproc_secondary_reload_class): Handle
7597         structure modes.  Don't check neon_vector_mem_operand for
7598         vector or structure modes.
7599
7600 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
7601             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7602
7603         PR target/43590
7604         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7605         operand 1 and reshuffle the operands to match.
7606         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7607
7608 2011-03-30  Christian Schüler  <cschueler@gmx.de>
7609
7610         PR driver/48208
7611         * config/c.opt (F): Added 'Driver' to -F option.
7612
7613         PR driver/48260
7614         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7615           handler function.
7616         * config/darwin.opt: Added '-arch' option.
7617
7618 2011-03-30  Nick Clifton  <nickc@redhat.com>
7619
7620         * config/rx/rx.md: Add peepholes and patterns to combine
7621         extending loads and simple arithmetic instructions.
7622         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
7623         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7624         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
7625         modes to use pre-decrement and post-increment addressing.
7626         (rx_is_restricted_memory_address): Add range checking of REG+INT
7627         addresses.
7628         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
7629         (rx_memory_move_cost): Adjust cost of stores.
7630         (rx_adjust_insn_length): New function.
7631
7632 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
7633
7634         PR c/48305
7635         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7636         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7637         matching arg00/arg01 types.
7638
7639 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7640
7641         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7642         last_location to UNKNOWN_LOCATION.
7643
7644 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7645
7646         PR target/48349
7647         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7648         FLOAT_SSE_REGS.
7649
7650 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
7651             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7652
7653         PR bootstrap/48337
7654         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7655         Init(PROCESSOR_V7).
7656         (sparc_cpu): Likewise.
7657         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7658         PROCESSOR_V7.
7659
7660 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7661
7662         PR target/48336
7663         PR middle-end/48342
7664         PR rtl-optimization/48345
7665         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7666         hard regs for given mode from profitable regs when doing secondary
7667         allocation.
7668
7669 2011-03-29  Jeff Law  <law@redhat.com>
7670
7671         PR bootstrap/48327
7672         * tree-ssa-threadupdate.c (struct redirection_data): Remove
7673         do_not_duplicate field.
7674         (lookup_redirection_data): Corresponding changes.
7675         (create_duplicates): Always create a template block.
7676         (redirect_edges): Remove code which reused the original block
7677         when it was going to become unreachable code.
7678         (thread_block): Don't set do_not_duplicate field.
7679
7680 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
7681
7682         * lto-opts.c (register_user_option_p, lto_register_user_option):
7683         Make type argument unsigned.
7684         * lto-streamer.h (lto_register_user_option): Make type argument
7685         unsigned.
7686         * opth-gen.awk: Make CL_* macros unsigned.
7687         * opts-common.c (find_opt): Make lang_mask argument unsigned.
7688         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7689         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7690         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7691         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7692         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7693         (find_opt): Make lang_mask argument unsigned.
7694
7695 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7696
7697         PR rtl-optimization/48331
7698         PR rtl-optimization/48334
7699         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7700         for any used algorithm.
7701
7702 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7703
7704         * ira-conflicts.c (build_object_conflicts): Add unused attribute
7705         to parent_max.
7706
7707 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
7708
7709         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7710         (alpha_option_override): Don't set alpha_sr_alias_set.
7711         (emit_frame_store_1): Use gen_frame_mem rather than calling
7712         set_mem_alias_set.
7713         (alpha_expand_epilogue): Ditto.
7714
7715 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
7716
7717         PR tree-optimization/48290
7718         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7719         vectorization, check that relevant phis in the basic block after
7720         the inner loop are really inner loop's exit phis.
7721
7722 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
7723
7724         PR debug/48190
7725         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7726         (cached_dw_loc_list_def): New structure.
7727         (cached_dw_loc_list): New typedef.
7728         (cached_dw_loc_list_table): New variable.
7729         (cached_dw_loc_list_table_hash): New function.
7730         (cached_dw_loc_list_table_eq): Likewise.
7731         (add_location_or_const_value_attribute): Take a bool cache_p.
7732         Cache the list when the parameter is true.
7733         (gen_formal_parameter_die): Update caller.
7734         (gen_variable_die): Likewise.
7735         (dwarf2out_finish): Likewise.
7736         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7737         while generating debug info for the decl.
7738         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7739         (dwarf2out_init): Initialize cached_dw_loc_list_table.
7740         (resolve_addr): Cache the result of resolving a chain of
7741         location lists.
7742
7743 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7744
7745         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7746         conflict object hard regset nodes have intersecting hard reg sets.
7747
7748         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7749         after regstat_init_n_sets_and_refs.
7750
7751         * ira.c: Add more comments at the top.
7752         (setup_stack_reg_pressure_class, setup_pressure_classes):
7753         Add comments how we compute the register pressure classes.
7754         (setup_allocno_and_important_classes): Add more comments.
7755         (setup_class_translate_array, reorder_important_classes)
7756         (setup_reg_class_relations): Add comments.
7757
7758         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
7759         start of the file.
7760
7761         * ira-color.c: Add 2011 to the Copyright line.
7762         (assign_hard_reg):  Add more comments.
7763         (improve_allocation): Ditto.
7764
7765         * ira-costs.c: Add 2011 to the Copyright line.
7766         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7767         comments.
7768         (setup_regno_cost_classes_by_mode): Ditto.
7769
7770         Initial patches from ira-improv branch:
7771
7772         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7773
7774         * ira-build.c (ira_create_object): Remove initialization of
7775         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
7776         (ira_create_allocno): Remove initialization of
7777         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
7778         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
7779         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7780         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
7781         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
7782         Initialize ALLOCNO_ADD_DATA.
7783         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
7784         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
7785         ALLOCNO_REG.
7786         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
7787         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
7788
7789         * ira.c (ira_reallocate): Remove.
7790         (setup_pressure_classes): Call
7791         ira_init_register_move_cost_if_necessary.  Use
7792         ira_register_move_cost instead of ira_get_register_move_cost.
7793         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
7794         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
7795
7796         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
7797         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
7798         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
7799         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
7800         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
7801         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
7802         Fix formatting.
7803         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
7804         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7805         (struct allocno_color_data): New.
7806         (allocno_color_data_t): New typedef.
7807         (allocno_color_data): New definition.
7808         (ALLOCNO_COLOR_DATA): New macro.
7809         (struct object_color_data): New.
7810         (object_color_data_t): New typedef.
7811         (object_color_data): New definition.
7812         (OBJECT_COLOR_DATA): New macro.
7813         (update_copy_costs, calculate_allocno_spill_cost): Call
7814         ira_init_register_move_cost_if_necessary.  Use
7815         ira_register_move_cost instead of ira_get_register_move_cost.
7816         (move_spill_restore, update_curr_costs): Ditto.
7817         (allocno_spill_priority): Make it inline.
7818         (color_pass): Allocate and free allocno_color_dat and object_color_data.
7819         (struct coalesce_data, coalesce_data_t): New.
7820         (allocno_coalesce_data): New definition.
7821         (ALLOCNO_COALESCE_DATA): New macro.
7822         (merge_allocnos, coalesced_allocno_conflict_p): Use
7823         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7824         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7825         (coalesce_allocnos): Ditto.
7826         (setup_coalesced_allocno_costs_and_nums): Ditto.
7827         (collect_spilled_coalesced_allocnos): Ditto.
7828         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7829         (setup_slot_coalesced_allocno_live_ranges): Ditto.
7830         (coalesce_spill_slots): Ditto.
7831         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
7832         free allocno_coalesce_data.
7833
7834         * ira-conflicts.c: Fix formatting.
7835         (process_regs_for_copy): Call
7836         ira_init_register_move_cost_if_necessary.  Use
7837         ira_register_move_cost instead of ira_get_register_move_cost.
7838         (build_object_conflicts): Optimize.
7839
7840         * ira-costs.c (record_reg_classes): Optimize.  Call
7841         ira_init_register_move_cost_if_necessary.  Use
7842         ira_register_move_cost, ira_may_move_in_cost, and
7843         ira_may_move_out_cost instead of ira_get_register_move_cost and
7844         ira_get_may_move_cost.
7845         (record_address_regs): Ditto.
7846         (scan_one_insn): Optimize.
7847         (find_costs_and_classes): Optimize.
7848         (process_bb_node_for_hard_reg_moves): Call
7849         ira_init_register_move_cost_if_necessary.  Use
7850         ira_register_move_cost instead of ira_get_register_move_cost.
7851
7852         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7853         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7854         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7855         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7856         definitions.
7857         (ira_initiate_emit_data, ira_finish_emit_data)
7858         (create_new_allocno): New functions.
7859         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
7860         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7861         Use ira_register_move_cost instead of ira_get_register_move_cost.
7862
7863         * ira-int.h: Fix some comments.
7864         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7865         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
7866         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7867         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
7868         add_data.
7869         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
7870         bitfield after mode.  Make hard_regno a short int.  Make
7871         hard_regno short.  Remove first_coalesced_allocno and
7872         next_coalesced_allocno.  Move mem_optimized_dest_p,
7873         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7874         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
7875         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7876         temp, colorable_p.  Add new member add_data.
7877         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7878         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7879         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7880         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7881         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7882         (ALLOCNO_ADD_DATA): New macro.
7883         (ira_emit_data_t): New typedef.
7884         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
7885         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7886         from struct ira_allocno.
7887         (ALLOCNO_EMIT_DATA): New macro.
7888         (ira_allocno_emit_data, allocno_emit_reg): New.
7889         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7890         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
7891         (OBJECT_ADD_DATA): New macro.
7892         (ira_reallocate): Remove.
7893         (ira_initiate_emit_data, ira_finish_emit_data): New.
7894         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7895         (ira_init_register_move_cost_if_necessary): New.
7896         (ira_object_conflict_iter_next): Merge into
7897         ira_object_conflict_iter_cond.
7898         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
7899
7900         * ira-live.c (process_single_reg_class_operands): Call
7901         ira_init_register_move_cost_if_necessary.  Use
7902         ira_register_move_cost instead of ira_get_register_move_cost.
7903
7904         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
7905
7906         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7907
7908         * ira-costs.c: Fix formatting.
7909         (cost_classes, cost_classes_num): Remove.
7910         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7911         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7912         (cost_classes_del, cost_classes_htab): New.
7913         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7914         (initiate_regno_cost_classes, setup_cost_classes): New.
7915         (setup_regno_cost_classes_by_aclass): New.
7916         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
7917         (record_reg_classes): Use regno_cost_classes instead of
7918         cost_classes.  Move checking opposite operand up.
7919         (record_address_regs): Use regno_cost_classes
7920         instead of cost_classes.
7921         (scan_one_insn): Ditto.  Use always general register.
7922         (print_allocno_costs): Use regno_cost_classes instead of
7923         cost_classes.
7924         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
7925         (find_costs_and_classes): Set up cost classes for each registers.
7926         Use also their mode for this.  Use regno_cost_classes instead of
7927         cost_classes.
7928         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7929         cost_classes.
7930         (free_ira_costs, ira_init_costs): Don't use cost_classes.
7931         (ira_costs, ira_set_pseudo_classes): Call
7932         initiate_regno_cost_classes and finish_regno_cost_classes.
7933
7934         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7935
7936         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7937
7938         * target.def (ira_cover_classes): Remove.
7939
7940         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
7941
7942         * doc/tm.texi.in: Ditto.
7943
7944         * ira-conflicts.c: Remove mentioning cover classes from the file.
7945         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
7946         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
7947
7948         * targhooks.c (default_ira_cover_classes): Remove.
7949
7950         * targhooks.h (default_ira_cover_classes): Ditto.
7951
7952         * haifa-sched.c: Remove mentioning cover classes from the file.
7953         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7954         ira_pressure_classes and ira_pressure_classes_num instead of
7955         ira_reg_class_cover_size and ira_reg_class_cover.  Use
7956         sched_regno_pressure_class instead of sched_regno_cover_class.
7957         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7958         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7959
7960         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
7961         classes from the file.
7962         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7963         (struct object_hard_regs, struct object_hard_regs_node): New.
7964         (struct ira_object): New members profitable_hard_regs,
7965         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7966         (struct ira_allocno): Rename cover_class to aclass.  Rename
7967         cover_class_cost and updated_cover_class_cost to class_cost and
7968         updated_class_cost.  Remove splay_removed_p and
7969         left_conflict_size.  Add new members colorable_p.
7970         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7971         (ALLOCNO_COLORABLE_P): New macro.
7972         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7973         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7974         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7975         (OBJECT_...): Rename parameter C to O.
7976         (OBJECT_PROFITABLE_HARD_REGS): New macro.
7977         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7978         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7979         (struct target_ira_int): New members x_ira_max_memory_move_cost,
7980         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7981         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7982         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7983         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
7984         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
7985         x_ira_reg_class_subunion.
7986         (ira_max_memory_move_cost, ira_max_register_move_cost)
7987         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7988         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7989         (ira_important_class_nums, ira_reg_class_superunion): New macros.
7990         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
7991         (ira_reg_class_union): Rename to ira_reg_class_subunion.
7992         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7993         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7994         (ira_tune_allocno_costs_and_cover_classes): Rename to
7995         ira_tune_allocno_costs.
7996         (ira_debug_hard_regs_forest): New.
7997         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7998         (ira_object_conflict_iter_next): Fix comments.
7999         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
8000         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8001         cover_class to aclass.
8002         (ira_allocate_and_accumulate_costs): Ditto.
8003         (ira_allocate_and_set_or_copy_costs): Ditto.
8004
8005         * opts.c (decode_options): Remove ira_cover_class check.
8006
8007         * ira-color.c: Remove mentioning cover classes from the file.  Use
8008         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8009         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8010         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8011         (splay-tree.h): Remove include.
8012         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8013         before copy_freq_compare_func.
8014         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8015         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8016         New definitions.
8017         (hard_regs_roots, hard_regs_node_vec): Ditto.
8018         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8019         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8020         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8021         (create_new_object_hard_regs_node): Ditto.
8022         (add_new_object_hard_regs_node_to_forest): Ditto.
8023         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
8024         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8025         Ditto.
8026         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8027         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8028         (remove_unused_object_hard_regs_nodes): Ditto.
8029         (enumerate_object_hard_regs_nodes): Ditto.
8030         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8031         (object_hard_regs_subnode_t): Ditto.
8032         (struct object_hard_regs_subnode): Ditto.
8033         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8034         (setup_object_hard_regs_subnode_index): Ditto.
8035         (get_object_hard_regs_subnodes_num): Ditto.
8036         (form_object_hard_regs_nodes_forest): Ditto.
8037         (finish_object_hard_regs_nodes_tree): Ditto.
8038         (finish_object_hard_regs_nodes_forest): Ditto.
8039         (allocnos_have_intersected_live_ranges_p): Rename to
8040         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8041         (pseudos_have_intersected_live_ranges_p): Rename to
8042         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
8043         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8044         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8045         (update_copy_costs): Remove assert.  Skip cost update if the hard
8046         reg does not belong the class.
8047         (assign_hard_reg): Process only profitable hard regs.
8048         (uncolorable_allocnos_num): Make it scalar.
8049         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8050         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8051         and ira_reg_class_max_nregs.
8052         (bucket_allocno_compare_func): Check frequency first.
8053         (sort_bucket): Add compare function as a parameter.
8054         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8055         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8056         (push_allocno_to_stack): Rewrite for checking new allocno
8057         colorability.
8058         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
8059         (push_only_colorable): Pass new parameter to sort_bucket.
8060         (push_allocno_to_spill): Remove.
8061         (allocno_spill_priority_compare): Make it inline and rewrite.
8062         (splay_tree_allocate, splay_tree_free): Remove.
8063         (allocno_spill_sort_compare): New function.
8064         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
8065         build and use splay tree.  Choose first allocno in uncolorable
8066         allocno bucket to spill.  Remove setting spill cost.
8067         (all_conflicting_hard_regs): Remove.
8068         (setup_allocno_available_regs_num): Check only profitable hard
8069         regs.  Print info about hard regs nodes.
8070         (setup_allocno_left_conflicts_size): Remove.
8071         (put_allocno_into_bucket): Don't call
8072         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
8073         (improve_allocation): New.
8074         (color_allocnos): Call setup_profitable_hard_regs,
8075         form_object_hard_regs_nodes_forest, improve_allocation,
8076         finish_object_hard_regs_nodes_forest.  Setup spill cost.
8077         (print_loop_title): Use pressure classes.
8078         (color_allocnso): Ditto.
8079         (do_coloring): Remove allocation and freeing splay_tree_node_pool
8080         and allocnos_for_spilling.
8081         (ira_sort_regnos_for_alter_reg): Don't setup members
8082         {first,next}_coalesced_allocno.
8083         (color): Remove allocating and freeing removed_splay_allocno_vec.
8084         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8085         prohibited_class_mode_regs.
8086
8087         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
8088         formatting.
8089         (update_allocno_pressure_excess_length): Use pressure classes.
8090         (inc_register_pressure, dec_register_pressure): Check for pressure
8091         class.
8092         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8093         pressure class.  Use ira_reg_class_nregs instead of
8094         ira_reg_class_max_nregs.
8095         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8096         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8097         (single_reg_class): Use ira_reg_class_nregs instead of
8098         ira_reg_class_max_nregs.
8099         (process_bb_node_lives): Use pressure classes.
8100
8101         * ira-emit.c: Remove mentioning cover classes from the file.  Use
8102         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8103         (change_loop): Use pressure classes.
8104         (modify_move_list): Call ira_set_allocno_class instead of
8105         ira_set_allocno_cover_class.
8106
8107         * ira-build.c: Remove mentioning cover classes from the file.  Use
8108         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8109         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
8110         ALLOCNO_UPDATED_CLASS_COST instead of
8111         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
8112         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8113         (ira_create_allocno): Remove initialization of
8114         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
8115         ALLOCNO_COLORABLE_P.
8116         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8117         Update conflict regs for the objects.
8118         (create_cap_allocno): Remove assert.  Don't propagate
8119         ALLOCNO_AVAILABLE_REGS_NUM.
8120         (ira_free_allocno_costs): New function.
8121         (finish_allocno): Change a part of code into call of
8122         ira_free_allocno_costs.
8123         (low_pressure_loop_node_p): Use pressure classes.
8124         (object_range_compare_func): Don't compare classes.
8125         (setup_min_max_conflict_allocno_ids): Ditto.
8126
8127         * loop-invariant.c: Remove mentioning cover classes from the file.
8128         Use ira_pressure_classes and ira_pressure_classes_num instead of
8129         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
8130         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
8131         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8132         Use reg_allocno_class instead of reg_cover_class.
8133         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
8134         STACK_REG_COVER_CLASS.
8135         (get_regno_cover_class): Rename to get_regno_pressure_class.
8136         (move_loop_invariants): Initialize and finalize regstat.
8137
8138         * ira.c: Remove mentioning cover classes from the file.  Add
8139         comments about coloring without cover classes.  Use ALLOCNO_CLASS
8140         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
8141         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
8142         setup_class_subset_and_memory_move_costs.
8143         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
8144         (setup_cover_and_important_classes): Rename to
8145         setup_allocno_and_important_classes.
8146         (setup_class_translate_array): New.
8147         (setup_class_translate): Call it for allocno and pressure classes.
8148         (cover_class_order): Rename to allocno_class_order.
8149         (comp_reg_classes_func): Use ira_allocno_class_translate instead
8150         of ira_class_translate.
8151         (reorder_important_classes): Set up ira_important_class_nums.
8152         (setup_reg_class_relations): Set up ira_reg_class_superunion.
8153         (print_class_cover): Rename to print_classes.  Add parameter.
8154         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8155         Print pressure classes too.
8156         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
8157         setup_reg_subclasses.
8158         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
8159         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8160         (setup_prohibited_class_mode_regs): Use
8161         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
8162         (clarify_prohibited_class_mode_regs): New function.
8163         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
8164         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
8165         (ira_init_once): Initialize them.
8166         (free_register_move_costs): Process them.
8167         (ira_init): Move calls of find_reg_classes and
8168         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
8169         Call clarify_prohibited_class_mode_regs.
8170         (ira_no_alloc_reg): Remove.
8171         (too_high_register_pressure_p): Use pressure classes.
8172
8173         * sched-deps.c: Remove mentioning cover classes from the file.
8174         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
8175         ira_pressure_classes and ira_pressure_classes_num instead of
8176         ira_reg_class_cover_size and ira_reg_class_cover.
8177         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
8178         sched_regno_pressure_class instead of sched_regno_cover_class.
8179         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
8180         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8181
8182         * ira.h: Add 2010 to Copyright.
8183         (ira_no_alloc_reg): Remove external.
8184         (struct target_ira): Rename x_ira_hard_regno_cover_class,
8185         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
8186         x_ira_class_translate to x_ira_hard_regno_allocno_class,
8187         x_ira_allocno_classes_num, x_ira_allocno_classes, and
8188         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
8189         x_ira_pressure_classes, x_ira_pressure_class_translate, and
8190         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
8191         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
8192         x_ira_no_alloc_regs.
8193         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
8194         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
8195         ira_allocno_classes_num and ira_allocno_classes.
8196         (ira_class_translate): Rename to ira_allocno_class_translate.
8197         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
8198         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
8199         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8200         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
8201         (ira_no_alloc_regs): New.
8202
8203         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
8204         classes from the file.  Use ALLOCNO_CLASS instead of
8205         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
8206         ALLOCNO_COVER_CLASS_COST.
8207         (regno_cover_class): Rename to regno_aclass.
8208         (record_reg_classes): Use ira_reg_class_subunion instead of
8209         ira_reg_class_union.
8210         (record_address_regs): Check overflow.
8211         (scan_one_insn): Ditto.
8212         (print_allocno_costs): Print total mem cost fore regional allocation.
8213         (print_pseudo_costs): Use REG_N_REFS.
8214         (find_costs_and_classes): Use classes intersected with them on the
8215         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
8216         ira_reg_class_union.  Use ira_allocno_class_translate and
8217         regno_aclass instead of ira_class_translate and regno_cover_class.
8218         Modify code for finding regno_aclass.  Setup preferred classes for
8219         the next pass.
8220         (setup_allocno_cover_class_and_costs): Rename to
8221         setup_allocno_class_and_costs.  Use regno_aclass instead of
8222         regno_cover_class.  Use ira_set_allocno_class instead of
8223         ira_set_allocno_cover_class.
8224         (init_costs, finish_costs): Use regno_aclass instead of
8225         regno_cover_class.
8226         (ira_costs): Use setup_allocno_class_and_costs instead of
8227         setup_allocno_cover_class_and_costs.
8228         (ira_tune_allocno_costs_and_cover_classes): Rename to
8229         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
8230         by processing objects.  Use ira_reg_class_max_nregs instead of
8231         ira_reg_class_nregs.
8232
8233         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
8234
8235         * sched-int.h: Remove mentioning cover classes from the file.
8236         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
8237
8238         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
8239         classes from the file.
8240         (struct reg_pref): Rename coverclass into allocnoclass.
8241         (reg_cover_class): Rename to reg_allocno_class.
8242
8243         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
8244
8245         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
8246
8247         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8248
8249         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
8250
8251         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
8252
8253         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
8254
8255         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
8256
8257         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
8258
8259         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
8260
8261         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
8262
8263         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
8264         (i386_ira_cover_classes): Ditto.
8265
8266         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8267
8268         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
8269
8270         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
8271
8272         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
8273
8274         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
8275
8276         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
8277
8278         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
8279         (mips_ira_cover_classes): Ditto.
8280
8281         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
8282
8283         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
8284
8285         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
8286
8287         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
8288
8289         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8290
8291         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8292         (IRA_COVER_CLASSES_VSX): Ditto.
8293
8294         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8295         (rs6000_ira_cover_classes): Ditto.
8296
8297         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8298
8299         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8300
8301         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8302
8303         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8304
8305         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8306
8307         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8308
8309         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8310
8311         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8312
8313         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8314
8315         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8316
8317 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
8318
8319         PR debug/48253
8320         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8321         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8322         dw_fde_unlikely_section_end_label, cold_in_std_section,
8323         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8324         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8325         fields.
8326         (output_fde): Use dw_fde_second_{begin,end} if second is
8327         true, otherwise dw_fde_{begin,end}.
8328         (output_call_frame_info): Test dw_fde_second_begin != NULL
8329         instead of dw_fde_switched_sections.
8330         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8331         fields, initialize new fields.  Initialize in_std_section
8332         unconditionally from the first partition.
8333         (dwarf2out_end_epilogue): Don't override dw_fde_end when
8334         dw_fde_second_begin is non-NULL.
8335         (dwarf2out_switch_text_section): Stop initializing removed
8336         dw_fde_struct fields, initialize new fields, initialize
8337         also dw_fde_end here.  Set dw_fde_switch_cfi even when
8338         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
8339         (struct var_loc_list_def): Add last_before_switch field.
8340         (arange_table, arange_table_allocated, arange_table_in_use,
8341         ARANGE_TABLE_INCREMENT, add_arange): Removed.
8342         (size_of_aranges): Count !in_std_section and !second_in_std_section
8343         hunks in fdes, instead of looking at arange_table_in_use.
8344         (output_aranges): Add aranges_length argument, don't call
8345         size_of_aranges here.  Instead of using aranges_table*
8346         emit ranges for fdes when !in_std_section resp.
8347         !second_in_std_section.
8348         (dw_loc_list): Break ranges crossing section switch.
8349         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
8350         use dw_fde_second_end instead of dw_fde_end as end of last range.
8351         (gen_subprogram_die): Don't call add_arange.  Use
8352         dw_fde_{begin,end} for first partition and if switched
8353         section dw_fde_second_{begin,end} for the second.
8354         (var_location_switch_text_section_1,
8355         var_location_switch_text_section): New functions.
8356         (dwarf2out_begin_function): Initialize cold_text_section even
8357         when function_section () isn't text_section.
8358         (prune_unused_types): Don't walk arange_table.
8359         (dwarf2out_finish): Don't needlessly test
8360         flag_reorder_blocks_and_partition when testing cold_text_section_used.
8361         If info_section_emitted, call size_of_aranges and if it indicates
8362         non-empty .debug_aranges, call output_aranges with the computed
8363         size.  Stop using removed dw_fde_struct fields, use
8364         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8365         for second.
8366
8367         PR debug/48203
8368         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8369         create ENTRY_VALUE if incoming or address of incoming's MEM
8370         is a hard REG.
8371         * dwarf2out.c (mem_loc_descriptor): Don't emit
8372         DW_OP_GNU_entry_value of DW_OP_fbreg.
8373         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8374         on ENTRY_VALUE is able to find the canonical parameter VALUE.
8375         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8376         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8377         ENTRY_VALUE_EXPs.
8378         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8379         is a REG_P or MEM_P with REG_P address, compute hash directly
8380         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8381         (preserve_only_constants): Don't clear VALUES forwaring
8382         ENTRY_VALUE to some other VALUE.
8383
8384 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
8385
8386         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8387         instead of GEN_INT.
8388
8389 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8390
8391         * cfgexpand.c (expand_gimple_cond): Always set the source location and
8392         block before expanding the statement.
8393         (expand_gimple_stmt_1): Likewise.  Set them here...
8394         (expand_gimple_stmt): ...and not here.  Tidy.
8395         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8396         unknown.
8397
8398 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8399
8400         * Makefile.in: New rule for cprop.o.
8401         * gcse.c: Move constant/copy propagation to cprop.c.
8402         (compute_local_properties): Only handle expression tables.
8403         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8404         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8405         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8406         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
8407         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
8408         compute_cprop_data, find_used_regs, try_replace_reg,
8409         find_avail_set, cprop_jump, constprop_register, cprop_insn,
8410         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8411         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8412         find_bypass_set, reg_killed_on_edge, bypass_block,
8413         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8414         execute_rtl_cprop, pass_rtl_cprop): Move to...
8415         * cprop.c: ...here.  New file, constant/copy propagation for RTL
8416         moved from gcse.c to here with minor cleanups in duplicated code.
8417
8418 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
8419
8420         * config/i386/i386.c (flag_opts): Fix a typo in
8421         -mavx256-split-unaligned-store.
8422
8423 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8424
8425         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8426         LIBCALL_VALUE): Remove macros.
8427         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8428         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8429         (h8300_function_value, h8300_libcall_value,
8430         h8300_function_value_regno_p): New functions.
8431
8432 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
8433
8434         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8435
8436 2011-03-28  Jeff Law  <law@redhat.com>
8437
8438         * tree-ssa-threadupdate.c (redirect_edges): Call
8439         create_edge_and_update_destination_phis as needed.
8440         (create_edge_and_update_destination_phis): Accept new BB argument.
8441         All callers updated.
8442         (thread_block): Do not update the profile when threading around
8443         intermediate blocks.
8444         (thread_single_edge): Likewise.
8445         (determine_bb_domination_status): If BB is not a successor of the
8446         loop header, return NONDOMINATING.
8447         (register_jump_thread): Note when we register a jump thread around
8448         an intermediate block.
8449         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8450         (thread_across_edge): Use it.
8451
8452 2011-03-28  Tristan Gingold  <gingold@adacore.com>
8453
8454         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8455         when for_return is 2.
8456
8457 2011-03-28  Jeff Law  <law@redhat.com>
8458
8459         * var-tracking.c (canonicalize_values_mark): Delete unused
8460         lhs assignment.
8461         (canonicalize_values_star, set_variable_part): Likewise.
8462         (clobber_variable_part, delete_variable_part): Likewise.
8463
8464 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8465
8466         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8467
8468 2011-03-28  Martin Jambor  <mjambor@suse.cz>
8469
8470         * tree-inline.c (expand_call_inline): Do not check that destination
8471         node is analyzed.
8472         (optimize_inline_calls): Assert that destination node is analyzed.
8473         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8474         not call tree_lowering_passes.
8475         * cgraph.h (cgraph_analyze_function): Declare.
8476         * cgraphunit.c (cgraph_analyze_function): Make public.
8477
8478 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
8479
8480         * config/sparc/sparc-opts.h: New.
8481         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8482         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8483         (sparc_option_override): Store processor_type enumeration rather
8484         than string in cpu_default.  Remove name and enumeration from
8485         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
8486         without using sparc_select.  Use target_flags_explicit instead of
8487         fpu_option_set.
8488         * config/sparc/sparc.h (enum processor_type): Move to
8489         sparc-opts.h.
8490         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8491         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8492         HeaderInclude entry.
8493         (mcpu=, mtune=): Use Var and Enum.
8494         (sparc_processor_type): New Enum and EnumValue entries.
8495
8496 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8497             Iain Sandoe  <iains@gcc.gnu.org>
8498
8499         PR target/48245
8500         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8501
8502 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8503
8504         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8505         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8506         Insert new statements at it in lieu of STMT.
8507         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8508         * tree-vect-stmts.c (vectorizable_store): Likewise.
8509         (vectorizable_load): Likewise.
8510
8511 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
8512
8513         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8514         (divtf3): Ditto.
8515         (multf3): Ditto.
8516         (subtf3): Ditto.
8517
8518 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8519
8520         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8521         unaligned 256bit load/store.
8522         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8523         (*avx_movdqu<avxmodesuffix>): Likewise.
8524
8525 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8526
8527         PR target/48288
8528         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8529         * config/pa/pa.md (iordi3): Use new predicate in expander.
8530         (iorsi3): Likewise.
8531
8532 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
8533
8534         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
8535         FUNCTION_VALUE_REGNO_P): Remove macros.
8536         * config/mips/mips-protos.h (mips_function_value): Remove.
8537         * config/mips/mips.c (mips_function_value): Rename to...
8538         (mips_function_value_1): ... this. Make static.  Handle receiving
8539         the function type in 'fn_decl_or_type' argument.
8540         (mips_function_value, mips_libcall_value,
8541         mips_function_value_regno_p): New function.
8542         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8543         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8544
8545 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8546
8547         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8548         and -mavx256-split-unaligned-store.
8549         (ix86_option_override_internal): Split 32-byte AVX unaligned
8550         load/store by default.
8551         (ix86_avx256_split_vector_move_misalign): New.
8552         (ix86_expand_vector_move_misalign): Use it.
8553
8554         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8555         -mavx256-split-unaligned-store.
8556
8557         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8558         256bit load/store.  Generate unaligned store on misaligned memory
8559         operand.
8560         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8561         256bit load/store.
8562         (*avx_movdqu<avxmodesuffix>): Likewise.
8563
8564         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8565         -mavx256-split-unaligned-store.
8566
8567 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8568
8569         PR target/38598
8570         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8571         Update commentary.
8572
8573 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
8574
8575         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8576         opno arguments with an expand_operand.  Use create_input_operand.
8577         (mips_prepare_builtin_target): Delete.
8578         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8579         functions.
8580         (mips_expand_builtin_direct): Use create_output_operand and
8581         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
8582         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
8583         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8584
8585 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
8586
8587         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8588         function.
8589         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8590
8591 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
8592
8593         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8594         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
8595         basic blocks and call commit_edge_insertions directly.
8596         (fixup_abnormal_edges): Move from here to...
8597         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
8598         on the edges and return whether some have actually been inserted.
8599         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8600         compensation code.
8601
8602 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
8603
8604         PR rtl-optimization/48144
8605         * sel-sched-ir.c (merge_history_vect): Factor out from ...
8606         (merge_expr_data): ... here.
8607         (av_set_intersect): Rename to av_set_code_motion_filter.
8608         Update all callers.  Call merge_history_vect when an expression
8609         is found in both sets.
8610         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8611
8612 2011-03-26  Alan Modra  <amodra@gmail.com>
8613
8614         * config/rs6000/predicates.md (word_offset_memref_op): Handle
8615         cmodel medium addresses.
8616         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8617         64-bit gpr loads and stores.
8618         (rs6000_secondary_reload_ppc64): New function.
8619         * config/rs6000/rs6000-protos.h: Declare it.
8620         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8621
8622 2011-03-26  Alan Modra  <amodra@gmail.com>
8623
8624         PR target/47487
8625         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8626         GNU Go in traceback table.
8627
8628 2011-03-25  Richard Henderson  <rth@redhat.com>
8629
8630         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8631         if there are exactly 6 operands.
8632         (set_storage_via_setmem): Similarly.
8633
8634 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8635
8636         * collect2.c (write_c_file_stat): Handle backslash
8637         as right-hand directory separator.
8638         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8639         checking just for slash.
8640         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8641         instead of checking for trailing slash.
8642         * gcc.c (record_temp_file): Use filename_cmp instead
8643         of strcmp.
8644         (do_spec_1): Likewise.
8645         (replace_outfile_spec_function): Likewise.
8646         (is_directory): Use filename_ncmp instead of strncmp.
8647         (print_multilib_info): Likewise.
8648         * gcov.c (find_source): Use filename_cmp instead
8649         instead of strcmp.
8650         (make_gcov_file_name): Fix order of slash/backslash
8651         checks.
8652         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8653         (add_standard_paths): Likewise.
8654         * mips-tfile.c (saber_stop): Handle backslash.
8655         * prefix.c (update_path): Use filename_ncmp instead of
8656         strncmp.
8657         * profile.c (output_location): Use filename_cmp instead
8658         of strcmp.
8659         * read-md.c (handle_toplevel_file): Handle backslash.
8660         * tlink.c (frob_extension):  Likewise.
8661         * tree-cfg.c (same_line_p): Use filename_cmp instead of
8662         strcmp.
8663         * tree-dump.c (dequeue_and_dump): Handle backslash.
8664         * tree.c (get_file_function_name): Likewise.
8665         * gengtype.c (read_input_list): Likewise.
8666         (get_file_realbasename): Likewise.
8667         (get_output_file_with_visibility): Use filename_cmp
8668         instead of strcmp.
8669
8670 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
8671
8672         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8673         case to VFPv1.
8674
8675 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8676
8677         * fold-const.c (expr_location_or): New function.
8678         (fold_truth_not_expr): Call it.
8679
8680 2011-03-25  Jeff Law  <law@redhat.com>
8681
8682         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8683         va_end.
8684         * c-family/c-common.c (def_fn_type): Likewise.
8685         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8686         * emit-rtl.c (gen_rtvec): Likewise.
8687         * lto/lto-lang.c (def_fn_type): Likewise.
8688
8689 2011-03-25  Richard Guenther  <rguenther@suse.de>
8690
8691         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8692         also generate copies.
8693         (fini_copy_prop): Handle constant values properly.
8694
8695 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
8696
8697         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8698         mode size instead of bitsize with DWARF2_ADDR_SIZE.
8699         (hash_loc_operands, compare_loc_operands): Handle
8700         DW_OP_GNU_entry_value.
8701
8702 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8703
8704         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8705         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8706         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8707         comment and use macro TARGET_64BIT_MS_ABI instead.
8708         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8709         and change default behavior for 32-bit MS_ABI.
8710         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8711         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8712         32-bit, too.
8713         (ix86_cfun_abi): Likewise.
8714         (ix86_maybe_switch_abi): Adjust comment.
8715         (init_cumulative_args): Check for bit-ness in MS_ABI case.
8716         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8717         instead of checking for SYSV_ABI.
8718         (ix86_nsaved_sseregs): Likewise.
8719         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8720         to 16 bytes.
8721         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8722         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8723         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8724         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8725         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8726
8727 2011-03-25  Richard Guenther  <rguenther@suse.de>
8728
8729         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8730         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8731         (verify_gimple): Remove.
8732         * tree-cfg.c (verify_gimple_call): Merge verification
8733         from verify_stmts.
8734         (verify_gimple_phi): Merge verification from verify_stmts.
8735         (verify_gimple_label): New function.
8736         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8737         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8738         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8739         (verify_stmts): Rename to verify_gimple_in_cfg.
8740         (verify_gimple_in_cfg): New function.
8741         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8742         * tree-ssa.c (verify_ssa): Likewise.
8743         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8744
8745 2011-03-25  Richard Guenther  <rguenther@suse.de>
8746
8747         * passes.c (init_optimization_passes): Add FRE pass after
8748         early SRA.
8749
8750 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
8751             Andrew Stubbs  <ams@codesourcery.com>
8752
8753         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8754         for Cortex-A8.
8755         (arm_movdi_vfp_cortexa8): New pattern.
8756         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8757         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8758         instructions when tuning for Cortex-A8.  Set attribute "arch".
8759         * config/arm/arm.md: Move include arm-tune.md up a bit.
8760         (define_attr "arch"): Add "onlya8" and "nota8" values.
8761         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8762
8763 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
8764
8765         PR bootstrap/48282
8766         Revert:
8767         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8768
8769         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8770         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8771         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8772         * passes.c (init_optimization_passes): Move
8773         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8774
8775 2011-03-25  Kai Tietz  <ktietz@redhat.com>
8776
8777         * c-typeck.c (comptypes_internal): Replace target
8778         hook call of comp_type_attributes by version in tree.c file.
8779         * gimple.c (gimple_types_compatible_p_1): Likewise.
8780         * tree-ssa.c (useless_type_conversion_p): Likewise.
8781         * tree.c (build_type_attribute_qual_variant): Likewise.
8782         (attribute_value_equal): New static helper function.
8783         (comp_type_attributes): New function.
8784         (merge_attributes): Use attribute_value_equal for comparison.
8785         (attribute_list_contained): Likewise.
8786         * tree.h (comp_type_attributes): New prototype.
8787
8788 2011-03-25  Richard Guenther  <rguenther@suse.de>
8789
8790         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
8791         of complex types at -O0.
8792         (verify_gimple_assign_binary): Likewise.
8793         (verify_gimple_assign_ternary): Likewise.
8794
8795 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8796
8797         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
8798         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
8799
8800 2011-03-24  Mark Wielaard  <mjw@redhat.com>
8801
8802         PR debug/48041
8803         * dwarf2out.c (output_abbrev_section): Only write table when
8804         abbrev_die_table_in_use > 1.
8805
8806 2011-02-24  Richard Henderson  <rth@redhat.com>
8807
8808         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
8809         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
8810         (alpha_expand_unaligned_load_words): Use extql.
8811         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
8812         (emit_insxl): Handle all modes for consistency.
8813
8814 2011-02-24  Richard Henderson  <rth@redhat.com>
8815
8816         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8817         (alpha_expand_unaligned_load): Likewise.
8818         (alpha_expand_unaligned_store): Likewise.
8819         (alpha_expand_unaligned_load_words): Likewise.
8820         (alpha_expand_unaligned_store_words): Likewise.
8821         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8822         (alpha_split_lock_test_and_set_12): Likewise.
8823         (print_operand, alpha_fold_builtin_extxx): Likewise.
8824         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8825         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8826         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8827         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8828         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8829         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8830         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8831         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8832         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8833         (extwl, extll, extql): Similarly.
8834         (inswh, inslh, insqh): Similarly.
8835         (mskbl, mskwl, mskll, mskql): Similarly.
8836         (mskwh, msklh, mskqh): Similarly.
8837
8838 2011-02-24  Richard Henderson  <rth@redhat.com>
8839
8840         * config/alpha/alpha.md (attribute isa): Add er, ner.
8841         (attribute enabled): Handle them.
8842         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8843
8844 2011-02-24  Richard Henderson  <rth@redhat.com>
8845
8846         * config/alpha/alpha.md (attribute isa): Add vms.
8847         (attribute enabled): Handle it.
8848         (*movsf): Merge *movsf_{nofix,fix,nofp}.
8849         (*movdf): Merge *movdf_{nofix,fix,nofp}.
8850         (*movtf): Rename from *movtf_internal for consistency.
8851         (*movsi): Merge with *movsi_nt_vms.
8852         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8853         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8854         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8855         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8856
8857 2011-02-24  Richard Henderson  <rth@redhat.com>
8858
8859         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8860         (extendqisi2, extendhisi2): Likewise.
8861         (extendqidi2): Simplify BWX/non-BWX expansions.
8862         (extendhidi2): Similarly.
8863
8864 2011-02-24  Richard Henderson  <rth@redhat.com>
8865
8866         * config/alpha/alpha.md (attribute isa): New.
8867         (attribute enabled): New.
8868         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8869         (zero_extendqisi2, zero_extendqidi2): Similarly.
8870         (zero_extendhisi2, zero_extendhidi2): Similarly.
8871         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8872
8873 2011-02-24  Richard Henderson  <rth@redhat.com>
8874
8875         * config/alpha/predicates.md (input_operand): Revert last change;
8876         update comment to mention 32-bit VMS rather than Windows.
8877
8878 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8879
8880         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8881         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
8882         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8883         * passes.c (init_optimization_passes): Move
8884         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8885
8886 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8887
8888         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8889
8890 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8891
8892         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8893         correctly.
8894
8895 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
8896
8897         PR debug/48204
8898         * simplify-rtx.c (simplify_const_unary_operation): Call
8899         real_convert when changing mode class with FLOAT_EXTEND.
8900
8901 2011-03-24  Nick Clifton  <nickc@redhat.com>
8902
8903         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8904         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8905         * config/rx/rx.c (rx_option_override): Set align_jumps,
8906         align_loops and align_labels if not set by the user.
8907         (rx_align_for_label): New function.
8908         (rx_max_skip_for_label): New function.
8909         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8910         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8911         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8912         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8913         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8914
8915 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8916
8917         PR rtl-optimization/48263
8918         * optabs.c (expand_binop_directly): Reinstate convert_modes code
8919         and original commutative_p handling.  Use maybe_gen_insn.
8920
8921 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8922
8923         * reload.c (find_reloads_subreg_address): Add address_reloaded
8924         parameter and return true there if the full address has been
8925         reloaded.
8926         (find_reloads_toplev): Pass address_reloaded flag.
8927         (find_reloads_address_1): Don't use address_reloaded parameter.
8928
8929 2011-03-24  Jeff Law  <law@redhat.com>
8930
8931         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8932         unused variable "ann".
8933         (remove_unused_locals): Likewise.
8934
8935         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8936         statement.
8937
8938         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8939         after it is freed.
8940
8941 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8942
8943         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8944         for invalid symbolic addresses.
8945         (s390_secondary_reload): Don't use s390_check_symref_alignment for
8946         larl operands.
8947
8948 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8949
8950         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8951         the argument in calls to fold_truth_not_expr.
8952
8953 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8954
8955         * tree.c (record_node_allocation_statistics): New function.
8956         (make_node_stat, copy_node_stat, build_string): Call it.
8957         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8958         (build1_stat, build_omp_clause): Likewise.
8959
8960 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8961
8962         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8963         last commit.
8964
8965 2011-03-24  Richard Guenther  <rguenther@suse.de>
8966
8967         PR tree-optimization/48271
8968         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8969         blocks that still exist.
8970
8971 2011-03-24  Richard Guenther  <rguenther@suse.de>
8972
8973         PR tree-optimization/48270
8974         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8975         not free datarefs before ddrs.
8976
8977 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
8978
8979         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8980         from the address built for a reference with variable offset.
8981
8982 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
8983
8984         PR target/48237
8985         * config/i386/i386.md (*movdf_internal_rex64): Do not split
8986         alternatives that can be handled with movq or movabsq insn.
8987         (*movdf_internal): Disable for !TARGET_64BIT.
8988         (*movdf_internal_nointeger): Ditto.
8989         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8990
8991 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
8992
8993         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8994         (FUNCTION_ARG_ADVANCE): Likewise.
8995         * tm.texi.in: Change references to them to hook references.
8996         * tm.texi: Regenerate.
8997         * targhooks.c (default_function_arg): Eliminate check for target macro.
8998         (default_function_incoming_arg): Likewise.
8999         (default_function_arg_advance): Likewise.
9000         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9001         (function_arg_advance): Likewise.
9002         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9003
9004 2011-03-24  Richard Guenther  <rguenther@suse.de>
9005
9006         PR middle-end/48269
9007         * tree-object-size.c (addr_object_size): Do not double-account
9008         for MEM_REF offsets.
9009
9010 2011-03-24  Diego Novillo  <dnovillo@google.com>
9011
9012         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
9013         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
9014         (lto_input_data_block): Move from lto-opts.c.  Make extern.
9015         Update all users.
9016         (lto_input_string): Rename from input_string.  Make extern.
9017         Update all users.
9018         * lto-streamer-out.c (lto_output_string_with_length): Rename from
9019         output_string_with_length.
9020         Output 0 to indicate a non-NULL string.  Update all callers to
9021         not emit 0.
9022         (lto_output_string): Rename from output_string.  Make extern.
9023         Update all users.
9024         (lto_output_decl_state_streams): Make extern.
9025         (lto_output_decl_state_refs): Make extern.
9026         * lto-streamer.h (lto_input_string): Declare.
9027         (lto_input_data_block): Declare.
9028         (lto_output_string): Declare.
9029         (lto_output_string_with_length): Declare.
9030         (lto_output_decl_state_streams): Declare.
9031         (lto_output_decl_state_refs): Declare.
9032
9033 2011-03-24  Richard Guenther  <rguenther@suse.de>
9034
9035         PR tree-optimization/46562
9036         * tree.c (build_invariant_address): New function.
9037         * tree.h (build_invariant_address): Declare.
9038         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9039         a renamed function moved ...
9040         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9041         Take valueization callback parameter.
9042         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9043         * gimple-fold.h: New file.
9044         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9045         (ccp_fold, fold_const_aggregate_ref,
9046         fold_ctor_reference, fold_nonarray_ctor_reference,
9047         fold_array_ctor_reference, fold_string_cst_ctor_reference,
9048         get_base_constructor): Move ...
9049         * gimple-fold.c: ... here.
9050         (gimple_fold_stmt_to_constant_1): New function
9051         split out from ccp_fold.  Take a valueization callback parameter.
9052         Valueize all operands.
9053         (gimple_fold_stmt_to_constant): New wrapper function.
9054         (fold_const_aggregate_ref_1): New function split out from
9055         fold_const_aggregate_ref.  Take a valueization callback parameter.
9056         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9057         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9058         invariant POINTER_PLUS_EXPRs to invariant form.
9059         (vn_valueize): New function.
9060         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9061         * tree-vrp.c (vrp_valueize): New function.
9062         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9063         to fold statements to constants.
9064         * tree-ssa-pre.c (eliminate): Properly guard propagation of
9065         function declarations.
9066         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9067         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9068
9069 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
9070
9071         * config/h8300/predicates.md (jump_address_operand): Fix register
9072         mode check.
9073
9074 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
9075
9076         * doc/invoke.texi (max-stores-to-sink): Document.
9077         * params.h (MAX_STORES_TO_SINK): Define.
9078         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9079         if either vectorization or if-conversion is disabled.
9080         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9081         tree-vect-data-refs.c vect_equal_offsets.
9082         (dr_equal_offsets_p): New function.
9083         (find_data_references_in_bb): Remove static.
9084         * tree-data-ref.h (find_data_references_in_bb): Declare.
9085         (dr_equal_offsets_p): Likewise.
9086         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9087         (vect_drs_dependent_in_basic_block): Update calls to
9088         vect_equal_offsets.
9089         (vect_check_interleaving): Likewise.
9090         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9091         (cond_if_else_store_replacement): Rename to...
9092         (cond_if_else_store_replacement_1): ... this.  Change arguments and
9093         documentation.
9094         (cond_if_else_store_replacement): New function.
9095         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9096         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9097
9098 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
9099
9100         PR target/46934
9101         * config/arm/arm.md (casesi): Use the gen_int_mode() function
9102         to subtract lower bound instead of GEN_INT().
9103
9104 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
9105
9106         PR other/48179
9107         PR other/48221
9108         PR other/48234
9109         * doc/extend.texi (Alignment): Move section to match order in TOC.
9110         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9111         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9112
9113 2011-03-23  Jeff Law  <law@redhat.com>
9114
9115         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9116         before removing the edge.
9117
9118         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
9119         it may have been freed by redirect_branch_edge or
9120         redirect_edge_succ_nodup.
9121
9122 2011-03-23  Richard Guenther  <rguenther@suse.de>
9123
9124         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
9125         (check_va_list_escapes): Likewise.
9126         (check_all_va_list_escapes): Likewise.
9127
9128 2011-03-23  Richard Guenther  <rguenther@suse.de>
9129
9130         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
9131         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
9132         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
9133         (alias.o): Likewise.
9134         (ipa-type-escape.o): Remove.
9135         (ipa-struct-reorg.o): Likewise.
9136         (GTFILES): Remove ipa-struct-reorg.c.
9137         * alias.c: Do not include ipa-type-escape.h.
9138         * tree-ssa-alias.c: Likewise.
9139         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
9140         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
9141         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
9142         and ipa-type-escape passes.
9143         * tree-pass.h (pass_ipa_type_escape): Remove.
9144         (pass_ipa_struct_reorg): Likewise.
9145         * ipa-struct-reorg.h: Remove.
9146         * ipa-struct-reorg.c: Likewise.
9147         * ipa-type-escape.h: Likewise.
9148         * ipa-type-escape.c: Likewise.
9149         * doc/invoke.texi (-fipa-struct-reorg): Remove.
9150         (--param struct-reorg-cold-struct-ratio): Likewise.
9151         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9152         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9153         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
9154
9155 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9156
9157         * config/s390/2084.md: Enable all insn reservations also for z9_ec
9158         cpu attribute value.
9159         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
9160         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
9161         * config/s390/s390.c (processor_flags_table): New constant array.
9162         (s390_handle_arch_option): Remove.
9163         (s390_handle_option): Remove s390_handle_arch_option invocations
9164         and OPT_mwarn_framesize_ handling.
9165         (s390_option_override): Remove s390_handle_arch_option invocation.
9166         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
9167         warnings.
9168         * config/s390/s390.md (cpu attribute): Add z9_ec value.
9169         * config/s390/s390.opt (s390_tune, s390_arch)
9170         (march=): Replace s390_arch_option enum and values with
9171         processor_type.  Set variable name to s390_arch.  Set
9172         initialization value.
9173         (mtune=): Replace s390_arch_option with processor_type.  Set
9174         variable name to s390_tune.  Set initialization value.
9175
9176 2011-03-23  Julian Brown  <julian@codesourcery.com>
9177
9178         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
9179         accesses which are not naturally aligned.
9180
9181 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
9182
9183         PR target/47553
9184         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
9185
9186 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
9187
9188         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
9189         parameter from "int" to "enum insn_code".
9190         (expand_operand_type): New enum.
9191         (expand_operand): New structure.
9192         (create_expand_operand): New function.
9193         (create_fixed_operand, create_output_operand): Likewise
9194         (create_input_operand, create_convert_operand_to): Likewise.
9195         (create_convert_operand_from, create_address_operand): Likewise.
9196         (create_integer_operand): Likewise.
9197         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
9198         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9199         (expand_insn, expand_jump_insn): Likewise.
9200         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
9201         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
9202         (expand_movstr, expand_builtin___clear_cache): Likewise.
9203         (expand_builtin_lock_release): Likewise.
9204         * explow.c (allocate_dynamic_stack_space): Likewise.
9205         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
9206         and use the default handling in that case.
9207         * expmed.c (check_predicate_volatile_ok): Delete.
9208         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
9209         (emit_cstore): Likewise.
9210         * expr.c (emit_block_move_via_movmem): Likewise.
9211         (set_storage_via_setmem, expand_assignment): Likewise.
9212         (emit_storent_insn, try_casesi): Likewise.
9213         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
9214         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
9215         (expand_vec_shift_expr, expand_binop_directly): Likewise.
9216         (expand_twoval_unop, expand_twoval_binop): Likewise.
9217         (expand_unop_direct, emit_indirect_jump): Likewise.
9218         (emit_conditional_move, vector_compare_rtx): Likewise.
9219         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
9220         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
9221         (expand_sync_lock_test_and_set): Likewise.
9222         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
9223         (emit_unop_insn): Likewise.
9224         (expand_copysign_absneg): Change icode to an insn_code.
9225         (create_convert_operand_from_type): New function.
9226         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
9227         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9228         (expand_insn, expand_jump_insn): Likewise.
9229         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
9230         than const_int_operand for operand 2.
9231
9232 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9233
9234         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
9235         if possible.
9236
9237 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9238
9239         * emit-rtl.c (emit_pattern_before_noloc): New function.
9240         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
9241         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
9242         (emit_pattern_after_noloc): New function.
9243         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
9244         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
9245
9246 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9247
9248         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
9249         (__ffsDI2): Likewise.
9250
9251 2011-03-22  Richard Henderson  <rth@redhat.com>
9252
9253         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
9254         of !TARGET_ABI_OPEN_VMS.
9255         (alpha_trampoline_init, alpha_start_function): Likewise.
9256         (alpha_expand_epilogue, alpha_file_start): Likewise.
9257         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
9258         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
9259         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
9260         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
9261         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
9262
9263 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9264
9265         * config/s390/s390-opts.h: New.
9266         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
9267         s390_arch_flags, s390_warn_framesize, s390_stack_size,
9268         s390_stack_guard): Remove.
9269         (s390_handle_arch_option): Return void.  Take enum
9270         s390_arch_option value instead of string and searching array.
9271         (s390_handle_option): Don't assert that global structures are in
9272         use.  Access variables via opts pointer.  Use error_at.  Don't use
9273         sscanf for -mstack-guard= or -mstack-size=.  Update call to
9274         s390_handle_arch_option.
9275         (s390_option_override): Update call to s390_handle_arch_option.
9276         (s390_emit_prologue): Use %d format for s390_stack_size in
9277         diagnostic.  Use %wd for HOST_WIDE_INT.
9278         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
9279         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
9280         * config/s390/s390.opt (config/s390/s390-opts.h): New
9281         HeaderInclude entry.
9282         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
9283         s390_arch_flags, s390_warn_framesize): New Variable entries.
9284         (s390_arch_option): New Enum and EnumValue entries.
9285         (march=): Use Enum instead of Var.
9286         (mstack-guard=, mstack-size=): Use UInteger and Var.
9287         (mtune=): Use Enum.
9288
9289 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9290
9291         * config/score/score.c (score_handle_option): Don't assert that
9292         global structures are in use.  Access target_flags via opts
9293         pointer.  Use value of -march= option to determine target_flags
9294         settings.
9295         * config/score/score.opt (march=): Use Enum.
9296         (score_arch): New Enum and EnumValue entries.
9297
9298 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9299
9300         * config/mep/mep.c (option_mtiny_specified): Remove.
9301         (mep_option_override): Move register handling for -mivc2 from
9302         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
9303         instead of option_mtiny_specified.
9304         (mep_handle_option): Access target_flags via opts pointer.  Don't
9305         assert that global structures are in use.  Defer part of -mivc2
9306         handling and move it to mep_option_override.
9307         * config/mep/mep.opt (IVC2): New Mask entry.
9308         (mivc2): Use Var and Defer instead of Mask.
9309
9310 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9311
9312         * config/v850/v850-opts.h: New.
9313         * config/v850/v850.c (small_memory): Replace with
9314         small_memory_physical_max array.  Make that array static const.
9315         (v850_handle_memory_option): Take integer value of argument.  Take
9316         gcc_options pointer, option text and location.  Return void.
9317         Update for changes to small memory structures.
9318         (v850_handle_option): Access target_flags via opts pointer.  Don't
9319         assert that global structures are in use.  Update calls to
9320         v850_handle_memory_option.
9321         (v850_encode_data_area): Update references to small memory settings.
9322         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
9323         (enum small_memory_type): Move to v850-opts.h.
9324         * config/v850/v850.opt (config/v850/v850-opts.h): New
9325         HeaderInclude entry.
9326         (small_memory_max): New Variable entry.
9327         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
9328         (mtda, mzda): Likewise.
9329
9330 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9331
9332         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9333         pointer.  Don't assert that global structures are in use.
9334
9335 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9336
9337         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9338         via opts pointer.  Don't assert that global structures are in use.
9339
9340 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9341
9342         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9343         (munix=93): Use Var.
9344         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9345         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9346         * config/pa/pa-opts.h: New.
9347         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9348         (pa_handle_option): Don't assert that global structures are in
9349         use.  Access target_flags via opts pointer.  Don't handle
9350         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9351         OPT_munix_98 here.
9352         (pa_option_override): Handle deferred OPT_mfixed_range_.
9353
9354 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9355
9356         * config/mn10300/mn10300-opts.h: New.
9357         * config/mn10300/mn10300.c (mn10300_processor,
9358         mn10300_tune_string): Remove.
9359         (mn10300_handle_option): Don't assert that global structures are
9360         in use.  Access mn10300_processor via opts pointer.  Don't handle
9361         OPT_mtune_ here.
9362         * config/mn10300/mn10300.h (enum processor_type): Move to
9363         mn10300-opts.h.
9364         (mn10300_processor): Remove.
9365         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9366         HeaderInclude entry.
9367         (mn10300_processor): New Variable entry.
9368         (mtune=): Use Var.
9369
9370 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9371
9372         * config/microblaze/microblaze.c: Don't include opts.h.
9373         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9374         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9375         (mno-clearbss): Use Var and Warn.
9376
9377 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9378
9379         * config/m32r/m32r-opts.h: New.
9380         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9381         (m32r_handle_option): Don't assert that global structures are in
9382         use.  Access target_flags and m32r_cache_flush_func via opts
9383         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
9384         OPT_mno_flush_trap here.
9385         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9386         include of m32r-opts.h.
9387         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9388         HeaderInclude entry.
9389         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9390         (mmodel=): Use Enum and Var.
9391         (m32r_model): New Enum and EnumValue entries.
9392         (mno-flush-trap): Use Var.
9393         (msdata=): Use Enum and Var.
9394         (m32r_sdata): New Enum and EnumValue entries.
9395
9396 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9397
9398         * config/m32c/m32c.c: Don't include opts.h.
9399         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9400         m32c_handle_option): Remove.
9401         (m32c_option_override): Check global_options_set.x_target_memregs
9402         instead of target_memregs_set.
9403         * config/m32c/m32c.h (target_memregs): Remove.
9404         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9405         variable.
9406
9407 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9408
9409         * config/iq2000/iq2000-opts.h: New.
9410         * config/iq2000/iq2000.c: Don't include opts.h.
9411         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
9412         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
9413         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9414         HeaderInclude entry.
9415         (iq2000_tune): New Variable entry.
9416         (march=): Add comment.  Use Enum.
9417         (iq2000_arch): New Enum and EnumValue entries.
9418         (mcpu=): Use Enum and Var.
9419         (iq2000_tune): New Enum and EnumValue entries.
9420
9421 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9422
9423         * config/ia64/ia64-opts.h: New.
9424         * config/ia64/ia64.c (ia64_tune): Remove.
9425         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9426         here.  Use error_at.
9427         (ia64_option_override): Handle deferred OPT_mfixed_range_.
9428         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9429         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9430         HeaderInclude entry.
9431         (ia64_tune): New Variable entry.
9432         (mfixed-range=): Use Defer and Var.
9433         (mtune=): Use Enum and Var.
9434         (ia64_tune): New Enum and EnumValue entries.
9435
9436 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9437
9438         * config/frv/frv-opts.h: New.
9439         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9440         frv-opts.h.
9441         (frv_cpu_type): Remove.
9442         * config/frv/frv.c: Don't include opts.h.
9443         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
9444         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
9445         (frv_cpu_type): New Variable entry.
9446         (frv_cpu): New Enum and EnumValue entries.
9447
9448 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9449
9450         * config/cris/cris.c (cris_handle_option): Access target_flags via
9451         opts pointer.  Don't assert that global structures are in use.
9452         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9453         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9454
9455 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9456
9457         * config/bfin/bfin-opts.h: New.
9458         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9459         bfin_si_revision, bfin_workarounds): Remove.
9460         (bfin_cpus): Make static const.
9461         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9462         not bfin_lib_id_given.
9463         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
9464         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
9465         pointer. Use error_at.  Don't assert that global structures are in use.
9466         * config/bfin/bfin.h: Include bfin-opts.h.
9467         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9468         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9469         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9470         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9471         entries.
9472
9473 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9474
9475         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9476         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9477         or -msoft-float here.
9478         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9479         -msoft-float and -mhard-float.
9480         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
9481         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9482         msoft-float.
9483         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9484         -msoft-float.
9485         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9486         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9487         not mhard-float.
9488         (LIBGCC_SPEC): Don't handle -msoft-float.
9489         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9490         -mhard-float.
9491         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9492         msoft-float.
9493         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9494         -mfloat-abi=*, not -msoft-float and -mhard-float.
9495         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9496         -msoft-float.
9497         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9498         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9499         mhard-float and msoft-float.
9500         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9501         mfloat-abi=soft in comments, not mhard-float and msoft-float.
9502         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9503         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9504         mhard-float.
9505         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9506         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9507         msoft-float.
9508         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9509         not mhard-float.
9510         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9511         not msoft-float.
9512
9513 2011-03-22  Richard Henderson  <rth@redhat.com>
9514
9515         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9516         TARGET_ABI_WINDOWS_NT.
9517         (alpha_output_function_end_prologue): Likewise.
9518         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9519         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9520         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9521         (trap, *movsi_nt_vms): Likewise.
9522         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9523         (*tablejump_osf_nt_internal): Remove.
9524         * config/alpha/predicates.md (input_operand): Only test Pmode.
9525
9526 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9527
9528         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9529         via opts pointer.  Use error_at.  Don't assert that global
9530         structures are in use.
9531
9532 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9533
9534         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9535         (ix86_handle_option): Access ix86_isa_flags and
9536         ix86_isa_flags_explicit via opts pointer.  Don't assert that
9537         global structures are in use.
9538         (ix86_function_specific_save, ix86_function_specific_restore):
9539         Update ix86_isa_flags_explicit field name.
9540         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
9541         (ix86_isa_flags_explicit): Rename TargetSave entry to
9542         x_ix86_isa_flags_explicit.
9543
9544 2011-03-22  Richard Henderson  <rth@redhat.com>
9545
9546         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9547         (alpha_option_override, direct_return): Likewise.
9548         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9549         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9550         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9551         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9552         (alpha_expand_epilogue, alpha_end_function): Likewise.
9553         (alpha_init_libfuncs): Likewise.
9554         (struct machine_function): Remove unicosmk members.
9555         (print_operand) ['t']: Remove.
9556         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9557         unicosmk_output_module_name, unicosmk_output_common,
9558         current_section_align, unicosmk_output_text_section_asm_op,
9559         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9560         unicosmk_section_type_flags, unicosmk_unique_section,
9561         unicosmk_asm_named_section, unicosmk_insert_attributes,
9562         unicosmk_output_align, unicosmk_defer_case_vector,
9563         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9564         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9565         unicosmk_output_ssib, unicosmk_add_call_info_word,
9566         unicosmk_extern_head, unicosmk_output_default_externs,
9567         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9568         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9569         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9570         * config/alpha/alpha-protos.h: Update.
9571         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9572         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9573         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9574         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9575         (*mulsi_se, mulvsi3): Likewise.
9576         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9577         (*divmodsi_internal, call, call_value, realign): Likewise.
9578         (moddi3, umoddi3): Likewise; remove duplicate expander.
9579         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9580         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9581         (*movdi_nofix): Remove r/U alternative.
9582         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9583         * config/alpha/constraints.md ("U"): Remove.
9584         * config/alpha/predicates.md (call_operand"): Don't test
9585         TARGET_ABI_UNICOSMK.
9586
9587 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9588
9589         * target.def (handle_option): Take gcc_options and
9590         cl_decoded_option pointers and location_t.
9591         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9592         * doc/tm.texi: Regenerate.
9593         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9594         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9595         * lto-opts.c (lto_reissue_options): Generate option structure for
9596         targetm.handle_option call.
9597         * opts.c (target_handle_option): Update call to
9598         targetm.handle_option.  Remove assertions about values now passed
9599         down to hook.
9600         * targhooks.c (default_target_handle_option): New.
9601         * targhooks.h (default_target_handle_option): Declare.
9602         * config/alpha/alpha.c: Include opts.h.
9603         (alpha_handle_option): Update to new hook interface.
9604         * config/arm/arm.c: Include opts.h.
9605         (arm_handle_option): Update to new hook interface.
9606         * config/arm/t-arm (arm.o): Update dependencies.
9607         * config/bfin/bfin.c: Include opts.h.
9608         (bfin_handle_option): Update to new hook interface.
9609         * config/cris/cris.c: Include opts.h.
9610         (cris_handle_option): Update to new hook interface.
9611         * config/frv/frv.c: Include opts.h.
9612         (frv_handle_option): Update to new hook interface.
9613         * config/i386/i386.c: Include opts.h.
9614         (ix86_handle_option): Update to new hook interface.
9615         (ix86_valid_target_attribute_inner_p): Generate option structure
9616         for call to ix86_handle_option.
9617         * config/i386/t-i386 (i386.o): Update dependencies.
9618         * config/ia64/ia64.c: Include opts.h.
9619         (ia64_handle_option): Update to new hook interface.
9620         * config/ia64/t-ia64 (ia64.o): Update dependencies.
9621         * config/iq2000/iq2000.c: Include opts.h.
9622         (iq2000_handle_option): Update to new hook interface.
9623         * config/m32c/m32c.c: Include opts.h.
9624         (m32c_handle_option): Update to new hook interface.
9625         * config/m32r/m32r.c: Include opts.h.
9626         (m32r_handle_option): Update to new hook interface.
9627         * config/m68k/m68k.c: Include opts.h.
9628         (m68k_handle_option): Update to new hook interface.
9629         * config/mep/mep.c: Include opts.h.
9630         (mep_handle_option): Update to new hook interface.
9631         * config/microblaze/microblaze.c: Include opts.h.
9632         (microblaze_handle_option): Update to new hook interface.
9633         * config/mips/mips.c: Include opts.h.
9634         (mips_handle_option): Update to new hook interface.
9635         * config/mn10300/mn10300.c: Include opts.h.
9636         (mn10300_handle_option): Update to new hook interface.
9637         * config/pa/pa.c: Include opts.h.
9638         (pa_handle_option): Update to new hook interface.
9639         * config/pdp11/pdp11.c: Include opts.h.
9640         (pdp11_handle_option): Update to new hook interface.
9641         * config/rs6000/rs6000.c: Include opts.h.
9642         (rs6000_handle_option): Update to new hook interface.
9643         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9644         * config/rx/rx.c: Include opts.h.
9645         (rx_handle_option): Update to new hook interface.
9646         * config/s390/s390.c: Include opts.h.
9647         (s390_handle_option): Update to new hook interface.
9648         * config/score/score.c: Include opts.h.
9649         (score_handle_option): Update to new hook interface.
9650         * config/sh/sh.c: Include opts.h.
9651         (sh_handle_option): Update to new hook interface.
9652         * config/sparc/sparc.c: Include opts.h.
9653         (sparc_handle_option): Update to new hook interface.
9654         * config/v850/v850.c: Include opts.h.
9655         (v850_handle_option): Update to new hook interface.
9656
9657 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9658
9659         * gcc.c (driver_unknown_option_callback): Only permit and save
9660         unknown -Wno- options.
9661         (driver_wrong_lang_callback): Save options directly instead of via
9662         driver_unknown_option_callback.
9663
9664 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9665
9666         * combine.c (simplify_set): Try harder to find the best CC mode when
9667         simplifying a nested COMPARE on the RHS.
9668
9669 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
9670
9671         * config/alpha/gnu.h: Remove.
9672         * config/arc: Remove directory.
9673         * config/arm/netbsd.h: Remove.
9674         * config/arm/t-pe: Remove.
9675         * config/crx: Remove directory.
9676         * config/i386/netbsd.h: Remove.
9677         * config/m68hc11: Remove directory.
9678         * config/m68k/uclinux-oldabi.h: Remove.
9679         * config/mcore/mcore-pe.h: Remove.
9680         * config/mcore/t-mcore-pe: Remove.
9681         * config/netbsd-aout.h: Remove.
9682         * config/rs6000/gnu.h: Remove.
9683         * config/sh/sh-symbian.h: Remove.
9684         * config/sh/symbian-base.c: Remove.
9685         * config/sh/symbian-c.c: Remove.
9686         * config/sh/symbian-cxx.c: Remove.
9687         * config/sh/symbian-post.h: Remove.
9688         * config/sh/symbian-pre.h: Remove.
9689         * config/sh/t-symbian: Remove.
9690         * config/svr3.h: Remove.
9691         * config/vax/netbsd.h: Remove.
9692         * config.build: Don't handle i[34567]86-*-pe.
9693         * config.gcc: Remove handling of deprecations for most deprecated
9694         targets.
9695         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9696         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9697         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9698         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9699         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9700         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9701         Remove cases.
9702         * config.host: Don't handle i[34567]86-*-pe.
9703         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9704         (ASM_SPEC32): Don't handle -mcall-gnu.
9705         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9706         -mcall-gnu.
9707         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9708         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9709         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9710         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9711         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9712         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9713         conditional on SYMBIAN.
9714         * configure.ac: Don't handle powerpc*-*-gnu*.
9715         * configure: Regenerate.
9716         * doc/extend.texi (interrupt attribute): Don't mention CRX.
9717         * doc/install-old.texi (m6811, m6812): Don't mention.
9718         * doc/install.texi (arc-*-elf*): Don't document multilib option.
9719         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9720         (m68k-uclinuxoldabi): Don't mention.
9721         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9722         Remove.
9723         (-mcall-gnu): Remove.
9724         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9725         families): Remove constraint documentation.
9726
9727 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
9728
9729         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9730         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9731         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9732
9733 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9734
9735         PR target/48226
9736         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9737         vector when peeking at the next token for vector, don't expand the
9738         keywords.
9739
9740 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
9741
9742         * config/avr/avr-protos.h (expand_epilogue): Change prototype
9743         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9744         * config/avr/avr.c (init_cumulative_args)
9745         (avr_function_arg_advance): Use it.
9746         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9747         sibcall epilogues.
9748         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9749         (avr_function_ok_for_sibcall): ...this new function.
9750         (avr_lookup_function_attribute1): New static Function.
9751         (avr_naked_function_p, interrupt_function_p)
9752         (signal_function_p, avr_OS_task_function_p)
9753         (avr_OS_main_function_p): Use it.
9754         * config/avr/avr.md ("sibcall", "sibcall_value")
9755         ("sibcall_epilogue"): New expander.
9756         ("*call_insn", "*call_value_insn"): New insn.
9757         ("call_insn", "call_value_insn"): Remove
9758         ("call", "call_value", "epilogue"): Change expander to handle
9759         sibling calls.
9760
9761 2011-03-21  Nick Clifton  <nickc@redhat.com>
9762
9763         * doc/invoke.texi (Overall Options): Move closing brace to end of
9764         options list.
9765         (Optimization Options): Add missing @gol.
9766         (Directory Options): Likewise.
9767         (i386 and x86-64 Options): Likewise.
9768         (RS6000 and PowerPC Options): Likewise.
9769         (i386 and x86-64 Windows Options): Likewise.
9770         (V850 Options): Add text missing from descriptions.
9771
9772 2011-03-22  Richard Henderson  <rth@redhat.com>
9773
9774         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
9775         (avr_incoming_return_addr_rtx): New.
9776         (emit_push_byte): New.
9777         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
9778         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
9779         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
9780         (emit_pop_byte): New.
9781         (expand_epilogue): Use it.  Pop frame pointer by bytes.
9782         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
9783         (INCOMING_RETURN_ADDR_RTX): New.
9784         (INCOMING_FRAME_SP_OFFSET): New.
9785         (ARG_POINTER_CFA_OFFSET): New.
9786         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
9787         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
9788         (pophi): Remove.
9789
9790         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
9791
9792 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9793
9794         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9795         (FUNCTION_ARG_ADVANCE): Likewise.
9796         * tm.texi.in: Change references to them to hook references.
9797         * tm.texi: Regenerate.
9798         * targhooks.c (default_function_arg): Eliminate check for target
9799         macro.
9800         (default_function_incoming_arg): Likewise.
9801         (default_function_arg_advance): Likewise.
9802         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
9803         (function_arg_advance): Likewise.
9804         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9805
9806 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
9807
9808         * tree.c (build_call_1): New function.
9809         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
9810
9811 2011-03-22  Richard Guenther  <rguenther@suse.de>
9812
9813         PR tree-optimization/48228
9814         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9815         for single-arg PHIs.
9816
9817 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
9818
9819         PR rtl-optimization/48143
9820         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9821         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9822         sse2_cvtps2pd): Likewise.
9823
9824 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9825
9826         * recog.c (canonicalize_change_group): Use validate_unshare_change.
9827
9828 2011-03-22  Richard Guenther  <rguenther@suse.de>
9829
9830         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9831         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9832         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9833         and REALIGN_LOAD_EXPR.
9834         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9835         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9836         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9837         DOT_PROD_EXPR case ...
9838         (expand_expr_real_2): ... here.
9839         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9840         and REALIGN_LOAD_EXPR.
9841         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9842         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9843         (vect_create_epilog_for_reduction): Likewise.
9844         (vectorizable_reduction): Likewise.
9845         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9846         * tree-vect-stmts.c (vectorizable_load): Likewise.
9847
9848 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
9849
9850         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9851
9852 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9853
9854         * config/s390/s390.c (s390_delegitimize_address): Fix offset
9855         handling for PLTOFF/GOTOFF.
9856
9857 2011-03-22  Nick Clifton  <nickc@redhat.com>
9858
9859         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9860         trailing backslash from the end of the macro definition.
9861
9862 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9863
9864         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9865         and PLT unspecs.
9866
9867 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
9868
9869         * expr.h (prepare_operand): Move to...
9870         * optabs.h (prepare_operand): ...here and change the insn code
9871         parameter from "int" to "enum insn_code".
9872         (insn_operand_matches): Declare.
9873         * expr.c (init_expr_target): Use insn_operand_matches.
9874         (compress_float_constant): Likewise.
9875         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9876         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9877         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
9878         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9879         Likewise.
9880         (gen_cond_trap): Likewise.
9881         (prepare_operand): Likewise.  Change icode to an insn_code.
9882         (insn_operand_matches): New function.
9883         * reload.c (find_reloads_address_1): Use insn_operand_matches.
9884         * reload1.c (gen_reload): Likewise.
9885         * targhooks.c (default_secondary_reload): Likewise.
9886
9887 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9888
9889         * config/alpha/alpha.md (unspec): New define_c_enum.
9890         (unspecv): Ditto.
9891
9892 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
9893
9894         PR debug/48214
9895         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9896         between a call and its CALL_ARG_LOCATION note.
9897
9898 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
9899
9900         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9901
9902 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
9903
9904         PR c/42544
9905         PR c/48197
9906         * c-common.c (shorten_compare): If primopN is first sign-extended
9907         to opN and then zero-extended to result type, set primopN to opN.
9908
9909 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
9910
9911         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9912         for barrier handlers.
9913
9914 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9915
9916         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9917         UNSPEC constants to be in the unspec enumeration, and redefine
9918         all UNSPECV constants to be in the unspecv enumeration, so that
9919         dumps print which unspec/unspec_volatile this is.
9920         * config/rs6000/vector.md (UNSPEC_*): Ditto.
9921         * config/rs6000/paired.md (UNSPEC_*): Ditto.
9922         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9923         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9924         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9925
9926         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9927         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9928         UNSPECV_LWSYNC, since these are used as unspec_volatile.
9929         * config/rs6000/sync.md (isync, lwsync): Ditto.
9930
9931 2011-03-21  Richard Guenther  <rguenther@suse.de>
9932
9933         * params.def (lto-min-partition): Fix typo.
9934
9935 2011-03-21  Richard Guenther  <rguenther@suse.de>
9936
9937         PR c/47939
9938         * c-decl.c (grokdeclarator): Drop to the main variant only
9939         for array types.  Drop flag_gen_aux_info check.
9940
9941 2011-03-21  Richard Guenther  <rguenther@suse.de>
9942
9943         PR translation/47911
9944         * params.def (lto-partitions): Fix typo.
9945         (lto-min-partition): Fix wording.
9946
9947 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
9948
9949         * config/rs6000/t-freebsd: Remove duplication from file.
9950
9951 2011-03-21  Richard Guenther  <rguenther@suse.de>
9952
9953         PR middle-end/47661
9954         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9955
9956 2011-03-21  Richard Guenther  <rguenther@suse.de>
9957
9958         PR lto/48210
9959         * params.def (lto-partitions): Require at least 1 partition.
9960
9961 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9962
9963         * gthr-solaris.h: Remove.
9964         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9965         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9966         (LIB_SPEC): Likewise.
9967         * config/sol2.opt (threads): Remove.
9968         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
9969         (sparc*-*-solaris2*): Likewise.
9970         * configure.ac (enable_threads): Enable solaris support.
9971         * configure: Regenerate.
9972         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
9973         * doc/install.texi (Configuration, --enable-threads=lib): Remove
9974         solaris.
9975
9976 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9977
9978         * config.gcc: Obsolete *-*-solaris2.8*.
9979         * doc/install.texi (Specific, *-*-solaris2*): Document it.
9980
9981 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9982
9983         PR bootstrap/48135
9984         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9985         reference.  Solaris 8 perl works.
9986
9987 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9988
9989         PR bootstrap/48135
9990         * doc/install.texi (Prerequisites): Move jar etc. up.
9991         Explain support library version requirements.
9992
9993 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9994
9995         PR bootstrap/48135
9996         * doc/install.texi (Prerequisites): Move Perl to build
9997         requirements.  Always necessary on Solaris 2 with Sun ld.
9998
9999 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10000
10001         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10002         binutils 2.21.
10003         (Specific, i?86-*-solaris2.[89]): Likewise.
10004         (Specific, i?86-*-solaris2.10): Likewise.
10005         (Specific, mips-sgi-irix6): Likewise.
10006         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10007         Update for binutils 2.21.
10008
10009 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10010
10011         * configure.ac (gcc_cv_lto_plugin): Fix typo.
10012         Allow -fuse-linker-plugin for non-default plugin linker.
10013         * configure: Regenerate.
10014
10015 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10016
10017         PR bootstrap/48167
10018         * gengtype.c (files_rules): Added rule for cp/parser.h.
10019
10020 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
10021
10022         PR target/48213
10023         * config/s390/s390.c (s390_delegitimize_address): Don't call
10024         lowpart_subreg if orig_x has BLKmode.
10025
10026 2011-03-21  Kai Tietz  <ktietz@redhat.com>
10027
10028         PR target/12171
10029         * doc/plugins.texi: Adjust documentation for plugin register_callback.
10030         * tree.h (attribute_spec): Add new member affects_type_identity.
10031         * attribs.c (empty_attribute_table): Adjust attribute_spec
10032         initializers.
10033         * config/alpha/alpha.c: Likewise.
10034         * config/arc/arc.c: Likewise.
10035         * config/arm/arm.c: Likewise.
10036         * config/avr/avr.c: Likewise.
10037         * config/bfin/bfin.c: Likewise.
10038         * config/crx/crx.c: Likewise.
10039         * config/darwin.h: Likewise.
10040         * config/h8300/h8300.c: Likewise.
10041         * config/i386/cygming.h: Likewise.
10042         * config/i386/i386.c: Likewise.
10043         * config/ia64/ia64.c: Likewise.
10044         * config/m32c/m32c.c: Likewise.
10045         * config/m32r/m32r.c: Likewise.
10046         * config/m68hc11/m68hc11.c: Likewise.
10047         * config/m68k/m68k.c: Likewise.
10048         * config/mcore/mcore.c: Likewise.
10049         * config/mep/mep.c: Likewise.
10050         * config/microblaze/microblaze.c: Likewise.
10051         * config/mips/mips.c: Likewise.
10052         * config/rs6000/rs6000.c: Likewise.
10053         * config/rx/rx.c: Likewise.
10054         * config/sh/sh.c: Likewise.
10055         * config/sol2.h: Likewise.
10056         * config/sparc/sparc.c: Likewise.
10057         * config/spu/spu.c: Likewise.
10058         * config/stormy16/stormy16.c: Likewise.
10059         * config/v850/v850.c: Likewise.
10060
10061 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
10062
10063         * simplify-rtx.c (simplify_binary_operation_1): Handle
10064         (xor (and A B) C) case when B and C are both constants.
10065
10066 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
10067
10068         * tree-dfa.c (add_referenced_var): Fix typo in comment.
10069
10070 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
10071
10072         PR bootstrap/48168
10073         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10074
10075 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
10076
10077         PR rtl-optimization/48156
10078         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10079         assume df and df_lr are not NULL.
10080
10081 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10082
10083         PR debug/48023
10084         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10085         between a call and its CALL_ARG_LOCATION note.
10086
10087 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
10088
10089         PR debug/48178
10090         * config/sh/sh.c (find_barrier): Don't emit a constant pool
10091         between a call and its corresponding CALL_ARG_LOCATION note.
10092
10093 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
10094
10095         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10096         instead of loop. Use HARD_REGISTER_NUM_P predicate.
10097         * haifa-sched.c (setup_ref_regs): Ditto.
10098         * caller-save.c (add_used_regs_1): Ditto.
10099         * dse.c (look_for_hardregs): Ditto.
10100         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10101         * sched-rgn.c (check_live_1): Ditto.
10102
10103 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10104
10105         * c-decl.c (diagnose_mismatched_decls): Give an error for
10106         redefining a typedef with variably modified type.
10107
10108 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
10109
10110         * c-decl.c (grokfield): Don't allow typedefs for structures or
10111         unions with no tag by default.
10112         * doc/extend.texi (Unnamed Fields): Update.
10113
10114 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
10115
10116         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10117         Rewrite using indirect functions.
10118         (lwp_slwpcb): Ditto.
10119         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
10120         (avx_vinsertf128<mode>): Ditto.
10121
10122 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10123
10124         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
10125         unspecs.
10126
10127 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10128
10129         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
10130         splitting between a call and its corresponding CALL_ARG_LOCATION note.
10131
10132 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
10133
10134         PR rtl-optimization/48170
10135         * gcse.c (hoist_code): Remove bogus asserts.
10136
10137 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
10138
10139         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
10140         computation for prologue/epilogue.
10141
10142 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10143
10144         * Makefile.in (check-consistency): Remove.
10145
10146 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
10147
10148         PR debug/48176
10149         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
10150         arange_table_in_use is 0, but either text_section_used or
10151         cold_text_section_used is true.  Don't call it if
10152         !info_section_emitted.
10153
10154 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
10155
10156         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
10157         FUNCTION_VALUE_REGNO_P): Remove.
10158         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
10159         Remove.
10160         * config/avr/avr.c (avr_ret_register): Make static inline.
10161         (avr_function_value_regno_p): New function.
10162         (avr_libcall_value): Make static. Add 'func' argument.
10163         (avr_function_value): Make static. Rename 'func' argument to
10164         'fn_decl_or_type', forward it to avr_libcall_value. Call
10165         avr_ret_register function instead of RET_REGISTER macro.
10166         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
10167
10168 2011-03-18  Jason Merrill  <jason@redhat.com>
10169
10170         PR c++/23372
10171         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
10172
10173 2011-03-18  Richard Guenther  <rguenther@suse.de>
10174
10175         * doc/install.texi (--enable-gold): Remove.
10176         (--with-plugin-ld): Document.
10177         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
10178
10179 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
10180
10181         PR middle-end/47790
10182         * expr.c (optimize_bitfield_assignment_op): Revamp to work
10183         again after expansion changes.
10184
10185 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
10186
10187         * combine.c (try_combine): Do simplification only call of
10188         subst() on i2 even when i1 is present. Update comments.
10189
10190 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
10191
10192         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
10193         and UNSPEC_PCREL_SYMOFF.
10194
10195 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10196
10197         * config/s390/s390.md: Use define_c_enum for the unspec constant
10198         definitions.
10199
10200 2011-03-18  Richard Henderson  <rth@redhat.com>
10201             Jakub Jelinek  <jakub@redhat.com>
10202
10203         PR bootstrap/48161
10204         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
10205         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
10206
10207 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10208
10209         PR middle-end/47725
10210         * combine.c (cant_combine_insn_p): Don't check zero/sign
10211         extended hard registers.
10212
10213 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10214
10215         PR middle-end/47725
10216         * combine.c (cant_combine_insn_p): Check zero/sign extended
10217         hard registers.
10218
10219 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
10220
10221         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10222         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
10223         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
10224         Change return type to bool.
10225         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10226
10227 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10228
10229         PR debug/48163
10230         * var-tracking.c (prepare_call_arguments): If CALL target
10231         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
10232         pc instead of looking it up using cselib_lookup and use
10233         Pmode for it if x has VOIDmode.
10234         * dwarf2out.c (gen_subprogram_die): If also both first and
10235         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
10236
10237         PR debug/48163
10238         * function.c (assign_parms): For data.passed_pointer parms
10239         use MEM of data.entry_parm instead of data.entry_parm itself
10240         as DECL_INCOMING_RTL.
10241         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
10242         also when passed and declared mode is the same, DECL_RTL
10243         is a MEM with pseudo as address and DECL_INCOMING_RTL is
10244         a MEM too.
10245
10246 2011-03-16  Jeff Law  <law@redhat.com>
10247
10248         PR rtl-optimization/37273
10249         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10250         handle them like argument loads from stack slots.  Do not double
10251         count memory for memory constants and argument loads from stack slots.
10252
10253 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10254
10255         PR debug/48160
10256         * var-tracking.c (prepare_call_arguments): Check SUBREG.
10257
10258 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10259
10260         PR target/48171
10261         * config/i386/i386.opt: Add Save to -mavx and -mfma.
10262
10263 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10264
10265         PR bootstrap/48153
10266         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
10267         if dwarf_strict.
10268         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
10269         Clear call_arg_locations and call_arg_loc_last always.
10270
10271         PR middle-end/48152
10272         * var-tracking.c (prepare_call_arguments): If argument needs to be
10273         passed by reference, adjust argtype and mode.
10274
10275 2011-03-17  Richard Guenther  <rguenther@suse.de>
10276
10277         PR middle-end/48134
10278         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
10279         a value make sure to fold the statement.
10280
10281 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
10282
10283         PR target/43872
10284         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
10285         return condition with !cfun->calls_alloca.
10286
10287 2011-03-17  Richard Guenther  <rguenther@suse.de>
10288
10289         PR bootstrap/48148
10290         * lto-cgraph.c (input_overwrite_node): Clear the abstract
10291         origin for decls in other ltrans units.
10292         (input_varpool_node): Likewise.
10293
10294 2011-03-17  Richard Guenther  <rguenther@suse.de>
10295
10296         PR middle-end/48165
10297         * tree-object-size.c (compute_object_offset): Properly return
10298         the offset operand of MEM_REFs as sizetype.
10299
10300 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
10301
10302         PR rtl-optimization/48141
10303         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10304         * dse.c: Include params.h.
10305         (active_local_stores_len): New variable.
10306         (add_wild_read, dse_step1): Clear it when setting active_local_stores
10307         to NULL.
10308         (record_store, check_mem_read_rtx): Decrease it when removing
10309         from the chain.
10310         (scan_insn): Likewise.  Increase it when adding to chain, if it
10311         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10312         set active_local_stores to NULL before the addition.
10313         * Makefile.in (dse.o): Depend on $(PARAMS_H).
10314
10315         PR rtl-optimization/48141
10316         * dse.c (record_store): If no positions are needed in an insn
10317         that cannot be deleted, at least unchain it from active_local_stores.
10318
10319 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
10320
10321         PR debug/47510
10322         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10323         (lookup_type_die_strip_naming_typedef): ... here.
10324         (get_context_die): Use it.
10325         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10326         the anonymous struct named by the naming typedef.
10327
10328 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
10329
10330         PR target/48154
10331         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10332         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10333
10334 2011-03-16  Jeff Law  <law@redhat.com>
10335
10336         * tree-vrp.c (identify_jump_threads): Slightly simplify type
10337         check for operands of conditional.  Allow type to be a pointer.
10338
10339 2011-03-16  Richard Guenther  <rguenther@suse.de>
10340
10341         PR tree-optimization/48149
10342         * fold-const.c (fold_binary_loc): Fold
10343         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10344
10345 2011-03-16  Richard Guenther  <rguenther@suse.de>
10346
10347         PR tree-optimization/26134
10348         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10349         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10350         (non_rewritable_mem_ref_base): Handle complex type component
10351         accesses, constrain offsets for vector and complex extracts
10352         more properly.
10353
10354 2011-03-16  Richard Guenther  <rguenther@suse.de>
10355
10356         PR tree-optimization/48146
10357         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10358         operands avoiding the need for renaming.
10359
10360 2011-03-16  Richard Guenther  <rguenther@suse.de>
10361
10362         * gimple-fold.c (maybe_fold_reference): Open-code relevant
10363         constant folding.  Move MEM_REF canonicalization first.
10364         Rely on fold_const_aggregate_ref for initializer folding.
10365         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10366
10367 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10368
10369         PR middle-end/48136
10370         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10371         arg0/arg1 or their arguments are always fold converted to matching
10372         types.
10373
10374         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10375         to nargs.
10376
10377 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10378
10379         PR lto/46944
10380         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10381         Handle in-tree gold.
10382         (ld_vers): Extract binutils version for gold.
10383         (gcc_cv_ld_hidden): Handle gold here.
10384         (gcc_cv_lto_plugin): Determine level of linker plugin support.
10385         * configure: Regenerate.
10386         * config.in: Regenerate.
10387         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10388         -fuse-linker-plugin otherwise.
10389         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
10390         (LINK_COMMAND_SPEC): Use it.
10391         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10392
10393 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
10394
10395         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10396         * calls.c: Remove debug.h include.
10397         (emit_call_1): Don't call virtual_call_token debug hook.
10398         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10399         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10400         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10401         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10402         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10403         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10404         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10405         dwarf2out_virtual_call): Remove.
10406         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10407         copy_call_info and virtual_call hooks.
10408         (dwarf2out_init): Don't initialize vcall_insn_table,
10409         debug_dcall_section and debug_vcall_section.
10410         (prune_unused_types): Don't mark nodes from dcall_table.
10411         (dwarf2out_finish): Don't output dcall or vcall tables.
10412         * final.c (final_scan_insn): Don't call direct_call or
10413         virtual_call debug hooks.
10414         * debug.h (struct gcc_debug_hooks): Remove direct_call,
10415         virtual_call_token, copy_call_info and virtual_call hooks.
10416         (debug_nothing_uid): Remove prototype.
10417         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10418         copy_call_info and virtual_call hooks.
10419         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10420         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10421         * debug.c (do_nothing_debug_hooks): Likewise.
10422         (debug_nothing_uid): Remove.
10423         * doc/invoke.texi (-fenable-icf-debug): Remove.
10424         * common.opt (-fenable-icf-debug): Likewise.
10425
10426         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10427         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10428         call's MEM.  Handle functions returning aggregate through a hidden
10429         first pointer.  For virtual calls add clobbered pc to call arguments
10430         chain.
10431         * dwarf2out.c (gen_subprogram_die): Emit
10432         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10433         can't be emitted.
10434
10435         PR debug/45882
10436         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10437         * rtl.h (ENTRY_VALUE_EXP): Define.
10438         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10439         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10440         * print-rtl.c (print_rtx): Likewise.
10441         * gengtype.c (adjust_field_rtx_def): Likewise.
10442         * var-tracking.c (vt_add_function_parameter): Adjust
10443         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10444         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10445         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10446         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10447         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10448
10449         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10450         Call var_location debug hook even on CALL_INSNs.
10451         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10452         * rtl.def (ENTRY_VALUE): New.
10453         * dwarf2out.c: Include cfglayout.h.
10454         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10455         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10456         (struct call_arg_loc_node): New type.
10457         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10458         tail_call_site_count): New variables.
10459         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10460         DW_TAG_GNU_call_site_parameter.
10461         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10462         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10463         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10464         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10465         and DW_AT_GNU_all_source_call_sites.
10466         (mem_loc_descriptor): Handle ENTRY_VALUE.
10467         (add_src_coords_attributes): Don't add enything if
10468         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10469         (dwarf2out_abstract_function): Save and clear call_arg_location,
10470         call_site_count and tail_call_site_count around dwarf2out_decl call.
10471         (gen_call_site_die): New function.
10472         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10473         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10474         (dwarf2out_function_decl): Clear call_arg_locations,
10475         call_arg_loc_last, set call_site_count and tail_call_site_count
10476         to -1 and free block_map.
10477         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10478         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
10479         followed by any real instructions.
10480         (dwarf2out_begin_function): Set call_site_count and
10481         tail_call_site_count to 0.
10482         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10483         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10484         attempt to force a DIE for it and worst case remove the attribute.
10485         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10486         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10487         the decl itself.
10488         * var-tracking.c: Include tm_p.h.
10489         (vt_stack_adjustments): For calls call note_register_arguments.
10490         (argument_reg_set): New variable.
10491         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10492         ensure the VALUE is resolved.
10493         (call_arguments): New variable.
10494         (prepare_call_arguments): New function.
10495         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10496         (struct expand_loc_callback_data): Add ignore_cur_loc field.
10497         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10498         always use the best expression.
10499         (vt_expand_loc): Add ignore_cur_loc argument.
10500         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10501         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10502         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10503         note for all calls.
10504         (vt_add_function_parameter): Use cselib_lookup_from_insn.
10505         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10506         argument.  Don't call cselib_preserve_only_values and
10507         cselib_reset_table.
10508         (note_register_arguments): New function.
10509         (vt_initialize): Compute argument_reg_set.  Call
10510         vt_add_function_parameters before processing basic blocks instead of
10511         afterwards.  For calls call prepare_call_arguments before calling
10512         cselib_process_insn.
10513         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10514         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10515         (var-tracking.o): Depend on $(TM_P_H).
10516         * cfglayout.h (insn_scope): New prototype.
10517         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10518         * cfglayout.c (insn_scope): No longer static.
10519         * insn-notes.def (CALL_ARG_LOCATION): New.
10520         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10521         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10522         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10523         nothing for DECL_EXTERNAL BLOCK_VARS.
10524
10525 2011-03-16  Alan Modra  <amodra@gmail.com>
10526
10527         PR target/45844
10528         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10529         create invalid offset address for vsx splat insn.
10530         * config/rs6000/predicates.md (splat_input_operand): New.
10531         * config/rs6000/vsx.md (vsx_splat_*): Use it.
10532
10533 2011-03-15  Xinliang David Li  <davidxl@google.com>
10534
10535         PR c/47837
10536         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10537         (normalize_preds): New function.
10538         (is_use_properly_guarded): Normalize def predicates.
10539
10540 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10541
10542         PR target/46788
10543         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10544         in the output template.
10545
10546 2011-03-15  Richard Guenther  <rguenther@suse.de>
10547
10548         PR middle-end/47650
10549         * tree-pretty-print.c (dump_function_declaration): Properly
10550         dump unprototyped and varargs function types.
10551
10552 2011-03-15  Richard Guenther  <rguenther@suse.de>
10553
10554         PR tree-optimization/13954
10555         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10556         and friends.
10557
10558 2011-03-15  Richard Guenther  <rguenther@suse.de>
10559
10560         PR tree-optimization/48037
10561         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10562         selects into BIT_FIELD_REFs.
10563         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10564         vector select.
10565
10566 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
10567
10568         PR tree-optimization/48129
10569         * builtins.c (fold_builtin_snprintf): Convert to type of
10570         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10571         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10572
10573 2011-03-15  Richard Guenther  <rguenther@suse.de>
10574
10575         PR tree-optimization/41490
10576         * tree-ssa-dce.c (propagate_necessity): Handle returns without
10577         value but with VUSE.
10578         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10579         return statements.
10580         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10581         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10582         * tree-tailcall.c (find_tail_calls): Ignore returns.
10583
10584 2011-03-15  Richard Guenther  <rguenther@suse.de>
10585
10586         PR middle-end/48031
10587         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10588         or variable-indexed array accesses when in gimple form.
10589
10590 2011-03-15  Richard Guenther  <rguenther@suse.de>
10591
10592         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
10593
10594 2011-03-15  Alan Modra  <amodra@gmail.com>
10595
10596         PR target/48032
10597         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10598         presume symbol_refs without a symbol_ref_decl are suitably
10599         aligned, nor other trees we may see here.  Handle anchor symbols.
10600         (legitimate_constant_pool_address_p): Comment.  Add mode param.
10601         Check cmodel=medium addresses.  Adjust all calls.
10602         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10603         creating cmodel=medium optimized access to locals.
10604         * config/rs6000/constraints.md (R): Pass QImode to
10605         legitimate_constant_pool_address_p.
10606         * config/rs6000/predicates.md (input_operand): Pass mode to
10607         legitimate_constant_pool_address_p.
10608         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10609         Update prototype.
10610
10611 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10612
10613         PR target/48053
10614         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10615         64-bit constants being loaded into registers other than GPRs such
10616         as loading 0 into a VSX register.
10617
10618 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10619
10620         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
10621
10622 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10623
10624         PR middle-end/47917
10625         * builtins.c (fold_builtin_snprintf): New function.
10626         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10627         (fold_builtin_4): Likewise.
10628
10629         PR middle-end/38878
10630         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10631         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
10632         and C - X == X also strip nops from +/-/p+ operand.
10633         When optimizing -X == C, fold C to arg0's type.
10634
10635         PR debug/47946
10636         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10637         emit it as add_AT_int instead of add_AT_unsigned.
10638
10639 2011-03-14  Tom Tromey  <tromey@redhat.com>
10640
10641         * unwind-dw2.c: Include sys/sdt.h if it exists.
10642         (_Unwind_DebugHook): Use STAP_PROBE2.
10643         * config.in, configure: Rebuild.
10644         * configure.ac: Check for sys/sdt.h.
10645
10646 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
10647
10648         * config/i386/i386.md (ROUND_FLOOR): New constant.
10649         (ROUND_CEIL): Ditto.
10650         (ROUND_TRUNC): Ditto.
10651         (ROUND_MXCSR): Ditto.
10652         (ROUND_NO_EXC): Ditto.
10653         (rint<mode>2): Use new defines instead of numerical constants.
10654         (floor<mode>2): Ditto.
10655         (ceil<mode>2): Ditto.
10656         (btrunc<mode>2): Ditto.
10657         * config/i386/i386-builtin-types.def: Define ROUND function type
10658         aliases.
10659         * config/i386/i386.c (enum ix86_builtins): Add
10660         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10661         (struct builtin_description): Add
10662         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10663         (ix86_expand_sse_round): New static function.
10664         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10665         function types.
10666         (ix86_builtin_vectorized_function): Handle
10667         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10668
10669 2011-03-14  Tom Tromey  <tromey@redhat.com>
10670
10671         * c-parser.c (c_parser_asm_string_literal): Clear
10672         warn_overlength_strings.
10673
10674 2011-03-14  Tom Tromey  <tromey@redhat.com>
10675
10676         * c-parser.c (disable_extension_diagnostics): Save
10677         warn_overlength_strings.
10678         (restore_extension_diagnostics): Restore warn_overlength_strings.
10679
10680 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10681
10682         * BASE-VER: Change to 4.7.0.
10683
10684 2011-03-14  Richard Guenther  <rguenther@suse.de>
10685
10686         PR middle-end/48098
10687         * tree.c (build_vector_from_val): Adjust assert to requirements
10688         and reality.
10689
10690 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
10691
10692         PR bootstrap/48102
10693         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
10694
10695 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
10696
10697         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
10698         terms of target_flags_explicit. Adjust copyright year.
10699
10700         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10701         * config/rs6000/t-freebsd: New file. Add override for
10702         LIB2FUNCS_EXTRA.
10703
10704 2011-03-13  Chris Demetriou  <cgd@google.com>
10705
10706         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10707         (-fno-diagnostics-show-option): this, to reflect current default.
10708         (-Werror=): Update text about -fno-diagnostics-show-option.
10709
10710 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
10711
10712         PR target/48053
10713         * config/rs6000/predicates.md (easy_vector_constant_add_self,
10714         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10715         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10716         mode is not V2DImode or V2DFmode.
10717         (vspltis_constant): Do not handle V2DImode and V2DFmode.
10718         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10719         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10720         registers to 0.
10721         (movdi_internal64): Likewise.
10722
10723 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
10724
10725         PR tree-optimization/47127
10726         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10727         parameter.
10728         (set_cloog_options): Same.
10729         (scop_to_clast): Same.
10730         (print_clast_stmt): Do not call cloog_state_malloc and
10731         cloog_state_free.
10732         (print_generated_program): Same.
10733         (gloog): Same.
10734         * graphite-clast-to-gimple.h (cloog_state): Declared.
10735         (scop_to_clast): Adjust declaration.
10736         * graphite.c (cloog_state): Defined here.
10737         (graphite_initialize): Call cloog_state_malloc.
10738         (graphite_finalize): Call cloog_state_free.
10739
10740 2011-03-11  Jason Merrill  <jason@redhat.com>
10741
10742         * attribs.c (lookup_attribute_spec): Take const_tree.
10743         * tree.h: Adjust.
10744
10745 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
10746
10747         * config/sparc/sparc.c (sparc_option_override): Use
10748         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10749
10750 2011-03-11  Richard Guenther  <rguenther@suse.de>
10751
10752         PR tree-optimization/48067
10753         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10754         multiplication result will be only used once on the target
10755         stmt.
10756
10757 2011-03-11  Richard Guenther  <rguenther@suse.de>
10758
10759         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10760
10761 2011-03-11  Richard Guenther  <rguenther@suse.de>
10762
10763         PR lto/48073
10764         * tree.c (find_decls_types_r): Do not walk types only reachable
10765         from IDENTIFIER_NODEs.
10766
10767 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10768
10769         PR middle-end/48044
10770         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
10771         all vnode->force_output nodes as needed.
10772
10773 2011-03-11  Jason Merrill  <jason@redhat.com>
10774
10775         PR c++/48069
10776         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
10777         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
10778
10779 2011-03-11  Martin Jambor  <mjambor@suse.cz>
10780
10781         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
10782         cgraph_node.
10783
10784 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
10785
10786         PR tree-optimization/48063
10787         * ipa-inline.c (cgraph_decide_inlining): Don't try to
10788         inline functions called once if !tree_can_inline_p (node->callers).
10789
10790 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
10791
10792         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
10793         extra_objs.
10794         * config/score/score3.c: Delete.
10795         * config/score/score3.h: Delete.
10796         * config/score/mul-div.S: Delete.
10797         * config/score/sfp-machine.h: Add new file.
10798         * config/score/constraints.md: Add new file.
10799         * config/score/t-score-softfp: Add new file.
10800         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
10801         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
10802         (score7_extra_constraint): Delete.
10803         (score7_option_override): Remove unused code.
10804         * config/score/score.c: Remove score3 and score5 define and code.
10805         * config/score/score.h: Remove score3 and score5 define and code.
10806         * config/score/score.md: Remove score3 template and unusual insn.
10807         * config/score/score.opt: Remove score3 and score5 options.
10808
10809 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10810
10811         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
10812         when _HPUX_SOURCE is defined.
10813         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10814
10815 2011-03-10  Jason Merrill  <jason@redhat.com>
10816
10817         PR c++/48029
10818         * stor-layout.c (layout_type): Don't set structural equality
10819         on arrays of incomplete type.
10820         * tree.c (type_hash_eq): Handle comparing them properly.
10821
10822 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
10823
10824         PR debug/48043
10825         * config/s390/s390.c (s390_delegitimize_address): Make sure the
10826         result mode matches original rtl mode.
10827
10828 2011-03-10  Nick Clifton  <nickc@redhat.com>
10829
10830         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
10831         (andsi3, andsi3_flags): Fix timings for three operand alternative.
10832
10833 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
10834
10835         PR rtl-optimization/47866
10836         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10837         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10838         if target wasn't scalar.
10839         * function.c (assign_stack_temp_for_type): Assert that neither
10840         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10841         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10842         macro.
10843         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10844
10845 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10846
10847         * config/s390/s390-protos.h (s390_label_align): New prototype.
10848         * config/s390/s390.c (s390_label_align): New function.
10849         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10850
10851 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10852
10853         PR target/47755
10854         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10855         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
10856         (output_vec_const_move): Ditto.
10857
10858 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
10859
10860         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10861         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10862         * config/mips/mips.c (mips_preferred_reload_class): Make static.
10863         Change 'rclass' argument and result type to reg_class_t.
10864         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10865
10866 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
10867
10868         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10869         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10870         (TARGET_MEMORY_MOVE_COST): Define.
10871         (avr_register_move_cost, avr_memory_move_cost): New Functions.
10872
10873 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
10874
10875         PR debug/47881
10876         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10877         removed anything.
10878
10879         PR tree-optimization/48022
10880         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10881         for EQ/NE_EXPR.
10882
10883 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
10884
10885         PR debug/47991
10886         * var-tracking.c (find_use_val): Return NULL for
10887         cui->sets && cui->store_p BLKmode MEMs.
10888
10889 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
10890
10891         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10892         Remove.
10893         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10894         xstormy16_print_operand_address): Remove.
10895         * config/stormy16/stormy16.c (xstormy16_print_operand,
10896         xstormy16_print_operand_address): Make static.
10897         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10898
10899 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
10900
10901         PR target/47862
10902         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10903         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10904         before definition.
10905
10906 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
10907
10908         PR bootstrap/48000
10909         * cfgloopmanip.c (fix_bb_placements): Return immediately
10910         if FROM is BASE_LOOP's header.
10911
10912 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
10913
10914         * gimplify.c (gimplify_function_tree): Fix building calls
10915         to __builtin_return_address.
10916
10917 2011-03-07  Alan Modra  <amodra@gmail.com>
10918
10919         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10920         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10921         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10922         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10923         return_mode args.
10924         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10925         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10926         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10927         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10928         * config/rs6000/rs6000.c
10929         (rs6000_elf_end_indicate_exec_stack): Rename to..
10930         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
10931         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
10932         (rs6000_file_start): ..here.
10933         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10934         file scope variables.
10935         (call_ABI_of_interest): New function.
10936         (init_cumulative_args): Set above vars when function return value
10937         is a float, vector, or small struct.
10938         (rs6000_function_arg_advance_1): Likewise for function args.
10939         (rs6000_va_start): Set rs6000_passes_float if variable arg function
10940         references float args.
10941
10942 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
10943
10944         * doc/cfg.texi: Remove "See" before @ref.
10945         * doc/invoke.texi: Likewise.
10946
10947 2011-03-05  Jason Merrill  <jason@redhat.com>
10948
10949         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10950
10951 2011-03-05  Anthony Green  <green@moxielogic.com>
10952
10953         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10954
10955 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
10956
10957         PR rtl-optimization/47899
10958         * cfgloopmanip.c (fix_bb_placements): Fix first argument
10959         to flow_loop_nested_p when moving the loop upward.
10960
10961 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
10962
10963         PR target/47719
10964         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
10965
10966 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
10967
10968         PR tree-optimization/47967
10969         * ipa-cp.c (build_const_val): Return NULL instead of creating
10970         VIEW_CONVERT_EXPR for mismatching sizes.
10971         (ipcp_create_replace_map): Return NULL if build_const_val failed.
10972         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10973         give up on versioning.
10974
10975 2011-03-05  Alan Modra  <amodra@gmail.com>
10976
10977         PR target/47986
10978         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10979         full cmodel medium/large lo_sum + high addresses.
10980
10981 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10982
10983         * config/s390/s390.c (s390_decompose_address): Reject non-literal
10984         pool references in UNSPEC_LTREL_OFFSET.
10985
10986 2011-03-04  Jan Hubicka  <jh@suse.cz>
10987
10988         PR lto/47497
10989         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10990         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
10991         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10992         Add node pointers.
10993         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10994         cgraph_add_thunk): Add node pointers.
10995         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10996         associated to right node.
10997         (input_node): Update use of cgraph_same_body_alias
10998         and cgraph_add_thunk.
10999
11000 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
11001
11002         * config/i386/i386.opt (mprefer-avx128): New flag.
11003         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11004         modes when the flag -mprefer-avx128 is on.
11005
11006 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
11007
11008         * dwarf2out.c (compare_loc_operands): Fix address handling.
11009
11010 2011-03-04  Alan Modra  <amodra@gmail.com>
11011
11012         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11013
11014 2011-03-04  Richard Guenther  <rguenther@suse.de>
11015
11016         PR middle-end/47968
11017         * expmed.c (extract_bit_field_1): Prefer vector modes that
11018         vec_extract patterns can handle.
11019
11020 2011-03-04  Richard Guenther  <rguenther@suse.de>
11021
11022         PR middle-end/47975
11023         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11024
11025 2011-03-04  Richard Henderson  <rth@redhat.com>
11026
11027         * explow.c (emit_stack_save): Remove 'after' parameter.
11028         (emit_stack_restore): Likewise.
11029         * expr.h: Update to match.
11030         * builtins.c, calls.c, stmt.c: Likewise.
11031         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11032         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11033         * function.c (expand_function_end): Insert the emit_stack_save
11034         sequence before parm_birth_insn instead of after.
11035
11036 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
11037
11038         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11039         (ssse3_pmaddubsw128): Ditto.
11040         (ssse3_pmaddubsw): Ditto.
11041
11042 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
11043
11044         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11045
11046 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
11047
11048         PR c/47963
11049         * gimplify.c (omp_add_variable): Only call omp_notice_variable
11050         on TYPE_SIZE_UNIT if it is a DECL.
11051
11052         PR debug/47283
11053         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11054         first operand is not is_gimple_mem_ref_addr, try to fold it.
11055         If the operand still isn't is_gimple_mem_ref_addr, clear
11056         MEM_EXPR on op0.
11057
11058 2011-03-03  Richard Guenther  <rguenther@suse.de>
11059
11060         PR middle-end/47283
11061         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11062         match comment.
11063         (refs_may_alias_p_1): For release branches return true if
11064         we are confused by our input.
11065
11066 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11067
11068         * config/s390/s390.c (s390_function_value): Rename to ...
11069         (s390_function_and_libcall_value): ... this.
11070         (s390_function_value): New function.
11071         (s390_libcall_value): New function.
11072         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
11073         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11074         target macro definitions.
11075         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11076
11077 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
11078
11079         * config/i386/freebsd64.h (CC1_SPEC): Define.
11080         * config/i386/linux64.h (CC1_SPEC): Define.
11081         * config/i386/x86-64.h (CC1_SPEC): Don't define.
11082
11083 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
11084
11085         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11086         Remove.
11087         * config/stormy16/stormy16.c: Include reload.h.
11088         (xstormy16_memory_move_cost): New function.
11089         (TARGET_MEMORY_MOVE_COST): Define.
11090
11091 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
11092
11093         PR rtl-optimization/47925
11094         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11095         with side effects.  Remove the more-specific check for volatile asms.
11096
11097 2011-03-02  Alan Modra  <amodra@gmail.com>
11098
11099         PR target/47935
11100         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11101         toc relative addresses for valid offsets.
11102
11103 2011-03-01  Richard Guenther  <rguenther@suse.de>
11104
11105         PR tree-optimization/47890
11106         * tree-vect-loop.c (get_initial_def_for_induction): Set
11107         related stmt properly.
11108
11109 2011-03-01  Richard Guenther  <rguenther@suse.de>
11110
11111         PR lto/47924
11112         * lto-streamer.c (lto_record_common_node): Also register
11113         the canonical type.
11114
11115 2011-03-01  Richard Guenther  <rguenther@suse.de>
11116
11117         PR lto/46911
11118         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11119         Do not stream DECL_ABSTRACT_ORIGIN.
11120         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11121         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11122         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11123         Do not stream DECL_ABSTRACT_ORIGIN.
11124         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11125         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11126
11127 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
11128
11129         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
11130         FUNCTION_VALUE_REGNO_P): Remove.
11131         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
11132         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
11133         Add 'outgoing' argument.
11134         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
11135         function.
11136         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11137         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11138
11139 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
11140
11141         PR debug/28047
11142         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
11143         (lookup_filename): Likewise.
11144         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
11145
11146 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
11147             Jakub Jelinek  <jakub@redhat.com>
11148
11149         PR middle-end/47893
11150         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
11151         (assign_stack_local_1): Change last argument type to int.
11152         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
11153         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
11154         don't record padding space into frame_space_list nor use those areas.
11155         (assign_stack_local): Adjust caller.
11156         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
11157         of assign_stack_local, pass 0 as last argument.
11158         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
11159         callers.
11160
11161 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
11162
11163         PR debug/47283
11164         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
11165         Use target address_mode and pointer_mode hooks instead of hardcoded
11166         Pmode and ptr_mode.  Handle some simple cases of extending if
11167         POINTERS_EXTEND_UNSIGNED < 0.
11168         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
11169         Call convert_debug_memory_address.
11170         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
11171         convert_debug_memory_address.
11172
11173         PR middle-end/46790
11174         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
11175         * configure: Regenerated.
11176         * config.in: Regenerated.
11177         * varasm.c (default_function_section): Return NULL
11178         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
11179
11180 2011-02-28  Martin Jambor  <mjambor@suse.cz>
11181
11182         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
11183         the description to match the printed values.
11184
11185 2011-02-28  Richard Guenther  <rguenther@suse.de>
11186
11187         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
11188         of the copied scope tree.
11189
11190 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11191
11192         * doc/extend.texi (Function Attributes): Avoid deeply (and
11193         wrongly) nested tables.
11194
11195 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
11196
11197         PR middle-end/47903
11198         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
11199         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
11200         r isn't op0 nor op1.
11201
11202 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
11203
11204         * config/avr/avr.md: Remove magic comment for emacs.
11205
11206 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
11207
11208         PR target/45261
11209         * config/avr/avr.c (avr_option_override): Use error on bad options.
11210         (avr_help): New function.
11211         (TARGET_HELP): Define.
11212
11213 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
11214
11215         PR target/42240
11216         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
11217         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
11218
11219 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
11220
11221         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
11222         (ARM Options): Ditto.
11223         (i386 and x86-64 Options): Ditto.
11224         (RX Options): Ditto.
11225         (SPARC Options): Ditto.
11226
11227 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
11228
11229         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
11230         FreeBSD 6 and later.  Generally use cpu generic.
11231
11232 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
11233
11234         * doc/cpp.texi: Update copyright years.
11235
11236 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
11237
11238         PR target/46898
11239         * config/lm32/lm32.md (ashrsi3): Added needed variable.
11240
11241 2011-02-25  Jon Beniston  <jon@beniston.com>
11242
11243         PR target/46898
11244         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
11245         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
11246         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
11247         (lm32_block_move_inline): Add type cast to remove warning.
11248         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
11249         (gen_int_relational): Move declarations to start of function.
11250
11251 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
11252
11253         PR tree-optimization/45470
11254         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11255         can throw internally only.
11256         * tree-vect-stmts.c (vectorizable_call): Likewise.
11257
11258 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
11259
11260         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
11261         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11262         * config/stormy16/stormy16-protos.h
11263         (xstormy16_preferred_reload_class): Remove.
11264         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
11265         static. Change 'rclass' argument and return type to reg_class_t.
11266         (TARGET_PREFERRED_RELOAD_CLASS,
11267         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11268
11269 2011-02-24  Richard Guenther  <rguenther@suse.de>
11270
11271         * lto-streamer-in.c (input_bb): Do not find referenced vars
11272         in debug statements.
11273
11274 2011-02-23  Jason Merrill  <jason@redhat.com>
11275
11276         * common.opt (fabi-version): Document v5 and v6.
11277
11278 2011-02-23  Richard Guenther  <rguenther@suse.de>
11279
11280         PR tree-optimization/47849
11281         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
11282
11283 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11284
11285         * opts-common.c (decode_cmdline_option): Print empty string
11286         argument as "" in decoded->orig_option_with_args_text.
11287         * gcc.c (execute): Print empty string argument as ""
11288         in the verbose output.
11289         (do_spec_1): Keep empty string argument.
11290
11291 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
11292
11293         * config.gcc: Declare score-* and crx-* obsolete.
11294
11295 2011-02-23  Jie Zhang  <jie@codesourcery.com>
11296
11297         PR rtl-optimization/47763
11298         * web.c (web_main): Ignore naked clobber when replacing register.
11299
11300 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
11301
11302         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11303         Remove.
11304
11305 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11306
11307         PR doc/47848
11308         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11309
11310 2011-02-22  Mike Stump  <mikestump@comcast.net>
11311
11312         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11313         assembler.
11314         * configure: Regenerate.
11315
11316 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
11317
11318         PR rtl-optimization/46002
11319         * ira-color.c (update_copy_costs): Change class intersection
11320         test to reg_class_contents[] test of 'hard_regno'.
11321
11322 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
11323
11324         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11325         than Driver option.
11326         * config/hpux11.opt (mt): Likewise.
11327         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11328         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11329         * config/vax/elf.opt (mno-asm-pic): Likewise.
11330         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11331
11332 2011-02-21  Mike Stump  <mikestump@comcast.net>
11333
11334         PR target/47822
11335         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11336         tree so we can get save the type.
11337         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11338         for CFString instead of trying to use past the end of the builtins.
11339         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11340         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11341         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11342         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11343         Rename to darwin_builtin_cfstring.
11344         (darwin_init_cfstring_builtins): Return the built type.
11345
11346 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
11347
11348         PR target/47840
11349         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11350         (_mm256_insert_epi64): Use _mm_insert_epi64.
11351
11352 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
11353
11354         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11355         * config/stormy16/stormy16-protos.h
11356         (xstormy16_mode_dependent_address_p): Remove.
11357         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11358         Make static. Change return type to bool. Change argument type to
11359         const_rtx. Remove dead code.
11360         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11361
11362 2011-02-21  Richard Guenther  <rguenther@suse.de>
11363
11364         PR lto/47820
11365         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11366         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11367         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11368         TUs context.
11369         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11370         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11371
11372 2011-02-20  Richard Guenther  <rguenther@suse.de>
11373
11374         PR lto/47822
11375         * tree.c (free_lang_data_in_decl): Clean builtins from
11376         the TU decl BLOCK_VARS.
11377
11378 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
11379
11380         PR debug/47620
11381         PR debug/47630
11382         * haifa-sched.c (fix_tick_ready): Skip tick computation
11383         for debug insns.
11384
11385 2011-02-19  Richard Guenther  <rguenther@suse.de>
11386
11387         PR lto/47647
11388         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11389         Remove lazy BLOCK_VARS streaming.
11390         (lto_input_ts_block_tree_pointers): Likewise.
11391         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11392
11393 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11394
11395         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11396
11397 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
11398
11399         * config/i386/biarch32.h, config/i386/mach.h,
11400         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11401
11402 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
11403
11404         PR target/47800
11405         * config/i386/i386.md (peephole2 for shift and plus): Use
11406         operands[1] original mode in the first insn.
11407
11408 2011-02-18  Mike Stump  <mikestump@comcast.net>
11409
11410         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
11411
11412 2011-02-18  Jan Hubicka  <jh@suse.cz>
11413
11414         PR middle-end/47788
11415         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11416         to zero when the function is not inlinable at all.
11417
11418 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11419
11420         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11421         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11422         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11423         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11424         * config/pa/t-pa64: Likewise.
11425         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11426
11427 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11428
11429         PR driver/47787
11430         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11431
11432 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11433
11434         PR target/47792
11435         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11436
11437 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
11438
11439         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11440         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11441         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11442         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11443         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11444         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11445         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11446         m32r_load_postinc_p, m32r_store_preinc_predec_p,
11447         m32r_legitimate_address_p): New functions.
11448         * config/m32r/constraints.md (constraint "S"): Don't use
11449         STORE_PREINC_PREDEC_P.
11450         (constraint "U"): Don't use LOAD_POSTINC_P.
11451
11452 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
11453
11454         PR rtl-optimization/46178
11455         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11456         compute ira_hard_regno_cover_class[].
11457
11458 2011-02-18  Richard Guenther  <rguenther@suse.de>
11459
11460         PR lto/47798
11461         * lto-streamer.h (lto_global_var_decls): Declare.
11462         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11463         statics for global var processing.
11464
11465 2011-02-18  Richard Guenther  <rguenther@suse.de>
11466
11467         PR tree-optimization/47737
11468         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11469         edge dominance check.
11470
11471 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
11472
11473         PR debug/47780
11474         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11475         avoid invalid rtx sharing.
11476
11477 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
11478
11479         * doc/cpp.texi (Obsolete Features): Add background on the
11480         origin of assertions.
11481
11482 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
11483
11484         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
11485         objc_abi == 2.
11486         * config/darwin.c (output_objc_section_asm_op): Added support for
11487         ABI v1 and v2.
11488         (is_objc_metadata): New.
11489         (darwin_objc2_section): New.
11490         (darwin_objc1_section): New.
11491         (machopic_select_section): Added support for ABI v1 and v2.
11492         (darwin_emit_objc_zeroed): New.
11493         (darwin_output_aligned_bss): Detect objc metadata and treat it
11494         appropriately.
11495         (darwin_asm_output_aligned_decl_common): Same.
11496         (darwin_asm_output_aligned_decl_local): Same.
11497         * config/darwin-sections.def: Updated for ABI v1 and v2.
11498         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11499         compiling Objective-C code for the NeXT runtime, default to using
11500         ABI version 0 for 32-bit, and version 2 for 64-bit.
11501
11502 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11503
11504         * common.opt (optimize_fast): New Variable.
11505         * opts.c (default_options_optimization): Use opts->x_optimize_fast
11506         instead of local variable ofast.
11507
11508 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
11509
11510         * doc/invoke.texi (fobjc-abi-version): Documented.
11511         (fobjc-nilcheck): Documented.
11512         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11513         version.
11514
11515 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11516
11517         PR driver/47390
11518         * common.opt (export-dynamic): New Driver option.
11519         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11520
11521 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11522
11523         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11524
11525 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
11526             Jan Hubicka  <jh@suse.cz>
11527
11528         PR debug/47106
11529         PR debug/47402
11530         * cfgexpand.c (account_used_vars_for_block): Remove.
11531         (estimated_stack_frame_size): Use referenced vars.
11532         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11533         that were referenced in the original function.  Test src_fn
11534         rather than cfun.  Drop redundant get_var_ann.
11535         (setup_one_parameter): Drop redundant get_var_ann.
11536         (declare_return_variable): Likewise.
11537         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11538         (copy_arguments_for_versioning): Drop redundant get_var_ann.
11539         * ipa-inline.c (compute_inline_parameters): Do not compute
11540         disregard_inline_limits here.
11541         (compute_inlinable_for_current, pass_inlinable): New.
11542         (pass_inline_parameters): Require PROP_referenced_vars.
11543         * cgraphunit.c (cgraph_process_new_functions): Don't run
11544         compute_inline_parameters explicitly unless function is in SSA form.
11545         (cgraph_analyze_function): Set .disregard_inline_limits.
11546         * tree-sra.c (convert_callers): Compute inliner parameters
11547         only for functions already in SSA form.
11548
11549 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11550
11551         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11552         -mlittle-endian-data.
11553
11554 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
11555
11556         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11557         -mno-fpu, not -fpu and -no-fpu.
11558         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11559         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11560
11561 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
11562
11563         PR target/43653
11564         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11565         input reload with PLUS RTX.
11566
11567 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11568
11569         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11570         of InverseVar(MDMX).
11571
11572 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11573
11574         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11575         --m4-340.
11576
11577 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11578
11579         * config/mn10300/mn10300.opt (mno-crt0): New.
11580
11581 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11582
11583         * config/m68k/uclinux.opt (static-libc): New Driver option.
11584
11585 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11586
11587         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11588
11589 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
11590
11591         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11592         %{muser-extend-enabled}.
11593
11594 2011-02-16  Richard Guenther  <rguenther@suse.de>
11595
11596         PR tree-optimization/47738
11597         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11598         the TODO from tree_predictive_commoning.
11599
11600 2011-02-15  Jeff Law  <law@redhat.com>
11601
11602         Revert
11603         2011-01-25  Jeff Law  <law@redhat.com>
11604
11605         PR rtl-optimization/37273
11606         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11607         handle them like argument loads from stack slots.  Do not double
11608         count memory for memory constants and argument loads from stack slots.
11609
11610 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11611
11612         PR middle-end/47725
11613         * combine.c (cant_combine_insn_p): Revert the last change.
11614
11615 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
11616
11617         PR target/47755
11618         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11619         mode for vector constants.  Remove code that checks for TImode.
11620
11621 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11622
11623         PR debug/47106
11624         PR debug/47402
11625         * cgraph.h (compute_inline_parameters): Return void.
11626         * ipa-inline.c (compute_inline_parameters): Adjust.
11627
11628 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11629
11630         PR debug/47106
11631         PR debug/47402
11632         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11633         rather than decl.
11634         * cfgexpand.c (estimated_stack_frame_size): Likewise.
11635         * ipa-inline.c (compute_inline_parameters): Adjust.
11636
11637 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11638
11639         PR debug/47106
11640         PR debug/47402
11641         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11642         Adjust all users.  Pass FN to...
11643         * tree-flow-inline.h (first_referenced_var): ... this.  Add
11644         fn argument.
11645         * ipa-struct-reorg.c: Adjust.
11646         * tree-dfa.c: Adjust.
11647         * tree-into-ssa.c: Adjust.
11648         * tree-sra.c: Adjust.
11649         * tree-ssa-alias.c: Adjust.
11650         * tree-ssa-live.c: Adjust.
11651         * tree-ssa.c: Adjust.
11652         * tree-ssanames.c: Adjust.
11653         * tree-tailcall.c: Adjust.
11654
11655 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
11656
11657         PR debug/47106
11658         PR debug/47402
11659         * tree-flow.h (referenced_var_lookup): Add fn parameter.
11660         Adjust all callers.
11661         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11662         * tree-flow-inline.h: Adjust.
11663         * gimple-pretty-print.c: Adjust.
11664         * tree-into-ssa.c: Adjust.
11665         * tree-ssa.c: Adjust.
11666         * cfgexpand.c: Adjust.
11667
11668 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11669
11670         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11671         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11672         (EXTRA_CONSTRAINT): Delete.
11673         * config/iq2000/constraints.md: New file.
11674         * config/iq2000/iq2000.md: Include it.
11675         (define_insn ""): Delete.
11676         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11677         unsupported constraint letters from patterns.
11678         (call_value, call_value_internal1): Likewise.
11679         (call_value_multiple_internal1): Likewise.
11680
11681 2011-02-15  Nick Clifton  <nickc@redhat.com>
11682
11683         * config/mn10300/mn10300.c: Include tm-constrs.h.
11684         (struct liw_data): New data structure describing an LIW candidate
11685         instruction.
11686         (extract_bundle): Use struct liw_data.  Allow small integer
11687         operands for some instructions.
11688         (check_liw_constraints): Use struct liw_data.  Remove swapped
11689         parameter.  Add comments describing the checks.  Fix bug when
11690         assigning the source of liw1 to the source of liw2.
11691         (liw_candidate): Delete.  Code moved into extract_bundle.
11692         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
11693         before swapping.
11694         * config/mn10300/predicates.md (liw_operand): New predicate.
11695         Allows registers and small integer constants.
11696         * config/mn10300/constraints.md (O): New constraint.  Accetps
11697         integers in the range -8 to +7 inclusive.
11698         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11699         for moving a small integer into a register.  Give this alternative
11700         LIW attributes.
11701         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11702         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11703         using the J,K,L and M constraints,
11704         (liw): Remove SI mode on second operands to allow for HI and QI
11705         mode values.
11706         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
11707         instruction.
11708
11709 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
11710
11711         PR middle-end/47725
11712         * combine.c (cant_combine_insn_p): Check zero/sign extended
11713         hard registers.
11714
11715 2011-02-15  Richard Guenther  <rguenther@suse.de>
11716
11717         PR tree-optimization/47743
11718         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11719         for a non-type-compatible VN lookup bail out.
11720
11721 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11722
11723         * config/fr30/constraints.md: New file.
11724         * config/fr30/fr30.md: Include it.
11725         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11726         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11727         (EXTRA_CONSTRAINT): Delete.
11728
11729 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
11730
11731         * config/frv/constraints.md: New file.
11732         * config/frv/predicates.md: Include it.
11733         * config/frv/frv.c (reg_class_from_letter): Delete.
11734         (frv_option_override): Don't initialize it.
11735         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11736         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11737         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11738         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11739         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11740         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11741         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11742         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11743         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11744         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11745         (REG_CLASS_FROM_CONSTRAINT): Delete.
11746
11747 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
11748
11749         PR middle-end/47581
11750         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11751         if frame size is 0 in a leaf function.
11752
11753 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11754
11755         PR pch/14940
11756         * config/alpha/host-osf.c: New file.
11757         * config/alpha/x-osf: New file.
11758         * config.host (alpha*-dec-osf*): Use it.
11759
11760 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11761
11762         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11763         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11764         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11765         (rx_mode_dependent_address_p): ...this. Make static. Change argument
11766         type to const_rtx.
11767         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11768
11769 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11770
11771         * config/stormy16/constraints.md: New file.
11772         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
11773         Use satisfies_constraint_Q and satisfies_constraint_R.
11774         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
11775         Delete.
11776         (xstormy16_legitiamte_address_p): Declare.
11777         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
11778         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11779         (EXTRA_CONSTRAINT): Delete.
11780         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
11781         Un-staticize.
11782         (xstormy16_extra_constraint_p): Delete.
11783
11784 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
11785
11786         PR tree-optimization/46494
11787         * loop-unroll.c (split_edge_and_insert): Adjust comment.
11788         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
11789         (pass_rtl_loop_done): Add TODO_verify_flow.
11790         * fwprop.c (pass_rtl_fwprop): Likewise.
11791         * modulo-sched.c (pass_sms): Likewise.
11792         * tree-ssa-dom.c (pass_dominator): Likewise.
11793         * tree-ssa-loop-ch.c (pass_ch): Likewise.
11794         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
11795         (pass_tree_loop_done): Likewise.
11796         * tree-ssa-pre.c (execute_pre): Likewise.
11797         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
11798         * tree-ssa-sink.c (pass_sink_code): Likewise.
11799         * tree-vrp.c (pass_vrp): Likewise.
11800
11801 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11802
11803         * config/v850/constraints.md: New file.
11804         * config/v850/v850.md: Include it.
11805         * config/v850/predicates.md (reg_or_0_operand): Use
11806         satisfies_constraint_G.
11807         (special_symbolref_operand): Use satisfies_constraint_K.
11808         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
11809         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11810         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
11811         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11812         (EXTRA_CONSTRAINT): Delete.
11813         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11814         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11815         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
11816
11817 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
11818
11819         PR target/47696
11820         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11821         description.
11822
11823 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
11824
11825         * config/mcore/constraints.md: New file.
11826         * config/mcore/mcore.md: Include it.
11827         * config/mcore/mcore.c (reg_class_from_letter): Delete.
11828         * config/mcore/mcore.h (reg_class_from_letter): Delete.
11829         (REG_CLASS_FROM_LETTER): Delete.
11830         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11831         insn_const_int_ok_for_constraint.
11832         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11833         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11834         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11835         (EXTRA_CONSTRAINT): Delete.
11836
11837 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11838
11839         PR ada/41929
11840         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11841         (IS_SIGHANDLER): Define.
11842         (sparc64_is_sighandler): New function, split off from
11843         sparc64_fallback_frame_state.
11844         (sparc_is_sighandler): New function, split off from
11845         sparc_fallback_frame_state.
11846         (sparc64_fallback_frame_state): Merge with ...
11847         (sparc_fallback_frame_state): ... this into ...
11848         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
11849         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
11850         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
11851         stack instead of hardcoded offsets.
11852
11853 2011-02-14  Andriy Gapon  <avg@freebsd.org>
11854
11855         PR target/45808
11856         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11857
11858 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11859
11860         * configure: Regenerate.
11861
11862 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
11863
11864         PR driver/45731
11865         * gcc.c (asm_options): Correct spec matching --target-help.
11866
11867 2011-02-12  Martin Jambor  <mjambor@suse.cz>
11868
11869         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11870         to gimple call error.
11871
11872 2011-02-12  Mike Stump  <mikestump@comcast.net>
11873
11874         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11875         comments in backslash regions.
11876
11877 2011-02-12  Mike Stump  <mikestump@comcast.net>
11878             Jakub Jelinek  <jakub@redhat.com>
11879             Iain Sandoe  <iains@gcc.gnu.org>
11880
11881         PR target/47324
11882         * dwarf2out.c (output_cfa_loc): When required, apply the
11883         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11884         (output_loc_sequence): Likewise.
11885         (output_loc_operands_raw): Likewise.
11886         (output_loc_sequence_raw): Likewise.
11887         (output_cfa_loc): Likewise.
11888         (output_loc_list): Suppress register number adjustment when
11889         calling output_loc_sequence()
11890         (output_die): Likewise.
11891
11892 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
11893
11894         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11895         Remove macros.
11896         * config/xtensa/xtensa.c (xtensa_register_move_cost,
11897         xtensa_memory_move_cost): New functions.
11898         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11899
11900 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
11901
11902         PR lto/47225
11903         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11904         in the current directory.
11905         * configure: Rebuilt.
11906
11907 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11908
11909         * config/darwin.c (darwin_override_options): Add a hunk missed
11910         from the commit of r168571.  Trim comment line lengths and
11911         correct indents of the preceding block.
11912
11913 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
11914
11915         * gcc.c (driver_handle_option): Concatenate the argument to -F with
11916         the switch.
11917
11918 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11919
11920         * common.opt (nostartfiles): New Driver option.
11921
11922 2011-02-11  Xinliang David Li  <davidxl@google.com>
11923
11924         PR tree-optimization/47707
11925         * tree-chrec.c (convert_affine_scev): Keep type precision.
11926
11927 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
11928
11929         PR tree-optimization/47420
11930         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11931
11932 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
11933
11934         PR rtl-optimization/47614
11935         * rtl.h (check_for_inc_dec): Declare.
11936         * dse.c (check_for_inc_dec): Externalize...
11937         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11938         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11939
11940 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
11941
11942         PR driver/47678
11943         * gcc.c (main): Do not compile inputs if there were errors in
11944         option handling.
11945         * opts-common.c (read_cmdline_option): Check for wrong language
11946         after other error checks.
11947
11948 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
11949
11950         * cgraph.c: Fix comment typos.
11951         * cgraph.h: Likewise.
11952         * cgraphunit.c: Likewise.
11953         * ipa-cp.c: Likewise.
11954         * ipa-inline.c: Likewise.
11955         * ipa-prop.c: Likewise.
11956         * ipa-pure-const.c: Likewise.
11957         * ipa-ref.c: Likewise.
11958         * ipa-reference.c: Likewise.
11959
11960 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
11961
11962         PR debug/47684
11963         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
11964
11965 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11966
11967         PR testsuite/47400
11968         * doc/sourcebuild.texi (Require Support): Document
11969         dg-require-ascii-locale.
11970
11971 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
11972
11973         * doc/lto.texi (Write summary): Fix missing parentheses.
11974
11975 2011-02-10  DJ Delorie  <dj@redhat.com>
11976
11977         * config/m32c/m32c.c (m32c_option_override): Disable
11978         -fcombine-stack-adjustments until flag value tracking and compare
11979         optimization can be rewritten.
11980
11981 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
11982
11983         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11984         PROCESSOR_POWER7.
11985         (PROCESSOR_DEFAULT64): Likewise.
11986
11987 2011-02-10  Richard Henderson  <rth@redhat.com>
11988
11989         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11990         change from 2011-02-03.
11991         * config/rx/rx.c (flags_from_code): Likewise.
11992         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11993         is valid, n/pz otherwise.
11994         (rx_select_cc_mode): Return CCmode if Y is not zero.
11995
11996 2011-02-10  Richard Guenther  <rguenther@suse.de>
11997
11998         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
11999
12000 2011-02-10  Richard Guenther  <rguenther@suse.de>
12001
12002         PR tree-optimization/47677
12003         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12004
12005 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
12006
12007         PR target/47665
12008         * combine.c (make_compound_operation): Only change shifts into
12009         multiplication for SCALAR_INT_MODE_P.
12010
12011 2011-02-10  Jie Zhang  <jie@codesourcery.com>
12012
12013         PR testsuite/47622
12014         Revert
12015         2011-02-05  Jie Zhang  <jie@codesourcery.com>
12016         PR debug/42631
12017         * web.c (entry_register): Don't clobber the number of the
12018         first uninitialized reference in used[].
12019
12020 2011-02-09  Richard Guenther  <rguenther@suse.de>
12021
12022         PR tree-optimization/47664
12023         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12024         all edges again.
12025
12026 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
12027
12028         PR target/46481
12029         PR target/47032
12030         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12031         PROCESSOR_POWER7.
12032         (PROCESSOR_DEFAULT64): Same.
12033         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12034
12035 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12036
12037         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12038
12039 2011-02-09  Martin Jambor  <mjambor@suse.cz>
12040
12041         PR middle-end/45505
12042         * tree-sra.c (struct access): New flags grp_scalar_read and
12043         grp_scalar_write.  Changed description of assignment read and write
12044         flags.
12045         (dump_access): Dump new flags, reorder all of them.
12046         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12047         to detect multiple scalar reads.
12048         (analyze_access_subtree): Use the new scalar read write flags instead
12049         of the old flags.  Adjusted comments.
12050
12051 2011-02-08  DJ Delorie  <dj@redhat.com>
12052
12053         PR target/47548
12054         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12055         patterns.
12056
12057 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12058
12059         * config/m68k/uclinux.opt: New.
12060         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12061
12062 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12063
12064         * config/cris/elf.opt (sim): New Driver option.
12065
12066 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12067
12068         * config/xtensa/elf.opt: New.
12069         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12070
12071 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12072
12073         * config/vax/elf.opt: New.
12074         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12075
12076 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12077
12078         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12079
12080 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12081
12082         * config/gnu-user.opt: New.
12083         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12084         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12085         *-*-uclinux*): Use gnu-user.opt.
12086
12087 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
12088
12089         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12090         * config/i386/gnu.h (CPP_SPEC): Likewise.
12091
12092 2011-02-08  Ian Lance Taylor  <iant@google.com>
12093
12094         * common.opt (fcx-limited-range): Add SetByCombined flag.
12095         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12096         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12097         (fassociative-math, freciprocal-math): Likewise.
12098         (funsafe-math-optimizations): Likewise.
12099         * opth-gen.awk: Handle SetByCombined.
12100         * optc-gen.awk: Likewise.
12101         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
12102         (set_unsafe_math_optimizations_flags): Likewise.
12103         * doc/options.texi (Option properties): Document SetByCombined.
12104
12105 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
12106
12107         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12108         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12109         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12110         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12111         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12112
12113 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
12114
12115         PR tree-optimization/46834
12116         PR tree-optimization/46994
12117         PR tree-optimization/46995
12118         * graphite-sese-to-poly.c (used_outside_reduction): New.
12119         (detect_commutative_reduction): Call used_outside_reduction.
12120         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
12121         translate_scalar_reduction_to_array only when at least one
12122         loop-phi/close-phi tuple has been detected.
12123
12124 2011-02-08  Richard Guenther  <rguenther@suse.de>
12125
12126         PR middle-end/47639
12127         * tree-vect-generic.c (expand_vector_operations_1): Update
12128         stmts here ...
12129         (expand_vector_operations): ... not here.  Cleanup EH info
12130         and the CFG if required.
12131
12132 2011-02-08  Richard Guenther  <rguenther@suse.de>
12133
12134         PR tree-optimization/47641
12135         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
12136         require type compatibility.
12137
12138 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12139
12140         * gimple-low.c (lower_function_body): Don't remove the location of
12141         the return statement here.
12142         (lower_gimple_return): Do it here instead but only if the return
12143         statement is actually used twice.
12144
12145 2011-02-08  Richard Guenther  <rguenther@suse.de>
12146
12147         PR tree-optimization/47632
12148         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
12149         unused up_to_stmt parameter, return whether cfg-cleanup is
12150         necessary, remove EH info properly.
12151         (forward_propagate_into_gimple_cond): Adjust caller.
12152         (forward_propagate_into_cond): Likewise.
12153         (forward_propagate_comparison): Likewise.
12154         (tree_ssa_forward_propagate_single_use_vars): Make
12155         forward_propagate_comparison case similar to the two others.
12156
12157 2011-02-08  Nick Clifton  <nickc@redhat.com>
12158
12159         * config/mn10300/mn10300.opt (mliw): New command line option.
12160         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
12161         (liw_bundling): New automaton.
12162         (liw): New attribute.
12163         (liw_op): New attribute.
12164         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
12165         (movsi_internal): Add LIW attributes.
12166         (andsi3): Likewise.
12167         (iorsi3): Likewise.
12168         (xorsi3): Likewise.
12169         (addsi3): Separate register and immediate alternatives.
12170         Add LIW attributes.
12171         (subsi3): Likewise.
12172         (cmpsi): Likewise.
12173         (aslsi3): Likewise.
12174         (lshrsi3): Likewise.
12175         (ashrsi3): Likewise.
12176         (liw): New pattern.
12177         * config/mn10300/mn10300.c (liw_op_names): New
12178         (mn10300_print_operand): Handle 'W' operand descriptor.
12179         (extract_bundle): New function.
12180         (check_liw_constraints): New function.
12181         (liw_candidate): New function.
12182         (mn10300_bundle_liw): New function.
12183         (mn10300_reorg): New function.
12184         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12185         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
12186         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
12187         __LIW__ or __NO_LIW__.
12188         * doc/invoke.texi: Describe the -mliw command line option.
12189
12190 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12191
12192         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
12193         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12194         pthread_mutex_unlock): Remove.
12195         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
12196         * config/pa/t-pa64: Likewise.
12197         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
12198         shared libc if not linking against libpthread.
12199         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
12200
12201 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
12202
12203         PR target/47558
12204         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
12205         on 10.6 and later to ensure that we always use the unwinder from
12206         the system.  Only add -no_compact_unwind when tarteting darwin
12207         10.6 or later.
12208
12209 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
12210
12211         PR target/46997
12212         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
12213         (vec_interleave_lowv2sf): Ditto.
12214         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
12215         (vec_extract_oddv2sf): Ditto.
12216
12217 2011-02-07  Mike Stump  <mikestump@comcast.net>
12218
12219         PR target/42333
12220         Add __ieee_divdc3 entry point.
12221         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
12222         entry point.
12223         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
12224         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
12225         * config/darwin.c (darwin_rename_builtins): Add.
12226         * config/darwin-protos.h (darwin_rename_builtins): Add.
12227
12228 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
12229
12230         PR target/47636
12231         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
12232         for the condition.
12233
12234 2011-02-07  Mike Stump  <mikestump@comcast.net>
12235
12236         * config/darwin.opt (mmacosx-version-min): Update default OS version.
12237
12238 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
12239
12240         PR target/47534
12241         * config/avr/libgcc.S (exit): Move .endfunc
12242
12243 2011-02-07  Richard Guenther  <rguenther@suse.de>
12244
12245         PR tree-optimization/47615
12246         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
12247         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
12248         (run_scc_vn): Initialize it.
12249         (visit_reference_op_load): Use it.
12250         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
12251
12252 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12253
12254         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
12255         DImode trapping arithmetic libfuncs.
12256
12257 2011-02-07  Richard Guenther  <rguenther@suse.de>
12258
12259         PR tree-optimization/47621
12260         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
12261         two duplicates ...
12262         (execute_update_addresses_taken): ... here.  Make it more
12263         conservative in what we accept.
12264
12265 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12266
12267         * config/sparc/freebsd.h (ASM_SPEC): Define.
12268         * config/sparc/vxworks.h (ASM_SPEC): Define.
12269
12270 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
12271
12272         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12273
12274 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
12275
12276         * doc/invoke.texi: Remove reference to compiler internals from
12277         user documentation.
12278
12279         * reg-notes.def: Remove REG_VALUE_PROFILE.
12280         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
12281
12282 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
12283
12284         PR middle-end/47610
12285         * varasm.c (default_section_type_flags): If decl is NULL,
12286         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
12287
12288 2011-02-05  Jie Zhang  <jie@codesourcery.com>
12289
12290         PR debug/42631
12291         * web.c (entry_register): Don't clobber the number of the
12292         first uninitialized reference in used[].
12293
12294 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
12295
12296         PR tree-optimization/46194
12297         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12298         (build_classic_dist_vector_1): Do not represent classic distance
12299         vectors when the access functions are variating in different loops.
12300
12301 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12302
12303         * config/mips/iris6.opt: New.
12304         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12305
12306 2011-02-04  Richard Henderson  <rth@redhat.com>
12307             Steve Ellcey  <sje@cup.hp.com>
12308
12309         PR target/46997
12310         * config/ia64/predicates.md (mux1_brcst_element): New.
12311         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12312         * config/ia64/ia64.c (ia64_unpack_assemble): New.
12313         (ia64_unpack_sign): New.
12314         (ia64_expand_unpack): Rewrite using new routines.
12315         (ia64_expand_widen_sum): Ditto.
12316         (ia64_expand_dot_prod_v8qi): Ditto.
12317         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12318         routines, add endian check.
12319         (pmpy2_even): Rename from pmpy2_r, add endian check.
12320         (pmpy2_odd): Rename from pmpy2_l, add endian check.
12321         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12322         (vec_widen_smult_hi_v4hi): Ditto.
12323         (vec_widen_umult_lo_v4hi): Ditto.
12324         (vec_widen_umult_hi_v4hi): Ditto.
12325         (mulv2si3): Change endian checks.
12326         (sdot_prodv4hi): Rewrite with new calls.
12327         (udot_prodv4hi): New.
12328         (vec_pack_ssat_v4hi): Add endian check.
12329         (vec_pack_usat_v4hi): Ditto.
12330         (vec_pack_ssat_v2si): Ditto.
12331         (max1_even): Rename from max1_r, add endian check.
12332         (max1_odd): Rename from max1_l, add endian check.
12333         (*mux1_rev): Format change.
12334         (*mux1_mix): Ditto.
12335         (*mux1_shuf): Ditto.
12336         (*mux1_alt): Ditto.
12337         (*mux1_brcst_v8qi): Use new predicate.
12338         (vec_extract_evenv8qi): Remove endian check.
12339         (vec_extract_oddv8qi): Ditto.
12340         (vec_interleave_lowv4hi): Format change.
12341         (vec_interleave_highv4hi): Ditto.
12342         (mix2_even): Rename from mix2_r, add endian check.
12343         (mix2_odd): Rename from mux2_l, add endian check.
12344         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12345         (vec_extract_evenodd_helper): Format change.
12346         (vec_extract_evenv4hi): Remove endian check.
12347         (vec_extract_oddv4hi): Remove endian check.
12348         (vec_interleave_lowv2si): Format change.
12349         (vec_interleave_highv2si): Format change.
12350         (vec_initv2si): Remove endian check.
12351         (vecinit_v2si): Add endian check.
12352         (reduc_splus_v2sf): Add endian check.
12353         (reduc_smax_v2sf): Ditto.
12354         (reduc_smin_v2sf): Ditto.
12355         (vec_initv2sf): Remove endian check.
12356         (fpack): Add endian check.
12357         (fswap): Add endian check.
12358         (vec_interleave_highv2sf): Add endian check.
12359         (vec_interleave_lowv2sf): Add endian check.
12360         (fmix_lr): Add endian check.
12361         (vec_setv2sf): Format change.
12362         (*vec_extractv2sf_0_be): Use shift to extract operand.
12363         (*vec_extractv2sf_1_be): New.
12364         (vec_pack_trunc_v4hi): Add endian check.
12365         (vec_pack_trunc_v2si): Format change.
12366
12367 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
12368
12369         PR inline-asm/23200
12370         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
12371         do bb, locus and block comparison and disallow loads if it is not set.
12372         (stmt_is_replaceable_p): New function.
12373         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12374         callers.
12375         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12376         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12377         SSA_NAME_DEF_STMT.
12378         * tree-flow.h (stmt_is_replaceable_p): New prototype.
12379
12380 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12381
12382         * config/rs6000/xilinx.opt: New.
12383         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12384
12385 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
12386
12387         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12388
12389 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
12390
12391         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12392         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12393         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12394         secondary_reload_info, xtensa_secondary_reload): Remove.
12395         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12396         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12397         (xtensa_preferred_reload_class): Make static. Change return and
12398         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12399         Use CONST_DOUBLE_P predicate.
12400         (xtensa_preferred_output_reload_class): New function.
12401         (xtensa_secondary_reload): Make static.
12402
12403 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
12404
12405         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12406         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12407         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12408
12409 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12410
12411         PR middle-end/31490
12412         * output.h (SECTION_RELRO): Define.
12413         (SECTION_MACH_DEP): Adjust.
12414         (get_variable_section): New prototype.
12415         * varpool.c (varpool_finalize_named_section_flags): New function.
12416         (varpool_assemble_pending_decls): Call it.
12417         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12418         * cgraphunit.c (cgraph_output_in_order): Call
12419         varpool_finalize_named_section_flags.
12420         * varasm.c (get_section): Allow section flags conflicts between
12421         relro and read-only sections if the section hasn't been declared yet.
12422         Set SECTION_OVERRIDE after diagnosing section type conflict.
12423         (get_variable_section): No longer static.
12424         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12425         readonly sections that need relocations.
12426         (decl_readonly_section_1): New function.
12427         (decl_readonly_section): Use it.
12428
12429         Revert:
12430         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
12431                     Steve Ellcey  <sje@cup.hp.com>
12432
12433         PR middle-end/31490
12434         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12435         if section attribute used.
12436
12437 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12438
12439         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12440         * config/darwin.c (SECTION_NO_ANCHOR): Define.
12441         (darwin_init_sections): Remove assertion.
12442
12443 2011-02-03  Nick Clifton  <nickc@redhat.com>
12444
12445         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12446         lt and ge.
12447         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
12448         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12449         instead of "n" and "pz".
12450         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12451         CC_FLAG_S.
12452
12453 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
12454
12455         PR target/47312
12456         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12457         fma, expand FMA_EXPR as fma{,f,l} call.
12458
12459         PR lto/47274
12460         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12461         copy them into a unsigned char variable and pass address of it to
12462         lto_output_data_stream.
12463
12464         PR target/47564
12465         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12466         around backend_init_target and lang_dependent_init_target calls.
12467         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12468         (verify_cgraph_node): Don't call set_cfun here.  Use
12469         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12470         Set error_found for incorrectly represented calls to thunks.
12471
12472 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12473
12474         PR debug/43092
12475         PR rtl-optimization/43494
12476         * rtl.h (for_each_inc_dec_fn): New type.
12477         (for_each_inc_dec): Declare.
12478         * rtlanal.c (struct for_each_inc_dec_ops): New type.
12479         (for_each_inc_dec_find_inc_dec): New fn.
12480         (for_each_inc_dec_find_mem): New fn.
12481         (for_each_inc_dec): New fn.
12482         * dse.c (struct insn_size): Remove.
12483         (replace_inc_dec, replace_inc_dec_mem): Remove.
12484         (emit_inc_dec_insn_before): New fn.
12485         (check_for_inc_dec): Use it, along with for_each_inc_dec.
12486         (canon_address): Pass mem modes to cselib_lookup.
12487         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
12488         (cselib_lookup_from_insn): Likewise.
12489         (cselib_subst_to_values): Likewise.
12490         * cselib.c (find_slot_memmode): New var.
12491         (cselib_find_slot): New fn.  Use it instead of
12492         htab_find_slot_with_hash everywhere.
12493         (entry_and_rtx_equal_p): Use find_slot_memmode.
12494         (autoinc_split): New fn.
12495         (rtx_equal_for_cselib_p): Rename and implement in terms of...
12496         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
12497         Deal with autoinc.  Special-case recursion into MEMs.
12498         (cselib_hash_rtx): Likewise.
12499         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
12500         address and MEM modes.
12501         (cselib_subst_to_values): Add memmode, pass it on.
12502         Deal with autoinc.
12503         (cselib_lookup): Add memmode argument, pass it on.
12504         (cselib_lookup_from_insn): Add memmode.
12505         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12506         (struct cselib_record_autoinc_data): New.
12507         (cselib_record_autoinc_cb): New fn.
12508         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
12509         mode to cselib_lookup.  Reset autoinced REGs here instead of...
12510         (cselib_process_insn): ... here.
12511         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12512         to cselib_lookup.
12513         (add_uses): Likewise, also to cselib_subst_to_values.
12514         (add_stores): Likewise.
12515         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
12516         cselib_subst_to_values.
12517         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
12518         * gcse.c (do_local_cprop): Adjusted.
12519         * postreload.c (reload_cse_simplify_set): Adjusted.
12520         (reload_cse_simplify_operands): Adjusted.
12521         * sel-sched-dump (debug_mem_addr_value): Pass mode.
12522
12523 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
12524
12525         PR tree-optimization/45122
12526         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12527         unsafe assumptions when there's more than one loop exit.
12528
12529 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12530
12531         PR target/47272
12532         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12533         Document using vector double with the load/store builtins, and
12534         that the load/store builtins always use Altivec instructions.
12535
12536         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12537         to use altivec memory instructions, even on VSX.
12538         (vector_altivec_store_<mode>): Ditto.
12539
12540         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12541         function.
12542
12543         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12544         V2DF, V2DI support to load/store overloaded builtins.
12545
12546         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12547         altivec load/store builtins for V2DF/V2DI types.
12548
12549         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12550         set avoid indexed addresses on power6 if -maltivec.
12551         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12552         vector_altivec_load/vector_altivec_store builtins.
12553         (altivec_expand_st_builtin): Ditto.
12554         (altivec_expand_builtin): Add VSX memory builtins.
12555         (rs6000_init_builtins): Add V2DI types to internal types.
12556         (altivec_init_builtins): Add support for V2DF/V2DI altivec
12557         load/store builtins.
12558         (rs6000_address_for_altivec): Insure memory address is appropriate
12559         for Altivec.
12560
12561         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12562         vec_vsx_ld and vec_vsx_st.
12563         (vsx_store_<mode>): Ditto.
12564
12565         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12566         variables to hold long long types for VSX vector memory builtins.
12567         (RS6000_BTI_unsigned_long_long): Ditto.
12568         (long_long_integer_type_internal_node): Ditti.
12569         (long_long_unsigned_type_internal_node): Ditti.
12570
12571         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12572         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12573         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12574
12575         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12576         short cuts.
12577         (vec_vsx_st): Ditto.
12578
12579 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12580
12581         * config/pa/pa-hpux10.opt: New.
12582         * config/hpux11.opt (pthread): New Driver option.
12583         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12584         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12585
12586 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12587
12588         * config/ia64/vms.opt: New.
12589         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12590
12591 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
12592
12593         PR target/47580
12594         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12595         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12596         generator functions.
12597         (vsx_floatuns<VSi><mode>2): Ditto.
12598         (vsx_fix_trunc<mode><VSi>2): Ditto.
12599         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12600
12601 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
12602
12603         * config/i386/djgpp.opt (posix): New Driver option.
12604
12605 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
12606
12607         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12608         Move to the unsupported targets list.
12609
12610 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
12611
12612         PR rtl-optimization/47525
12613         * df-scan.c: Update copyright years.
12614         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12615         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12616
12617 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12618
12619         * config/i386/sysv4.h (TARGET_VERSION): Remove.
12620         (SUBTARGET_RETURN_IN_MEMORY): Remove.
12621         (ASM_OUTPUT_ASCII): Remove.
12622         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12623
12624 2011-02-02  Jeff Law  <law@redhat.com>
12625
12626         PR middle-end/47543
12627         * reload.c (find_reloads_address): Handle reg+d address where both
12628         components are invalid by reloading the entire address.
12629
12630 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12631             Richard Guenther  <rguenther@suse.de>
12632
12633         PR tree-optimization/40979
12634         PR bootstrap/47044
12635         * passes.c (init_optimization_passes): After LIM call copy_prop
12636         and DCE to clean up.
12637         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12638
12639 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
12640
12641         PR tree-optimization/47576
12642         PR tree-optimization/47555
12643         * doc/invoke.texi (scev-max-expr-complexity): Documented.
12644         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12645         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12646         * tree-scalar-evolution.c (follow_ssa_edge): Use
12647         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12648
12649 2011-02-02  Richard Guenther  <rguenther@suse.de>
12650
12651         PR tree-optimization/47566
12652         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12653
12654 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12655
12656         PR debug/47106
12657         PR debug/47402
12658         * tree-inline.c (declare_return_variable): Remove unused caller
12659         variable.
12660
12661         PR debug/47106
12662         PR debug/47402
12663         * tree-flow-inline.h (clear_is_used, is_used_p): New.
12664         * cfgexpand.c (account_used_vars_for_block): Use them.
12665         * tree-nrv.c (tree_nrv): Likewise.
12666         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12667         (dump_scope_block): Likewise.
12668         (remove_unused_locals): Likewise.
12669
12670         PR debug/47106
12671         PR debug/47402
12672         * tree-inline.c (declare_return_variable): Add result decl to
12673         local decls only once.
12674         * gimple-low.c (record_vars_into): Mark newly-created variables
12675         as referenced.
12676
12677 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
12678
12679         PR debug/47498
12680         PR debug/47501
12681         PR debug/45136
12682         PR debug/45130
12683         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12684         debug insns.
12685         (no_real_insns_p, schedule_block, set_priorities): Drop special
12686         treatment of boundary debug insns.
12687         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12688         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12689         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12690         (BOUNDARY_DEBUG_INSN_P): Likewise.
12691         (SCHEDULE_DEBUG_INSN_P): Likewise.
12692         * sched-rgn.c (init_ready_list): Drop special treatment of
12693         boundary debug insns.
12694         * final.c (rest_of_clean_state): Clear notes' BB.
12695
12696 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12697
12698         * config/openbsd.opt (assert=): New Driver option.
12699
12700 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12701
12702         * config/i386/nto.opt: New.
12703         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12704
12705 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12706
12707         * config/i386/netware.opt: New.
12708         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12709
12710 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12711
12712         * config/interix.opt (posix): New Driver option.
12713
12714 2011-02-01  DJ Delorie  <dj@redhat.com>
12715
12716         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12717
12718         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12719         class for A0/A1.
12720
12721 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
12722
12723         PR tree-optimization/47561
12724         * toplev.c (process_options): Print the Graphite flags.  Add
12725         flag_loop_flatten to the list of options requiring Graphite.
12726
12727 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12728
12729         * config/i386/cygming.opt (posix): New Driver option.
12730
12731 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12732
12733         * config/arm/vxworks.opt: New.
12734         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12735
12736 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
12737
12738         * config/alpha/elf.opt: New.
12739         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12740         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12741
12742 2011-02-01  Richard Guenther  <rguenther@suse.de>
12743
12744         PR tree-optimization/47559
12745         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12746         store-motion on references that can throw.
12747
12748 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
12749
12750         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12751         * tree-pass.h (TDF_CSELIB): New macro.
12752         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12753         cselib_lookup): Check for it rather than for TDF_DETAILS.
12754
12755 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
12756
12757         PR driver/47547
12758         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12759         is HOST_BIT_BUCKET.
12760
12761         * opts.c (finish_options): Don't add x_aux_base_name if it is
12762         HOST_BIT_BUCKET.
12763
12764 2011-02-01  Richard Guenther  <rguenther@suse.de>
12765
12766         PR tree-optimization/47555
12767         Revert
12768         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
12769
12770         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12771
12772 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
12773
12774         PR gcc/46692
12775         * config/lm32/t-lm32: Add multilib for all CPU options.
12776
12777 2011-02-01  Richard Guenther  <rguenther@suse.de>
12778
12779         PR tree-optimization/47541
12780         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12781         sure to have a field at offset zero.
12782
12783 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12784
12785         * config/arc/arc.opt (EB, EL): New Driver options.
12786
12787 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12788
12789         * config/alpha/osf5.opt: New.
12790         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
12791
12792 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
12793
12794         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
12795
12796 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
12797
12798         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
12799         -floop-interchange.
12800         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
12801         is an alias of -floop-interchange and that it requires the
12802         Graphite infrastructure.
12803         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
12804         flag_loop_interchange based on the value of flag_tree_loop_linear.
12805
12806 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
12807             Richard Guenther  <rguenther@suse.de>
12808
12809         PR tree-optimization/47538
12810         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
12811         type instead of r1type, except for comparisons.  For right
12812         shifts and comparisons punt if there are mismatches in
12813         sizetype vs. non-sizetype types.
12814
12815 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12816
12817         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12818         avx_runtime.
12819
12820 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12821
12822         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12823         version number.
12824         * configure: Regenerate.
12825
12826 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12827
12828         * configure.ac (gcc_cv_ld_static_option): Define.
12829         (gcc_cv_ld_dynamic_option): Define.
12830         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12831         instead.
12832         (HAVE_LD_STATIC_DYNAMIC): Update message.
12833         (LD_STATIC_OPTION): Define.
12834         (LD_DYNAMIC_OPTION): Define.
12835         * configure: Regenerate.
12836         * config.in: Regenerate.
12837         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12838         HAVE_LD_STATIC_DYNAMIC]: Use them.
12839
12840 2011-01-31  Nick Clifton  <nickc@redhat.com>
12841
12842         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12843         registers inside interrupt handlers if the handler is not a leaf
12844         function.
12845
12846 2011-01-31  Nick Clifton  <nickc@redhat.com>
12847
12848         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12849         reg_renumber returning an INVALID_REGNUM.
12850
12851 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12852
12853         PR libgcj/44341
12854         * doc/install.texi: Document host options discarded when cross
12855         configuring target libraries.
12856
12857 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
12858
12859         Reverted:
12860         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12861         PR debug/45136
12862         PR debug/45130
12863         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12864         debug insns.
12865         (no_real_insns_p, schedule_block, set_priorities): Drop special
12866         treatment of boundary debug insns.
12867         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12868         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12869         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12870         (BOUNDARY_DEBUG_INSN_P): Likewise.
12871         (SCHEDULE_DEBUG_INSN_P): Likewise.
12872         * sched-rgn.c (init_ready_list): Drop special treatment of
12873         boundary debug insns.
12874         * final.c (rest_of_clean-state): Clear notes' BB.
12875
12876 2011-01-31  Alan Modra  <amodra@gmail.com>
12877
12878         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12879         toc relative expressions as we do in print_operand_address.
12880
12881 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
12882
12883         * doc/extend.texi: Follow spelling conventions.
12884         * doc/invoke.texi: Fix a typo.
12885
12886 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
12887
12888         * config/hpux11.opt: New.
12889         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12890         ia64*-*-hpux*): Use hpux11.opt.
12891
12892 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
12893
12894         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12895         to tmake_file.
12896
12897 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12898
12899         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12900         support sites.
12901
12902 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12903
12904         * doc/install.texi (Binaries): Remove outdated reference for
12905         Motorola 68HC11/68HC12 downloads.
12906
12907 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
12908
12909         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12910         Drepper's paper.
12911
12912 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
12913
12914         PR bootstrap/47147
12915         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12916         used by NetBSD.
12917
12918 2011-01-28  Ahmad Sharif  <asharif@google.com>
12919
12920         * value-prof.c (check_counter): Corrected error message.
12921
12922 2011-01-29  Jie Zhang  <jie@codesourcery.com>
12923
12924         * config/arm/arm.c (arm_legitimize_reload_address): New.
12925         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12926         arm_legitimize_reload_address.
12927         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
12928
12929 2011-01-28  Ian Lance Taylor  <iant@google.com>
12930
12931         * godump.c (go_define): Ignore macros whose definitions include
12932         two adjacent operands.
12933
12934 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
12935
12936         PR target/42894
12937         * varasm.c (force_const_mem): Store copy of x in desc->constant
12938         instead of x itself.
12939         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12940         itself into REG_EQUAL note.
12941
12942 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
12943
12944         * config/freebsd.opt (posix, rdynamic): New Driver options.
12945
12946 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12947
12948         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12949         -Bstatic/-Bdynamic.
12950         * configure: Regenerate.
12951
12952 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
12953
12954         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12955         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12956
12957 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
12958
12959         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12960         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12961         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12962         (s390_preferred_reload_class): Make static. Change return and
12963         'rclass' argument type to reg_class_t.
12964
12965 2011-01-27  Jan Hubicka  <jh@suse.cz>
12966
12967         PR middle-end/46949
12968         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12969         (process_function_and_variable_attributes): Check defined weakrefs.
12970
12971 2011-01-27  Martin Jambor  <mjambor@suse.cz>
12972
12973         PR tree-optimization/47228
12974         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12975         build_ref_for_offset.
12976
12977 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12978
12979         * config/spu/spu-elf.h (ASM_SPEC): Remove.
12980
12981 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
12982
12983         PR rtl-optimization/46856
12984         * postreload.c (reload_combine_recognize_const_pattern): Do not
12985         separate cc0 setter and user on cc0 targets.
12986
12987 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
12988
12989         PR c/43082
12990         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12991         passed a VOID_TYPE expression, immediately emit an error and
12992         return error_mark_node.
12993
12994 2011-01-26  Jeff Law  <law@redhat.com>
12995
12996         PR rtl-optimization/47464
12997         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12998         rather than may_trap_p as needed.
12999
13000 2011-01-26  DJ Delorie  <dj@redhat.com>
13001
13002         PR rtl-optimization/46878
13003         * combine.c (insn_a_feeds_b): Check for the implicit cc0
13004         setter/user dependency as well.
13005
13006 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13007
13008         PR rtl-optimization/44469
13009         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13010         after removing trivially dead basic blocks.
13011
13012 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13013
13014         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13015         * config/frv/frv.h (LINK_SPEC): Likewise.
13016         * config/i386/netware.h (LINK_SPEC): Likewise.
13017         * config/m68k/linux.h (ASM_SPEC): Likewise.
13018         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13019         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13020         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13021         * config/sparc/linux.h (ASM_SPEC): Likewise.
13022         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13023         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13024
13025 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13026
13027         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13028         * config/frv/frv.h (ASM_SPEC): Likewise.
13029         * config/m68k/linux.h (ASM_SPEC): Likewise.
13030         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13031         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13032         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13033         * config/sparc/linux.h (ASM_SPEC): Likewise.
13034         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13035         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13036
13037 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13038
13039         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13040         * config/frv/frv.h (LINK_SPEC): Likewise.
13041         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13042
13043 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
13044
13045         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13046         * config/frv/frv.h (ASM_SPEC): Likewise.
13047         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13048         * config/m68k/linux.h (ASM_SPEC): Likewise.
13049         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13050         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13051         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13052         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13053         * config/sparc/linux.h (ASM_SPEC): Likewise.
13054         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13055         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13056         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13057
13058 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
13059
13060         PR target/46997
13061         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13062         (*mux2): Ditto.
13063         (vec_extract_evenodd_help): Ditto.
13064         (vec_extract_evenv4hi): Ditto.
13065         (vec_extract_oddv4hi): Ditto.
13066         (vec_interleave_lowv2si): Ditto.
13067         (vec_interleave_highv2si): Ditto.
13068         (vec_extract_evenv2si): Ditto.
13069         (vec_extract_oddv2si: Ditto.
13070         (vec_pack_trunc_v2si): Ditto.
13071
13072 2011-01-22  Jan Hubicka  <jh@suse.cz>
13073
13074         PR target/47237
13075         * cgraph.h (cgraph_local_info): New field can_change_signature.
13076         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13077         signature can change.
13078         (ipcp_estimate_growth): Call sequence simplify only if calle signature
13079         can change.
13080         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13081         (cgraph_function_versioning): We can not change signature of functions
13082         that don't allow that.
13083         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13084         (lto_input_node): Likewise.
13085         * ipa-inline.c (compute_inline_parameters): Compute
13086         local.can_change_signature.
13087         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
13088         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13089         functions that can not change signature.
13090         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
13091         init_cumulative_args): Do not use local calling conventions
13092         for functions that can not change signature.
13093
13094 2011-01-22  Jan Hubicka  <jh@suse.cz>
13095
13096         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13097
13098 2011-01-26  Richard Guenther  <rguenther@suse.de>
13099
13100         PR tree-optimization/47190
13101         * cgraphunit.c (process_common_attributes): New function.
13102         (process_function_and_variable_attributes): Use it.
13103
13104 2011-01-26  Richard Guenther  <rguenther@suse.de>
13105
13106         PR lto/47423
13107         * cgraphbuild.c (record_eh_tables): Record reference to personality
13108         function.
13109
13110 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
13111
13112         PR debug/45454
13113         * sel-sched.c (moveup_expr): Don't let debug insns prevent
13114         non-debug insns from moving up.
13115
13116 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13117
13118         PR target/40125
13119         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
13120         t-dlldir{,-x} fragment for build and add it to tmake_file.
13121         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13122         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
13123         * config/i386/t-dlldir: New file.
13124         (SHLIB_DLLDIR): Define.
13125         * config/i386/t-dlldir-x: New file.
13126         (SHLIB_DLLDIR): Define.
13127         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
13128         (SHLIB_INSTALL): Use it.
13129
13130 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
13131
13132         PR target/47246
13133         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
13134         lower bound of the allowed Thumb-2 coprocessor load/store
13135         index range to -256. Add explaining comment.
13136
13137 2011-01-25  Ian Lance Taylor  <iant@google.com>
13138
13139         * godump.c (go_define): Improve lexing of macro expansion to only
13140         accept expressions which match Go spec.
13141
13142 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
13143
13144         PR c++/43601
13145         * tree.c (handle_dll_attribute): Handle it.
13146         * doc/extend.texi (@item dllexport): Mention it.
13147         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
13148
13149 2011-01-25  Ian Lance Taylor  <iant@google.com>
13150
13151         PR tree-optimization/26854
13152         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
13153         (decl_jump_unsafe): Move higher in file, with no other change.
13154         (bind): Set has_jump_unsafe_decl if appropriate.
13155         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
13156         (check_earlier_gotos): Likewise.
13157         (c_check_switch_jump_warnings): Likewise.
13158
13159 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
13160
13161         * doc/invoke.texi (Warning Options): Add missing hyphen.
13162         (-fprofile-dir): Minor grammatical fixes.
13163         (-fbranch-probabilities): Likewise.
13164
13165 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
13166
13167         PR debug/45136
13168         PR debug/45130
13169         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13170         debug insns.
13171         (no_real_insns_p, schedule_block, set_priorities): Drop special
13172         treatment of boundary debug insns.
13173         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
13174         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13175         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13176         (BOUNDARY_DEBUG_INSN_P): Likewise.
13177         (SCHEDULE_DEBUG_INSN_P): Likewise.
13178         * sched-rgn.c (init_ready_list): Drop special treatment of
13179         boundary debug insns.
13180         * final.c (rest_of_clean-state): Clear notes' BB.
13181
13182 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13183
13184         * Makefile.in (LAMBDA_H): Removed.
13185         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
13186         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
13187         lambda-trans.o, and tree-loop-linear.o.
13188         (lto-symtab.o): Remove dependence on LAMBDA_H.
13189         (tree-loop-linear.o): Remove rule.
13190         (lambda-mat.o): Same.
13191         (lambda-trans.o): Same.
13192         (lambda-code.o): Same.
13193         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
13194         (tree-vect-slp.o): Same.
13195         * hwint.h (gcd): Moved here.
13196         (least_common_multiple): Same.
13197         * lambda-code.c: Removed.
13198         * lambda-mat.c: Removed.
13199         * lambda-trans.c: Removed.
13200         * lambda.h: Removed.
13201         * tree-loop-linear.c: Removed.
13202         * lto-symtab.c: Do not include lambda.h.
13203         * omega.c (gcd): Removed.
13204         * passes.c (init_optimization_passes): Remove pass_linear_transform.
13205         * tree-data-ref.c (print_lambda_vector): Moved here.
13206         (lambda_vector_copy): Same.
13207         (lambda_matrix_copy): Same.
13208         (lambda_matrix_id): Same.
13209         (lambda_vector_first_nz): Same.
13210         (lambda_matrix_row_add): Same.
13211         (lambda_matrix_row_exchange): Same.
13212         (lambda_vector_mult_const): Same.
13213         (lambda_vector_negate): Same.
13214         (lambda_matrix_row_negate): Same.
13215         (lambda_vector_equal): Same.
13216         (lambda_matrix_right_hermite): Same.
13217         * tree-data-ref.h: Do not include lambda.h.
13218         (lambda_vector): Moved here.
13219         (lambda_matrix): Same.
13220         (dependence_level): Same.
13221         (lambda_transform_legal_p): Removed declaration.
13222         (lambda_collect_parameters): Same.
13223         (lambda_compute_access_matrices): Same.
13224         (lambda_vector_gcd): Same.
13225         (lambda_vector_new): Same.
13226         (lambda_vector_clear): Same.
13227         (lambda_vector_lexico_pos): Same.
13228         (lambda_vector_zerop): Same.
13229         (lambda_matrix_new): Same.
13230         * tree-flow.h (least_common_multiple): Removed declaration.
13231         * tree-parloops.c (lambda_trans_matrix): Moved here.
13232         (LTM_MATRIX): Same.
13233         (LTM_ROWSIZE): Same.
13234         (LTM_COLSIZE): Same.
13235         (LTM_DENOMINATOR): Same.
13236         (lambda_trans_matrix_new): Same.
13237         (lambda_matrix_vector_mult): Same.
13238         (lambda_transform_legal_p): Same.
13239         * tree-pass.h (pass_linear_transform): Removed declaration.
13240         * tree-ssa-loop.c (tree_linear_transform): Removed.
13241         (gate_tree_linear_transform): Removed.
13242         (pass_linear_transform): Removed.
13243         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
13244         flag_loop_interchange.
13245
13246 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13247
13248         PR tree-optimization/47265
13249         PR tree-optimization/47443
13250         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
13251         if name still has some uses.
13252
13253 2011-01-25  Martin Jambor  <mjambor@suse.cz>
13254
13255         PR tree-optimization/47382
13256         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
13257         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
13258
13259 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
13260
13261         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
13262         sjlj_except_unwind_info.
13263
13264 2011-01-25  Richard Guenther  <rguenther@suse.de>
13265
13266         PR tree-optimization/47426
13267         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
13268         visible functions results escape.
13269
13270 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13271
13272         PR target/45701
13273         * config/arm/arm.c (any_sibcall_uses_r3): New function.
13274         (arm_get_frame_offsets): Use it.
13275
13276 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13277             Jakub Jelinek  <jakub@redhat.com>
13278
13279         PR tree-optimization/47271
13280         * tree-if-conv.c (bb_postdominates_preds): New.
13281         (if_convertible_bb_p): Call bb_postdominates_preds.
13282         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
13283         (predicate_scalar_phi): Call bb_postdominates_preds.
13284
13285 2011-01-25  Nick Clifton  <nickc@redhat.com>
13286
13287         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
13288         * config/rx/rx.c (rx_function_value): Likewise.
13289         (rx_promote_function_mode): Likewise.
13290         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13291         in order to make it legitimate.
13292         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13293         make sure that the first operand is the same as the result register.
13294         (addsi3_unspec): Delete.
13295         (subdi3): Do not accept immediate operands.
13296         (subdi3_internal): Likewise.
13297
13298 2011-01-25  Jeff Law  <law@redhat.com>
13299
13300         PR rtl-optimization/37273
13301         * ira-costs.c (scan_one_insn): Detect constants living in memory and
13302         handle them like argument loads from stack slots.  Do not double
13303         count memory for memory constants and argument loads from stack slots.
13304
13305 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
13306
13307         PR tree-optimization/47427
13308         PR tree-optimization/47428
13309         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13310         coalesce if the new root var would be TREE_READONLY.
13311
13312 2011-01-25  Richard Guenther  <rguenther@suse.de>
13313
13314         PR middle-end/47414
13315         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13316         correct type for TBAA.
13317
13318 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13319
13320         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13321         (close_phi_written_to_memory): Call for_each_index with
13322         dr_indices_valid_in_loop.
13323
13324 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13325
13326         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13327         when it is initialized.
13328
13329 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13330
13331         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13332         call to graphite_find_data_references_in_stmt.
13333         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13334         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
13335         call to graphite_find_data_references_in_stmt.
13336         (analyze_drs_in_stmts): Same.
13337         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13338         in which the scalar analysis of indices is performed.
13339         (create_data_ref): Same.  Update call to dr_analyze_indices.
13340         (find_data_references_in_stmt): Update call to create_data_ref.
13341         (graphite_find_data_references_in_stmt): Same.
13342         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13343         declaration.
13344         (create_data_ref): Same.
13345         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13346         call to create_data_ref.
13347
13348 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13349
13350         * graphite-sese-to-poly.c (build_poly_scop): Move
13351         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
13352
13353 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13354
13355         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13356         VAR_DECL, PARM_DECL, and RESULT_DECL.
13357
13358 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13359
13360         * graphite-dependences.c (reduction_dr_1): Allow several reductions
13361         in a reduction PBB.
13362         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13363         that have already been marked as PBB_IS_REDUCTION.
13364
13365 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13366
13367         * graphite-scop-detection.c (same_close_phi_node): New.
13368         (remove_duplicate_close_phi): New.
13369         (make_close_phi_nodes_unique): New.
13370         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13371
13372 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13373
13374         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13375         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13376         of both data references to be the same.
13377
13378 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13379
13380         * graphite-dependences.c (build_lexicographical_constraint): Remove
13381         the gdim parameter.
13382         (build_lexicographical_constraint): Adjust call to
13383         ppl_powerset_is_empty.
13384         (dependence_polyhedron): Same.
13385         (graphite_legal_transform_dr): Same.
13386         (graphite_carried_dependence_level_k): Same.
13387         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13388         parameter.
13389         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13390
13391 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13392
13393         * graphite-sese-to-poly.c
13394         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13395         (close_phi_written_to_memory): New.
13396         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13397         and unshare_expr.
13398
13399 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13400
13401         * doc/install.texi: Update the expected version number of PPL to 0.11.
13402         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13403         #if PPL_VERSION_MINOR < 11.
13404
13405 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13406
13407         * graphite-dependences.c: Include graphite-cloog-util.h.
13408         (new_poly_ddr): Inlined into dependence_polyhedron.
13409         (free_poly_ddr): Moved close by new_poly_ddr.
13410         (dependence_polyhedron_1): Renamed dependence_polyhedron.
13411         Early return NULL when ppl_powerset_is_empty returns true.
13412         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
13413         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
13414         (graphite_legal_transform_dr): Call new_poly_ddr.
13415         (graphite_carried_dependence_level_k): Same.
13416         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
13417         (dot_transformed_deps_stmt_1): Removed.
13418         (dot_deps_stmt_1): Call dot_deps_stmt_2.
13419         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
13420         (dot_deps_1): Call dot_deps_2.
13421         * Makefile.in (graphite-dependences.o): Add missing dependence on
13422         graphite-cloog-util.h.
13423
13424 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13425
13426         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13427         (build_lexicographical_constraint): Same.
13428         (dependence_polyhedron_1): Same.
13429         (graphite_legal_transform_dr): Same.
13430         (graphite_carried_dependence_level_k): Same.
13431         * graphite-ppl.c (ppl_powerset_is_empty): New.
13432         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13433         * tree-data-ref.c (dump_data_reference): Print the basic block index.
13434
13435 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13436
13437         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13438         the "a followed by b" relation and document it.
13439
13440 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13441
13442         * graphite-dependences.c (build_lexicographical_constraint): Stop the
13443         iteration when the bag of constraints is empty.
13444
13445 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13446
13447         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13448
13449 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13450
13451         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13452         nest and two loop depths as parameters.
13453         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13454         lst_perfect_nestify.
13455
13456 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13457
13458         * graphite-dependences.c (print_pddr): Call
13459         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13460
13461 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
13462
13463         * graphite-ppl.c (debug_gmp_value): New.
13464         * graphite-ppl.h (debug_gmp_value): Declared.
13465
13466 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
13467
13468         * doc/install.texi: Document availability of cloog-0.16.
13469
13470 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
13471
13472         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13473         invalid postdominance info.
13474
13475 2011-01-24  Jan Hubicka  <jh@suse.cz>
13476
13477         PR c/21659
13478         * doc/extend.texi (weak pragma): Drop claim that it must
13479         appear before definition.
13480         * varasm.c (merge_weak, declare_weak): Only sanity check
13481         that DECL is not output at a time it is declared weak.
13482
13483 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
13484
13485         * machmode.def: Fixed comments.
13486
13487 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
13488
13489         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13490
13491 2011-01-24  Paul Koning  <ni1d@arrl.net>
13492
13493         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
13494         WORDS_BIG_ENDIAN.
13495
13496 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13497
13498         PR target/46519
13499         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13500         (block_info): Add scanned and prev.
13501         (move_or_delete_vzeroupper_2): Return if the basic block
13502         has been scanned and the upper 128bit state is unchanged
13503         from the last scan.
13504         (move_or_delete_vzeroupper_1): Return true if the exit
13505         state is changed.
13506         (move_or_delete_vzeroupper): Visit basic blocks using the
13507         work-list based algorithm based on vt_find_locations in
13508         var-tracking.c.
13509
13510         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13511
13512 2011-01-24  Nick Clifton  <nickc@redhat.com>
13513
13514         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13515         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13516         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
13517         then define __v850e1__.
13518         * doc/invoke.texi: Document -mv850es.
13519
13520 2011-01-24  Richard Henderson  <rth@redhat.com>
13521
13522         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13523         compound unordered comparisons.
13524         * config/rx/rx.c (rx_split_fp_compare): Remove.
13525         * config/rx/rx-protos.h: Update.
13526         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13527         (cbranchsf4): Don't call rx_split_fp_compare.
13528         (*cbranchsf4): Use rx_split_cbranch.
13529         (*cmpsf): Don't accept "i" constraint.
13530         (*conditional_branch): Only valid after reload.
13531         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
13532
13533 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13534
13535         PR target/47385
13536         * config/rs6000/altivec.md (vector constant splitters): Add
13537         support for creating vector single precision constants if -mvsx is
13538         used and we would create the constant using Altivec primitives.
13539
13540 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
13541             Richard Sandiford  <rdsandiford@googlemail.com>
13542
13543         PR rtl-optimization/47166
13544         * reload1.c (emit_reload_insns): Disable the spill_reg_store
13545         mechanism for PRE_MODIFY and POST_MODIFY.
13546         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13547         reloadreg.
13548
13549 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
13550
13551         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
13552
13553 2011-01-22  Jan Hubicka  <jh@suse.cz>
13554
13555         PR lto/47333
13556         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13557
13558 2011-01-22  Jan Hubicka  <jh@suse.cz>
13559
13560         PR tree-optimization/43884
13561         PR lto/44334
13562         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
13563         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13564
13565 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
13566
13567         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13568         * config/s390/s390.c (s390_register_move_cost,
13569         s390_memory_move_cost): New.
13570         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13571
13572 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13573
13574         PR middle-end/47401
13575         * except.c (sjlj_assign_call_site_values): Move setting the
13576         crtl->uses_eh_lsda flag to ...
13577         (sjlj_mark_call_sites): ... here.
13578         (sjlj_emit_function_enter): Support NULL dispatch label.
13579         (sjlj_build_landing_pads): In a function with no landing pads
13580         that still has must-not-throw regions, generate code to register
13581         a personality function with empty LSDA.
13582
13583 2011-01-21  Richard Henderson  <rth@redhat.com>
13584
13585         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13586
13587         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13588
13589         * compare-elim.c: New file.
13590         * Makefile.in (OBJS-common): Add it.
13591         (compare-elim.o): New.
13592         * common.opt (fcompare-elim): New.
13593         * opts.c (default_options_table): Add OPT_fcompare_elim.
13594         * tree-pass.h (pass_compare_elim_after_reload): New.
13595         * passes.c (init_optimization_passes): Add it.
13596         * recog.h: Protect against re-inclusion.
13597         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13598         * doc/invoke.texi (-fcompare-elim): Document it.
13599         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13600         * doc/tm.texi: Rebuild.
13601
13602 2011-01-22  Nick Clifton  <nickc@redhat.com>
13603
13604         * config/rx/rx.md (cstoresf4): Pass comparison operator to
13605         rx_split_fp_compare.
13606
13607 2011-01-22  Nick Clifton  <nickc@redhat.com>
13608
13609         * config/rx/rx.md (UNSPEC_CONST): New.
13610         (deallocate_and_return): Wrap the amount popped off the stack in
13611         an UNSPEC_CONST in order to stop it being rejected by
13612         -mmax-constant-size.
13613         (pop_and_return): Add a "(return)" rtx.
13614         (call): Drop the immediate operand.
13615         (call_internal): Likewise.
13616         (call_value): Likewise.
13617         (call_value_internal): Likewise.
13618         (sibcall_internal): Likewise.
13619         (sibcall_value_internal): Likewise.
13620         (sibcall): Likewise.  Generate an explicit call using
13621         sibcall_internal.
13622         (sibcall_value): Likewise.
13623         (mov<>): FAIL if a constant operand is not legitimate.
13624         (addsi3_unpsec): New pattern.
13625
13626         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
13627         (ok_for_max_constant): New function.
13628         (gen_safe_add): New function.
13629         (rx_expand_prologue): Use gen_safe_add.
13630         (rx_expand_epilogue): Likewise.
13631         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
13632         UNSPEC CONSTs.
13633
13634 2011-01-21  Jeff Law  <law@redhat.com>
13635
13636         PR tree-optimization/47053
13637         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13638         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13639         statements are deleted.
13640         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
13641         is nonempty, then purge dead edges and cleanup the CFG.
13642
13643 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13644
13645         PR debug/47402
13646         Temporarily revert:
13647         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13648         PR debug/47106
13649         * tree-dfa.c (create_var_ann): Mark variable as used.
13650
13651 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13652
13653         PR middle-end/45566
13654         * except.c (convert_to_eh_region_ranges): Emit queued no-region
13655         notes from other section in hot/cold partitioning even if
13656         last_action is -3.  Increment call_site_base.
13657
13658         PR rtl-optimization/47366
13659         * fwprop.c (forward_propagate_into): Return bool.  If
13660         any changes are made, -fnon-call-exceptions is used and
13661         REG_EH_REGION note is present, call purge_dead_edges
13662         and return true if it purged anything.
13663         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13664         any EH edges were purged.
13665
13666 2011-01-21  Jeff Law  <law@redhat.com>
13667
13668         PR rtl-optimization/41619
13669         * caller-save.c (setup_save_areas): Break out code to determine
13670         which hard regs are live across calls by examining the reload chains
13671         so that it is always used.
13672         Eliminate code which checked REG_N_CALLS_CROSSED.
13673
13674 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13675
13676         PR tree-optimization/47355
13677         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13678         NOP has non-debug uses beyond PHIs in new_bb.
13679
13680 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
13681
13682         PR debug/47106
13683         * cfgexpand.c (account_used_vars_for_block): Only account vars
13684         that are annotated as used.
13685         (estimated_stack_frame_size): Don't set TREE_USED.
13686         * tree-dfa.c (create_var_ann): Mark variable as used.
13687
13688 2011-01-21  Richard Guenther  <rguenther@suse.de>
13689
13690         PR middle-end/47395
13691         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13692
13693 2011-01-21  Richard Guenther  <rguenther@suse.de>
13694
13695         PR tree-optimization/47365
13696         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13697         (vn_reference_lookup_pieces): Adjust.
13698         (vn_reference_lookup): Likewise.
13699         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13700         (vn_reference_lookup_3): Only look through kills if in
13701         VN_WALKREWRITE mode.
13702         (vn_reference_lookup_pieces): Adjust.
13703         (vn_reference_lookup): Likewise.
13704         (visit_reference_op_load): Likewise.
13705         (visit_reference_op_store): Likewise.
13706         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13707         (compute_avail): Likewise.
13708         (eliminate): Likewise.
13709
13710 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
13711
13712         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13713         DECL_IGNORED_P non-reg vars if they are used.
13714
13715         PR tree-optimization/47391
13716         * varpool.c (const_value_known_p): Return false if
13717         decl is volatile.
13718
13719 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
13720
13721         PR bootstrap/47215
13722         * config/i386/i386.c (ix86_local_alignment): Handle
13723         case for va_list_type_node is nil.
13724         (ix86_canonical_va_list_type): Likewise.
13725
13726 2011-01-21  Alan Modra  <amodra@gmail.com>
13727
13728         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13729         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13730
13731 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13732
13733         * config/arm/arm.md (define_attr type): Rename f_load
13734         and f_store to f_fpa_load and f_fpa_store. Update.
13735         (write_conflict): Deal with rename fallout.
13736         (*push_fp_multi): Likewise.
13737         * config/arm/fpa.md (f_load): Use f_fpa_load.
13738         (f_store): Use f_fpa_store.
13739         (*movsf_fpa): Likewise.
13740         (*movdf_fpa): Likewise.
13741         (*movxf_fpa): Likewise.
13742         (*thumb2_movsf_fpa): Likewise.
13743         (*thumb2_movdf_fpa): Likewise.
13744         (*thumb2_movxf_fpa): Likewise.
13745         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13746         f_loadd and f_stored.
13747         (*thumb2_movdi_vfp): Likewise.
13748         (*thumb2_movsf_vfp): Fix attribute to f_loads.
13749         (*thumb2_movsi_vfp): Likewise.
13750         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13751         Use f_loads instead of f_load.
13752         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13753
13754 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
13755
13756         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13757         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13758         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13759         (xtensa_mode_dependent_address_p): New function.
13760         (constantpool_address_p): Make static. Change return type to bool.
13761         Change argument type to const_rtx. Use CONST_INT_P predicate.
13762
13763 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
13764
13765         PR debug/46583
13766         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13767
13768 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13769
13770         PR debug/47283
13771         * cfgexpand.c (expand_debug_expr): Instead of generating
13772         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
13773         etc. handling.
13774
13775 2011-01-20  Richard Guenther  <rguenther@suse.de>
13776
13777         PR middle-end/47370
13778         * tree-inline.c (remap_gimple_op_r): Recurse manually for
13779         the pointer operand of MEM_REFs.
13780
13781 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
13782
13783         PR tree-optimization/46130
13784         * ipa-split.c (consider_split): If return_bb contains non-virtual
13785         PHIs other than for retval or if split_function would not adjust it,
13786         refuse to split.
13787
13788 2011-01-20  Richard Guenther  <rguenther@suse.de>
13789
13790         PR tree-optimization/47167
13791         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13792         Revert previous change, only avoid enumeral type changes.
13793
13794 2011-01-19  Mike Stump  <mikestump@comcast.net>
13795
13796         * doc/tm.texi.in (BRANCH_COST): Englishify.
13797         * doc/tm.texi (BRANCH_COST): Likewise.
13798
13799 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
13800
13801         PR c++/47291
13802         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
13803         (gen_scheduled_generic_parms_dies): New functions.
13804         (gen_struct_or_union_type_die): Schedule template parameters DIEs
13805         generation for the end of CU compilation.
13806         (dwarf2out_finish): Generate template parameters DIEs here.
13807
13808 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13809
13810         PR debug/46240
13811         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
13812         debug bind stmt on merge edges.
13813
13814 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13815
13816         PR debug/47079
13817         PR debug/46724
13818         * function.c (instantiate_expr): Instantiate incoming rtl of
13819         implicit arguments, and recurse on VALUE_EXPRs.
13820         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13821         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13822
13823 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
13824
13825         * c-parser.c (c_parser_for_statement): Initialize
13826         collection_expression.
13827
13828 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13829
13830         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13831
13832 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13833
13834         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13835         (LINK_SHLIB_SPEC): Don't use %(link_path).
13836         (SUBTARGET_EXTRA_SPECS): Remove link_path.
13837
13838 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13839
13840         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13841         (NO_SHARED_LIB_SUPPORT): Remove.
13842         (LINK_SHLIB_SPEC): Remove one conditional definition.
13843
13844 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
13845
13846         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13847         %{call_shared}.
13848         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13849         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13850         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13851         %{call_shared} and conditionals on these options not being passed.
13852         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13853         %{call_shared}.
13854
13855 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13856
13857         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13858         simplify.
13859
13860         * ipa-split.c: Spelling fixes.
13861
13862 2011-01-19  Richard Henderson  <rth@redhat.com>
13863
13864         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13865         (*mulsi3): Likewise.
13866
13867         * longlong.h [__mn10300__] (count_leading_zeros): New.
13868         [__mn10300__] (umul_ppmm, smul_ppmm): New.
13869         [__mn10300__] (add_ssaaaa, subddmmss): New.
13870         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13871         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13872
13873 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13874
13875         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13876
13877 2011-01-19  Richard Henderson  <rth@redhat.com>
13878
13879         * config/mn10300/mn10300.md (addsi3_flags): New.
13880         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13881         (subsi3_flags, subc_internal, subdi3): New.
13882         (subdi3_internal, *subdi3_degenerate): New.
13883         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13884
13885         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13886         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13887         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
13888         * config/mn10300/mn10300-protos.h: Update.
13889         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13890         (return_ret): Likewise.  Rename from return_internal_regs.
13891         (return_internal): Remove.
13892
13893         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13894         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13895         (mn10300_legitimate_constant_p): Likewise.
13896         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13897         (mn10300_frame_size): New.
13898         (mn10300_expand_prologue): Use it.
13899         (mn10300_expand_epilogue): Likewise.
13900         (mn10300_initial_offset): Likewise.
13901         * config/mn10300/mn10300-protos.h: Update.
13902         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13903         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13904         (prologue, epilogue, return_internal): Tidy output code.
13905         (mn10300_store_multiple_operation, return): Likewise.
13906         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13907         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13908         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13909         (load_pic, am33_load_pic): New.
13910         (mn10300_load_pic0, mn10300_load_pic1): New.
13911
13912         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13913         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13914         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13915         (cc_flags_for_mode, cc_flags_for_code): New.
13916         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13917         overflow flag is not valid.  Validate that the flags we need
13918         for the comparison are valid.
13919         (mn10300_output_cmp): Remove.
13920         (mn10300_output_add): New.
13921         (mn10300_select_cc_mode): Use cc_flags_for_code.
13922         (mn10300_split_cbranch): New.
13923         (mn10300_match_ccmode): New.
13924         (mn10300_split_and_operand_count): New.
13925         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13926         to the function.
13927         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13928         (addsi3): ... here.  Use mn10300_output_add.
13929         (*addsi3_flags): New.
13930         (*am33_subsi3, *mn10300_subsi3): Merge...
13931         (subsi3): ... here.  Use attribute isa.
13932         (*subsi3_flags): New.
13933         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
13934         when possible.
13935         (*am33_andsi3, *mn10300_andsi3): Merge...
13936         (andsi3): ... here.
13937         (*andsi3_flags): New.
13938         (andsi3 splitters): New.
13939         (*am33_iorsi3, *mn10300_iorsi3): Merge...
13940         (iorsi3): ... here.
13941         (*iorsi3_flags): New.
13942         (*am33_xorsi3, *mn10300_xorsi3): Merge...
13943         (xorsi3): ... here.
13944         (*xorsi3_flags): New.
13945         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13946         (one_cmplsi2): ... here.
13947         (*one_cmplsi2_flags): New.
13948         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
13949         instead of "dax" in constraints.  Use mn10300_split_cbranch.
13950         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
13951         use matching constraints to eliminate a self-comparison.
13952         (*integer_conditional_branch): Rename from integer_conditional_branch.
13953         Use int_mode_flags to match CC_REG.
13954         (*cbranchsi4_btst, *btstsi): New.
13955         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
13956         mn10300_split_cbranch.
13957         (*am33_cmpsf): Rename from am33_cmpsf.
13958         (*float_conditional_branch): Rename from float_conditional_branch.
13959         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13960         (zero_extendqisi2): ... here.
13961         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13962         (zero_extendhisi2): ... here.
13963         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13964         (extendqisi2): ... here.
13965         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13966         (extendhisi2): ... here.
13967         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13968         (ashlsi3): ... here.
13969         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13970         (lshrsi3): ... here.
13971         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13972         (ashrsi3): ... here.
13973         (consecutive add peephole): Remove.
13974         * config/mn10300/predicates.md (label_ref_operand): New.
13975         (int_mode_flags): New.
13976         (CCZN_comparison_operator): New.
13977
13978         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13979         (throughput_42_latency_43): New reservation.
13980         (mulsidi3, umulsidi3): New expanders.
13981         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
13982         the MDR register to allocation; separately allocate the low and
13983         high parts of the DImode result.
13984         (umulsidi3_internal): Similarly.
13985         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13986         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
13987         (udivsi3, umodsi3): Remove.
13988         (udivmodsi4, divmodsi4): New expanders.
13989         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
13990         (*divmodsi4): Simiarly.
13991         (ext_internal): New.
13992
13993         * config/mn10300/constraints.md ("z"): New constraint.
13994         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13995         (FIXED_REGISTERS): Don't fix MDR.
13996         (CALL_USED_REGSITERS): Reformat nicely.
13997         (REG_ALLOC_ORDER): Add MDR.
13998         (enum regclass): Add MDR_REGS.
13999         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14000         (IRA_COVER_CLASSES): Add MDR_REGS.
14001         (REGNO_REG_CLASS): Handle MDR_REG.
14002         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14003         (mn10300_register_move_cost): Likewise.
14004         * config/mn10300/mn10300.md (MDR_REG): New.
14005         (*movsi_internal): Handle moves to/from MDR_REGS.
14006
14007         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14008         POST_MODIFY.
14009         (mn10300_secondary_reload): Tidy combination reload classes.
14010         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14011         addresses for AM33.  Allow symbolic offsets for reg+imm.
14012         (mn10300_regno_in_class_p): New.
14013         (mn10300_legitimize_reload_address): New.
14014         * config/mn10300/mn10300.h (enum reg_class): Remove
14015         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14016         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
14017         SP_OR_GENERAL_REGS.
14018         (REG_CLASS_NAMES): Update to match.
14019         (REG_CLASS_CONTENTS): Likewise.
14020         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14021         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14022         (REGNO_IN_RANGE_P): Remove.
14023         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14024         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14025         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14026         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14027         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14028         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14029         (REGNO_GENERAL_P): New.
14030         (HAVE_POST_MODIFY_DISP): New.
14031         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14032         (LEGITIMIZE_RELOAD_ADDRESS): New.
14033         * config/mn10300/mn10300-protos.h: Update.
14034
14035         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14036         DATA_REGS for AM33 stack-pointer destination.
14037         (mn10300_preferred_output_reload_class): Likewise.
14038         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14039         into a form appropriate for ...
14040         (TARGET_SECONDARY_RELOAD): New.
14041         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14042         * config/mn10300/mn10300-protos.h: Update.
14043         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14044         reload_insi; use the "A" constraint for the scratch; handle AM33
14045         moves of sp to non-address registers.
14046
14047         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14048         (*movqi_internal): ... here.
14049         (*am33_movhi, *mn10300_movhi): Merge into...
14050         (*movhi_internal): ... here.
14051         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
14052         as the source/destination of moves from/to SP.
14053         (movsf): Only allow for AM33-2.
14054         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
14055         any integer constant constraint.  Only allow for AM33-2.  Tidy
14056         all of the alternative outputs.
14057         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14058         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
14059         for MN103.
14060         (udivsi3, umodsi3): New patterns for MN103 only.
14061
14062 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
14063
14064         * doc/tm.texi.in: Spell out that a lack of register class unions
14065         can lead to ICEs.
14066         * doc/tm.texi: Regenerate.
14067
14068 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
14069
14070         PR rtl-optimization/47337
14071         * dce.c (check_argument_store): New function.
14072         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
14073
14074         PR tree-optimization/47290
14075         * tree-eh.c (infinite_empty_loop_p): New function.
14076         (cleanup_empty_eh): Use it.
14077
14078 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
14079
14080         PR target/46997
14081         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14082         (a64_expand_widen_sum): Ditto.
14083         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14084         (vec_extract_evenodd_help): Ditto.
14085         (vec_extract_evenv4hi): Ditto.
14086         (vec_extract_oddv4hi): Ditto.
14087         (vec_extract_evenv2si): Ditto.
14088         (vec_extract_oddv2si): Ditto.
14089         (vec_extract_evenv2sf): Ditto.
14090         (vec_extract_oddv2sf): Ditto.
14091         (vec_pack_trunc_v4hi: Ditto.
14092         (vec_pack_trunc_v2si): Ditto.
14093         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14094         (vec_interleave_highv8qi): Ditto.
14095         (mix1_r): Ditto.
14096         (vec_extract_oddv8qi): Ditto.
14097         (vec_interleave_lowv4hi): Ditto.
14098         (vec_interleave_highv4hi): Ditto.
14099         (vec_interleave_lowv2si): Ditto.
14100         (vec_interleave_highv2si): Ditto.
14101
14102 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14103
14104         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14105         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14106         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
14107         (pa_c_mode_for_suffix): New.
14108         (TARGET_EXPAND_BUILTIN): Define.
14109         (TARGET_C_MODE_FOR_SUFFIX): Define.
14110         (pa_builtins): Define.
14111         (pa_init_builtins): Register __float128 type and init new support
14112         builtins.
14113         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14114         * config/pa/quadlib.c (_U_Qfcopysign): New.
14115
14116 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
14117
14118         PR middle-end/46894
14119         * explow.c (allocate_dynamic_stack_space): Do not assume more than
14120         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
14121         are defined.
14122
14123 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14124
14125         PR tree-optimization/47179
14126         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
14127         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
14128
14129 2011-01-18  Richard Guenther  <rguenther@suse.de>
14130
14131         PR rtl-optimization/47216
14132         * emit-rtl.c: Include tree-flow.h.
14133         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
14134         of replicating it with different semantics.
14135         * Makefile.in (emit-rtl.o): Adjust.
14136
14137 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14138
14139         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
14140         (cortex_a9_dp): Handle neon types correctly.
14141
14142 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
14143
14144         PR rtl-optimization/47299
14145         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
14146         subtarget.  Use normal multiplication if both operands are constants.
14147         * expmed.c (expand_widening_mult): Don't try to optimize constant
14148         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
14149         before using it.
14150
14151 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14152
14153         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
14154         spacing after 'e.g.', typos, comma, hyphenation.
14155
14156 2011-01-17  Richard Henderson  <rth@redhat.com>
14157
14158         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
14159         (rx_restricted_mem_operand): New.
14160         (rx_shift_operand): Use register_operand.
14161         (rx_source_operand, rx_compare_operand): Likewise.
14162         * config/rx/rx.md (addsi3_flags): New expander.
14163         (adddi3): Rewrite as expander.
14164         (adc_internal, *adc_flags, adddi3_internal): New patterns.
14165         (subsi3_flags): New expander.
14166         (subdi3): Rewrite as expander.
14167         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
14168
14169         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
14170         (rx_init_builtins): Remove sat builtin.
14171         (rx_expand_builtin): Likewise.
14172         * config/rx/rx.md (ssaddsi3): New.
14173         (*sat): Rename from sat.  Represent the CC_REG input.
14174
14175         * config/rx/predicates.md (rshift_operator): New.
14176         * config/rx/rx.c (rx_expand_insv): Remove.
14177         * config/rx/rx-protos.h: Update.
14178         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
14179         operand to the canonical position.
14180         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
14181         (*bitclr, *bitclr_in_memory): Similarly.
14182         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
14183         (insv): Retain the zero_extract in the expansion.
14184
14185         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
14186         (bswaphi2, bitinvert, revw): Likewise.
14187
14188         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
14189         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
14190         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
14191         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
14192         (bitset, bitset_in_memory): Likewise.
14193         (bitinvert, bitinvert_in_memory): Likewise.
14194         (bitclr, bitclr_in_memory): Likewise.
14195         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
14196         (rx_strend, rx_cmpstrn): Likewise.
14197         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
14198         (bitop peep2 patterns): Remove.
14199
14200         * config/rx/rx.c (rx_match_ccmode): New.
14201         * config/rx/rx-protos.h: Update.
14202         * config/rx/rx.md (abssi2): Clobber, don't set flags.
14203         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
14204         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
14205         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
14206         (fix_truncsfsi2, floatsisf2): Likewise.
14207         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
14208         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
14209         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
14210         (*subsi3_flags, *xorsi3_flags): New.
14211
14212         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
14213
14214         * config/rx/rx.c (rx_print_operand): Remove workaround for
14215         unsplit comparison operations.
14216
14217         * config/rx/rx.md (movsicc): Split after reload.
14218         (*movsicc): Merge *movsieq and *movsine via match_operator.
14219         (*stcc): New pattern.
14220
14221         * config/rx/rx.c (rx_float_compare_mode): Remove.
14222         * config/rx/rx.h (rx_float_compare_mode): Remove.
14223         * config/rx/rx.md (cstoresi4): Split after reload.
14224         (*sccc): New pattern.
14225
14226         * config/rx/predicates.md (label_ref_operand): New.
14227         (rx_z_comparison_operator): New.
14228         (rx_zs_comparison_operator): New.
14229         (rx_fp_comparison_operator): New.
14230         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
14231         Validate that the flags are set properly for the comparison.
14232         (rx_gen_cond_branch_template): Remove.
14233         (rx_cc_modes_compatible): Remove.
14234         (mode_from_flags): New.
14235         (flags_from_code): Rename from flags_needed_for_conditional.
14236         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
14237         (rx_select_cc_mode): Likewise.
14238         (rx_split_fp_compare): New.
14239         (rx_split_cbranch): New.
14240         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
14241         (*cbranchsi4): Use match_operator and rx_split_cbranch.
14242         (*cbranchsf4): Similarly.
14243         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
14244         match_operator and rx_split_cbranch.
14245         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
14246         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
14247         (*cmpsi): Rename from cmpsi.
14248         (*tstsi): Rename from tstsi.
14249         (*cmpsf): Rename from cmpsf; use CC_Fmode.
14250         (*conditional_branch): Rename from conditional_branch.
14251         (*reveresed_conditional_branch): Remove.
14252         (b<code>): Remove expander.
14253         * config/rx/rx-protos.h: Update.
14254
14255         * config/rx/rx.c (rx_compare_redundant): Remove.
14256         * config/rx/rx.md (cmpsi): Don't use it.
14257         * config/rx/rx-protos.h: Update.
14258
14259         * config/rx/rx-modes.def (CC_F): New mode.
14260         * config/rx/rx.c (rx_select_cc_mode): New.
14261         * config/rx/rx.h (SELECT_CC_MODE): Use it.
14262         * config/rx/rx-protos.h: Update.
14263
14264 2011-01-17  Richard Henderson  <rth@redhat.com>
14265
14266         * except.c (dump_eh_tree): Fix stray ; after for statement.
14267
14268 2011-01-17  Richard Guenther  <rguenther@suse.de>
14269
14270         PR tree-optimization/47313
14271         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
14272         handling before copying the body.  Properly deal with
14273         by-reference result in SSA form.
14274
14275 2011-01-17  Ian Lance Taylor  <iant@google.com>
14276
14277         PR target/47219
14278         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
14279         (struct_value_alias_set): Don't define.
14280         (sparc_option_override): Don't set sparc_sr_alias_set and
14281         struct_value_alias_set.
14282         (save_or_restore_regs): Use gen_frame_mem rather than calling
14283         set_mem_alias_set.
14284         (sparc_struct_value_rtx): Likewise.
14285
14286 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
14287
14288         PR target/47318
14289         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
14290         (_mm_maskstore_pd): Likewise.
14291         (_mm_maskload_ps): Likewise.
14292         (_mm_maskstore_ps): Likewise.
14293         (_mm256_maskload_pd): Change mask to __m256i.
14294         (_mm256_maskstore_pd): Likewise.
14295         (_mm256_maskload_ps): Likewise.
14296         (_mm256_maskstore_ps): Likewise.
14297
14298         * config/i386/i386-builtin-types.def: Updated.
14299         (ix86_expand_special_args_builtin): Likewise.
14300
14301         * config/i386/i386.c (bdesc_special_args): Update
14302         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14303         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14304         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14305         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14306
14307         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14308         Use <avxpermvecmode> on mask register.
14309         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14310
14311 2011-01-17  Olivier Hainque  <hainque@adacore.com>
14312             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
14313             Eric Botcazou  <ebotcazou@adacore.com>
14314
14315         PR target/46655
14316         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14317         if <= USHRT_MAX in 32-bit mode.
14318
14319 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14320
14321         * doc/install.texi (Configuration, Specific): Wrap long
14322         lines in examples.  Allow line wrapping in long options
14323         and URLs where beneficial for PDF output.
14324
14325 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
14326
14327         * config/mips/mips.c (mips_classify_symbol): Don't return
14328         SYMBOL_PC_RELATIVE for nonlocal labels.
14329
14330 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
14331
14332         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14333
14334 2011-01-15  Jan Hubicka  <jh@suse.cz>
14335
14336         PR tree-optimization/47276
14337         * ipa.c (function_and_variable_visibility): Do not try to mark alias
14338         declarations as needed.
14339
14340 2011-01-15  Martin Jambor  <mjambor@suse.cz>
14341
14342         * common.opt (fdevirtualize): New flag.
14343         * doc/invoke.texi (Option Summary): Document it.
14344         * opts.c (default_options_table): Add devirtualize flag.
14345         * ipa-prop.c (detect_type_change): Return immediately if
14346         devirtualize flag is not set.
14347         (detect_type_change_ssa): Likewise.
14348         (compute_known_type_jump_func): Likewise.
14349         (ipa_analyze_virtual_call_uses): Likewise.
14350
14351 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14352
14353         PR tree-optimization/45934
14354         PR tree-optimization/46302
14355         * ipa-prop.c (type_change_info): New type.
14356         (stmt_may_be_vtbl_ptr_store): New function.
14357         (check_stmt_for_type_change): Likewise.
14358         (detect_type_change): Likewise.
14359         (detect_type_change_ssa): Likewise.
14360         (compute_complex_assign_jump_func): Check for dynamic type change.
14361         (compute_complex_ancestor_jump_func): Likewise.
14362         (compute_known_type_jump_func): Likewise.
14363         (compute_scalar_jump_functions): Likewise.
14364         (ipa_analyze_virtual_call_uses): Likewise.
14365         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14366
14367 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14368
14369         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14370         * config/i386/i386.opt (msse5): New Alias.
14371
14372 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14373
14374         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14375         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14376         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14377         * config/sparc/sparc.h (CC1_SPEC): Likewise.
14378
14379 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14380
14381         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14382         -mcpu options.
14383         * config/sparc/linux64.h (CC1_SPEC): Likewise.
14384         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14385         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14386         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14387         Likewise.
14388         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14389
14390 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14391
14392         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
14393
14394 2011-01-14  Mike Stump  <mikestump@comcast.net>
14395
14396         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14397         * config/fr30/fr30.md: Likweise
14398         (movsi_push): Likewise.
14399         (movsi_pop): Likewise.
14400         (enter_func): Likewise.
14401         * config/moxie/moxie.md (movsi_push): Likewise.
14402         (movsi_pop): Likewise.
14403
14404 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14405
14406         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14407         %{no_archive} %{exact_version}.
14408         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14409         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14410         %{no_archive} %{exact_version}.
14411         * config/mips/openbsd.h (LINK_SPEC): Likewise.
14412         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14413         * config/mips/vxworks.h: Likewise.
14414
14415 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14416
14417         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
14418
14419 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14420
14421         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14422         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14423
14424 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14425
14426         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14427         -nodefaultlib.
14428
14429 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14430
14431         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14432         for mcpu not cpu.
14433         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14434         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14435         not cpu.
14436         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14437         Don't handle -shlib.
14438
14439 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14440
14441         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14442         (CC1_SPEC): Don't handle -profile.
14443
14444 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14445
14446         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14447         * config/mips/mips.h (CC1_SPEC): Likewise.
14448
14449 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14450
14451         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14452         * config/mips/mips.h (CC1_SPEC): Likewise.
14453
14454 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14455
14456         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14457         * config/m32r/linux.h (LINK_SPEC): Likewise.
14458         * config/mips/linux.h (LINK_SPEC): Likewise.
14459         * config/mips/linux64.h (LINK_SPEC): Likewise.
14460         * config/sparc/linux.h (LINK_SPEC): Likewise.
14461         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14462         LINK_SPEC): Likewise.
14463         * config/xtensa/linux.h (LINK_SPEC): Likewise.
14464
14465 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14466
14467         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14468         %{version:-v}.
14469         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14470
14471 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14472
14473         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14474         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14475
14476 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
14477
14478         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14479
14480 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14481
14482         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14483         supports -Bstatic/-Bdynamic.
14484         * configure: Regenerate.
14485
14486 2011-01-14  Jan Hubicka  <jh@suse.cz>
14487             Jack Howarth  <howarth@bromo.med.uc.edu>
14488
14489         PR target/46037
14490         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14491         when checking debug_info_level. Test write_symbols instead of
14492         debug_hooks->var_location when setting flag_var_tracking_uninit.
14493
14494 2011-01-14  Richard Guenther  <rguenther@suse.de>
14495
14496         PR tree-optimization/47179
14497         * target.def (ref_may_alias_errno): New target hook.
14498         * targhooks.h (default_ref_may_alias_errno): Declare.
14499         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14500         (default_ref_may_alias_errno): New function.
14501         * target.h (struct ao_ref_s): Declare.
14502         * tree-ssa-alias.c: Include target.h.
14503         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14504         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14505         (targhooks.o): Likewise.
14506         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14507         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14508
14509 2011-01-14  Richard Guenther  <rguenther@suse.de>
14510
14511         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
14512
14513 2011-01-14  Richard Guenther  <rguenther@suse.de>
14514
14515         PR tree-optimization/47280
14516         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14517         return CFG changes.
14518         (tree_ssa_forward_propagate_single_use_vars): Deal with
14519         CFG changes from associate_plusminus.
14520
14521 2011-01-14  Richard Guenther  <rguenther@suse.de>
14522
14523         PR middle-end/47281
14524         Revert
14525         2011-01-11  Richard Guenther  <rguenther@suse.de>
14526
14527         PR tree-optimization/46076
14528         * tree-ssa.c (useless_type_conversion_p): Conversions from
14529         unprototyped to empty argument list function types are useless.
14530
14531 2011-01-14  Richard Guenther  <rguenther@suse.de>
14532
14533         PR tree-optimization/47286
14534         * tree-ssa-structalias.c (new_var_info): Register variables are global.
14535
14536 2011-01-14  Martin Jambor  <mjambor@suse.cz>
14537
14538         PR middle-end/46823
14539         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14540
14541 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
14542
14543         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14544         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14545         * config/xtensa/xtensa.c (xtensa_libcall_value,
14546         xtensa_function_value_regno_p): New functions.
14547         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14548
14549 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
14550
14551         PR c++/47213
14552         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14553         PE specific hook.
14554         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14555         New function prototype.
14556         * config/i386/winnt.c (i386_pe_assemble_visibility):
14557         Warn only if attribute was specified by user.
14558
14559 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
14560
14561         PR target/47251
14562         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14563         floating point.
14564         (floatunsdidf2_fcfidu): Ditto.
14565
14566 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14567
14568         * config/s390/s390.c (print_operand_address): Replace 'error' with
14569         'output_operand_lossage'.
14570         (print_operand): Likewise.
14571
14572 2011-01-13  Jeff Law  <law@redhat.com>
14573
14574         PR rtl-optimization/39077
14575         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14576         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14577         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14578         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14579         * gcse.c (prune_insertions_deletions): New function.
14580         (compute_pre_data): Use it.
14581
14582 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
14583
14584         PR debug/PR46973
14585         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14586         static function.
14587         (prune_unused_types_mark): Use it.
14588
14589 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
14590
14591         PR rtl-optimization/45352
14592         * sel-sched.c: Update copyright years.
14593         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
14594         in the advancing loop when we have issued issue_rate insns.
14595
14596 2011-01-12  Richard Henderson  <rth@redhat.com>
14597
14598         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14599         (TARGET_MD_ASM_CLOBBERS): New.
14600
14601         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14602         (TARGET_DELEGITIMIZE_ADDRESS): New.
14603
14604         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14605         (clzsi2, *bsch): New patterns.
14606
14607         * config/mn10300/mn10300.md (INT): New mode iterator.
14608         (*mov<INT>_clr): New pattern, and peep2 to generate it.
14609
14610         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14611         flag_split_wide_types.
14612
14613         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14614         (mn10300_trampoline_init): Rewrite without a template, an immediate
14615         load and a direct branch.
14616         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14617
14618 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
14619
14620         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14621         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14622         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14623         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14624
14625 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
14626
14627         PR debug/47209
14628         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14629         of type.
14630
14631 2011-01-12  Jan Hubicka  <jh@suse.cz>
14632
14633         PR driver/47244
14634         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14635         (PLUGIN_COND_CLOSE): New macro.
14636         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14637
14638 2011-01-12  Richard Guenther  <rguenther@suse.de>
14639
14640         PR lto/47259
14641         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14642         register variables in a MEM_REF.
14643
14644 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
14645
14646         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14647         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14648         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14649         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14650         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14651         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14652         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14653         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14654         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14655         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14656         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14657         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14658         * config/gnu-user.h: New.  Copied from linux.h.
14659         (LINUX_TARGET_STARTFILE_SPEC): Rename to
14660         GNU_USER_TARGET_STARTFILE_SPEC.
14661         (LINUX_TARGET_ENDFILE_SPEC): Rename to
14662         GNU_USER_TARGET_ENDFILE_SPEC.
14663         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14664         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14665         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14666         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14667         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14668         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14669         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14670         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14671         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14672         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14673         * config/arm/linux-eabi.h (CC1_SPEC): Use
14674         GNU_USER_TARGET_CC1_SPEC.
14675         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14676         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14677         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14678         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14679         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14680         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14681         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14682         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14683
14684 2011-01-12  Richard Guenther  <rguenther@suse.de>
14685
14686         PR other/46946
14687         * doc/invoke.texi (ffast-math): Document it is turned on
14688         with -Ofast.
14689
14690 2011-01-12  Jan Hubicka  <jh@suse.cz>
14691
14692         PR tree-optimization/47233
14693         * opts.c (common_handle_option): Disable ipa-reference with profile
14694         feedback.
14695
14696 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14697
14698         * c-parser.c (c_parser_objc_at_property_declaration): Improved
14699         error message.
14700
14701 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
14702
14703         * c-parser.c (c_lex_one_token): Updated and reindented some
14704         comments.  No changes in code.
14705
14706 2011-01-11  Ian Lance Taylor  <iant@google.com>
14707
14708         * godump.c (go_output_var): Don't output the variable if there is
14709         already a type with the same name.
14710
14711 2011-01-11  Ian Lance Taylor  <iant@google.com>
14712
14713         * godump.c (go_format_type): Don't generate float80.
14714
14715 2011-01-11  Richard Henderson  <rth@redhat.com>
14716
14717         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14718         declaration.  Rewrite for both speed and size.
14719         (mn10300_address_cost_1): Remove.
14720         (mn10300_register_move_cost): New.
14721         (mn10300_memory_move_cost): New.
14722         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
14723         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
14724         extensions, shifts, BSWAP, CLZ.
14725         (mn10300_wide_const_load_uses_clr): Remove.
14726         (TARGET_REGISTER_MOVE_COST): New.
14727         (TARGET_MEMORY_MOVE_COST): New.
14728         * config/mn10300/mn10300-protos.h: Update.
14729         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14730
14731         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14732         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14733         * config/mn10300/mn10300-protos.h: Update.
14734         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14735         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14736         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14737         (*test_int_bitfield, *test_byte_bitfield): Remove.
14738         (*bit_test, *subreg_bit_test): Remove.
14739         * config/mn10300/predicates.md (const_8bit_operand): Remove.
14740
14741         * config/mn10300/constraints.md ("c"): Rename from "A".
14742         ("A", "D"): New constraint letters.
14743         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14744         (fmssf4, fnmasf4, fnmssf4): Likewise.
14745
14746         * config/mn10300/mn10300.md (isa): New attribute.
14747         (enabled): New attribute.
14748
14749         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14750         (abssf2, negsf2): Define only for hardware fp.
14751         (sqrtsf2): Reformat.
14752         (addsf3, subsf3, mulsf3): Merge expander and insn.
14753
14754         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14755         (DEBUGGER_AUTO_OFFSET): Remove.
14756         (DEBUGGER_ARG_OFFSET): Remove.
14757
14758         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14759         Emit register stores with the same offsets as the hardware.
14760         (mn10300_store_multiple_operation): Don't check that the register
14761         save offsets are monotonic.
14762         * config/mn10300/mn10300-protos.h: Update.
14763
14764         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14765
14766         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14767         in terms of the value on the stack, not the MDR register.
14768
14769 2011-01-11  Jan Hubicka  <jh@suse.cz>
14770
14771         PR lto/45721
14772         PR lto/45375
14773         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
14774         (symbol_alias_set_destroy, symbol_alias_set_contains,
14775         propagate_aliases_backward): Declare.
14776         * lto-streamer-out.c (struct sets): New sturcture.
14777         (trivally_defined_alias): New function.
14778         (output_alias_pair_p): Rewrite.
14779         (output_unreferenced_globals): Fix output of alias pairs.
14780         (produce_symtab): Likewise.
14781         * ipa.c (function_and_variable_visibility): Set weak alias destination
14782         as needed in lto.
14783         * varasm.c (symbol_alias_set_t): Remove.
14784         (symbol_alias_set_destroy): Export.
14785         (propagate_aliases_forward, propagate_aliases_backward): New functions
14786         based on ...
14787         (compute_visible_aliases): ... this one; remove.
14788         (trivially_visible_alias): New
14789         (trivially_defined_alias): New.
14790         (remove_unreachable_alias_pairs): Rewrite.
14791         (finish_aliases_1): Reorganize code checking if alias is defined.
14792         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
14793         in LTO mode.
14794
14795 2011-01-11  Richard Guenther  <rguenther@suse.de>
14796
14797         PR tree-optimization/46076
14798         * tree-ssa.c (useless_type_conversion_p): Conversions from
14799         unprototyped to empty argument list function types are useless.
14800
14801 2011-01-11  Richard Guenther  <rguenther@suse.de>
14802
14803         PR middle-end/45235
14804         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
14805         volatile MEMs as MEM_READONLY_P.
14806
14807 2011-01-11  Richard Guenther  <rguenther@suse.de>
14808
14809         PR tree-optimization/47239
14810         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
14811
14812 2011-01-11  Jeff Law  <law@redhat.com>
14813
14814         PR tree-optimization/47086
14815         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14816         IVs from statements that might throw.
14817
14818 2011-01-10  Jan Hubicka  <jh@suse.cz>
14819
14820         PR lto/45375
14821         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14822
14823 2011-01-10  Jan Hubicka  <jh@suse.cz>
14824
14825         PR lto/45375
14826         * profile.c (read_profile_edge_counts): Ignore profile inconistency
14827         when correcting profile.
14828
14829 2011-01-10  Jan Hubicka  <jh@suse.cz>
14830
14831         PR lto/46083
14832         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14833         DECL_FINI_PRIORITY.
14834         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14835         Restore DECL_FINI_PRIORITY.
14836
14837 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14838
14839         * doc/gimple.texi: Fix quoting of multi-word return values in
14840         @deftypefn statements.  Ensure presence of return value.  Wrap
14841         overlong @deftypefn lines.
14842         (is_gimple_operand, is_gimple_min_invariant_address): Remove
14843         descriptions of removed functions.
14844         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14845         of multi-word return value in @deftypefn statement.
14846
14847 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14848
14849         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14850         (Conditional Expressions, Logical Operators)
14851         (Statement and operand traversals): Do not indent smallexample
14852         code.  Fix duplicate function argument in example.
14853
14854 2011-01-10  Jeff Law  <law@redhat.com>
14855
14856         PR tree-optimization/47141
14857         * ipa-split.c (split_function): Handle case where we are
14858         returning a value and the return block has a virtual operand phi.
14859
14860 2011-01-10  Jan Hubicka  <jh@suse.cz>
14861
14862         PR tree-optimization/47234
14863         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14864         (pass_feedback_split_functions): Declare.
14865         * passes.c (init_optimization_passes): Add ipa-split as subpass of
14866         tree-profile.
14867         * ipa-split.c (gate_split_functions): Update comments; disable
14868         split-functions for profile_arc_flag and branch_probabilities.
14869         (gate_feedback_split_functions): New function.
14870         (execute_feedback_split_functions): New function.
14871         (pass_feedback_split_functions): New global var.
14872
14873 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
14874
14875         PR lto/46760
14876         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14877         calling gimple_call_set_cannot_inline.
14878
14879 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
14880
14881         * config/darwin-sections.def: Remove unused section.
14882
14883 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
14884
14885         PR c++/47218
14886         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14887
14888 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
14889
14890         PR objc/47232
14891         * c-parser.c (c_parser_declaration_or_fndef): Improved
14892         error message.
14893
14894 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
14895
14896         * config/i386/winnt.c (i386_pe_start_function): Make sure
14897         to switch back to function's section.
14898
14899 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
14900
14901         PR gcc/46902
14902         PR testsuite/46912
14903         * plugin.c: Move include of dlfcn.h from here...
14904         * system.h: ... to here.
14905
14906 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14907
14908         * doc/cpp.texi (C++ Named Operators): Fix markup for header
14909         file name.
14910         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14911         two extra empty pages in PDF output.
14912
14913 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
14914
14915         PR objc/47078
14916         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14917         for error recovery purposes behave as if it was not specified so
14918         that the default type is usd.
14919
14920 2011-01-07  Jan Hubicka  <jh@suse.cz>
14921
14922         PR tree-optmization/46469
14923         * ipa.c (function_and_variable_visibility): Clear needed flags on
14924         nodes with external decls; handle weakrefs merging correctly.
14925
14926 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
14927
14928         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14929         not false.
14930
14931 2011-01-07  Jan Hubicka  <jh@suse.cz>
14932
14933         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
14934         and no longer claim that gold is required for linker plugin.
14935         * configure: Regenerate.
14936         * gcc.c (PLUGIN_COND): New macro.
14937         (LINK_COMMAND_SPEC): Use it.
14938         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14939         * config.in (HAVE_LTO_PLUGIN): New.
14940         * configure.ac (--with-lto-plugin): New parameter; autodetect
14941         HAVE_LTO_PLUGIN.
14942
14943 2011-01-07  Jan Hubicka  <jh@suse.cz>
14944
14945         PR tree-optimization/46367
14946         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14947         when we can update original.
14948         (cgraph_mark_inline_edge): Sanity check.
14949         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14950
14951 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14952
14953         * config/spu/spu.h (ASM_COMMENT_START): Define.
14954
14955 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
14956
14957         PR driver/42445
14958         * gcc.c (%>S): New.
14959         (SWITCH_KEEP_FOR_GCC): Likewise.
14960         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14961         (do_spec_1): Handle "%>".
14962
14963         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14964
14965 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
14966
14967         PR target/47201
14968         * config/i386/i386.c (ix86_delegitimize_address): If
14969         simplify_gen_subreg fails, return orig_x.
14970
14971         PR bootstrap/47187
14972         * value-prof.c (gimple_stringop_fixed_value): Handle
14973         lhs of the call properly.
14974
14975 2011-01-07  Jan Hubicka  <jh@suse.cz>
14976
14977         PR lto/45375
14978         * lto-opt.c (lto_reissue_options): Set flag_shlib.
14979
14980 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14981
14982         * target.def (function_switched_text_sections): New hook.
14983         * doc/tm.texi: Regenerated.
14984         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14985         * final.c (default_function_switched_text_sections): New.
14986         (final_scan_insn): Call function_switched_text_sections when a
14987         mid-function section change occurs.
14988         * output.h (default_function_switched_text_sections): Declare.
14989         * config/darwin-protos.h (darwin_function_switched_text_sections):
14990         Likewise.
14991         * config/darwin.c (darwin_function_switched_text_sections): New.
14992         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14993
14994 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
14995
14996         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
14997         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
14998         the secondary code fragment when outputting for DWARF == 2.
14999
15000 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
15001
15002         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15003         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15004         Remove.
15005         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15006         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15007
15008 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
15009
15010         PR debug/46704
15011         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15012         when it is not empty.
15013
15014 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
15015
15016         Bobcat Enablement
15017         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
15018         (case ${target}): Add btver1.
15019         * config/i386/driver-i386.c (host_detect_local_cpu): Let
15020         -march=native recognize btver1 processors.
15021         * config/i386/i386-c.c (ix86_target_macros_internal): Add
15022         btver1 def_and_undef
15023         * config/i386/i386.c (struct processor_costs btver1_cost): New
15024         btver1 cost table.
15025         (m_BTVER1): New definition.
15026         (m_AMD_MULTIPLE): Includes m_BTVER1.
15027         (initial_ix86_tune_features): Add btver1 tune.
15028         (processor_target_table): Add btver1 entry.
15029         (static const char *const cpu_names): Add btver1 entry.
15030         (software_prefetching_beneficial_p): Add btver1.
15031         (ix86_option_override_internal): Add btver1 instruction sets.
15032         (ix86_issue_rate): Add btver1.
15033         (ix86_adjust_cost): Add btver1.
15034         * config/i386/i386.h (TARGET_BTVER1): New definition.
15035         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15036         (enum processor_type): Add PROCESSOR_BTVER1.
15037         * config/i386/i386.md (define_attr "cpu"): Add btver1.
15038
15039 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15040
15041         PR target/43309
15042         * config/i386/i386.c (legitimize_tls_address)
15043         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15044         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15045         (tls_initial_exec_64_sun): New pattern.
15046
15047 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15048
15049         * doc/invoke.texi (Overall Options): Improve wording and markup
15050         of the description of -wrapper.
15051
15052 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15053
15054         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15055         rdynamic, threads): New Driver options.
15056
15057 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15058
15059         PR target/38118
15060         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15061         if coming from .tdata.
15062         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15063
15064 2011-01-06  Jan Hubicka  <jh@suse.cz>
15065
15066         PR lto/47188
15067         * collect2.c (main): Do not enable LTOmode when plugin is active.
15068
15069 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15070
15071         PR other/45915
15072         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15073         --version output if supported.
15074         * configure: Regenerate.
15075
15076 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
15077
15078         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15079         Driver options.
15080
15081 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
15082
15083         PR c/47150
15084         * c-convert.c (convert): When converting a complex expression
15085         other than COMPLEX_EXPR to a different complex type, ensure
15086         c_save_expr is called instead of save_expr, unless in_late_binary_op.
15087         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15088         when converting COMPLEX_TYPE.
15089
15090 2011-01-06  Ira Rosen  <irar@il.ibm.com>
15091
15092         PR tree-optimization/47139
15093         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15094         only the last reduction value is used outside the loop.  Update
15095         documentation.
15096
15097 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
15098
15099         * config/rtems.opt: New.
15100         * config.gcc (*-*-rtems*): Use rtems.opt.
15101
15102 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
15103
15104         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15105         processors do not support 3DNow instructions.
15106
15107 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15108
15109         * config/spu/spu.c (spu_option_override): Set parameter
15110         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15111
15112 2011-01-05  Jan Hubicka  <jh@suse.cz>
15113
15114         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15115         at the command line.
15116
15117 2011-01-05  Martin Jambor  <mjambor@suse.cz>
15118
15119         PR lto/47162
15120         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
15121         deltas on streamed outgoing edges.
15122         (output_node_opt_summary): Output info for outgoing edges only when
15123         the node is in new parameter set.
15124         (output_cgraph_opt_summary): New parameter set, passed to the two
15125         aforementioned functions.  Update its forward declaration and its
15126         callee too.
15127
15128 2011-01-05  Tom Tromey  <tromey@redhat.com>
15129
15130         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
15131         operator to c_finish_omp_atomic.
15132         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
15133         (build_unary_op): Update.
15134         (build_modify_expr): Update.
15135         (build_asm_expr): Update.
15136
15137 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15138
15139         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
15140         newly inserted insns.
15141         (pad_bb): Likewise.
15142         (spu_emit_branch_hint): Likewise.
15143         (insert_hbrp_for_ilb_runout): Likewise.
15144         (spu_machine_dependent_reorg): Call df_finish_pass after
15145         schedule_insns returns.
15146
15147 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15148
15149         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
15150
15151 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
15152
15153         PR tree-optimization/47005
15154         * tree-sra.c (struct access): Add 'non_addressable' bit.
15155         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
15156         (decide_one_param_reduction): Return 0 if the parameter is passed by
15157         reference and one of the accesses in the group is non_addressable.
15158
15159 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
15160
15161         PR tree-optimization/47056
15162         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
15163         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
15164         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
15165
15166 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
15167
15168         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
15169         initializer.  Skip view conversions from aggregate types.
15170
15171 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
15172
15173         PR bootstrap/47055
15174         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
15175
15176 2011-01-04  Philipp Thomas  <pth@suse.de>
15177
15178         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
15179         obvious typo.
15180
15181 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15182
15183         * function.c (thread_prologue_and_epilogue_insns): Do not crash
15184         on empty epilogue sequences.
15185
15186 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
15187
15188         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
15189         non-static): New Driver options.
15190
15191 2011-01-04  Jie Zhang  <jie@codesourcery.com>
15192
15193         PR driver/47137
15194         * gcc.c (default_compilers[]): Set combinable field to 0
15195         for all assembly languages.
15196
15197 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
15198
15199         * config/mips/loongson3a.md: New file.
15200         * config/mips/mips.md: Include loongson3a.md.
15201         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
15202         TUNE_LOONGSON_3A.
15203
15204 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
15205
15206         PR middle-end/47017
15207         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
15208         instead of convert_memory_address_addr_space on the base expression.
15209
15210 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15211
15212         * config/spu/spu.c (spu_option_override): Update error text
15213         for bad -march= / -mtune= values.
15214
15215 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15216
15217         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
15218         if branch-hint optimization will be performed.
15219
15220 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
15221
15222         PR tree-optimization/47148
15223         * ipa-split.c (split_function): Convert arguments to
15224         DECL_ARG_TYPE if possible.
15225
15226         PR tree-optimization/47155
15227         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
15228         when computing uns.
15229
15230         PR rtl-optimization/47157
15231         * combine.c (try_combine): If undobuf.other_insn becomes
15232         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
15233         and set *new_direct_jump_p too.
15234
15235 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
15236
15237         PR tree-optimization/47021
15238         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
15239
15240 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
15241
15242         * gcc.c (process_command): Update copyright notice dates.
15243         * gcov.c (print_version): Likewise.
15244         * gcov-dump.c (print_version): Likewise.
15245         * mips-tfile.c (main): Likewise.
15246         * mips-tdump.c (main): Likewise.
15247
15248 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15249
15250         PR tree-optimization/46801
15251         * tree-sra.c (type_internals_preclude_sra_p): Check whether
15252         aggregate fields start at byte boundary instead of the bit-field flag.
15253
15254 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
15255
15256         PR driver/47137
15257         * gcc.c (main): Revert revision 168407.
15258
15259 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15260
15261         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
15262
15263 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15264
15265         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
15266         vector optab to expand vector/scalar shift, update gimple to vector.
15267
15268 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15269
15270         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
15271         a thunk.
15272
15273 2011-01-03  Martin Jambor  <mjambor@suse.cz>
15274
15275         PR tree-optimization/46984
15276         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
15277         HOST_WIDE_INT.
15278         (cgraph_create_indirect_edge): Fixed line length.
15279         (cgraph_indirect_call_info): Declare.
15280         (cgraph_make_edge_direct) Update declaration.
15281         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
15282         (cgraph_create_indirect_edge): Use it.
15283         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
15284         callees.
15285         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
15286         the new thunk_delta representation.
15287         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
15288         HOST_WIDE_INT.
15289         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15290         (ipa_read_indirect_edge_info): Likewise.
15291         * lto-cgraph.c (output_edge_opt_summary): New function.
15292         (output_node_opt_summary): Call it on all outgoing edges.
15293         (input_edge_opt_summary): New function.
15294         (input_node_opt_summary): Call it on all outgoing edges.
15295
15296 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
15297
15298         PR driver/47137
15299         * gcc.c (main): Don't check have_o when settting combine_inputs.
15300
15301 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
15302
15303         * regrename.c: Add general comment describing the pass.
15304         (struct du_head): Remove 'length' field.
15305         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15306         (regrename_optimize): Do not sort chains.  Rework comments, add others.
15307         Force renaming to the preferred class (if any) in the first pass and do
15308         not consider registers that belong to it in the second pass.
15309         (create_new_chain): Do not set 'length' field.
15310         (scan_rtx_reg): Likewise.
15311
15312 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
15313
15314         PR tree-optimization/47140
15315         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15316         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15317         to bit_value_binop.
15318
15319         PR rtl-optimization/47028
15320         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15321         parm_birth_insn instead of at the beginning of first bb.
15322
15323 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
15324
15325         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15326         Remove the word "see" before "@pxref".
15327         * doc/rtl.texi: Remove the word "see" before "@pxref".
15328
15329 2011-01-01  Jan Hubicka  <jh@suse.cz>
15330
15331         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15332         memory.
15333
15334 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
15335
15336         PR target/38662
15337         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
15338
15339 \f
15340 Copyright (C) 2011 Free Software Foundation, Inc.
15341
15342 Copying and distribution of this file, with or without modification,
15343 are permitted in any medium without royalty provided the copyright
15344 notice and this notice are preserved.