OSDN Git Service

e1322b191169b34d58791361aff064a318977500
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-07-12  Andi Kleen  <ak@linux.intel.com>
2
3         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
4         instead of gcc_assert to print better error message for multiple
5         prevailing defs.
6
7 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
8
9         * config/i386/i386.c (ix86_asm_output_function_label): Change format
10         string placeholder from 0x%x to %#x.
11         (ix86_code_end): Use putc to output '\n'.
12         (ix86_print_operand) <case ';'>: Use putc to output ';'.
13
14 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
15
16         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
17         in directive -export.
18
19 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
20
21         * reginfo.h (reg_classes_intersect_p): Change arguments type to
22         reg_class_t.
23         * rtl.h (reg_classes_intersect_p): Adjust prototype.
24
25         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
26         Remove macros.
27         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
28         rs6000_memory_move_cost): Remove
29         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
30         TARGET_MEMORY_MOVE_COST): Define.
31         (rs6000_register_move_cost): Make static. Change arguments type from
32         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
33         (rs6000_memory_move_cost): Make static. Change arguments type from
34         'enum reg_class' to reg_class_t.
35
36 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
37
38         PR middle-end/42505
39         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
40         lookup code into....
41         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
42         new functions.
43         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
44         * cfgloopanal.c (target_clobbered_regs): Define.
45         (init_set_costs): Initialize target_clobbered_regs.
46         (estimate_reg_pressure_cost): Add call_p argument.  When true,
47         adjust the number of available registers to exclude the
48         call-clobbered registers.
49         * cfgloop.h (target_clobbered_regs): Declare.
50         (estimate_reg_pressure_cost): Adjust declaration.
51         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
52         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
53         (determine_set_costs): Dump target_clobbered_regs.
54         (loop_body_includes_call): New function.
55         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
56         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
57         call_p flag through.
58         (best_gain_for_invariant): Likewise.
59         (find_invariants_to_move): Likewise.
60         (move_single_loop_invariants): Likewise, using already-computed
61         has_call field.
62
63 2010-07-10  Richard Guenther  <rguenther@suse.de>
64             Joern Rennecke  <joern.rennecke@embecosm.com>
65
66         PR debug/44832
67         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
68         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
69         unless they have DECL_IGNORED_P set.
70
71 2010-07-10  Richard Guenther  <rguenther@suse.de>
72
73         PR lto/44889
74         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
75         helper function.
76         (gimple_types_compatible_p): Similar to pointed-to
77         types allow and merge a mix of complete and incomplete aggregate.
78         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
79         (iterative_hash_gimple_type): Adjust for that.
80
81 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
82
83         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
84
85 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
86
87         PR objc/44140
88         * config/darwin.c (output_objc_section_asm_op): Save and restore
89         section when outputting ObjC section list.
90
91 2010-07-09  Jan Hubicka  <jh@suse.cz>
92
93         * lto-streamer-out.c (produce_symtab): Do not write alias
94         cgraph/varpool nodes.
95
96 2010-07-09  Jan Hubicka  <jh@suse.cz>
97
98         * tree-inline.c (declare_return_variable): Fix ICE while
99         inlining DECL_BY_VALUE function not in SSA form
100
101 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
102
103         PR tree-optimization/44576
104         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
105         New.  Pull out from is_loop_prefetching_profitable to implement
106         the trip count to ahead ratio heuristic.
107         (mem_ref_count_reasonable_p): New.  Pull out from
108         is_loop_prefetching_profitable to implement the instruction to
109         memory reference ratio heuristic.  Also consider not reasonable if
110         the memory reference count is above a threshold (to avoid
111         explosive compilation time.
112         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
113         is_loop_prefetching_profitable to implement the instruction to
114         prefetch ratio heuristic.
115         (is_loop_prefetching_profitable): Removed.
116         (loop_prefetch_arrays): Distribute the cost analysis across the
117         function to allow early exit of the prefetch analysis.
118         is_loop_prefetching_profitable is splitted into three functions,
119         with each one called as early as possible.
120         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
121         number of memory references in a loop is considered too many.
122
123 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
124
125         * reload.c (find_reloads): Don't clear badop if we have a winreg
126         alternative, but not win, and the class only has fixed regs.
127         * hard-reg-set.h (class_only_fixed_regs): Declare.
128         * reginfo.c (class_only_fixed_regs): New array.
129         (init_reg_sets_1): Initialize it.
130         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
131         discourage alternatives using the stack pointer.
132
133         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
134
135         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
136
137         * config/arm/arm.md (cbranchqi4): Fix array size.
138         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
139         calculating length.
140
141 2010-07-09  Richard Guenther  <rguenther@suse.de>
142
143         * gimple.c (struct type_fixup_s): New struct and VEC type.
144         (gimple_register_type_fixups): New static global.
145         (gimple_queue_type_fixup): New function.
146         (gimple_types_compatible_p): Queue type fixups instead of
147         applying them here.
148         (gimple_register_type): Apply queued fixups for the
149         canonical type.  Empty the type fixup queue.
150
151 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
152
153         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
154         * configure: Regenerate.
155         * config.in: Ditto.
156
157 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
158             Denys Vlasenko  <dvlasenk@redhat.com>
159             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
160
161         PR tree-optimization/28632
162         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
163         (extract_range_from_binary_expr): Further optimize
164         BIT_AND_EXPR and BIT_IOR_EXPR.
165
166 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
167
168         * tree-if-conv.c (fold_or_predicates): New.
169         (add_to_predicate_list): Call it.
170
171 2010-07-09  Richard Guenther  <rguenther@suse.de>
172
173         PR middle-end/44890
174         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
175         if base is a pointer.
176         * tree-cfg.c (verify_expr): Update MEM_REF checking.
177
178 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
179
180         PR target/44877
181         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
182         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
183         builtin mask for load/store builtins.
184
185 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
186
187         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
188         for "lock addl".
189         * configure: Regenerate.
190         * config/i386/i386.c (ix86_print_operand) <case ';'>:
191         Remove TARGET_MACHO.
192
193 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
194
195         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
196         default ISA flags.
197         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
198
199 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
200
201         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
202
203 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
204
205         * config/picochip/picochip.md (commsTestPort): Emit more
206         efficient sequence for tstport instruction.
207
208 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
209
210         * config/i386/i386.c (ix86_veclib_handler): Make static.
211
212 2010-07-09  Richard Guenther  <rguenther@suse.de>
213
214         PR tree-optimization/44852
215         * tree-ssa-alias.c: Include toplev.h for exact_log2.
216         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
217         in MEM_REF.
218         (indirect_refs_may_alias_p): Likewise.
219         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
220
221 2010-07-09  Richard Guenther  <rguenther@suse.de>
222
223         PR tree-optimization/44882
224         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
225         sets do conflict.
226         (vectorizable_load): Likewise.
227
228 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
229
230         PR target/40657
231         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
232         All callers changed.
233         Handle the case when we're called for the epilogue.
234         (thumb_unexpanded_epilogue): Use it.
235         (thumb1_expand_epilogue): Likewise.
236
237 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
238
239         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
240         both ranges are range_int_cst_p with non-negative minimum,
241         try harder to derive smaller range.
242
243 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
244
245         * genrecog.c: Include diagnostic-core.h before toplev.h.
246         * genoutput.c: Likewise.
247         * genextract.c: Likewise.
248         * genautomata.c: Likewise.
249         * genemit.c: Likewise.
250         * genpeep.c: Likewise.
251         * genattrtab.c: Likewise.
252         * genconditions.c: Likewise.
253         * genpreds.c: Likewise.
254
255 2010-07-08  Andi Kleen  <ak@linux.intel.com>
256
257         * lto-section-in.c (lto_section_name): Add missing comma.
258
259 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
260
261         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
262         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
263         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
264         (ia64_override_options): Rename to...
265         (ia64_option_override): ... this one. Make static.
266
267 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
268
269         PR middle-end/44843
270         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
271         pointed-to type of the offset in a MEM_REF to compute the alignment.
272
273 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
274
275         * final.c (final_scan_insn): Replace
276         TARGET_UNWIND_INFO macro check by unwind_emit
277         hook NULL check.
278         * targhooks.c (default_unwind_emit): Removed.
279         * targhooks.h (default_unwind_emit): Likewise.
280         * target.def (unwind_emit): Set default value to NULL.
281
282         * config/i386/i386-protos.h (ix86_asm_output_function_label):
283         New prototype.
284         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
285         for NULL fntype argument and allow 64-bit targets.
286         (ix86_asm_output_function_label): New function.
287         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
288         (ix86_handle_fndecl_attribute): Likewise.
289         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
290         * doc/doc/tm.texi: Regenerated.
291         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
292         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
293         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
294         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
295         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
296         * config/elfos.h: Likewise.
297         * config/i386/cygming.h: Likewise.
298         * config/netbsd-aout.h: Likewise.
299         * config/openbsd.h: Likewise.
300         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
301         by ix86_asm_output_function_label function call.
302         * varasm.c (assemble_start_function): Use
303         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
304
305 2010-07-08  Jan Hubicka  <jh@suse.cz>
306
307         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
308         New function.
309         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
310         Declare.
311         * ipa-cp.c (ipcp_estimate_growth): Use it.
312         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
313         Likewise.
314
315 2010-07-08  Jan Hubicka  <jh@suse.cz>
316
317         * tree-inline.c (declare_return_variable): Allocate annotation for new
318         temporary.
319
320 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
321
322         PR tree-optimization/44710
323         * tree-if-conv.c (parse_predicate): New.
324         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
325         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
326
327 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
328
329         * common.opt (ftree-loop-if-convert): New flag.
330         * doc/invoke.texi (ftree-loop-if-convert): Documented.
331         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
332         when flag_tree_loop_if_convert is set.
333
334 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
335
336         * config/i386/i386.c: Use short syntax for function calls
337         through function pointers.
338         * config/i386/i386.md: Ditto.
339
340 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
341
342         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
343
344 2010-07-08  Richard Guenther  <rguenther@suse.de>
345
346         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
347         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
348
349 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
350
351         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
352         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
353         (loc_list_from_tree): Likewise.
354         (output_loc_operands): Handle outputting DW_OP_const[48]u
355         with loc->dtprel set.
356         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
357
358 2010-07-08  Jan Hubicka  <jh@suse.cz>
359
360         * ipa.c: Include pointer-set.h
361         (cgraph_externally_visible_p): New attribute ALIASED;
362         when in LTO, hidden symbols are local unless they are aliased.
363         (function_and_variable_visibility): Compute aliased nodes;
364         handle LTO and hidden symbol on functions and vars.
365         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
366         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
367
368 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
369
370         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
371         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
372         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
373         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
374         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
375         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
376         (ix86_gen_probe_stack_range): Likewise.
377         (override_options): Set them.
378         (ix86_target_stack_probe): New function.
379         (ix86_compute_frame_layout): Force use of push instructions to
380         save registers if stack checking with probes is enabled.
381         (get_scratch_register_on_entry): New function.
382         (release_scratch_register_on_entry): Likewise.
383         (ix86_adjust_stack_and_probe): Likewise.
384         (output_adjust_stack_and_probe): Likewise.
385         (ix86_emit_probe_stack_range): Likewise.
386         (output_probe_stack_range): Likewise.
387         (ix86_expand_prologue): Emit stack checking code if static built-in
388         stack checking is enabled.
389         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
390         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
391         (output_adjust_stack_and_probe): Likewise.
392         (output_probe_stack_range): Likewise.
393         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
394         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
395         TARGET_STACK_PROBE.
396         (allocate_stack_worker_64): Likewise.
397         (allocate_stack): Likewise.
398         (adjust_stack_and_probe): New insn.
399         (probe_stack_range): Likewise.
400
401 2010-07-08  Richard Guenther  <rguenther@suse.de>
402
403         PR tree-optimization/44831
404         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
405         a MEM_REF preserving TBAA info of the original dereference.
406         Dereference the original pointer if the address is not invariant.
407         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
408         at least one invariant address that we are going to dereference.
409
410 2010-07-08  Richard Guenther  <rguenther@suse.de>
411
412         PR tree-optimization/44861
413         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
414         information when building MEM_REFs.
415         (vectorizable_load): Likewise.
416         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
417
418 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
419
420         * config/sol2-c.c: Do not include diagnostic-core.h.
421
422 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
423
424         PR bootstrap/44768
425         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
426         with respect to current_function_decl. Pass decl of the function.
427         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
428         * ipa-inline.c (compute_inline_parameters): Pass decl to
429         estimated_stack_frame_size.
430
431 2010-07-08  Richard Guenther  <rguenther@suse.de>
432
433         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
434         New function.
435         (valueize_refs): Call it.
436
437 2010-07-08  Richard Guenther  <rguenther@suse.de>
438
439         PR rtl-optimization/44838
440         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
441         SSA form do not use pointer equivalence.
442
443 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
444
445         * dwarf2out.c (AT_linkage_name): Delete.
446         (add_linkage_attr): New function.
447         (add_linkage_name): Call it to emit the linkage attribute.
448         (dwarf2out_finish): Likewise.
449         (move_linkage_attr): Explicitly accept both attribute variants.
450
451 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
452
453         * toplev.h: Do not include diagnostic-core.h.
454         Include diagnostic-core.h in every file that includes toplev.h.
455         * c-tree.h: Do not include toplev.h.
456         * pretty-print.h: Update comment.
457         * Makefile.in: Update dependencies.
458         * alias.c: Include diagnostic-core.h in every file that includes
459         toplev.h.
460         * attribs.c: Likewise.
461         * auto-inc-dec.c: Likewise.
462         * bb-reorder.c: Likewise.
463         * bt-load.c: Likewise.
464         * caller-save.c: Likewise.
465         * calls.c: Likewise.
466         * cfg.c: Likewise.
467         * cfganal.c: Likewise.
468         * cfgbuild.c: Likewise.
469         * cfgcleanup.c: Likewise.
470         * cfghooks.c: Likewise.
471         * cfgloop.c: Likewise.
472         * combine.c: Likewise.
473         * config/alpha/alpha.c: Likewise.
474         * config/arc/arc.c: Likewise.
475         * config/arm/arm.c: Likewise.
476         * config/arm/pe.c: Likewise.
477         * config/avr/avr.c: Likewise.
478         * config/bfin/bfin.c: Likewise.
479         * config/cris/cris.c: Likewise.
480         * config/crx/crx.c: Likewise.
481         * config/darwin-c.c: Likewise.
482         * config/darwin.c: Likewise.
483         * config/fr30/fr30.c: Likewise.
484         * config/frv/frv.c: Likewise.
485         * config/h8300/h8300.c: Likewise.
486         * config/host-darwin.c: Likewise.
487         * config/i386/i386.c: Likewise.
488         * config/i386/netware.c: Likewise.
489         * config/i386/nwld.c: Likewise.
490         * config/i386/winnt-cxx.c: Likewise.
491         * config/i386/winnt-stubs.c: Likewise.
492         * config/i386/winnt.c: Likewise.
493         * config/ia64/ia64-c.c: Likewise.
494         * config/ia64/ia64.c: Likewise.
495         * config/iq2000/iq2000.c: Likewise.
496         * config/lm32/lm32.c: Likewise.
497         * config/m32c/m32c-pragma.c: Likewise.
498         * config/m32c/m32c.c: Likewise.
499         * config/m32r/m32r.c: Likewise.
500         * config/m68hc11/m68hc11.c: Likewise.
501         * config/m68k/m68k.c: Likewise.
502         * config/mcore/mcore.c: Likewise.
503         * config/mep/mep-pragma.c: Likewise.
504         * config/mep/mep.c: Likewise.
505         * config/mmix/mmix.c: Likewise.
506         * config/mn10300/mn10300.c: Likewise.
507         * config/moxie/moxie.c: Likewise.
508         * config/pa/pa.c: Likewise.
509         * config/pdp11/pdp11.c: Likewise.
510         * config/picochip/picochip.c: Likewise.
511         * config/rs6000/rs6000-c.c: Likewise.
512         * config/rs6000/rs6000.c: Likewise.
513         * config/rx/rx.c: Likewise.
514         * config/s390/s390.c: Likewise.
515         * config/score/score.c: Likewise.
516         * config/score/score3.c: Likewise.
517         * config/score/score7.c: Likewise.
518         * config/sh/sh.c: Likewise.
519         * config/sh/symbian-base.c: Likewise.
520         * config/sh/symbian-c.c: Likewise.
521         * config/sh/symbian-cxx.c: Likewise.
522         * config/sol2-c.c: Likewise.
523         * config/sol2.c: Likewise.
524         * config/sparc/sparc.c: Likewise.
525         * config/spu/spu.c: Likewise.
526         * config/stormy16/stormy16.c: Likewise.
527         * config/v850/v850-c.c: Likewise.
528         * config/v850/v850.c: Likewise.
529         * config/vax/vax.c: Likewise.
530         * config/vxworks.c: Likewise.
531         * config/xtensa/xtensa.c: Likewise.
532         * convert.c: Likewise.
533         * cse.c: Likewise.
534         * cselib.c: Likewise.
535         * dbgcnt.c: Likewise.
536         * dbxout.c: Likewise.
537         * ddg.c: Likewise.
538         * dominance.c: Likewise.
539         * emit-rtl.c: Likewise.
540         * explow.c: Likewise.
541         * expmed.c: Likewise.
542         * fixed-value.c: Likewise.
543         * fold-const.c: Likewise.
544         * fwprop.c: Likewise.
545         * gcse.c: Likewise.
546         * ggc-common.c: Likewise.
547         * ggc-page.c: Likewise.
548         * ggc-zone.c: Likewise.
549         * gimple-low.c: Likewise.
550         * gimplify.c: Likewise.
551         * graph.c: Likewise.
552         * haifa-sched.c: Likewise.
553         * ifcvt.c: Likewise.
554         * implicit-zee.c: Likewise.
555         * integrate.c: Likewise.
556         * ira-build.c: Likewise.
557         * ira-color.c: Likewise.
558         * ira-conflicts.c: Likewise.
559         * ira-costs.c: Likewise.
560         * ira-lives.c: Likewise.
561         * ira.c: Likewise.
562         * lists.c: Likewise.
563         * loop-doloop.c: Likewise.
564         * loop-iv.c: Likewise.
565         * lto-opts.c: Likewise.
566         * lto-symtab.c: Likewise.
567         * main.c: Likewise.
568         * modulo-sched.c: Likewise.
569         * optabs.c: Likewise.
570         * params.c: Likewise.
571         * plugin.c: Likewise.
572         * postreload-gcse.c: Likewise.
573         * postreload.c: Likewise.
574         * predict.c: Likewise.
575         * profile.c: Likewise.
576         * real.c: Likewise.
577         * regcprop.c: Likewise.
578         * reginfo.c: Likewise.
579         * regmove.c: Likewise.
580         * reorg.c: Likewise.
581         * resource.c: Likewise.
582         * rtl.c: Likewise.
583         * rtlanal.c: Likewise.
584         * sched-deps.c: Likewise.
585         * sched-ebb.c: Likewise.
586         * sched-rgn.c: Likewise.
587         * sdbout.c: Likewise.
588         * sel-sched-dump.c: Likewise.
589         * sel-sched-ir.c: Likewise.
590         * simplify-rtx.c: Likewise.
591         * stmt.c: Likewise.
592         * stor-layout.c: Likewise.
593         * store-motion.c: Likewise.
594         * targhooks.c: Likewise.
595         * tree-cfg.c: Likewise.
596         * tree-cfgcleanup.c: Likewise.
597         * tree-dump.c: Likewise.
598         * tree-eh.c: Likewise.
599         * tree-inline.c: Likewise.
600         * tree-nomudflap.c: Likewise.
601         * tree-object-size.c: Likewise.
602         * tree-optimize.c: Likewise.
603         * tree-outof-ssa.c: Likewise.
604         * tree-phinodes.c: Likewise.
605         * tree-profile.c: Likewise.
606         * tree-ssa-ccp.c: Likewise.
607         * tree-ssa-coalesce.c: Likewise.
608         * tree-ssa-live.c: Likewise.
609         * tree-ssa-loop-niter.c: Likewise.
610         * tree-ssa-loop-prefetch.c: Likewise.
611         * tree-ssa-loop.c: Likewise.
612         * tree-ssa-structalias.c: Likewise.
613         * tree-ssa-uninit.c: Likewise.
614         * tree-ssa.c: Likewise.
615         * tree-vect-data-refs.c: Likewise.
616         * tree-vect-loop-manip.c: Likewise.
617         * tree-vect-loop.c: Likewise.
618         * tree-vect-patterns.c: Likewise.
619         * tree-vect-stmts.c: Likewise.
620         * tree-vrp.c: Likewise.
621         * varasm.c: Likewise.
622         * vec.c: Likewise.
623         * web.c: Likewise.
624         * xcoffout.c: Likewise.
625
626 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
627
628         * gengtype.c (write_field_root): New function.
629         (write_root): Use it.
630
631 2010-07-07  Wei Guozhi  <carrot@google.com>
632
633         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
634         of lowest bits to lshift/compare): Add a missing line.
635
636 2010-07-07  Wei Guozhi  <carrot@google.com>
637
638         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
639         of lowest bits to lshift/compare): New.
640
641 2010-07-07  Tom Tromey  <tromey@redhat.com>
642
643         * doc/tm.texi: Update.
644         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
645         Add @hook.
646         * target.def (want_debug_pub_sections): New hook.
647         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
648         * dwarf2out.c (add_pubname_string): Check
649         targetm.want_debug_pub_sections.
650         (add_pubname): Likewise.
651         (add_pubtype): Likewise.
652
653 2010-07-07  Jie Zhang  <jie@codesourcery.com>
654
655         * genautomata.c (output_automata_list_min_issue_delay_code):
656         Correctly decompress min_issue_delay.
657
658 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
659
660         PR rtl-optimization/44404
661         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
662         possible, use reg_overlap_mentioned_p instead.
663
664 2010-07-07  Duncan Sands  <baldrick@free.fr>
665
666         PR middle-end/41355
667         * tree.c (build_function_type_skip_args): Copy the original type using
668         build_distinct_type_copy rather than copy_node.
669
670 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
671
672         PR target/44850
673         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
674         revision 161876.
675         (ix86_expand_prologue): Likewise.
676         (ix86_handle_fndecl_attribute): Likewise.
677         (ix86_asm_declare_function_name): Likewise.
678         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
679         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
680         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
681         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
682         * doc/extend.texi: Likewise.
683
684 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
685
686         PR target/44844
687         * config/i386/i386.md (rdrand<mode>): Changed to expand to
688         retry if the carry flag isn't valid.
689         (rdrand<mode>_1): New.
690
691 2010-07-07  Richard Guenther  <rguenther@suse.de>
692
693         PR middle-end/44790
694         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
695         for expanding the constant offset for MEM_REFs.
696
697 2010-07-07  Richard Guenther  <rguenther@suse.de>
698
699         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
700         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
701         * gimple.h (is_gimple_operand): Remove.
702         * gimple.c (is_gimple_operand): Likewise.
703         (walk_gimple_op): Fix wi->val_only setting for calls.
704         * tree-cfg.c (verify_gimple_call): Fix argument validation.
705         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
706         invalid gimple calls.
707
708 2010-07-06  Jan Hubicka  <jh@suse.cz>
709
710         * lto-cgraph.c (output_cgraph): Add missing declaration.
711
712 2010-07-06  Jan Hubicka  <jh@suse.cz>
713
714         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
715         partition.
716
717 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
718
719         * doc/gimple.texi (GIMPLE_DEBUG): Document.
720         * doc/rtl.texi (Debug Information): New node.
721         (NOTE_INSN_VAR_LOCATION): Document.
722         (debug_insn): Likewise.
723         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
724
725 2010-07-07  Jan Hubicka  <jh@suse.cz>
726
727         With parts by Richard Guenther.
728
729         PR middle-end/44813
730         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
731         for functions passed by reference.
732         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
733         in memory when passed by reference.
734         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
735         beggining.
736         * ipa-split.c (split_function): Cleanup way return value is passed;
737         handle SSA DECL_BY_REFERENCE retvals.
738         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
739         DECL_BY_REFERENCE is set.
740         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
741         find_what_p_points_to): Handle RESULT_DECL.
742         * tree-inline.c (declare_return_variable): Get new entry_block argument;
743         when passing by reference ensure that RESULT_DECL is gimple_val.
744         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
745         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
746
747 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
748
749         PR rtl-optimization/44787
750         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
751         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
752
753 2010-07-06  Jan Hubicka  <jh@suse.cz>
754
755         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
756         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
757         with body can prevail.
758         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
759         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
760         * cgraph.c (cgraph_get_node_or_alias): New function.
761         * cgraph.h (cgraph_get_node_or_alias): Declare.
762
763 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
764
765         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
766         support.
767         (ix86_expand_prologue): Likewise.
768         (ix86_handle_fndecl_attribute): Likewise.
769         (ix86_asm_declare_function_name): New function for
770         ASM_DECLARE_FUNCTION_NAME.
771         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
772         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
773         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
774         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
775         * doc/extend.texi: Adjust documentation about ms_hook_prologue
776         attribute.
777
778 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
779
780         * config/i386/i386.md (immediate_operand): New mode attribute.
781
782         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
783         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
784         using P mode iterator.
785         (pro_epilogue_adjust_stack_di_2): Rename from
786         pro_epilogue_adjust_stack_rex64_2.
787
788         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
789
790 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
791
792         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
793         through gen_mov_insv_1 function pointer.
794         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
795         gen_truncxf<mode>2 through gen_truncxf function pointer.
796         (remainder<mode>3): Ditto.
797         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
798         (allocate_stack): Call gen_allocate_stack_worker_64 or
799         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
800         function pointer.
801         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
802         function pointer.
803
804 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
805
806         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
807         operand constraint instead of <r><i>m.
808
809 2010-07-06  Richard Guenther  <rguenther@suse.de>
810
811         PR middle-end/44828
812         * convert.c (convert_to_integer): Watch out for overflowing
813         MULT_EXPR as well.
814
815 2010-07-05  Jan Hubicka  <jh@suse.cz>
816
817         * lto-streamer.c (write_symbol_vec): Rename to ...
818         (write_symbol) ... this one; write only symbol given and when
819         present in cache. Sanity check that what is defined is present
820         in cgraph/varpool with body/finalized decl.
821         (write_symbols_of_kind): Remove.
822         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
823         pairs to produce symtab.
824         (produce_asm_for_decls): Update call of produce_symtab; don't do so
825         when doing WPA streaming.
826
827 2010-07-05  Jan Hubicka  <jh@suse.cz>
828
829         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
830         function is still available to fold into.
831
832 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
833
834         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
835         * function.h (struct_function): Change type of local_decls field
836         to a VEC.
837         (add_local_decl): New function.
838         (FOR_EACH_LOCAL_DECL): New macro.
839         * cfgexpand.c (init_vars_expansion): Adjust for new type of
840         cfun->local_decls.
841         (estimated_stack_frame_size): Likewise.
842         (expand_used_vars): Likewise.
843         * cgraphbuild.c (build_cgraph_edges): Likewise.
844         * function.c (instantiate_decls_1): Likewise.
845         * ipa-struct-reorg.c (build_data_structure): Likewise.
846         * ipa-type-escape.c (analyze_function): Likewise.
847         * lto-streamer-in.c (input_function): Likewise.
848         * lto-streamer-out.c (output_function): Likewise.
849         * tree-ssa-live.c (remove_unused_locals): Likewise.
850         * tree.c (free_lang_data_in_decl): Likewise.
851         (find_decls_types_in_node): Likewise.
852         * omp-low.c (remove_exit_barrier): Likewise.
853         (expand_omp_taskreg): Likewise.
854         (list2chain): Rename to...
855         (vec2chain): ...this.  Adjust.
856         * cgraphunit.c (assemble_thunk): Call add_local_decl.
857         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
858         * gimple-low.c (record_vars_into): Likewise.
859         * tree-inline.c (remap_decls): Likewise.
860         (declare_return_variable): Likewise.
861         (declare_inline_vars): Likewise.
862         (copy_forbidden): Adjust for new type of cfun->local_decls.
863         (add_local_variables): New function.
864         (expand_call_inline): Call it.
865         (tree_function_versioning): Likewise.
866
867 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
868
869         AVX Programming Reference (June, 2010)
870         * config/i386/cpuid.h (bit_F16C): New.
871         (bit_RDRND): Likewise.
872         (bit_FSGSBASE): Likewise.
873
874         * config/i386/i386-builtin-types.def: Add
875         "DEF_FUNCTION_TYPE (UINT16)", function types for
876         float16 <-> float conversions and
877         "DEF_FUNCTION_TYPE (VOID, UINT64)".
878
879         * config/i386/i386-c.c (ix86_target_macros_internal): Support
880         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
881         OPTION_MASK_ISA_F16C.
882
883         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
884         (OPTION_MASK_ISA_RDRND_SET): Likewise.
885         (OPTION_MASK_ISA_F16C_SET): Likewise.
886         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
887         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
888         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
889         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
890         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
891         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
892         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
893         (override_options): Handle them.
894         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
895         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
896         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
897         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
898         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
899         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
900         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
901         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
902         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
903         (bdesc_args): Likewise.
904         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
905         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
906         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
907         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
908         Handle non-memory store.
909
910         * config/i386/i386.h (TARGET_FSGSBASE): New.
911         (TARGET_RDRND): Likewise.
912         (TARGET_F12C): Likewise.
913
914         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
915         (UNSPEC_VCVTPS2PH): Likewise.
916         (UNSPECV_RDFSBASE): Likewise.
917         (UNSPECV_RDGSBASE): Likewise.
918         (UNSPECV_WRFSBASE): Likewise.
919         (UNSPECV_WRGSBASE): Likewise.
920         (UNSPECV_RDRAND): Likewise.
921         (rdfsbase<mode>): Likewise.
922         (rdgsbase<mode>): Likewise.
923         (wrfsbase<mode>): Likewise.
924         (wrgsbase<mode>): Likewise.
925         (rdrand<mode>): Likewise.
926
927         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
928
929         * config/i386/immintrin.h (_rdrand_u16): New.
930         (_rdrand_u32): Likewise.
931         (_readfsbase_u32): Likewise.
932         (_readfsbase_u64): Likewise.
933         (_readgsbase_u32): Likewise.
934         (_readgsbase_u64): Likewise.
935         (_writefsbase_u32): Likewise.
936         (_writefsbase_u64): Likewise.
937         (_writegsbase_u32): Likewise.
938         (_writegsbase_u64): Likewise.
939         (_rdrand_u64): Likewise.
940         (_cvtsh_ss): Likewise.
941         (_mm_cvtph_ps): Likewise.
942         (_mm256_cvtph_ps): Likewise.
943         (_cvtss_sh): Likewise.
944         (_mm_cvtps_ph): Likewise.
945         (_mm256_cvtps_ph): Likewise.
946
947         * config/i386/sse.md (vcvtph2ps): New.
948         (*vcvtph2ps_load): Likewise.
949         (vcvtph2ps256): Likewise.
950         (vcvtps2ph): Likewise.
951         (*vcvtps2ph): Likewise.
952         (*vcvtps2ph_store): Likewise.
953         (vcvtps2ph256): Likewise.
954
955         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
956
957         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
958
959 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
960
961         PR bootstrap/44512
962         * genenums.c (main): Output include of insn-constants.h
963         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
964
965 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
966
967         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
968         (override_options): Initialize it.
969         (ix86_expand_prologue): Use it.
970
971 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
972
973         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
974
975 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
976
977         * double-int.h (fit_double_type): Remove declaration.
978         * double-int.c (fit_double_type): Remove function.
979         * tree.h (int_fits_type_p): Adjust prototype.
980         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
981         instead of fit_double_type.
982         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
983         instead of fit_double_type and build_int_cst_wide.
984         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
985         instead of fit_double_type and build_int_cst_wide.
986         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
987         of fit_double_type.
988
989 2010-07-05  Jan Hubicka  <jh@suse.cz>
990
991         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
992         in_other_partition.
993         * lto-cgraph.c (referenced_from_other_partition_p,
994         reachable_from_other_partition_p): Use in_other_partition flags.
995         (output_node, output_varpool_node): COMDAT nodes always have private
996         copies and thus are never used from other partition.
997
998 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
999
1000         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
1001         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
1002         * config/ia64/ia64.c Include reload.h.
1003         (ia64_memory_move_cost): New function.
1004         (TARGET_MEMORY_MOVE_COST): Define.
1005         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
1006         memory_move_cost.
1007
1008 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
1009
1010         PR middle-end/42505
1011         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
1012         comments about cost model.
1013         (try_add_cand_for):  Add second strategy for choosing initial set
1014         based on original IVs, controlled by ORIGINALP argument.
1015         (get_initial_solution): Add ORIGINALP argument.
1016         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
1017         (find_optimal_iv_set): Try two different strategies for choosing
1018         the IV set, and return the one with lower cost.
1019
1020 2010-07-05  Richard Guenther  <rguenther@suse.de>
1021
1022         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
1023
1024 2010-07-05  Richard Guenther  <rguenther@suse.de>
1025
1026         * tree.c (reference_alias_ptr_type): New function.
1027         * tree.h (reference_alias_ptr_type): Declare.
1028         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
1029         allow non-TARGET_MEM_REF new refs.
1030         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
1031         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
1032         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
1033         (create_mem_ref): Get alias pointer type.  Adjust calls to
1034         create_mem_ref_raw.
1035         (maybe_fold_tmr): Likewise.
1036         * tree-flow.h (create_mem_ref): Adjust prototype.
1037
1038 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
1039
1040         PR c++/44808
1041         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
1042         *from_p is VAR_DECL.
1043
1044 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
1045
1046         * tree.h (build_call_list): Remove.
1047         * tree.c (build_call_list): Remove.
1048
1049 2010-07-05  Richard Guenther  <rguenther@suse.de>
1050
1051         * double-int.h (double_int_sub): Declare.
1052         * double-int.c (double_int_sub): New function.
1053         * dwarf2out.c (field_byte_offset): Use it.
1054         * fixed-value.c (do_fixed_add): Likewise.
1055         (do_fixed_multiply): Likewise.
1056         (do_fixed_divide): Likewise.
1057         * tree-predcom.c (add_ref_to_chain): Likewise.
1058         (determine_roots_comp): Likewise.
1059         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
1060
1061 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
1062
1063         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
1064         implementations.
1065
1066 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
1067
1068         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
1069         * arm-modes.def (CC_NOTB): Don't define.
1070         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
1071         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
1072         (LTUGEU): New code_iterator.
1073         (cnb, optab): New corresponding code_attrs.
1074         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
1075         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
1076         using LTUGEU.
1077         (addsi3_carryin_shift_<optab>): Likewise.
1078         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
1079         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
1080         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
1081         (subsi3_compare): Renamed from subsi3_compare0_c.
1082         Change CC_NOTB to CC.
1083         (arm_subsi3_insn): Allow constants for operand 0.
1084         (compare_scc peephole for eq case): New.
1085         (compare_scc splitters): Change CC_NOTB to CC.
1086
1087 2010-07-05  Richard Guenther  <rguenther@suse.de>
1088
1089         * tree-ssa-loop-im.c (for_each_index): Do not handle
1090         ALIGN_INDIRECT_REF.
1091         (gen_lsm_tmp_name): Likewise.
1092         * tree-dump.c (dequeue_and_dump): Likewise.
1093         * tree-pretty-print.c (dump_generic_node): Likewise.
1094         (op_code_prio): Likewise.
1095         (op_symbol_code): Likewise.
1096         * tree.c (staticp): Likewise.
1097         (build1_stat): Likewise.
1098         * tree.h (INDIRECT_REF_P): Likewise.
1099         * fold-const.c (maybe_lvalue_p): Likewise.
1100         (operand_equal_p): Likewise.
1101         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1102         (ao_ref_init_from_vn_reference): Likewise.
1103         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
1104         (find_interesting_uses_address): Likewise.
1105         * dwarf2out.c (loc_list_from_tree): Likewise.
1106         * gimplify.c (gimplify_expr): Likewise.
1107         * tree-eh.c (tree_could_trap_p): Likewise.
1108         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1109         * cfgexpand.c (expand_debug_expr): Likewise.
1110         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1111         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1112         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
1113         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
1114         * tree-ssa-operands.c (get_expr_operands): Likewise.
1115         * expr.c (safe_from_p): Likewise.
1116         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
1117         * tree-vect-data-refs.c (vect_setup_realignment): Build
1118         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
1119         * tree-vect-stmts.c (vectorizable_load): Likewise.
1120         * tree.def (ALIGN_INDIRECT_REF): Remove.
1121
1122 2010-07-05  Richard Guenther  <rguenther@suse.de>
1123
1124         PR tree-optimization/44784
1125         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
1126         for inserted stmts.
1127         (find_or_generate_expression): Fix SCCVN insertion check.
1128
1129 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
1130
1131         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
1132         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
1133         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
1134         directives.
1135
1136 2010-07-05  Ira Rosen  <irar@il.ibm.com>
1137
1138         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
1139         statements that are not vectorized.
1140         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
1141         in INSIDE_COST.
1142
1143 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
1144
1145         PR bootstrap/44820
1146         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
1147
1148 2010-07-05  Richard Guenther  <rguenther@suse.de>
1149
1150         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
1151         RESULT_DECLs properly.
1152
1153 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
1154
1155         PR rtl-optimization/44695
1156         * config/i386/i386.md (extract_code): Removed.
1157         (<u>divmodqi4): Likewise.
1158         (divmodqi4): New.
1159         (udivmodqi4): Likewise.
1160         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
1161         (udivmodhiqi3): Likewise.
1162
1163 2010-07-04  Jan Hubicka  <jh@suse.cz>
1164
1165         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
1166
1167 2010-07-04  Jan Hubicka  <jh@suse.cz>
1168
1169         * cgraphunit.c (init_cgraph): Only initialize dump file if it
1170         is not already initialized.
1171
1172 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
1173
1174         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
1175         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
1176         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
1177         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
1178         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
1179         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
1180         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
1181         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
1182         (sync_new_nand_optab): Redefine as macros.
1183         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
1184         Delete.
1185         (direct_optab_index): New enum.
1186         (direct_optab_d): New structure.
1187         (direct_optab): New typedef.
1188         (direct_optab_table): Declare.
1189         (direct_optab_handler, set_direct_optab_handler): New functions.
1190         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
1191         (sync_lock_release_optab): New macros.
1192         * optabs.c (direct_optab_table): New variable.
1193         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
1194         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
1195         cmpstr_optab and cmpstrn_optab.
1196         (emit_conditional_move): Likewise for movcc_optab.
1197         (can_conditionally_move_p): Likewise for movcc_gen_code.
1198         (init_insn_codes): Clear direct_optab_table.
1199         (init_optabs): Don't initialize the new "direct optabs" here.
1200         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
1201         vcond_gen_code.
1202         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
1203         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
1204         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
1205         (expand_sync_operation): Likewise other sync_*_optabs.
1206         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
1207         to sync_compare_and_swap_optab.
1208         (expand_sync_lock_test_and_set): Use direct_optab_handler for
1209         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
1210         to the names of both.
1211         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
1212         cmpstr_optab and cmpstrn_optab.
1213         (expand_builtin_lock_release): Likewise sync_lock_release.
1214         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
1215         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
1216         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
1217         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
1218         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
1219         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
1220         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
1221         (sync_lock_test_and_set, sync_lock_release): Delete.
1222         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
1223         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
1224         * genopinit.c (optabs): Use set_direct_optab_handler for the new
1225         macro optabs.
1226         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
1227         the "optab" local variable.  Use direct_optab_handler for optab and
1228         sync_compare_and_swap_optab.
1229         * reload1.c (reload_in_optab, reload_out_optab): Delete.
1230         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
1231         reload_in_optab and reload_out_optab.
1232         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
1233         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
1234         * config/pa/pa.c (pa_secondary_reload): Likewise.
1235         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
1236         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
1237         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
1238         (VMSupportsCS8_builtin): Likewise.
1239
1240 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
1241
1242         * optabs.h (optab_handlers): Change type of insn_code to int.
1243         (optab_handler, set_optab_handler, convert_optab_handler)
1244         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
1245         CODE_FOR_nothing".
1246         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
1247         (init_insn_codes): Zero both the above arrays.
1248         (init_optabs): Never call init_insn_codes first time around.
1249
1250 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
1251
1252         * optabs.h (optab_handler, convert_optab_handler): Turn into
1253         inline functions that return an insn code.
1254         (set_optab_handler, set_convert_optab_handler): New functions.
1255         * builtins.c: Replace optab_handler(X)->insn_code with
1256         optab_handler or set_optab_handler thoughout.  Likewise
1257         convert_optab_handler(X)->insn_code with convert_optab_handler
1258         and set_convert_optab_handler.
1259         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
1260         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
1261         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
1262         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
1263         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
1264         config/spu/spu.c: Likewise.
1265
1266 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1267
1268         PR target/44531
1269         * config.gcc (sh*-*-*): Use regular expressions instead of
1270         the 'i' modifier for sed substitutions.
1271
1272 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1273
1274         * gimple.c (gimple_body): Comments added.
1275
1276 2010-07-04  Richard Guenther  <rguenther@suse.de>
1277
1278         PR middle-end/44809
1279         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
1280         of an INDIRECT_REF.
1281
1282 2010-07-04  Richard Guenther  <rguenther@suse.de>
1283
1284         PR tree-optimization/44479
1285         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
1286         extra SSA name copy statements which preserves points-to
1287         information.
1288         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1289         Copy points-to information for all pointers.  Properly handle
1290         MEM_REFs.
1291         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
1292         copy statements.
1293         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
1294         dependency.
1295
1296 2010-07-04  Richard Guenther  <rguenther@suse.de>
1297
1298         PR middle-end/44785
1299         * tree-inline.c (initialize_inlined_parameters): Do not
1300         re-use pointer-map slot over remap_type call.
1301
1302 2010-07-04  Richard Guenther  <rguenther@suse.de>
1303
1304         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
1305
1306 2010-07-04  Richard Guenther  <rguenther@suse.de>
1307
1308         PR tree-optimization/44656
1309         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
1310         again after value-replacing in the defintions lhs.
1311
1312 2010-07-04  Ira Rosen  <irar@il.ibm.com>
1313             Revital Eres  <eres@il.ibm.com>
1314
1315         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
1316         Document new arguments.
1317         * doc/tm.texi: Regenerate.
1318         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
1319         Handle unaligned store.
1320         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
1321         * target.def (builtin_vectorization_cost): Add new arguments.
1322         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
1323         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
1324         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
1325         (vect_vfa_segment_size): Fix indentation.
1326         * tree-vectorizer.h (struct _vect_peel_info): New.
1327         (struct _vect_peel_extended_info): New.
1328         (struct _loop_vec_info): Add new field for peeling hash table and a
1329         macro for its access.
1330         (VECT_MAX_COST): Define.
1331         (vect_get_load_cost): Declare.
1332         (vect_get_store_cost, vect_get_known_peeling_cost,
1333         vect_get_single_scalar_iteraion_cost): Likewise.
1334         (vect_supportable_dr_alignment): Add new argument.
1335         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
1336         field.
1337         (destroy_loop_vec_info): Free peeling hash table.
1338         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
1339         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
1340         vect_analyze_slp. Fix indentation.
1341         (vect_get_single_scalar_iteraion_cost): New function.
1342         (vect_get_known_peeling_cost): Likewise.
1343         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
1344         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
1345         statement. Move outside cost calculation inside unknown peeling case.
1346         Call vect_get_known_peeling_cost for known amount of peeling.
1347         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
1348         reference to the print message of forced alignment.
1349         (vect_verify_datarefs_alignment): Update call to
1350         vect_supportable_dr_alignment.
1351         (vect_get_data_access_cost): New function.
1352         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
1353         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
1354         vect_peeling_hash_choose_best_peeling): Likewise.
1355         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
1356         to store all the accesses in the loop and find best possible access to
1357         align using peeling for known alignment case. For unknown alignment
1358         check if stores are preferred or if peeling is worthy.
1359         (vect_find_same_alignment_drs): Analyze pairs of loads too.
1360         (vect_supportable_dr_alignment): Add new argument and check aligned
1361         accesses according to it.
1362         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
1363         (cost_for_stmt): Call vect_get_stmt_cost.
1364         (vect_model_simple_cost): Likewise.
1365         (vect_model_store_cost): Call vect_get_stmt_cost. Call
1366         vect_get_store_cost to calculate the cost of the statement.
1367         (vect_get_store_cost): New function.
1368         (vect_model_load_cost): Call vect_get_stmt_cost. Call
1369         vect_get_load_cost to calculate the cost of the statement.
1370         (vect_get_load_cost): New function.
1371         (vectorizable_store): Update call to vect_supportable_dr_alignment.
1372         (vectorizable_load): Likewise.
1373         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
1374         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
1375         arguments. Handle unaligned store.
1376         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
1377         (rs6000_builtin_support_vector_misalignment): Return true for word and
1378         double word alignments for VSX.
1379         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
1380         vect_supportable_dr_alignment and builtin_vectorization_cost.
1381
1382 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1383
1384         PR target/44597
1385         * config/pa/predicates.md (prefetch_cc_operand): Remove.
1386         (prefetch_nocc_operand): Likewise.
1387         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
1388         (prefetch_20): New insn.
1389         (prefetch_cc): Remove.
1390         (prefetch_nocc): Likewise.
1391
1392 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1393
1394         * expr.c (vector_mode_valid_p): Move to c-common.c.
1395         * expr.h (vector_mode_valid_p): Do not declare here.
1396         * system.h: Poison GCC_EXPR_H in front-ends.
1397         * Makefile.in: Update dependencies.
1398
1399 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1400
1401         PR target/44705
1402         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
1403
1404 2010-07-03  Jan Hubicka  <jh@suse.cz>
1405
1406         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
1407         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
1408         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
1409         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
1410         Likewise.
1411
1412         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
1413         Update timevars.V
1414         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
1415         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
1416         TV_IPA_LTO_DECL_OUT): New.
1417         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
1418
1419 2010-07-03  Jan Hubicka  <jh@suse.cz>
1420
1421         * ipa-inline.c (update_edge_key): Break out from ...
1422         update_callers_keys): ... here;
1423         (update_callee_keys): Update only the edges from caller to callee.
1424         (update_all_calle_keys): Do what update_calle_keys did.
1425         (decide_inlining_of_small_functions): Avoid recomputing of all
1426         callees when badness increase.
1427
1428 2010-07-03  Jie Zhang  <jie@codesourcery.com>
1429
1430         * config/arm/arm.c (arm_attr_length_move_neon): New.
1431         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
1432         * config/arm/neon.md (define_mode_attr V_slen): Remove.
1433         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
1434         to compute length attribute.
1435
1436 2010-07-03  Jie Zhang  <jie@codesourcery.com>
1437
1438         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
1439         as predicate for operand 1 and remove its constraint.
1440         * config/arm/predicates.md (vfp_register_operand): New.
1441         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
1442         (*push_fp_multi): Likewise.
1443
1444 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
1445
1446         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
1447
1448 2010-07-03  Jan Hubicka  <jh@suse.cz>
1449
1450         * config/i386/i386.c (override_options): Revert accidental commit.
1451
1452 2010-07-02  Le-Chun Wu  <lcwu@google.com>
1453
1454         PR c++/44128
1455         * doc/invoke.texi: Update documentation of -Wshadow.
1456
1457 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
1458             Julian Brown  <julian@codesourcery.com>
1459             Sandra Loosemore <sandra@codesourcery.com>
1460
1461         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
1462         comparisons.  Adjust to take both operands.
1463         (arm_select_cc_mode): Handle DImode comparisons.
1464         (arm_gen_compare_reg): Generate a scratch register for DImode
1465         comparisons which require one.  Use xor for Thumb equality checks.
1466         (arm_const_double_by_immediates): New.
1467         (arm_print_operand): Allow 'Q' and 'R' for constants.
1468         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
1469         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
1470         arm_canonicalize_comparison.
1471         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
1472         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
1473         prototype.
1474         (arm_const_double_by_immediates): Declare.
1475         * config/arm/constraints.md (Di): New constraint.
1476         * config/arm/predicates.md (arm_immediate_di_operand)
1477         (arm_di_operand, cmpdi_operand): New.
1478         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
1479         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
1480         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
1481         (cstoredi4): Handle non-Cirrus also.
1482
1483 2010-07-02  Julian Brown  <julian@codesourcery.com>
1484             Sandra Loosemore <sandra@codesourcery.com>
1485
1486         PR target/43703
1487         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
1488         (smax<mode>3): Disable for NEON float modes when
1489         flag_unsafe_math_optimizations is false.
1490         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
1491         (*mul<mode>3_neon)
1492         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
1493         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
1494         for NEON float modes when flag_unsafe_math_optimizations is false.
1495         (quad_halves_<code>v4sf): Only enable if
1496         flag_unsafe_math_optimizations is true.
1497         * doc/invoke.texi (ARM Options): Add note about floating point
1498         vectorization requiring -funsafe-math-optimizations.
1499
1500 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
1501             Julian Brown  <julian@codesourcery.com>
1502
1503         * config/arm/neon.md (UNSPEC_VABA): Delete.
1504         (UNSPEC_VABAL): Delete.
1505         (UNSPEC_VABS): Delete.
1506         (UNSPEC_VMUL_N): Delete.
1507         (adddi3_neon): New.
1508         (subdi3_neon): New.
1509         (mul<mode>3add<mode>_neon): Make the pattern named.
1510         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
1511         (neon_vadd<mode>): Replace with define_expand, and move the remaining
1512         unspec parts...
1513         (neon_vadd<mode>_unspec): ...to this.
1514         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
1515         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
1516         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
1517         (neon_vaba<mode>): Rewrite in terms of vabd.
1518         (neon_vabal<mode>): Rewrite in terms of vabdl.
1519         (neon_vabs<mode>): Rewrite without unspec.
1520         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
1521         (*arm_subdi3): Likewise.
1522         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
1523         No_op attribute to disable assembly output checks.
1524         * config/arm/arm_neon.h: Regenerated.
1525         * doc/arm-neon-intrinsics.texi: Regenerated.
1526
1527 2010-07-02  Jan Hubicka  <jh@suse.cz>
1528
1529         * ipa-split.c (split_function): For aggregate values, set the return
1530         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
1531         *<retval> = fncall.part ().
1532         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
1533
1534 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
1535
1536         * config/arm/neon.md (UNSPEC_VAND): Delete.
1537         (UNSPEC_VBIC): Delete.
1538         (UNSPEC_VCLZ): Delete.
1539         (UNSPEC_VCNT): Delete.
1540         (UNSPEC_VEOR): Delete.
1541         (UNSPEC_VORN): Delete.
1542         (UNSPEC_VORR): Delete.
1543         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
1544         core registers too.
1545         (anddi3_neon): Likewise.
1546         (orndi3_neon): Likewise.
1547         (bicdi3_neon): Likewise.
1548         (xordi3_neon): Likewise.
1549         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
1550         rid of unspec and handle unused operand.
1551         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
1552         * config/arm/predicates.md (imm_for_neon_logic_operand):
1553         Require TARGET_NEON.
1554         (imm_for_neon_inv_logic_operand): Likewise.
1555         * config/arm/arm.md (define_split for logical_binary_operator):
1556         Disable for NEON registers.
1557         (anddi3): Add new define_expand, and rename the insn.  Disable
1558         this insn for NEON, where anddi3_neon now applies.
1559         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
1560         (iordi3): As for anddi3.
1561         (xordi3): Likewise.
1562         * config/arm/neon.ml (Vand): Split DImode variants and mark them
1563         as No_op to disable testing for exact instruction match.
1564         (Vorr): Likewise.
1565         (Veor): Likewise.
1566         (Vbic): Likewise.
1567         (Vorn): Likewise.
1568         * config/arm/arm_neon.h: Regenerated.
1569         * doc/arm-neon-intrinsics.texi: Regenerated.
1570
1571 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1572
1573         * expr.h (emit_stack_probe): Declare.
1574         * explow.c (emit_stack_probe): Make global.
1575         (anti_adjust_stack_and_probe): Fix comments.
1576         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
1577         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1578         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1579         * config/sparc/sparc.c: Include except.h.
1580         (sparc_emit_probe_stack_range): New function.
1581         (output_probe_stack_range): Likewise.
1582         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
1583         built-in stack checking is enabled.
1584         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
1585         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
1586         (probe_stack_range): New insn.
1587
1588 2010-07-02  Richard Guenther  <rguenther@suse.de>
1589
1590         PR target/43958
1591         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
1592         for argument alignment.
1593
1594 2010-07-02  Jan Hubicka  <jh@suse.cz>
1595
1596         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
1597         walk backwards from entry_bb to check only those basic block of header
1598         that might lead to execution of split part.
1599         (consider_split) ... here.
1600         (find_return_bb): Allow assignment in return BB.
1601         (find_retval): New.
1602         (split_function): Fix name of cloned function; take care of updating
1603         return value in return_bb containing move.
1604
1605 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
1606
1607         PR target/44771
1608         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
1609         used variable insn.
1610
1611 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1612
1613         * implicit-zee.c (combine_reaching_defs): Fix long lines.
1614         (is_set_with_extension_DI): Delete.
1615         (struct zero_extend_info): New structure.
1616         (add_removable_zero_extend): New function.
1617         (find_removable_zero_extends): Use note_stores to find SETs.
1618         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
1619
1620 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
1621
1622         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
1623         is_miss_rate_acceptable. Pull total_positions computation
1624         out of the loops.  Early return if miss_positions exceeds
1625         the acceptable threshold.
1626         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
1627         is_miss_rate_acceptable after renaming of compute_miss_rate.
1628
1629 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
1630
1631         PR middle-end/44576
1632         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
1633         of 1000) for miss rate if the address diference is greater than or
1634         equal to the cache line size (the two reference will never hit the
1635         same cache line).
1636
1637 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
1638
1639         PR target/42835
1640         * config/arm/arm-modes.def (CC_NOTB): New mode.
1641         * config/arm/arm.c (get_arm_condition_code): Handle it.
1642         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
1643         * config/arm/arm.md (subsi3_compare0_c): New pattern.
1644         (compare_scc): Now a define_and_split.  Add a number of extra
1645         splitters before it.
1646
1647         PR target/42172
1648         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
1649         and ZERO_EXTEND.
1650         (arm_rtx_costs_1): Likewise.
1651         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
1652         * config/arm/arm.md (is_arch6): New attribute.
1653         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
1654         extendqisi2): Tighten the code somewhat, avoiding invalid
1655         RTL to occur in the expander patterns.
1656         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
1657         (thumb1_zero_extendhisi2_v6): Delete.
1658         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
1659         (thumb1_extendhisi2_v6): Delete.
1660         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
1661         (thumb1_extendqisi2_v6): Delete.
1662         (zero_extendhisi2 for register input splitter): New.
1663         (zero_extendqisi2 for register input splitter): New.
1664         (thumb1_extendhisi2 for register input splitter): New.
1665         (extendhisi2 for register input splitter): New.
1666         (extendqisi2 for register input splitter): New.
1667         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
1668         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
1669         and add support for a register alternative requiring a split.
1670         (thumb1_zero_extendqisi2): Likewise.
1671         (arm_zero_extendqisi2): Likewise.
1672         (arm_extendhisi2): Likewise.
1673         (arm_extendqisi2): Likewise.
1674
1675 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
1676
1677         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
1678         instead of an unspec.
1679         (neon_expand_vector_init): Likewise.
1680         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
1681         (UNSPEC_VDUP_LANE): Delete.
1682         (UNSPEC VDUP_N): Delete.
1683         (UNSPEC_VGET_HIGH): Delete.
1684         (UNSPEC_VGET_LANE): Delete.
1685         (UNSPEC_VGET_LOW): Delete.
1686         (UNSPEC_VMVN): Delete.
1687         (UNSPEC_VSET_LANE): Delete.
1688         (V_double_vector_mode): New.
1689         (vec_set<mode>_internal): Make code emitted match that for the
1690         corresponding intrinsics.
1691         (vec_setv2di_internal): Likewise.
1692         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
1693         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
1694         (neon_vset_lane<mode>): Combine double and quad patterns and
1695         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
1696         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
1697         (neon_vdup_n<mode>): Rewrite RTL without unspec.
1698         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
1699         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
1700         with neon_vdup_lanev2di, adjusting the pattern from the latter
1701         to be predicable for consistency.
1702         (neon_vdup_lane<mode>_internal): New.
1703         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
1704         to avoid using an unspec.
1705         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
1706         (neon_vdup_lanev2di): Turn into a define_expand.
1707         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
1708         (neon_vget_high<mode>): Replace with....
1709         (neon_vget_highv16qi): New pattern using canonical RTL.
1710         (neon_vget_highv8hi): Likewise.
1711         (neon_vget_highv4si): Likewise.
1712         (neon_vget_highv4sf): Likewise.
1713         (neon_vget_highv2di): Likewise.
1714         (neon_vget_low<mode>): Replace with....
1715         (neon_vget_lowv16qi): New pattern using canonical RTL.
1716         (neon_vget_lowv8hi): Likewise.
1717         (neon_vget_lowv4si): Likewise.
1718         (neon_vget_lowv4sf): Likewise.
1719         (neon_vget_lowv2di): Likewise.
1720
1721         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
1722         test for this emitting vmov.
1723         (Vset_lane): Likewise.
1724         (Vdup_n): Likewise.
1725         (Vmov_n): Likewise.
1726
1727         * doc/arm-neon-intrinsics.texi: Regenerated.
1728
1729 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
1730
1731         * config/arm/neon.md (vec_extractv2di): Correct error in register
1732         numbering to reconcile with neon_vget_lanev2di.
1733
1734 2010-07-02  Richard Guenther  <rguenther@suse.de>
1735
1736         * tree-ssa-structalias.c (pt_solution_set_var): New function.
1737         * tree-ssa-alias.h (pt_solution_set_var): Declare.
1738         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
1739         points-to information.
1740
1741 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
1742
1743         * config/s390/s390.c (override_options): Adopt prefetching
1744         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
1745
1746 2010-07-02  Jan Hubicka  <jh@suse.cz>
1747
1748         * df-problems.c (df_kill_notes): Do not collect dead  notes.
1749         (df_set_note): Just call add_reg_note.
1750         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
1751         df_create_unused_note): Do not deal with lists of old notes.
1752         (df_note_bb_compute): Likewise.
1753
1754 2010-07-02  Richard Guenther  <rguenther@suse.de>
1755
1756         * tree-ssa-structalias.c (find_func_aliases): Handle
1757         pointer alignment via BIT_AND_EXPR.
1758         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
1759
1760 2010-07-02  Richard Guenther  <rguenther@suse.de>
1761
1762         * tree-data-ref.c (initialize_data_dependence_relation): Handle
1763         mismatching number of dimensions properly.
1764
1765 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1766
1767         PR target/44707
1768         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
1769         (lo_sum (high ...) ...) patterns generated by earlier passes.
1770
1771 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1772
1773         * doc/install.texi (Prerequisites): Document Perl requirement on
1774         Solaris 2.
1775         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
1776
1777 2010-07-02  Richard Guenther  <rguenther@suse.de>
1778
1779         PR middle-end/44777
1780         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
1781
1782 2010-07-02  Jan Hubicka  <jh@suse.cz>
1783
1784         PR middle-end/44706
1785         * predict.c (predict_paths_for_bb): Handle case when control dependence
1786         BB has only abnormal edges.
1787
1788 2010-07-02  Richard Guenther  <rguenther@suse.de>
1789
1790         PR tree-optimization/44748
1791         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
1792         the embedded conversion in MEM_REFs.
1793
1794 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
1795
1796         * reload.c: Include toplev.h.
1797         * recog.c:  Likewise.
1798         * Makefile.in: Adjust dependencies.
1799
1800 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
1801
1802         PR debug/44694
1803         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
1804         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
1805
1806 2010-07-01  Richard Guenther  <rguenther@suse.de>
1807
1808         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
1809         types for offsets.
1810
1811 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1812
1813         PR target/44732
1814         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
1815         Fix argument types.
1816
1817 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
1818
1819         PR target/44727
1820         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
1821         Make sure operand 0 dies.
1822
1823 2010-07-01  Richard Guenther  <rguenther@suse.de>
1824
1825         PR middle-end/42834
1826         PR middle-end/44468
1827         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
1828         * doc/generic.texi (References to storage): Document MEM_REF.
1829         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
1830         (print_call_name): Likewise.
1831         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
1832         (build_simple_mem_ref_loc): New function.
1833         (mem_ref_offset): Likewise.
1834         * tree.h (build_simple_mem_ref_loc): Declare.
1835         (build_simple_mem_ref): Define.
1836         (mem_ref_offset): Declare.
1837         * fold-const.c: Include tree-flow.h.
1838         (operand_equal_p): Handle MEM_REF.
1839         (build_fold_addr_expr_with_type_loc): Likewise.
1840         (fold_comparison): Likewise.
1841         (fold_unary_loc): Fold
1842         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
1843         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
1844         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
1845         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
1846         (ptr_deref_may_alias_ref_p_1): Likewise.
1847         (ao_ref_base_alias_set): Properly differentiate base object for
1848         offset and TBAA.
1849         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
1850         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
1851         (indirect_refs_may_alias_p): Likewise.
1852         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
1853         chasing code.
1854         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
1855         (call_may_clobber_ref_p_1): Likewise.
1856         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
1857         * expr.c (expand_assignment): Handle MEM_REF.
1858         (store_expr): Handle MEM_REFs from STRING_CSTs.
1859         (store_field): If expanding a MEM_REF of a non-addressable
1860         decl use bitfield operations.
1861         (get_inner_reference): Handle MEM_REF.
1862         (expand_expr_addr_expr_1): Likewise.
1863         (expand_expr_real_1): Likewise.
1864         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
1865         * alias.c (ao_ref_from_mem): Handle MEM_REF.
1866         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
1867         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
1868         (dr_analyze_indices): Likewise.
1869         (dr_analyze_alias): Likewise.
1870         (object_address_invariant_in_loop_p): Likewise.
1871         * gimplify.c (mark_addressable): Handle MEM_REF.
1872         (gimplify_cond_expr): Build MEM_REFs.
1873         (gimplify_modify_expr_to_memcpy): Likewise.
1874         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
1875         (gimple_fold_indirect_ref): Adjust.
1876         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
1877         * tree.def (MEM_REF): New tree code.
1878         * tree-dfa.c: Include toplev.h.
1879         (get_ref_base_and_extent): Handle MEM_REF.
1880         (get_addr_base_and_unit_offset): New function.
1881         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
1882         * gimple-fold.c (may_propagate_address_into_dereference): Handle
1883         MEM_REF.
1884         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
1885         accesses if the array has just one dimension.  Remove always true
1886         parameter.  Do not require type compatibility here.
1887         (maybe_fold_offset_to_component_ref): Remove.
1888         (maybe_fold_stmt_indirect): Remove.
1889         (maybe_fold_reference): Remove INDIRECT_REF handling.
1890         Fold back to non-MEM_REF.
1891         (maybe_fold_offset_to_address): Simplify.  Deal with type
1892         mismatches here.
1893         (maybe_fold_reference): Likewise.
1894         (maybe_fold_stmt_addition): Likewise.  Also handle
1895         &ARRAY + I in addition to &ARRAY[0] + I.
1896         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
1897         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
1898         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
1899         * tree-ssa.c (useless_type_conversion_p): Make most pointer
1900         conversions useless.
1901         (warn_uninitialized_var): Handle MEM_REF.
1902         (maybe_rewrite_mem_ref_base): New function.
1903         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
1904         to SSA form.
1905         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
1906         INDIRECT_REF handling.
1907         (copy_tree_body_r): Handle MEM_REF.
1908         * gimple.c (is_gimple_addressable): Adjust.
1909         (is_gimple_address): Likewise.
1910         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
1911         invariant base are invariant.
1912         (is_gimple_min_lval): Adjust.
1913         (is_gimple_mem_ref_addr): New function.
1914         (get_base_address): Handle MEM_REF.
1915         (count_ptr_derefs): Likewise.
1916         (get_base_loadstore): Likewise.
1917         * gimple.h (is_gimple_mem_ref_addr): Declare.
1918         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
1919         * tree-cfg.c (verify_address): New function, split out from ...
1920         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
1921         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
1922         INDIRECT_REFs.
1923         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
1924         INDIRECT_REF.  Allow conversions.
1925         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
1926         a register does not change its size.
1927         (verify_types_in_gimple_reference): Verify MEM_REF.
1928         (verify_gimple_assign_single): Disallow INDIRECT_REF.
1929         Handle MEM_REF.
1930         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
1931         New.
1932         (mark_address_taken): Handle MEM_REF.
1933         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
1934         (get_asm_expr_operands): Pass opf_not_non_addressable.
1935         (get_expr_operands): Handle opf_[not_]non_addressable.
1936         Handle MEM_REF.  Remove INDIRECT_REF handling.
1937         * tree-vrp.c: (check_array_ref): Handle MEM_REF.
1938         (search_for_addr_array): Likewise.
1939         (check_array_bounds): Likewise.
1940         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
1941         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
1942         (ref_always_accessed_p): Likewise.
1943         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
1944         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
1945         Handle MEM_REF.
1946         * cgraphbuild.c (mark_load): Properly check for NULL result
1947         from get_base_address.
1948         (mark_store): Likewise.
1949         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
1950         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
1951         handling for MEM_REF.
1952         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
1953         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
1954         * builtins.c (stabilize_va_list_loc): Use the function ABI
1955         valist type if we couldn't canonicalize the argument type.
1956         Always dereference with the canonical va-list type.
1957         (maybe_emit_free_warning): Handle MEM_REF.
1958         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
1959         memmove to memcpy.
1960         * builtins.c (fold_builtin_memory_op): Use ref-all types
1961         for all memcpy foldings.
1962         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
1963         (build_outer_var_ref): Likewise.
1964         (scan_omp_1_op): Likewise.
1965         (lower_rec_input_clauses): Likewise.
1966         (lower_lastprivate_clauses): Likewise.
1967         (lower_reduction_clauses): Likewise.
1968         (lower_copyprivate_clauses): Likewise.
1969         (expand_omp_atomic_pipeline): Likewise.
1970         (expand_omp_atomic_mutex): Likewise.
1971         (create_task_copyfn): Likewise.
1972         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
1973         Remove old union trick.  Initialize constant offsets.
1974         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
1975         INDIRECT_REF.  Init base_alias_set properly.
1976         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
1977         (vn_reference_fold_indirect): Adjust for MEM_REFs.
1978         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
1979         for ARRAY_REFs.
1980         (may_insert): Remove.
1981         (visit_reference_op_load): Do not test may_insert.
1982         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
1983         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
1984         a field to store the constant offset this op applies.
1985         (run_scc_vn): Adjust prototype.
1986         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
1987         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
1988         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
1989         bother about volatile qualifiers on pointers.
1990         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
1991         * tree-ssa-loop-ivopts.c
1992         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
1993         (strip_offset_1): Likewise.
1994         (find_interesting_uses_address): Replace INDIRECT_REF handling with
1995         MEM_REF handling.
1996         (get_computation_cost_at): Likewise.
1997         * ipa-pure-const.c (check_op): Handle MEM_REF.
1998         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
1999         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
2000         and constants.
2001         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
2002         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
2003         (eliminate_local_variables_1): Likewise.
2004         (create_call_for_reduction_1): Likewise.
2005         (create_loads_for_reductions): Likewise.
2006         (create_loads_and_stores_for_name): Likewise.
2007         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
2008         (ssa_accessed_in_tree): Handle MEM_REF.
2009         (ssa_accessed_in_assign_rhs): Likewise.
2010         (update_type_size): Likewise.
2011         (analyze_accesses_for_call_stmt): Likewise.
2012         (analyze_accesses_for_assign_stmt): Likewise.
2013         (transform_access_sites): Likewise.
2014         (transform_allocation_sites): Likewise.
2015         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
2016         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
2017         not handle INDIRECT_REF.
2018         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
2019         (cond_store_replacement): Likewise.
2020         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2021         MEM_REF, no not handle INDIRECT_REFs.
2022         (insert_into_preds_of_block): Properly initialize avail.
2023         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
2024         for ARRAY_REFs.  Properly handle reference lookups that
2025         require a bit re-interpretation.
2026         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
2027         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
2028         (build_ref_for_offset_1): Remove.
2029         (build_ref_for_offset): Build MEM_REFs.
2030         (gate_intra_sra): Disable for now.
2031         (sra_ipa_modify_expr): Handle MEM_REF.
2032         (ipa_early_sra_gate): Disable for now.
2033         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
2034         MEM_REF handling.
2035         (disqualify_base_of_expr): Likewise.
2036         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
2037         MEM_REF handling.
2038         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
2039         Use mem_ref_offset.  Remove bogus folding.
2040         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
2041         (make_fancy_name_1): Add support for MEM_REF.
2042         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
2043         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
2044         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
2045         (compute_complex_ancestor_jump_func): Likewise.
2046         (ipa_analyze_virtual_call_uses): Likewise.
2047         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
2048         INDIRECT_REF folding with more generalized MEM_REF folding.
2049         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
2050         (forward_propagate_addr_into_variable_array_index): Also handle
2051         &ARRAY + I in addition to &ARRAY[0] + I.
2052         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
2053         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
2054         creates assignments with overlap.
2055         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
2056         (get_frame_field): Likewise.
2057         (get_nonlocal_debug_decl): Likewise.
2058         (convert_nonlocal_reference_op): Likewise.
2059         (struct nesting_info): Add mem_refs pointer-set.
2060         (create_nesting_tree): Allocate it.
2061         (convert_local_reference_op): Insert to be folded mem-refs.
2062         (fold_mem_refs): New function.
2063         (finalize_nesting_tree_1): Perform defered folding of mem-refs
2064         (free_nesting_tree): Free the pointer-set.
2065         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
2066         (vectorizable_load): Likewise.
2067         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
2068         (propagate_with_phi): Likewise.
2069         * tree-object-size.c (addr_object_size): Handle MEM_REFs
2070         instead of INDIRECT_REFs.
2071         (compute_object_offset): Handle MEM_REF.
2072         (plus_stmt_object_size): Handle MEM_REF.
2073         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
2074         for &MEM_REF.
2075         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
2076         (symbol_marked_for_renaming): Likewise.
2077         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
2078         (fold-const.o): Add $(TREE_FLOW_H).
2079         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
2080         (find_func_clobbers): Likewise.
2081         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
2082         (decompose_access): Likewise.
2083         (replace_field_acc): Likewise.
2084         (replace_field_access_stmt): Likewise.
2085         (insert_new_var_in_stmt): Likewise.
2086         (get_stmt_accesses): Likewise.
2087         (reorg_structs_drive): Disable.
2088         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
2089         (ix86_canonical_va_list_type): Likewise.
2090
2091 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
2092
2093         PR other/44566
2094         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
2095         * target.def (struct gcc_target): Replace enum reg_class with
2096         reg_class_t in hook argument / return types.
2097         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
2098         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
2099         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
2100         * targhooks.h (default_branch_target_register_class): Likewise.
2101         (default_ira_cover_classes, default_secondary_reload): Likewise.
2102         (default_memory_move_cost, default_register_move_cost): Likewise.
2103         * targhooks.c (default_branch_target_register_class): Likewise.
2104         (default_ira_cover_classes, default_secondary_reload): Likewise.
2105         (default_memory_move_cost, default_register_move_cost): Likewise.
2106         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
2107         * bt-load.c (branch_target_load_optimize): Likewise.
2108         * ira.c (setup_cover_and_important_classes): Likewise.
2109         * ira-costs.c (copy_cost): Likewise.
2110         * reload1.c (emit_input_reload_insns): Likewise.
2111         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
2112         * config/frv/frv.c (frv_secondary_reload): Likewise.
2113         * config/s390/s390.c (s390_secondary_reload): Likewise.
2114         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
2115         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
2116         (ix86_register_move_cost): Likewise.
2117         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
2118         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
2119         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
2120         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
2121         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
2122         (rs6000_ira_cover_classes): Likewise.
2123         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
2124         * config/picochip/picochip-protos.h (picochip_secondary_reload):
2125         Likewise.
2126         * config/pa/pa.c (pa_secondary_reload): Likewise.
2127         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
2128         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
2129         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
2130         * doc/tm.texi: Regenerate.
2131
2132 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
2133
2134         PR bootstrrap/44726
2135         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
2136         use.
2137         (build_alias_set_optimal_p): Likewise.
2138         (build_base_obj_set_for_drs): Likewise.
2139
2140 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
2141
2142         * target.def: Remove comment about licensing problems of function
2143         declarations.
2144
2145         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
2146         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
2147         * doc/tm.texi: Regenerate.
2148
2149         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
2150         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
2151
2152         * target.def (enum_va_list_p): Use DEFHOOK.
2153         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
2154         Rename ptype to ptree.
2155         * doc/tm.texi: Regenerate.
2156
2157         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
2158         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
2159         * doc/tm.texi: Regenerate.
2160
2161         * target.def (memory_move_cost): Use DEFHOOK.
2162         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
2163         Rename regclass AKA class to rclass.
2164         * doc/tm.texi: Regenerate.
2165
2166         * target.def (pragma_parse): Use DEFHOOK.
2167         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
2168         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
2169         * doc/tm.texi: Regenerate.
2170
2171         * target.def (pass_by_reference): Use DEFHOOK.
2172         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
2173         * doc/tm.texi: Regenerate.
2174
2175         * target.def (resolve_overloaded_builtin): Rename params to arglist.
2176         Use DEFHOOK.
2177         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
2178         * doc/tm.texi: Regenerate.
2179
2180         * target.def (return_pops_args): Use DEFHOOK.
2181         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
2182         Rename stack-size to size.
2183         * doc/tm.texi: Regenerate.
2184
2185         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
2186         last-sched_cycle to last_clock, cur_cycle to clock.
2187         * doc/tm.texi.in: Use @hook.
2188         * doc/tm.texi: Regenerate.
2189
2190         * target.def (print_operand, print_operand_address): Update comment.
2191         (print_operand_punct_valid_p): Likewise.
2192
2193 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2194
2195         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
2196         to rtl.h.
2197         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
2198         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
2199         * rtl-error.h: New.
2200         * regrename.c: Do not include toplev.h. Include rtl-error.h.
2201         * rtl-error.c: Likewise.
2202         * reload.c: Likewise.
2203         * recog.c:  Likewise.
2204         * sel-sched.c: Likewise.
2205         * function.c: Likewise.
2206         * reg-stack.c: Likewise.
2207         * cfgrtl.c: Likewise.
2208         * reload1.c: Likewise.
2209         * final.c: Include rtl-error.
2210         * Makefile.in: Adjust dependencies.
2211
2212 2010-06-30  Jan Hubicka  <jh@suse.cz>
2213
2214         PR middle-end/PR44706
2215         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
2216         to return the value.
2217
2218 2010-06-30  Michael Matz  <matz@suse.de>
2219
2220         PR bootstrap/44699
2221         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
2222         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
2223         a gimple reg, attach the original VDEF to the last store in the
2224         sequence.
2225
2226 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
2227
2228         PR other/44034
2229         * config/darwin.c (darwin_override_options): Use renamed
2230         targetm.asm_out.emit_unwind_label.
2231
2232 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
2233
2234         PR tree-optimization/39799
2235         * tree-inline.c (remap_ssa_name): Initialize variable only if
2236         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2237
2238 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
2239
2240         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
2241
2242 2010-06-30  Richard Guenther  <rguenther@suse.de>
2243
2244         PR target/44722
2245         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
2246         against oscillation with reverse peephole2.
2247
2248 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
2249
2250         PR target/44721
2251         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
2252         Fix last commit.
2253
2254 2010-06-30  Nick Clifton  <nickc@redhat.com>
2255
2256         * config/rx/rx-modes.def: New file.
2257         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
2258         (CC_REGNUM): Define.
2259         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
2260         register.
2261         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
2262         (SELECT_CC_MODE): Define.
2263         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
2264         (reg:CC CC_REG) instead of (cc0).
2265         (attr "cc"): Delete.
2266         (cbranchsi4): Do not split compare and branch here. Instead move
2267         it to...
2268         (cbranchsi4_<code>): ... here.  New patterns.
2269         (cmpsi): Call rx-compare_redundant to find out if it is necessary
2270         to emit the compare instruction.
2271         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
2272         cc_status flags.
2273         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
2274         FIRST_PSEUDO_REGNUM.
2275         (rx_expand_prologue, rx_expand_epilogue): Likewise.
2276         (rx_notice_update_cc): Delete.
2277         (rx_cc_modes_compatible): New function.
2278         (flags_needed_for_conditional): New function.
2279         (flags_from_mode): New function.
2280         (rx_compare_redundant): New function - scans backwards through
2281         insn list to find out if condition flags are already set correctly.
2282         (TARGET_CC_MODES_COMPATIBLE): Define.
2283         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
2284
2285         * config/rx/rx.h (BRANCH_COST): Define.
2286         (REGISTER_MOVE_COST): Define.
2287         * config/rx/predicates (rx_source_operand): Allow all constant types.
2288         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
2289         (tstsi4): New pattern.
2290         * config/rx/rx.c (rx_memory_move_cost): Define.
2291         (TARGET_MEMORY_MOVE_COST): Define.
2292
2293 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2294
2295         * tree.h (block_may_fallthru): Declare here.
2296         * tree-flow.h (block_may_fallthru): Do not declare here.
2297         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
2298         bitmap.h
2299         * Makefile.in (c-typeck.o): Update dependencies.
2300
2301 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
2302
2303         PR debug/44694
2304         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
2305         * cselib.c (cfa_base_preserved_regno): New static variable.
2306         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
2307         of REGNO (cfa_base_preserved_val->locs->loc).
2308         (cselib_preserve_cfa_base_value): Add regno argument, set
2309         cfa_base_preserved_regno to it.
2310         (cselib_invalidate_regno): Allow removal of registers other than
2311         cfa_base_preserved_regno from cfa_base_preserved_val.
2312         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
2313         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
2314         of MEM addresses, if not on LHS.
2315         (reverse_op): Don't add reverse ops for cfa_base_rtx.
2316         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
2317
2318 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
2319
2320         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
2321         static variables.
2322         (peep2_buf_position): New static function.
2323         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
2324         peephole2_optimize): Use it.
2325         (peep2_attempt, peep2_update_life): New static functions, broken out
2326         of peephole2_optimize.
2327         (peep2_fill_buffer): New static function.
2328         (peephole2_optimize): Change the main loop to try to fill the buffer
2329         with the maximum number of insns before matching them against
2330         peepholes.  Use a forward scan.  Remove special case for targets with
2331         conditional execution.
2332         * genrecog.c (change_state): Delete dead code.
2333         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
2334         Rewrite so as not to expect the second insn to have had a peephole
2335         applied yet.
2336
2337 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
2338
2339         * genhooks.c (emit_findices): Cast field precision to int.
2340         (emit_documentation): Likewise.
2341
2342 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
2343
2344         PR tree-optimization/43801
2345         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
2346         if old_decl was DECL_ONE_ONLY.
2347
2348         PR debug/44668
2349         * dwarf2out.c (add_accessibility_attribute): New function.
2350         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
2351         instead of adding DW_AT_accessibility manually.
2352         (gen_enumeration_type_die, gen_struct_or_union_type_die,
2353         gen_typedef_die): Use it.
2354
2355 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
2356
2357         * vmsdbgout.c (full_name): Just output the file name if not native.
2358
2359 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
2360
2361         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
2362         (funcnam_table): New static table.
2363         (funcnum_table): New static table.
2364         (write_rtnbeg): Write value saved in funcnum_table.
2365         (write_rtnend): Write value saved in funcnum_table.
2366         (vmsdbgout_begin_function): Save current function info in
2367         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
2368         (vmsdbgout_finish): Iterate over funcnum_table.
2369
2370 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
2371
2372         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
2373         (vmsdbgout_type_decl): Declare
2374         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
2375         (FUNC_EPILOGUE_LABEL): New macro
2376         (vmsdbgout_begin_epilogue): New function.
2377         (vmsdbgout_type_decl): New function.
2378
2379 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
2380
2381         * vmsdbg.h: Update copyright.
2382
2383 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
2384
2385         * vmsdbg.h (DST_K_TBG): New DST constant.
2386         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
2387         (write_modbeg): Cast module_language to avoid warning.
2388         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
2389
2390 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
2391
2392         PR other/44034
2393         * target.def, doc/tm.texi.in, genhooks.c: New files.
2394         * target.h: Instead of defining individual hook members,
2395         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
2396         include target.def.
2397         * target-def.h: Instead of defining individual hook initializers,
2398         include target-hooks-def.h.
2399         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
2400         targetm.live_on_entry -> targetm.extra_live_on_entry
2401         targetm.sched.md_finish ->targetm.sched.finish
2402         targetm.sched.md_init -> targetm.sched.init
2403         targetm.sched.md_init_global -> targetm.sched.init_global
2404         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
2405         targetm.asm_out.except_table_label ->
2406           targetm.asm_out.emit_except_table_label
2407         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
2408         targetm.target_help -> targetm.help
2409         targetm.vectorize.builtin_support_vector_misalignment ->
2410           targetm.vectorize.support_vector_misalignment
2411         targetm.file_start_app_off -> targetm.asm_file_start_app_off
2412         targetm.file_start_file_directive ->
2413          targetm.asm_file_start_file_directive
2414         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
2415         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
2416         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
2417         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
2418           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
2419         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
2420           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
2421         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
2422         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
2423         * Makefile.in (TARGET_H): Depend on target.def.
2424         (TARGET_DEF_H): Depend on target-hooks-def.h.
2425         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
2426         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
2427         * doc/tm.texi: Regenerate.
2428
2429         * Makefile.in (s-tm-texi): Remove stray tab / rule.
2430
2431         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
2432         (targetm.sched.init): Likewise.
2433
2434 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
2435
2436         PR bootstrap/44713
2437         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
2438         (function_arg_advance_32): Const-ify TYPE parameter.
2439         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
2440         (ix86_function_arg_advance): Change type of NAMED to bool.
2441         (function_arg_32): Const-ify CUM and TYPE parameters.
2442         (function_arg_64): Likewise.  Change type of NAMED to bool.
2443         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
2444         to bool.
2445         (ix86_function_arg): Change type of NAMED to bool.
2446         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
2447         last argument as a bool.
2448
2449 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
2450
2451         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
2452         (OVERRIDE_OPTIONS): Add note of obsolescence.
2453         Replace references with references to TARGET_OPTION_OVERRIDE.
2454         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
2455          the macro).
2456         * targhooks.c (default_target_option_override): New function.
2457         * targhooks.h (default_target_option_override): Declare.
2458         * target.h (struct gcc_target): Add override member to
2459         target_option member.
2460         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
2461         targetm.target_option.override call.
2462         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
2463         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
2464
2465 2010-06-29  Jan Hubicka  <jh@suse.cz>
2466
2467         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
2468
2469 2010-06-29  Jan Hubicka  <jh@suse.cz>
2470
2471         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
2472         unreachable.
2473         (rebuild_frequencies): New function.
2474         * predict.h (rebuild_frequencies): Declare.
2475         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
2476         entry block and edge reaching new_entry.
2477         (tree_function_versioning): When doing partial cloning, rebuild
2478         frequencies when done.
2479         * passes.c (execute_function_todo): Use rebild_frequencies.
2480
2481 2010-06-29  Richard Guenther  <rguenther@suse.de>
2482
2483         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
2484         * tree-flow.h (enum noalias_state): Remove.
2485         (struct var_ann_d): Remove noalias_state member.
2486
2487 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
2488
2489         PR target/43902
2490         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
2491         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
2492         (maddhidi4): Likewise.
2493
2494         Revert parts of the change for PR25130.
2495         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
2496         MEM_ALIAS_SET.
2497
2498 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
2499
2500         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
2501         targetm.calls.function_incoming_arg, and
2502         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
2503         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
2504         * target.h (struct gcc_target): Add function_arg_advance,
2505         function_arg, and function_incoming_arg fields.
2506         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
2507         (TARGET_FUNCTION_INCOMING_ARG): Define.
2508         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
2509         and TARGET_FUNCTION_INCOMING_ARG.
2510         * targhooks.h (default_function_arg_advance): Declare.
2511         (default_function_arg, default_function_incoming_arg): Declare.
2512         * targhooks.c (default_function_arg_advance): New function.
2513         (default_function_arg, default_function_incoming_arg): New function.
2514         * config/i386/i386.c (function_arg_advance): Rename to...
2515         (ix86_function_arg_advance): ...this.  Make static.
2516         (function_arg): Rename to...
2517         (ix86_function_arg): ...this.  Make static.
2518         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2519         (TARGET_FUNCTION_ARG): Define.
2520         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
2521         (FUNCTION_ARG): Delete.
2522         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
2523         (function_arg): Delete prototype.
2524
2525 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
2526
2527         * reginfo.c (init_reg_sets_1): Adjust comments.
2528         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
2529         * calls.c (prepare_call_address): Likewise.
2530         (emit_call_1): Use targetm.calls.return_pops_args.
2531         (expand_call): Likewise.
2532         * function.c (assign_parms): Likewise.
2533         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
2534         * target.h (struct gcc_target) [struct calls]: Add
2535         return_pops_args field.
2536         * targhooks.h (default_return_pops_args): Declare.
2537         * targhooks.c (default_return_pops_args): Define.
2538         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
2539         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
2540         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
2541         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
2542         documentation.
2543         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
2544         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
2545         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
2546         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
2547         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
2548         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
2549         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
2550         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
2551         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
2552         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
2553         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
2554         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
2555         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
2556         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
2557         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
2558         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
2559         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
2560         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
2561         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
2562         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
2563         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
2564         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
2565         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
2566         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
2567         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
2568         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
2569         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
2570         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
2571         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
2572         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
2573         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
2574         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
2575         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
2576         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
2577         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
2578         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
2579         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
2580         * config/i386/i386.c (ix86_return_pops_args): Make static.
2581         Constify arguments.
2582         (TARGET_RETURN_POPS_ARGS): Define.
2583         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
2584         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
2585         (TARGET_RETURN_POPS_ARGS): Define.
2586         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
2587         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
2588         (TARGET_RETURN_POPS_ARGS): Define.
2589
2590 2010-06-29  Richard Guenther  <rguenther@suse.de>
2591
2592         PR middle-end/44667
2593         * tree-inline.c (initialize_inlined_parameters): Make sure
2594         to remap the inlined parameter variable substitutions types.
2595
2596 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
2597
2598         PR rtl-optimization/44659
2599         * combine.c (make_compound_operation) <SUBREG>: Do not return the
2600         result of force_to_mode if it partially re-expanded the compound.
2601
2602 2010-06-28  Jan Hubicka  <jh@suse.cz>
2603
2604         PR middle-end/44671
2605         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
2606         RESULT_DECL.
2607
2608 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
2609
2610         * double-int.h (force_fit_type_double): Remove declaration.
2611         * double-int.c (force_fit_type_double): Move to tree.c.
2612         * tree.h (force_fit_type_double): Declare.
2613         * tree.h (force_fit_type_double): Moved from double-int.c. Use
2614         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
2615         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
2616         * convert.c (convert_to_pointer): Adjust call to
2617         force_fit_type_double.
2618         * tree-vrp.c (extract_range_from_assert,
2619         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
2620         * fold-const.c: Update comment.
2621         (int_const_binop, fold_convert_const_int_from_int,
2622         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
2623         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
2624         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
2625         round_up_loc): Adjust call to force_fit_type_double.
2626
2627 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2628
2629         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
2630
2631 2010-06-28  Martin Jambor  <mjambor@suse.cz>
2632
2633         * tree-sra.c (convert_callers): New parameter, change fndecls of
2634         recursive calls.
2635         (modify_function): Pass the old decl to convert_callers.
2636
2637 2010-06-28  Martin Jambor  <mjambor@suse.cz>
2638
2639         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
2640         ipa_check_create_node_params and ipa_initialize_node_params with
2641         checking asserts they are not necessary.
2642
2643 2010-06-28  Jan Hubicka  <jh@suse.cz>
2644
2645         PR tree-optimization/44687
2646         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
2647
2648 2010-06-28  Martin Jambor  <mjambor@suse.cz>
2649
2650         PR c++/44535
2651         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
2652         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
2653         instead of BINFO_BASE_BINFO.
2654
2655 2010-06-28  Michael Matz  <matz@suse.de>
2656
2657         PR middle-end/44592
2658         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
2659         proper VDEF chain for intermediate stores in the sequence.
2660
2661 2010-06-28  Jan Hubicka  <jh@suse.cz>
2662
2663         PR tree-optimization/44357
2664         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
2665         uninlinable functions.
2666
2667 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2668
2669         * config.gcc (powerpc*-*-*): Handle titan.
2670         * config/rs6000/rs6000.c (titan_cost): New costs.
2671         (rs6000_override_options): Add "titan" to processor_target_table.
2672         Add Titan to branch alignment logic.
2673         Correctly set rs6000_cost for titan.
2674         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
2675         * config/rs6000/titan.md: New file.
2676         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
2677
2678 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
2679
2680         * tree-browser.c (TB_history_stack): Convert to a VEC.
2681         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
2682         (TB_history_prev): Likewise.
2683
2684 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
2685
2686         * vec.h (vec_heap_free): Add parentheses around free.
2687
2688 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
2689
2690         * system.h: Poison GCC_EXCEPT_H for front-end files.
2691
2692         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
2693         langhook.
2694         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
2695         Define to NULL by default.
2696         * except.h: Define GCC_EXCEPT_H.
2697         (doing_eh): Remove prototype.
2698         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
2699         (lang_protect_cleanup_actions): Remove.
2700         * except.c (lang_protect_cleanup_actions): Remove.
2701         (doing_eh): Remove.
2702         (gen_eh_region): Don't check doing_eh here.
2703         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
2704         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
2705         instead of lang_protect_cleanup_actions.
2706         * omp-low.c (maybe_catch_exception): Likewise.
2707         * Makefile.in: Update dependencies.
2708
2709 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
2710
2711         * cgraph.h (struct varpool_node): new used_from_object_file flag.
2712         (struct cgraph_local_info): new used_from_object_file flag.
2713         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
2714         (cgraph_clone_node): initialize used_from_object_file.
2715         (cgraph_create_virtual_clone): initialize used_from_object_file.
2716         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
2717         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
2718         when compiling with -fwhole-program.
2719         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
2720         internal resolver.
2721         * ipa.c (function_and_variable_visibility): Set externally_visible
2722         flag of varpool_node if used_from_object_file flag is set.
2723         (cgraph_externally_visible_p): check used_from_object_file flag.
2724         * doc/invoke.texi (-fwhole-program option): Change description of
2725         externally_visible attribute accordingly.
2726         * doc/extend.texi (externally_visible): Ditto.
2727
2728 2010-06-27  Jan Hubicka  <jh@suse.cz>
2729
2730         * params.def (max-inline-insns-auto): Default to 40.
2731         * doc/invoke.texi (max-inline-insns-auto): Document the change.
2732
2733 2010-06-27  Jan Hubicka  <jh@suse.cz>
2734
2735         PR middle-end/44671
2736         PR middle-end/44686
2737         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
2738         signature change.
2739         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
2740         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
2741
2742 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
2743
2744         * target.h (struct gcc_target): Add register_move_cost field.
2745         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
2746         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
2747         * targhooks.c (default_register_move_cost): New function.
2748         * targhooks.h (default_register_move_cost): Declare function.
2749         * defaults.h (REGISTER_MOVE_COST): Delete.
2750         * ira-int.h (ira_register_move_cost): Update comment.
2751         * ira.c: (ira_register_move_cost): Update comment.
2752         * reload.h (register_move_cost): Declare.
2753         * reginfo.c (register_move_cost): New function.
2754         (move_cost): Update comment.
2755         (init_move_cost, memory_move_secondary_cost): Replace
2756         REGISTER_MOVE_COST with register_move_cost.
2757         * postreload.c (reload_cse_simplify_set): (Ditto.).
2758         * reload.c (find_valid_class, find_reloads): (Ditto.).
2759         * reload1.c (choose_reload_regs): (Ditto.).
2760         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
2761         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
2762         * doc/md.texi (can_create_pseudo_p): Update documentation.
2763
2764         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
2765         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
2766         * config/i386/i386.h (ix86_memory_move_cost): Make static.
2767         (TARGET_MEMORY_MOVE_COST): Define.
2768
2769         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
2770         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
2771         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
2772         (TARGET_MEMORY_MOVE_COST): Define.
2773
2774 2010-06-27  Richard Guenther  <rguenther@suse.de>
2775
2776         PR tree-optimization/44683
2777         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
2778         false edge from the inverted condition.
2779
2780 2010-06-27  Richard Guenther  <rguenther@suse.de>
2781
2782         PR middle-end/44684
2783         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
2784         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
2785         for register LHS.  Or non-store assignments.
2786
2787 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
2788
2789         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
2790         (sparc_emit_set_const64): Likewise.  Remove disabled code.
2791         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
2792         (sparc_emit_set_const64): Likewise.
2793
2794 2010-06-26  Catherine Moore  <clm@codesourcery.com>
2795
2796         * config/mips/mips.md (alu_type): New attribute.
2797         (type): Infer type from alu_type.
2798         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
2799         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
2800         *subsi3_extended, negsi2, negdi2, *low<mode>,
2801         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
2802         xor<mode>3, *nor<mode>3,
2803         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
2804         *zero_extendhi_truncqi):  Set alu_type instead of type.
2805
2806 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
2807
2808         * config/alpha/alpha.c (alpha_need_linkage): Adjust
2809         splay_tree_new_ggc call.
2810         (alpha_use_linkage): Likewise.
2811
2812 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
2813
2814         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
2815         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
2816         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
2817         (static_specs): Remove switches_need_spaces.
2818         (process_command, do_self_spec): Hardcode handling "-o" instead of
2819         checking switches_need_spaces.
2820         * system.h (SWITCHES_NEED_SPACES): Poison.
2821
2822 2010-06-26  Richard Guenther  <rguenther@suse.de>
2823
2824         PR tree-optimization/44393
2825         * tree-loop-distribution.c (generate_loops_for_partition): Fix
2826         stmt removal and VOP renaming.
2827         (generate_memset_zero): Remove redundant stmt updating.
2828         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
2829         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
2830
2831 2010-06-26  Jan Hubicka  <jh@suse.cz>
2832
2833         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
2834         edges comming from header are equivalent.
2835         (visit_bb): Handle PHIs correctly.
2836         * tree-inline.c (copy_phis_for_bb): Be able to copy
2837         PHI from entry edge.
2838         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
2839
2840 2010-06-26  Richard Guenther  <rguenther@suse.de>
2841
2842         PR middle-end/44674
2843         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
2844         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
2845
2846 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
2847
2848         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
2849         add_infile, alloc_switch): New.
2850         (process_command): Remove variable lang_n_infiles.  Process
2851         options in a single pass.  Use new functions for allocating
2852         infiles and switches arrays.  Properly skip operands of
2853         -Xpreprocessor and -Xassembler.
2854
2855 2010-06-26  Jan Hubicka  <jh@suse.cz>
2856
2857         PR middle-end/44671
2858         * cgraphunit.c (cgraph_function_versioning): Remove wrong
2859         cgraph_make_decl_local call; fix typo copying RTL data.
2860
2861 2010-06-25  DJ Delorie  <dj@redhat.com>
2862
2863         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
2864         (m32c_output_aligned_common): Likewise.
2865         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
2866         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
2867         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
2868         (m32c_register_pragmas): Register it.
2869         * config/m32c/m32c.c (m32c_get_pragma_address): New.
2870         (m32c_insert_attributes): Set #pragma address decls volatile.
2871         (pragma_entry_eq): New.
2872         (pragma_entry_hash): New.
2873         (m32c_note_pragma_address): New.
2874         (m32c_get_pragma_address): New.
2875         (m32c_output_aligned_common): New.
2876         * doc/extend.texi: Document the new pragma.
2877
2878         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
2879         also.
2880         * config/m32c/predicates.md (m32c_any_operand): Check the code
2881         instead of memory_operand so as to allow matching volatile MEMs.
2882         (m32c_nonimmediate_operand): Likewise.
2883         (mra_operand): Allow volatiles.
2884
2885 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
2886
2887         PR debug/44610
2888         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
2889         address if the offset is unknown.
2890
2891 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
2892
2893         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
2894         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
2895         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
2896         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
2897         to ia64_start_function. Invoke it.
2898         * config/ia64/ia64.c (ia64_start_function): Call new function
2899         dwarf2out_vms_debug_main_pointer.
2900
2901 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
2902
2903         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
2904         statements computing the true predicate.
2905
2906 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
2907
2908         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
2909         to boolean_true_node.
2910         (reset_bb_predicate): New.
2911         (predicate_bbs): Call reset_bb_predicate.
2912
2913 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
2914
2915         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
2916         (tree_if_conversion): Returns true when something has been changed.
2917         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
2918         changed something.
2919
2920 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
2921
2922         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
2923         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
2924         * tree-if-conv.c: Include dbgcnt.h.
2925         (tree_if_conversion): Use if_conversion_tree to count the number of
2926         if-convertible loops.
2927
2928 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
2929
2930         * common.opt (fprefetch-loop-arrays): Re-define
2931         -fprefetch-loop-arrays as a tri-state option with the initial
2932         value of -1.
2933         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
2934         pass only when flag_prefetch_loop_arrays > 0.
2935         * toplev.c (process_options): Note that, with tri-states,
2936         flag_prefetch_loop_arrays>0 means prefetching is enabled.
2937         * config/i386/i386.c (override_options): Enable prefetching at -O3
2938         for a set of CPUs that sw prefetching is helpful.
2939         (software_prefetching_beneficial_p): New.  Return TRUE if software
2940         prefetching is beneficial for the given CPU.
2941
2942 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
2943
2944         PR rtl-optimization/44326
2945         * implicit-zee.c (find_removable_zero_extends): Replace
2946         INSN_P with NONDEBUG_INSN_P.
2947
2948 2010-06-25  Martin Jambor  <mjambor@suse.cz>
2949
2950         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
2951         (struct ipa_node_params): Removed the modification_analysis_done flag.
2952         (ipa_is_param_modified): Removed.
2953         (ipa_analyze_node): Declare.
2954         (ipa_compute_jump_functions): Remove declaration.
2955         (ipa_count_arguments): Likewise.
2956         (ipa_detect_param_modifications): Likewise.
2957         (ipa_analyze_params_uses): Likewise.
2958         * ipa-prop.c (struct param_analysis_info): New type.
2959         (visit_store_addr_for_mod_analysis): Removed.
2960         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
2961         moved down in the file.
2962         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
2963         (ipa_count_arguments): Made static.
2964         (mark_modified): New function.
2965         (is_parm_modified_before_call): New function.
2966         (compute_pass_through_member_ptrs): New parameter parms_info, call
2967         is_parm_modified_before_call instead of ipa_is_param_modified.
2968         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
2969         it to compute_pass_through_member_ptrs.
2970         (ipa_compute_jump_functions): New parameter parms_info, pass it to
2971         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
2972         on the callee if it is analyzed.  Made static.
2973         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
2974         is_parm_modified_before_call instead of ipa_is_param_modified.
2975         (ipa_analyze_call_uses): New parameter parms_info, pass it to
2976         ipa_analyze_indirect_call_uses.
2977         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
2978         ipa_analyze_call_uses.
2979         (ipa_analyze_params_uses): New parameter parms_info, pass it to
2980         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
2981         (ipa_analyze_node): New function.
2982         (ipa_print_node_params): Do not dump the modified flag.
2983         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
2984         it.  Do not stream the modified parameter flag.
2985         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
2986         it.  Do not stream the modified parameter flag.
2987         * ipa-cp.c (ipcp_analyze_node): Removed.
2988         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
2989         with only a call to ipa_analyze_node.
2990         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
2991         node with only a call to ipa_analyze_node.
2992
2993 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2994
2995         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
2996
2997 2010-06-25  Jan Hubicka  <jh@suse.cz>
2998
2999         * tree-pass.h (pass_split_functions): Declare.
3000         * opts.c (decode_options): Enable function splitting at -O2
3001         * timevar.def (TV_IPA_FNSPLIT): New macro.
3002         * ipa-split.c: New file.
3003         * common.opt (-fpartial-inlining): New flag.
3004         * Makefile.in (ipa-split.o): New object file.
3005         * passes.c (init_optimization_passes): Add ipa-split.
3006         * params.def (partial-inlining-entry-probability): New parameters.
3007         * doc/invoke.texi (-fpartial-inlining): New.
3008
3009 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3010
3011         PR 44665
3012         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
3013         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
3014         (gimplify_expr): Likewise.
3015
3016 2010-06-25  Martin Jambor  <mjambor@suse.cz>
3017
3018         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
3019         statements instead of bailing out on them.
3020         (ipa_analyze_indirect_call_uses): Do not require that loads from the
3021         parameter are in the same BB as the condition.  Update comments.
3022
3023 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
3024
3025         PR middle-end/43866
3026         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
3027         true or always false, return NULL_TREE.
3028         (tree_unswitch_single_loop): Optimize conditions even when reaching
3029         max-unswitch-level parameter.  If num > 0, optimize first all conditions
3030         using entry checks, then do still reachable block discovery and consider
3031         only conditions in still reachable basic blocks in the loop.
3032
3033         PR tree-optimization/44539
3034         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
3035         the call doesn't have LHS, but has VDEF.
3036
3037 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
3038
3039         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
3040         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
3041         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
3042         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
3043         * system.h (MODIFY_TARGET_NAME): Poison.
3044
3045 2010-06-25  Alan Modra  <amodra@gmail.com>
3046
3047         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
3048         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
3049         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3050         CMODEL_LARGE as default.
3051         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
3052         (offsettable_ok_by_alignment): Delete.
3053         (rs6000_emit_move): Remove mcmodel=medium optimization.
3054
3055 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
3056
3057         With large parts from Jim Wilson:
3058         PR target/43902
3059         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
3060         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
3061         * optabs.c (optab_for_tree_code): Likewise.
3062         (expand_widen_pattern_expr): Likewise.
3063         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
3064         out of execute_optimize_widening_mul.
3065         (convert_plusminus_to_widen): New function.
3066         (execute_optimize_widening_mul): Use the two new functions.
3067         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
3068         Remove code to generate widening multiply-accumulate.  Add support
3069         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
3070         * gimple-pretty-print.c (dump_ternary_rhs): New function.
3071         (dump_gimple_assign): Call it when appropriate.
3072         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
3073         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
3074         (expand_gimple_stmt_1): Likewise.
3075         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
3076         WIDEN_MULT_MINUS_EXPR.
3077         * tree-ssa-operands.c (get_expr_operands): Likewise.
3078         * tree-inline.c (estimate_operator_cost): Likewise.
3079         * gimple.c (extract_ops_from_tree_1): Renamed from
3080         extract_ops_from_tree.  Add new arg for a third operand; fill it.
3081         (gimple_build_assign_stat): Support operations with three operands.
3082         (gimple_build_assign_with_ops_stat): Likewise.
3083         (gimple_assign_set_rhs_from_tree): Likewise.
3084         (gimple_assign_set_rhs_with_ops_1): Renamed from
3085         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
3086         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
3087         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
3088         WIDEN_MULT_MINUS_EXPR.
3089         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
3090         (extract_ops_from_tree_1): Adjust declaration.
3091         (gimple_assign_set_rhs_with_ops_1): Likewise.
3092         (gimple_build_assign_with_ops): Pass NULL for last operand.
3093         (gimple_build_assign_with_ops3): New macro.
3094         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
3095         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
3096         functions.
3097         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
3098         (verify_gimple_assign): Call it.
3099         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
3100         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
3101         functions for dealing with three-operand statements.
3102         * tree.c (commutative_ternary_tree_code): New function.
3103         * tree.h (commutative_ternary_tree_code): Declare it.
3104         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
3105         ternary statements.
3106         (gimple_assign_nonzero_warnv_p): Likewise.
3107         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
3108         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
3109         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
3110         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
3111         (struct hashtable_expr): New member ternary in the union.
3112         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
3113         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
3114         (iterative_hash_hashable_expr): Likewise.
3115         (print_expr_hash_elt): Handle EXPR_TERNARY.
3116         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
3117         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
3118         statements.  Handle GIMPLE_TERNARY_RHS.
3119
3120 2010-06-25  Jan Hubicka  <jh@suse.cz>
3121
3122         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
3123
3124 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
3125
3126         PR c/44517
3127         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
3128         parameters are not good.
3129         (c_parser_parameter_declaration): Error unknown type name if the type
3130         name can't start declaration specifiers.
3131
3132 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
3133
3134         * gcc.c (translate_options): Don't mention +e in comment.
3135         (process_command): Don't handle +e specially.
3136
3137 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
3138
3139         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
3140
3141         * ira-build.c (merge_hard_reg_conflicts): New function.
3142         (create_cap_allocno, copy_info_to_removed_store_destinations,
3143         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
3144         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
3145         (remove_unnecessary_allocnos, remove_low_level_allocnos)
3146         copy_nifo_to_removed_store_destination): Use them.
3147         * ira-lives.c (make_hard_regno_born): New function, split out of
3148         make_regno_born.
3149         (make_allocno_born): Likewise.
3150         (make_hard_regno_dead): New function, split out of make_regno_dead.
3151         (make_allocno_dead): Likewise.
3152         (inc_register_pressure): New function, split out of set_allocno_live.
3153         (dec_register_pressure): New function, split out of clear_allocno_live.
3154         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
3155         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
3156         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
3157         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
3158         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
3159         mark_pseudo_regno_live.
3160         (process_bb_node_lives): Use mark_pseudo_regno_live,
3161         make_hard_regno_born and make_allocno_dead.
3162         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
3163         set_allocno_live, clear_allocno_live): Delete functions.
3164
3165         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
3166         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
3167         functions.
3168         (ira_flattening): Use ira_parent_allocno.
3169         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
3170         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
3171
3172         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
3173         statement.
3174
3175         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
3176         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
3177         minmax_set_iter_cond, minmax_set_iter_next,
3178         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
3179         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
3180         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
3181         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
3182         uses changed.
3183
3184         * ira-int.h (struct live_range, live_range_t): Renamed from struct
3185         ira_allocno_live_range and allocno_live_range_t; all uses changed.
3186         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
3187         All uses changed.
3188
3189 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
3190
3191         * thumb2.md (thumb2_tlobits_cbranch): Delete.
3192         (peephole2 to convert zero_extract/compare of single bit to
3193          lshift/compare): New.
3194
3195 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
3196
3197         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
3198         recursive call and call to 'int_const_binop'.
3199         (build_range_check, fold_cond_expr_with_comparison, unextend,
3200         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
3201         multiple_of_p): Adjust call to const_binop.
3202
3203 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
3204
3205         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
3206         determine size of XFmode operand.
3207         (XFmode extended DFmode push splitter): Ditto.
3208         (XFmode extended SFmode push splitter): Ditto.
3209
3210 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
3211
3212         PR target/44588
3213         * config/i386/i386.md (extract_code): New.
3214         (<u>divmodqi4): Likewise.
3215         (divmodhiqi3): Likewise.
3216         (udivmodhiqi3): Likewise.
3217         (<u>divqi3): Remvoved.
3218
3219 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
3220
3221         PR middle-end/44492
3222         * recog.h (struct recog_data): Add is_asm field.
3223         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
3224         present in constraints of inline-asm operand and memory operand
3225         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
3226         (extract_insn): Initialize recog_data.is_asm.
3227         * doc/md.texi (Constraints): Document operand side-effect rules.
3228
3229 2010-06-24  Andi Kleen  <ak@linux.intel.com>
3230
3231         * c-parser.c (c_parser_conditional_expression): Call
3232         warn_for_omitted_condop.
3233         * doc/invoke.texi: Document omitted condop warning.
3234
3235 2010-06-24  Nick Clifton<nickc@redhat.com>
3236
3237         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
3238         insn in the sequence is a jump insn before setting its label.
3239
3240 2010-06-24  Alan Modra  <amodra@gmail.com>
3241
3242         * collect2.c (main): Match exactly --version and --help.
3243
3244 2010-06-24  DJ Delorie  <dj@redhat.com>
3245
3246         * config/m32c/m32c-pragma.c: Don't include rtl.h.
3247
3248 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
3249
3250         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
3251         using X87MODEF mode iterator.
3252         (pushsf splitter): Macroize splitter using P mode iterator.
3253         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
3254         mode iterator.
3255
3256         (*movxf_internal): Rename from *movxf_integer.
3257         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
3258         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
3259         (*movdf_internal): Rename from *movdf_integer.
3260         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
3261         (*movsf_internal): Rename from *movdf_1.
3262
3263 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
3264
3265         * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
3266         (const_gimple_seq_node): Removed typedefs.
3267
3268         * gimple.h: (gimple_seq_node_d, gimple_seq_node)
3269         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
3270
3271 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
3272
3273         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
3274         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
3275         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
3276         and CODE_FOR_vec_extract_lo_v4df.
3277
3278         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
3279         Changed to define_insn_and_split.
3280         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
3281         (vec_extract_lo_v16hi): Likewise.
3282         (vec_extract_lo_v32qi): Likewise.
3283         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
3284         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
3285
3286 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
3287
3288         PR target/44640
3289         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
3290         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
3291         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
3292         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
3293         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
3294
3295         PR target/44640
3296         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
3297
3298         PR other/44644
3299         * df-core.c (struct df): Rename to df_d.
3300         * df.h (struct df): Likewise.
3301         * dse.h (struct df): Remove forward declaration.
3302         * recog.h (struct insn_data): Rename to:
3303         (struct_insn_data_d).  Adjusted all users.
3304
3305 2010-06-23  Arnaud Charlet  <charlet@adacore.com
3306
3307         PR ada/22220
3308         * doc/install.texi: Update requirements to build GNAT.
3309
3310 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
3311
3312         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
3313         enum type.
3314         (m68k_sched_attr_opx_type): Remove unreachable return.
3315         (m68k_sched_attr_opy_type): Likewise.
3316         (m68k_sched_attr_size): Likewise.
3317         (sched_get_opxy_mem_type): Likewise.
3318         (m68k_sched_attr_op_mem): Likewise.
3319
3320 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
3321
3322         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
3323         new statement and adjust VDEF only if necessary.  Remove superfluous
3324         call to maybe_clean_or_replace_eh_stmt.
3325         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
3326         copy the flags.
3327         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
3328         * tree-inline.c (copy_bb): ...and not there.
3329
3330 2010-06-22  Cary Coutant  <ccoutant@google.com>
3331
3332         * dwarf2out.c (is_nested_in_subprogram): New function.
3333         (should_move_die_to_comdat): Use it.
3334         (copy_ancestor_tree): Don't mark DIEs here.
3335         (copy_decls_walk): Start walk from root of newly-added tree;
3336         mark DIEs here instead.
3337
3338 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
3339
3340         * config/i386/i386.md (unit): Also check sseishft1.
3341
3342 2010-06-22  Jan Hubicka  <jh@suse.cz>
3343
3344         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
3345         enabled.
3346
3347 2010-06-22  Jan Hubicka  <jh@suse.cz>
3348
3349         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
3350         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
3351         Return true if something changed.
3352         * df.h (df_confluence_function_n): Return bool.
3353         * df-core.c (df_worklist_propagate_forward,
3354         df_worklist_propagate_backward): Track changes and ages.
3355         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
3356         track ages.
3357         * dse.c (dse_confluence_n): Return always true.
3358
3359 2010-06-22  Jan Hubicka  <jh@suse.cz>
3360
3361         * bitmap.c (bitmap_clear_bit): Micro optimize.
3362
3363 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
3364
3365         * config/i386/i386.md (SWI1248x): New mode iterator.
3366         (SWI48x): Ditto.
3367         (SWI12): Ditto.
3368         (SWI24): Ditto.
3369
3370         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
3371         SWI1248x mode iterator.
3372         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
3373         using SWI124 mode iterator.
3374         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
3375         mode iterator.
3376         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
3377         *pushdi2_prologue_rex64 using P mode iterator.
3378         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
3379         using SWI48 mode iterator.
3380         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
3381         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
3382         using SWI1248x mode iterator.
3383         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
3384         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
3385         SWI48 mode iterator.
3386         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
3387         iterator.
3388         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
3389         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
3390         SWI12 mode iterator.
3391         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
3392         SWI12 mode iterator.
3393         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
3394         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
3395         SWI24 mode iterator.
3396         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
3397         SWI48 mode iterator.
3398         (mov<mode>_insn_1): New expander.
3399         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
3400         using SWI48x mode iterator.
3401
3402         (*movoi_internal_avx): Rename from *movoi_internal.
3403         (*movti_internal_rex64): Rename from *movti_rex64.
3404         (*movti_internal_sse): Rename from *movti_sse.
3405         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
3406         (*movdi_internal): Rename from *movdi_2.
3407         (*movsi_internal): Rename from *movsi_1.
3408         (*movhi_internal): Rename from *movhi_1.
3409         (*movqi_internal): Rename from *movqi_1.
3410
3411         (insv): Update the call to gen_movsi_insv_1 for rename.
3412         * config/i386/i386.c (promote_duplicated_reg): Ditto.
3413
3414 2010-06-22  Jan Hubicka  <jh@suse.cz>
3415
3416         * passes.c (execute_function_todo): Move call of statistics_fini_pass
3417         to ...
3418         (execute_todo) ... this one.
3419
3420 2010-06-22  Alan Modra  <amodra@gmail.com>
3421
3422         PR target/44364
3423         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
3424         * caller-save.c (insert_restore, insert_save): Use non-validate
3425         form of adjust_address.
3426
3427 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3428
3429         PR target/39690
3430         * config/pa/pa.c (override_options): Disable
3431         -freorder-blocks-and-partition.
3432
3433 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
3434
3435         PR target/44615
3436         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
3437
3438         * config/i386/i386.md (type): Add sseishft1
3439
3440         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
3441         (ppro_insn_load): Likewise.
3442         (ppro_insn_store): Likewise.
3443         (ppro_insn_both): Likewise.
3444
3445         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
3446         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
3447         for type.
3448         (*vec_extractv2di_1_avx): Likewise.
3449         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
3450         type.  Remove atom_unit.
3451         (*vec_extractv2di_1_sse2): Likewise.
3452
3453 2010-06-21  DJ Delorie  <dj@redhat.com>
3454
3455         * diagnostic.h (diagnostic_classification_change_t): New.
3456         (diagnostic_context): Add history and push/pop list.
3457         (diagnostic_push_diagnostics): Declare.
3458         (diagnostic_pop_diagnostics): Declare.
3459         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
3460         from pragmas in a history chain instead of the global table.
3461         (diagnostic_push_diagnostics): New.
3462         (diagnostic_pop_diagnostics): New.
3463         (diagnostic_report_diagnostic): Scan history chain to find state
3464         of diagnostics as of the diagnostic location.
3465         * opts.c (set_option): Pass UNKNOWN_LOCATION to
3466         diagnostic_classify_diagnostic.
3467         (enable_warning_as_error): Likewise.
3468         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
3469         use in the history chain.
3470         * doc/extend.texi: Document pragma GCC diagnostic changes.
3471
3472 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
3473
3474         * dwarf2out.c (add_linkage_name): New function.  Don't add
3475         anything to DW_TAG_member DIEs.
3476         (add_name_and_src_coords_attributes): Use it.
3477         (gen_variable_die): Call it for C++ static data members if
3478         specification is DW_TAG_member.
3479
3480         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
3481         C++ char16_t and char32_t.
3482
3483         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
3484         * genattrtab.c: Include vecprim.h.
3485         (cached_attrs, cached_attr_count, attrs_seen_once,
3486         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
3487         attrs_cached_after): New variables.
3488         (find_attrs_to_cache): New function.
3489         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
3490         (write_test_expr): Add attrs_cached argument, return it too,
3491         attempt to cache non-const attributes used more than once in
3492         a single case handling.
3493         (write_attr_get): Use find_attrs_to_cache, for caching candidates
3494         emit cached_* variables.  Adjust write_attr_set callers.
3495         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
3496         to find attributes that should be cached in this block.  Adjust
3497         write_test_expr callers.
3498         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
3499         callers.
3500         (make_automaton_attrs): Adjust write_test_expr caller.
3501
3502         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
3503         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
3504         (make_automaton_attrs): If find_tune_attr returns non-NULL,
3505         write separate internal_dfa_insn_code_* and insn_default_latency_*
3506         functions for each attribute's value and emit init_sched_attrs
3507         function and function pointers.
3508         * genattr.c (const_attrs, reservations): New variables.
3509         (gen_attr): Add const attributes to const_attrs vector.
3510         (check_tune_attr, find_tune_attr): New functions.
3511         (main): Add reservations to reservations vector.  If find_tune_attr
3512         returns true, add prototype for init_sched_attrs and make
3513         internal_dfa_insn_code and insn_default_latency function pointers,
3514         otherwise define init_sched_attrs as dummy macro.
3515         * cfgexpand.c: Include insn-attr.h.
3516         (gimple_expand_cfg): Call init_sched_attrs.
3517
3518         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
3519
3520         PR target/44575
3521         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
3522         va_arg from a set of register save slots into a temporary,
3523         if the container is bigger than type size, do the copying
3524         using smaller mode or using memcpy.
3525
3526         PR bootstrap/44426
3527         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
3528         prototype.
3529         (sel_print_to_dot): Remove macro.
3530         (sel_print): Likewise.  New prototype.
3531         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
3532         (sel_print): New function.
3533
3534 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3535
3536         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
3537         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
3538
3539 2010-06-21  Nick Clifton  <nickc@redhat.com>
3540
3541         * config/rx/rx.h (PTRDIFF_TYPE): Define.
3542         (SMALL_REGISTER_CLASS): Define (to zero).
3543         (PRINT_OPERAND): Delete.
3544         (PRINT_OPERAND_ADDRESS): Delete.
3545         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
3546         (rx_print_operand_address): Delete prototype.
3547         * config/rx/rx.c (rx_print_operand): Make static.
3548         Allow %H and %L to handle CONST_DOUBLEs.
3549         (rx_print_operand_address): Make static.
3550         (rx_gen_move_template): Rename local variable 'template' to
3551         out_template.
3552         (rx_function_arg): Do not pass unknown sized objects in registers.
3553         (TARGET_PRINT_OPERAND): Define.
3554         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3555
3556 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
3557
3558         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
3559
3560 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
3561
3562         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
3563         stack-alignment for simple leaf-functions.
3564
3565 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
3566
3567         * doc/install.texi: Document bootstrap-lto.
3568
3569 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
3570
3571         PR debug/44248
3572         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
3573         (input_function): Drop them here, if VTA is disabled.
3574
3575 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
3576
3577         PR target/44546
3578         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
3579         New predicate.
3580         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
3581         ix86_swapped_fp_comparsion_operator instead of
3582         ix86_fp_comparison_operator.
3583
3584         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
3585         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
3586         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
3587         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
3588         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
3589         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
3590
3591 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
3592
3593         PR other/32998
3594         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
3595         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
3596         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
3597         (decode_cmdline_option): Update for this return value.  Set
3598         orig_option_with_args_text field.  Set arg field for unknown
3599         options.  Make static.
3600         (decode_cmdline_options_to_array): New.
3601         (prune_options): Update handling of find_opt return value.
3602         * opts.c (read_cmdline_option): Take decoded option.  Return void.
3603         (read_cmdline_options): Take decoded options.
3604         (decode_options): Add parameters for decoded options.  Use
3605         decode_cmdline_options_to_array.  Use decoded options for -O
3606         scan.  Use integral_argument for -O parameters.  Update call to
3607         read_cmdline_options.
3608         (enable_warning_as_error): Update handling of find_opt return value.
3609         * opts.h: Update comment on unknown options.
3610         (struct cl_decoded_option): Update comments on opt_index and arg.
3611         Add orig_option_with_args_text.
3612         (decode_cmdline_option): Remove.
3613         (decode_cmdline_options_to_array): Declare.
3614         (decode_options): Update prototype.
3615         * toplev.c (save_argv): Remove.
3616         (save_decoded_options, save_decoded_options_count): New.
3617         (read_integral_parameter): Remove.
3618         (print_switch_values): Use decoded options.
3619         (toplev_main): Don't set save_argv.  Update call to decode_options.
3620         * toplev.h (read_integral_parameter): Remove.
3621         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
3622
3623 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
3624
3625         PR target/44072
3626         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
3627         immediate.
3628         * constraints.md (Pw, Px): New constraints.
3629         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
3630
3631 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
3632
3633         * config/i386/sse.md (fma4modesuffixf4): Removed.
3634         (ssemodesuffixf2s): Likewise.
3635         (ssemodesuffixf4): Likewise.
3636         (ssemodesuffixf2c): Likewise.
3637         (ssescalarmodesuffix2s): Likewise.
3638         (avxmodesuffixf2c): Likewise.
3639         (ssemodesuffix): New.
3640         (ssescalarmodesuffix): Likewise.
3641         Update patterns with ssemodesuffix and ssescalarmodesuffix.
3642
3643 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
3644
3645         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
3646
3647 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
3648
3649         * stor-layout.c (debug_rli): Remove unused local variables.
3650
3651 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
3652
3653         PR rtl-optimization/40900
3654         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
3655         original expression for later reuse.
3656         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
3657         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
3658
3659 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
3660
3661         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
3662         double_int_fits_in_uhwi_p): Implement as static inline.
3663         (double_int_xor): New inline function.
3664         (double_int_lrotate, double_int_rrotate, double_int_max,
3665         double_int_umax, double_int_smax, double_int_min, double_int_umin,
3666         double_int_smin): Declare.
3667         (lrotate_double, rrotate_double): Remove declaration.
3668         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
3669         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
3670         (double_int_lrotate, double_int_rrotate, double_int_max,
3671         double_int_umax, double_int_smax, double_int_min, double_int_umin,
3672         double_int_smin): New function.
3673         * fold-const.c (int_const_binop): Clean up, use double_int_*
3674         functions.
3675         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
3676         double_int_* and immed_double_int_const functions.
3677
3678 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
3679
3680         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
3681         * function.c (types_used_by_cur_var_decl): Likewise.
3682         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
3683
3684 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
3685
3686         * tree.h (record_layout_info): Change type of pending_statics field
3687         to a VEC.
3688         * stor-layout.c (start_record_layout): Store NULL into
3689         pending_statics.
3690         (debug_rli): Call debug_vec_tree instead of debug_tree.
3691         (place_field): Likewise.
3692         (finish_record_layout): Likewise.
3693
3694 2010-06-18  Alan Modra  <amodra@gmail.com>
3695
3696         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
3697
3698 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3699
3700         PR target/43740
3701         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
3702         for SET source operand from SET destination operand.
3703
3704 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
3705
3706         PR rtl-optimization/39871
3707         * reload1.c (init_eliminable_invariants): For flag_pic, disable
3708         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
3709         (function_invariant_p): Rule out a plus of frame or arg pointer with
3710         a SYMBOL_REF.
3711         * ira.c (find_reg_equiv_invariant_const): Likewise.
3712
3713 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
3714
3715         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
3716         print_operand_address and puts to output the operand for CONST.
3717
3718 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
3719
3720         PR debug/44572
3721         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
3722         hook.
3723
3724 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
3725
3726         * v850-protos.h (print_operand): Delete.
3727         (print_operand_address): Delete.
3728         * v850.h (PRINT_OPERAND): Delete.
3729         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3730         (PRINT_OPERAND_ADDRESS): Delete.
3731         * v850.c (print_operand_address): Rename to...
3732         (v850_print_operand_address): ...this.  Make static. Call
3733         v850_print_operand.
3734         (print_operand): Rename to...
3735         (v850_print_operand): ...this.  Make static.  Call
3736         v850_print_operand_address.
3737         (v850_print_operand_punct_valid_p): New function.
3738         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3739         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3740
3741 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
3742
3743         * config/sh/sh-protos.h (print_operand): Delete.
3744         (print_operand_address): Delete.
3745         * config/sh/sh.h (PRINT_OPERAND): Delete.
3746         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3747         (PRINT_OPERAND_ADDRESS): Delete.
3748         * config/sh/sh.c (sh_print_operand_address): Make static.
3749         (sh_print_operand): Make static.  Call sh_print_operand_address
3750         and sh_print_operand.
3751         (sh_print_operand_punct_valid_p): New function.
3752         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3753         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3754
3755 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
3756
3757         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
3758         (mcore_print_operand_address): Delete.
3759         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
3760         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3761         (PRINT_OPERAND_ADDRESS): Delete.
3762         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
3763         (mcore_print_operand): Make static.
3764         (mcore_print_operand_punct_valid_p): New function.
3765         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
3766         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3767
3768 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
3769
3770         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
3771         (print_operand_address): Delete.
3772         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
3773         (PRINT_OPERAND_ADDRESS): Delete.
3774         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
3775         static.
3776         (m68hc11_print_operand): Make static.
3777         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3778
3779 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
3780
3781         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
3782         (m32r_print_operand_address): Delete.
3783         * config/m32r/m32r.h (m32r_punct_chars): Delete.
3784         (PRINT_OPERAND): Delete.
3785         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3786         (PRINT_OPERAND_ADDRESS): Delete.
3787         * config/m32r/m32r.c (m32r_punct_chars): Make static.
3788         (m32r_print_operand_address): Make static.
3789         (m32r_print_operand): Make static.
3790         (m32r_print_operand_punct_valid_p): New function.
3791         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
3792         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3793
3794 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
3795
3796         * config/iq2000/iq2000-protos.h (print_operand): Delete.
3797         (print_operand_address): Delete.
3798         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
3799         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3800         (PRINT_OPERAND_ADDRESS): Delete.
3801         (iq2000_print_operand_punct): Delete.
3802         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
3803         (iq2000_print_operand_address): Make static.
3804         (iq2000_print_operand): Make static.
3805         (iq2000_print_operand_punct_valid_p): New function.
3806         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
3807         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3808
3809 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
3810
3811         * config/frv/frv-protos.h (frv_print_operand): Delete.
3812         (frv_print_operand_address): Delete.
3813         * config/frv/frv.h (PRINT_OPERAND): Delete.
3814         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3815         (PRINT_OPERAND_ADDRESS): Delete.
3816         * config/frv/frv.c (frv_print_operand_address): Make static.
3817         (frv_print_operand): Make static.
3818         (frv_print_operand_punct_valid_p): New function.
3819         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
3820         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3821
3822 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
3823
3824         * tree.h (vec_member): Declare.
3825         * tree.c (vec_member): Define.
3826
3827 2010-06-17  Richard Guenther  <rguenther@suse.de>
3828
3829         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
3830         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
3831
3832 2010-06-17  Richard Guenther  <rguenther@suse.de>
3833
3834         * tree-inline.c (declare_return_variable): Remove bogus code.
3835
3836 2010-06-17  Richard Guenther  <rguenther@suse.de>
3837
3838         * gimplify.c (gimplify_bind_expr): Always promote complex
3839         and vector variables to registers if possible.
3840
3841 2010-06-17  Richard Guenther  <rguenther@suse.de>
3842
3843         * expr.c (get_inner_reference): Use double_int for bit_offset
3844         calculation.
3845
3846 2010-06-16  DJ Delorie  <dj@redhat.com>
3847
3848         * common.opt (-fstrict-volatile-bitfields): new.
3849         * doc/invoke.texi: Document it.
3850         * fold-const.c (optimize_bit_field_compare): For volatile
3851         bitfields, use the field's type to determine the mode, not the
3852         field's size.
3853         * expr.c (expand_assignment): Likewise.
3854         (get_inner_reference): Likewise.
3855         (expand_expr_real_1): Likewise.
3856         * expmed.c (store_fixed_bit_field): Likewise.
3857         (extract_bit_field_1): Likewise.
3858         (extract_fixed_bit_field): Likewise.
3859
3860 2010-06-16  Richard Guenther  <rguenther@suse.de>
3861
3862         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
3863
3864 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
3865
3866         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
3867         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
3868         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
3869         * debug.c: Likewise.
3870         * sdbout.c: Likewise.
3871         * vmsdbgout.c: Likewise.
3872         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
3873         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
3874         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
3875         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
3876         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
3877         * dwarf2out.c (dw_fde_struct): New fields
3878         dw_fde_vms_{end,begin}_prologue.
3879         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
3880         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
3881         (dwarf2out_vms_end_prologue): New function.
3882         (dwarf2out_vms_begin_epilogue): New function.
3883         (dw_val_struct): New value dw_val_class_vms_delta.
3884         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
3885         begin_epilogue for VMS.
3886         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
3887         new static functions.
3888         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
3889         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
3890         static functions.
3891         (print_die): New case dw_val_class_vms_delta.
3892         (attr_checksum): Likewise.
3893         (same_dw_val_p: Likewise.
3894         (size_of_die): Likewise.
3895         (value_format): Likewise.
3896         (output_die): Likewise.
3897         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
3898         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
3899         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
3900         dwarf2out_cfi_begin_epilogue
3901         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
3902
3903 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
3904
3905         * config/cris/cris-protos.h (cris_print_operand): Delete.
3906         (cris_print_operand_address): Delete.
3907         * config/cris/cris.h (PRINT_OPERAND): Delete.
3908         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3909         (PRINT_OPERAND_ADDRESS): Delete.
3910         * config/cris/cris.c (cris_print_operand_address): Make static.
3911         (cris_print_operand): Make static.
3912         (cris_print_operand_punct_valid_p): New function.
3913         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
3914         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3915
3916 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
3917
3918         * config/arm/arm-protos.h (arm_print_operand): Delete.
3919         (arm_print_operand_address): Delete.
3920         * config/arm/arm.h (PRINT_OPERAND): Delete.
3921         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3922         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
3923         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
3924         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
3925         (arm_print_operand): Make static.
3926         (arm_print_operand_punct_valid_p): New function.
3927         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
3928         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3929
3930 2010-06-16  Nick Clifton  <nickc@redhat.com>
3931
3932         * config/rx/constraints.md (NEGint4): New constraint.
3933         * config/rx/rx.md (attr cc): Add set_zsc.
3934         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
3935         initialised.
3936         (cmpsf): Likewise.
3937         (call_internal): Clobber the cc0 register.
3938         (call_value_internal): Likewise.
3939         (cstoresi4): Likewise.
3940         (movsieq): Likewise.
3941         (movsine): Likewise.
3942         (addsi3): Add alternative to handle small negative constants.
3943         (sunsi3): Likewise.
3944         (addsi3): Do not set the O bit in the cc0 register.
3945         (adddi3): Likewise.
3946         (subsi3): Likewise.
3947         (subdi3): Likewise.
3948         (andsi3): Reorder alternatives to prefer shorter forms.
3949         (mulsi3): Likewise.
3950         (iorsi3): Likewise.
3951         (negsi2): Note that the cc0 flags are set.
3952         (rotlsi3): Note that only the Z and S bits are set in cc0.
3953         (lshrsi3): Likewise.
3954         (ashlsi3): Likewise.
3955         (subsf3): Use %Q for the MEM operand.
3956         (fix_truncsfsi2): Likewise.
3957         (floatsisf2): Likewise.
3958         (bitset): Remove early clobber from destination.
3959         (bitset_in_memory): Likewise.
3960         (lrintsf2): Clobber the cc0 register.
3961         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
3962         (rx_print_operand): Handle %N.
3963
3964 2010-06-16  Jan Hubicka  <jh@suse.cz>
3965
3966         * df-core.c (df_compact_blocks): Free problem_temps vector.
3967
3968 2010-06-16  Martin Jambor  <mjambor@suse.cz>
3969
3970         PR tree-optimization/43905
3971         * tree-sra.c: Include tree-inline.h.
3972         (create_abstract_origin): Removed.
3973         (modify_function): Version the call graph node instead of creating
3974         abstract origins and dealing with same_body aliases.
3975         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
3976         function is versionable.
3977         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
3978
3979 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
3980
3981         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
3982         (CHOOSE_DYNAMIC_LINKER): Update.
3983
3984 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
3985
3986         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
3987         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
3988         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
3989         *prefetch_3dnow_rex.
3990
3991 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
3992
3993         * target.h (struct asm_out):Add declare_constant_name field.
3994         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
3995         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
3996         * output.h (default_asm_declare_constant_name): Declare.
3997         (assemble_label): Update prototype.
3998         * varasm.c (assemble_constant_contents): Use
3999         targetm.asm_out.declare_constant_name target hook.
4000         (assemble_label): Add 'file' argument.
4001         (default_asm_declare_constant_name): New function.
4002         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
4003         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
4004         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
4005
4006         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
4007         * config/darwin.c (darwin_asm_declare_constant_name): New function.
4008         (machopic_output_indirection): Update assemble_label argument list.
4009         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
4010         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
4011
4012 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
4013
4014         PR middle-end/44391
4015         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
4016         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
4017
4018 2010-06-15  Richard Guenther  <rguenther@suse.de>
4019
4020         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
4021
4022 2010-06-15  Paul Brook  <paul@codesourcery.com>
4023
4024         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
4025         hard-float ABI.
4026
4027 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
4028
4029         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
4030         don't get a vector type for output.
4031
4032 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
4033
4034         PR fortran/44536
4035         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
4036         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
4037         (LANG_HOOKS_DECLS): Add it.
4038         * gimplify.c (omp_notice_variable): Call
4039         lang_hooks.decls.omp_report_decl.
4040
4041 2010-06-15  Martin Jambor  <mjambor@suse.cz>
4042
4043         PR lto/44464
4044         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
4045         on the newly dead SSA name.
4046
4047 2010-06-15  Alan Modra  <amodra@gmail.com>
4048
4049         * doc/invoke.texi: Add mcmodel to powerpc options.
4050         * configure.ac: Add HAVE_LD_LARGE_TOC test.
4051         * configure: Regenerate.
4052         * config.in: Regenerate.
4053         * config/rs6000/linux64.opt (mcmodel): New.
4054         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
4055         (TARGET_CMODEL, SET_CMODEL): Define.
4056         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
4057         select CMODEL_MEDIUM default.
4058         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
4059         (TARGET_CMODEL): Define default.
4060         * config/rs6000/rs6000.c (cmodel): New variable.
4061         (rs6000_explicit_options): Add cmodel field.
4062         (rs6000_handle_option): Handle -mcmodel.
4063         (create_TOC_reference): Add largetoc_reg param.  Generate high,
4064         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
4065         (rs6000_delegitimize_address): Recognise new toc reference rtl
4066         and minimal-toc rtl.
4067         (rs6000_legitimize_reload_address): Handle new toc references.
4068         (print_operand_address): Handle legitimate_constant_pool_address_p
4069         match before lo_sum.
4070         (rs6000_eliminate_indexed_memrefs): Tidy.
4071         (rs6000_emit_move): Tweak threshold for inlining constants.
4072         Keep rs6000_emit_allocate_stack large stack frame offsets
4073         loaded into r0 inline.
4074         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
4075         (tocrel_base, tocrel_offset): New variables.
4076         (toc_relative_expr_p): Set them here.
4077         (print_operand_address): Skip over any offset on constant pool address.
4078         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
4079         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
4080         (offsettable_ok_by_alignment): New function.
4081         (rs6000_emit_move): Address suitably aligned local symbol_refs
4082         relative to the toc pointer for -mcmodel=medium.
4083         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
4084         strict param.  Allow lo_sum version of addressing.  Verify reg
4085         used for -mminimal-toc and -mcmodel != small.  Update all callers.
4086         * config/rs6000/constraints.md: Update for above change.
4087         * config/rs6000/predicates.md: Likewise.
4088         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
4089         code.
4090         (tls_gd): Split for -mcmodel=medium/large.
4091         (tls_gd_high, tls_gd_low): New.
4092         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
4093         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
4094         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
4095         (largetoc_high, largetoc_low): New.
4096         (cmptf_internal2): Add clobber.
4097         * config/rs6000/rs6000-protos.h: Update.
4098
4099 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
4100
4101         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
4102         true if no prefetch is going to be generated for a given group.
4103         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
4104         estimate the prefetch_count.
4105         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
4106         prefetch count by considering the unroll_factor and prefetch_mod
4107         for is_loop_prefetching_profitable.
4108
4109 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
4110
4111         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
4112         anything if the argument is not a MEM.
4113
4114 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
4115
4116         PR debug/43650
4117         PR debug/44181
4118         PR debug/44247
4119         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
4120         debug stmts.
4121         (canonicalize_loop_ivs): Likewise.
4122
4123 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
4124
4125         PR debug/43656
4126         * haifa-sched.c (setup_insn_reg_pressure_info,
4127         update_register_pressure): Reject debug insns.
4128         (ready_sort): Don't setup reg pressure for debug insns.
4129         (schedule_insn): Don't update reg pressure for debug insns.
4130
4131 2010-06-14  Richard Guenther  <rguenther@suse.de>
4132
4133         * lto-streamer.c (cached_bp): Remove.
4134         (bitpack_delete): Likewise.
4135         (bitpack_create): Likewise.
4136         (bp_get_next_word): Likewise.
4137         (bp_pack_value, bp_unpack_value): Move ...
4138         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
4139         Re-implement.
4140         (struct bitpack_d): Likewise.
4141         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
4142         New inline functions.
4143         * lto-streamer-out.c (lto_output_bitpack): Remove.
4144         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
4145         (pack_value_fields): Adjust.
4146         (lto_write_tree): Likewise.
4147         (output_gimple_stmt): Likewise.
4148         (output_function): Likewise.
4149         * lto-streamer-in.c (input_gimple_stmt): Adjust.
4150         (input_function): Likewise.
4151         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
4152         (lto_input_bitpack): Remove.
4153         (lto_materialize_tree): Adjust.
4154         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
4155         * lto-cgraph.c (lto_output_edge): Adjust.
4156         (lto_output_node): Likewise.
4157         (lto_output_varpool_node): Likewise.
4158         (lto_output_ref): Likewise.
4159         (input_node): Likewise.
4160         (input_varpool_node): Likewise.
4161         (input_ref): Likewise.
4162         (input_edge): Likewise.
4163         (output_node_opt_summary): Likewise.
4164         (input_node_opt_summary): Likewise.
4165         * ipa-pure-const.c (pure_const_write_summary): Likewise.
4166         (pure_const_read_summary): Likewise.
4167         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
4168         (ipa_read_indirect_edge_info): Likewise.
4169         (ipa_write_node_info): Likewise.
4170         (ipa_read_node_info): Likewise.
4171
4172 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
4173
4174         PR target/44534
4175         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
4176         (vec_extract_lo_v16hi): Likewise.
4177         (vec_extract_lo_v32qi): Likewise.
4178
4179 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
4180
4181         PR bootstrap/44426
4182         * tree.h (build_call_expr): Don't define as vararg macro, instead
4183         add a prototype.
4184         * builtins.c (build_call_nofold): Remove.
4185         (expand_builtin_int_roundingfn, expand_builtin_pow,
4186         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
4187         expand_builtin_memset_args, expand_builtin_strcmp,
4188         expand_builtin_strncmp, expand_builtin_memory_chk): Use
4189         build_call_nofold_loc instead of build_call_nofold.
4190         (build_call_expr): New function.
4191
4192         PR tree-optimization/44508
4193         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
4194         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
4195         don't eliminate trivially dead stmts.
4196         * tree-vrp.c (vrp_finalize): Pass false as last argument
4197         to substitute_and_fold.
4198         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
4199         to substitute_and_fold.
4200         * tree-ssa-ccp.c (ccp_finalize): Likewise.
4201
4202         PR bootstrap/44509
4203         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
4204
4205 2010-06-14  Ira Rosen  <irar@il.ibm.com>
4206
4207         PR tree-optimization/44507
4208         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
4209         to build initial vector for BIT_AND_EXPR.
4210         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4211
4212 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
4213
4214         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
4215         adjust z10prop set_attr.
4216
4217 2010-06-13  Jan Hubicka  <jh@suse.cz>
4218
4219         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
4220         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
4221         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
4222         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
4223         datastructure checks into checking asserts.
4224         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
4225         * tree-ssa-sccvn.c (VN_INFO): Likewise.
4226         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
4227         df_ref_create_structure): Likewise.
4228         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
4229         pool_free): Use gcc_checking_assert.
4230         * alias.c (get_alias_set): Likewise.
4231         * var-tracking.c (variable_htab_free, shared_hash_copy,
4232         canonicalize_values_mark, variable_merge_over_cur): Likewise.
4233         * lto-streamer.c (bp_unpack_value): Likewise.
4234
4235 2010-06-13  Richard Guenther  <rguenther@suse.de>
4236
4237         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
4238         Do not stream but initialize TYPE_CANONICAL to NULL.
4239         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
4240         * gimple.c (gimple_types_compatible_p): Disregard
4241         TYPE_STRUCTURAL_EQUALITY_P.
4242         (gimple_register_type): Use TYPE_CANONICAL as cache.
4243         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
4244         before registering common types.
4245         * config/i386/i386.c (ix86_function_arg_boundary): Do not
4246         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
4247         * tree.h (TYPE_CANONICAL): Clarify documentation.
4248
4249 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
4250
4251         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4252         LIBCALL_VALUE): Remove macros.
4253         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
4254         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4255         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4256         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
4257         (ia64_function_value): Make static. Handle receiving the function
4258         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
4259
4260 2010-06-12  Jan Hubicka  <jh@suse.cz>
4261
4262         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
4263         at correct place.
4264
4265 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
4266
4267         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
4268
4269 2010-06-12  Jan Hubicka  <jh@suse.cz>
4270
4271         * df-core.c (df_clear_bb_info): New function.
4272         (df_set_blocks): bb_info is always allocated.
4273         (df_get_bb_info): Use block_info_elt_size.
4274         (df_set_bb_info): Likewise.
4275         (df_compact_blocks): Update for new block_info.
4276         (grow_bb_info): New function.
4277         * df-problems.c (df_grow_bb_info): Move to df-core.c
4278         (df_rd_set_bb_info): Remove.
4279         (df_rd_free_bb_info): Do not free block pool.
4280         (df_rd_alloc): Do not create pool, use check for
4281         obstack presence instead of NULL pointer for new blocks.
4282         (df_rd_free): DO not free alloc pool; clear block_info.
4283         (problem_RD): Add size of block info structure.
4284         (df_lr_set_bb_info): Remove.
4285         (df_lr_free_bb_info): Do not free block pool.
4286         (df_lr_alloc): Do not create pool, use check for
4287         obstack presence instead of NULL pointer for new blocks.
4288         (df_lr_free): DO not free alloc pool; clear block_info.
4289         (problem_LR): Add size of block info structure.
4290         (df_live_set_bb_info): Remove.
4291         (df_live_free_bb_info): Do not free block pool.
4292         (df_live_alloc): Do not create pool, use check for
4293         obstack presence instead of NULL pointer for new blocks.
4294         (df_live_free): DO not free alloc pool; clear block_info.
4295         (problem_LIVE): Add size of block info structure.
4296         (problem_CHAIN): Add size of block info structure.
4297         (df_byte_lr_set_bb_info): Remove.
4298         (df_byte_lr_free_bb_info): Do not free block pool.
4299         (df_byte_lr_alloc): Do not create pool, use check for
4300         obstack presence instead of NULL pointer for new blocks.
4301         (df_byte_lr_free): DO not free alloc pool; clear block_info.
4302         (problem_BYTE_LR): Add size of block info structure.
4303         (problem_NOTE): Add size of block info structure.
4304         (df_byte_MD_set_bb_info): Remove.
4305         (df_byte_MD_free_bb_info): Do not free block pool.
4306         (df_byte_MD_alloc): Do not create pool, use check for
4307         obstack presence instead of NULL pointer for new blocks.
4308         (df_byte_MD_free): DO not free alloc pool; clear block_info.
4309         (problem_BD): Add size of block info structure.
4310         * df-scan.c (df_scan_free_internal): Free block pool.
4311         (df_scan_set_bb_info): Remove.
4312         (df_scan_free_bb_info): Check for artificial_defs instead
4313         of bb_info being non-NULL.
4314         (df_scan_alloc): DO not create df_scan_block pool.
4315         (problem_SCAN): Set size of block info.
4316         (df_bb_refs_record): Do not allocate bb_info.
4317         * df.h (df_problem): Add block_info_elt_size.
4318         (struct dataflow): Change block_info to void *.
4319         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
4320         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
4321         in-line structures.
4322
4323 2010-06-12  Jan Hubicka  <jh@suse.cz>
4324
4325         PR tree-optimize/44485
4326         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
4327         containing use of return value of noreturn function.
4328
4329 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
4330
4331         * targhooks.c (default_function_value): Don't use
4332         FUNCTION_OUTGOING_VALUE.
4333         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
4334         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
4335
4336 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
4337
4338         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
4339         Add crtfastmath.o to extra_parts.
4340         * config/mips/crtfastmath.c: New.
4341         * config/mips/linux.h (ENDFILE_SPEC): New.
4342
4343 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
4344
4345         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
4346         old_type in parameter.
4347         (gcc_type_for_value): Update call to gcc_type_for_interval.
4348         (compute_type_for_level_1): Renamed compute_type_for_level.
4349         Update call to gcc_type_for_interval.
4350
4351 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
4352
4353         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
4354         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
4355
4356 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
4357
4358         * opts-common.c: Include options.h.
4359         (integral_argument): Move from opts.c.
4360         (decode_cmdline_option): New.  Based on read_cmdline_option.
4361         * opts.c (integral_argument): Move to opts-common.c.
4362         (read_cmdline_option): Move most contents to
4363         decode_cmdline_option.  Use %qs in diagnostics.
4364         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
4365         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
4366         decode_cmdline_option): New.
4367
4368 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
4369
4370         PR target/44481
4371         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
4372         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
4373         (partiysi2_cmp): Ditto.
4374         (*partiyhi2_cmp): Ditto.
4375         (*parityqi2_cmp): Remove.
4376
4377 2010-06-11  Jan Hubicka  <jh@suse.cz>
4378
4379         * bitmap.h (bmp_iter_next_bit): New.
4380         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
4381
4382 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
4383             Eric Botcazou  <ebotcazou@adacore.com>
4384
4385         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
4386         computed cost.
4387
4388 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
4389
4390         * config/i386/i386.md (unspec): New define_c_enum.
4391         (unspecv): Ditto.
4392
4393 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
4394
4395         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
4396
4397 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
4398
4399         PR middle-end/44483
4400         * tree-if-conv.c (bb_predicate_s): New struct.
4401         (bb_predicate_p): New.
4402         (bb_has_predicate): New.
4403         (bb_predicate): New.
4404         (set_bb_predicate): New.
4405         (bb_predicate_gimplified_stmts): New.
4406         (set_bb_predicate_gimplified_stmts): New.
4407         (add_bb_predicate_gimplified_stmts): New.
4408         (init_bb_predicate): New.
4409         (free_bb_predicate): New.
4410         (is_predicated): Use bb_predicate.
4411         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
4412         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
4413         before processing their successors.
4414         (clean_predicate_lists): Removed.
4415         (find_phi_replacement_condition): Use bb_predicate.
4416         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
4417         computations.
4418         (insert_gimplified_predicates): New.
4419         (combine_blocks): Call insert_gimplified_predicates.
4420         (tree_if_conversion): Call free_bb_predicate instead of
4421         clean_predicate_lists.
4422
4423 2010-10-11  Paul Brook  <paul@codesourcery.com>
4424
4425         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
4426         * config/arm/arm.c (all_architectures): Change v7e-m default to
4427         cortexm4.
4428         * config/arm/arm-cores.def: Add cortex-m4.
4429         * config/arm/arm-tune.md: Regenerate.
4430
4431 2010-06-11  Jan Hubicka  <jh@suse.cz>
4432
4433         * ipa-pure-const.c (special_builtlin_state): New function.
4434         (check_call): Use it instead of special casign BUILT_IN_RETURN.
4435         (propagate_pure_const): Use it.
4436
4437 2010-06-11  Jan Hubicka  <jh@suse.cz>
4438
4439         * df-problems.c (df_live_scratch): Convert to bitmap_head.
4440         (df_live_alloc): Initialize df_live_scratch when initializing
4441         problem_data.
4442         (df_live_transfer_function): Update uses of df_live_scratch.
4443         (df_live_free): Free problem_data; clear df_live_scratch before
4444         releasing the obstack.
4445         (df_md_free): Free problem data.
4446
4447 2010-06-11  Jan Hubicka  <jh@suse.cz>
4448
4449         * doc/invoke.texi (Wsuggest-attribute): Document.
4450         (Wmissing-noreturn): Remove.
4451         * ipa-pure-const.c (warn_function_noreturn): New function.
4452         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
4453         warn_missing_noreturn.
4454         * common.opt (Wsuggest-attribute=noreturn): New.
4455         * tree-flow.h (warn_function_noreturn): Declare.
4456         * tree-cfg.c (execute_warn_function_noreturn): Use
4457         warn_function_noreturn.
4458         (gate_warn_function_noreturn): New.
4459         (pass_warn_function_noreturn): Update.
4460
4461 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4462
4463         * c-typeck.c (handle_warn_cast_qual): Add loc
4464         parameter. Improve warning message.
4465         (build_c_cast): Pass location to handle_warn_cast_qual.
4466
4467 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
4468
4469         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
4470         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
4471         insn mnemonic.
4472         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
4473
4474 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
4475
4476         Fix bootstap on mips
4477         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
4478         be naming typedefs.
4479
4480 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
4481
4482         * system.h (helper_const_non_const_cast): New inline for
4483         gcc version <= 4.0.
4484         (CONST_CAST2): For gcc version <= 4.0 use
4485         new helper to do const/non-const casting.
4486
4487 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4488
4489         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
4490         * Makefile.in (OBJS-common): Include insn-enums.o.
4491         (insn-enums.o): New rule.
4492         (simple_generated_c): Add insn-enums.c.
4493         (build/genenums.o): New rule.
4494         (genprogmd): Add "enums".
4495         * genconstants.c (print_enum_type): Declare a C string array
4496         for each enum.
4497         * genenums.c: New file.
4498         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
4499         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
4500         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
4501
4502 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4503
4504         * doc/md.texi (define_enum_attr): Document.
4505         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
4506         * read-md.h (lookup_enum_type): Declare.
4507         * read-md.c (lookup_enum_type): New function.
4508         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
4509         * genattrtab.c (attr_desc): Add an enum_name field.
4510         (evaluate_eq_attr): Take the associated attribute as argument.
4511         Get the enum prefix from the enum_name field, if defined.
4512         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
4513         (simplify_test_exp): Pass attr to evaluate_eq_attr.
4514         (add_attr_value): New function, split out from...
4515         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
4516         (write_test_expr): Pass attr to evaluate_eq_attr.
4517         (write_attr_get): Use the enum_name as the enum tag, if defined.
4518         (write_attr_valueq): Use the enum_name as a prefix, if defined.
4519         (find_attr): Initialize enum_name.
4520         (main): Handle DEFINE_ENUM_ATTR.
4521         * gensupport.c (process_rtx): Likewise.
4522         * config/mips/mips.h (mips_tune_attr): Delete.
4523         * config/mips/mips.md (cpu): Use define_attr_enum.
4524
4525 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4526
4527         * doc/md.texi (define_c_enum, define_enum): Document.
4528         * read-md.h (md_constant): Add a parent_enum field.
4529         (enum_value, enum_type): New structures.
4530         (upcase_string, traverse_enum_types): Declare.
4531         * read-md.c (enum_types): New variable.
4532         (upcase_string, add_constant): New functions.
4533         (handle_constants): Don't create the hash table here.
4534         Use add_constant.
4535         (traverse_md_constants): Don't check for a null md_constants.
4536         (decimal_string, handle_enum, traverse_enum_types): New functions.
4537         (read_md_files): Initialize md_constants and md_enums.
4538         * genconstants.c (print_md_constant): Ignore info argument.
4539         Only print constants that belong to no enum.
4540         (print_enum_type): New function.
4541         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
4542         for each defined enum type.
4543         * config/mips/mips.md (processor): New define_enum.
4544         (unspec): New define_c_enum.
4545         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
4546         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
4547         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
4548         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
4549         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
4550         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
4551         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
4552         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
4553         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
4554         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
4555         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
4556         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
4557         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
4558         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
4559         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
4560         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
4561         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
4562         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
4563         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
4564         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
4565         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
4566         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
4567         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
4568         (UNSPEC_RDDSP): Move to mips-dsp.md.
4569         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
4570         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
4571         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
4572         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
4573         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
4574         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
4575         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
4576         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
4577         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
4578         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
4579         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
4580         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
4581         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
4582         Moved to mips-dspr2.md.
4583         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
4584         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
4585         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
4586         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
4587         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
4588         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
4589         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
4590         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
4591         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
4592         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
4593         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
4594         UNSPEC_LOONGSON_PSADBH)
4595         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
4596         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
4597         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
4598         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
4599         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
4600         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
4601         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
4602         (cpu): Update comment.
4603         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
4604         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
4605         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
4606         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
4607         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
4608         UNSPEC_LOONGSON_PCMPEQ)
4609         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
4610         UNSPEC_LOONGSON_PINSR_0)
4611         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
4612         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
4613         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
4614         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
4615         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
4616         UNSPEC_LOONGSON_PSADBH)
4617         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
4618         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
4619         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
4620         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
4621         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
4622         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
4623         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
4624         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
4625         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
4626         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
4627         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
4628         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
4629         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
4630         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
4631         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
4632         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
4633         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
4634         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
4635         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
4636         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
4637         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
4638         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
4639         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
4640         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
4641         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
4642         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
4643         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
4644         (UNSPEC_RDDSP): Moved from mips.md.
4645         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
4646         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
4647         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
4648         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
4649         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
4650         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
4651         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
4652         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
4653         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
4654         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
4655         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
4656         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
4657         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
4658         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
4659         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
4660         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
4661         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
4662         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
4663         (UNSPEC_SCC): Moved from mips.md.
4664         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
4665         "processor_type" to "processor".
4666         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
4667         * config/mips/mips.h (processor_type): Delete.
4668         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
4669         "processor_type" to "processor".
4670
4671 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4672
4673         * configure.ac (tm_include_list): Add insn-constants.h.
4674         * configure: Regenerate.
4675         * Makefile.in (GTM_H): Move insn-constants.h here from...
4676         (TM_H): ...here.
4677         * mkconfig.sh: Remove special handling for insn-constants.h.
4678
4679 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4680
4681         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
4682         (BUILD_MD): ...this new variable.
4683         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
4684         that include the old contents of simple_generated_h and
4685         simple_generated_c.
4686         (simple_generated_h, simple_generated_c): Include them.  Add
4687         insn-constants.h.
4688         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
4689         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
4690         Remove these dependencies from the main rule and include
4691         insn-conditions.md in the command line only if it appears
4692         in the dependency list.
4693         (insn-constants.h, s-constants): Delete.
4694         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
4695         or gensupport.h.
4696         (build/genmddeps.o): Likewise.
4697         (genprogrtl): New variable that contains everything from genprogmd
4698         except mddeps and constants.
4699         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
4700         depend on $(BUILD_MD)
4701         (genprog): New variable.  Make these programs depend on
4702         $(BUILD_ERRORS).
4703         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
4704         (main): Use read_md_files instead of init_rtx_reader_args.
4705         * genconstants.c: As for genmddeps.c.
4706         * read-md.h (read_skip_construct): Declare.
4707         * read-md.c (read_skip_construct): New function.
4708         (handle_file): Allow a null handle_directive, skipping the
4709         construct if so.
4710         (parse_include): Update the comment accordingly.
4711
4712 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4713
4714         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
4715         * genmddeps.c: Include read-md.h.
4716         (main): Call init_rtx_reader_args instead of init_md_reader_args.
4717         * genattr.c (main): Likewise.
4718         * genattrtab.c (main): Likewise.
4719         * genautomata.c (main): Likewise.
4720         * gencodes.c (main): Likewise.
4721         * genconditions.c (main): Likewise.
4722         * genconfig.c (main): Likewise.
4723         * genconstants.c (main): Likewise.
4724         * genemit.c (main): Likewise.
4725         * genextract.c (main): Likewise.
4726         * genflags.c (main): Likewise.
4727         * genopinit.c (main): Likewise.
4728         * genoutput.c (main): Likewise.
4729         * genpeep.c (main): Likewise.
4730         * genrecog.c (main): Likewise.
4731         * genpreds.c (main): Likewise.
4732         * gensupport.h (in_fname): Move to read-md.h.
4733         (init_md_reader_args_cb): Rename to...
4734         (init_rtx_reader_args_cb): ...this and return a bool.
4735         (init_md_reader_args): Rename to...
4736         (init_rtx_reader_args): ...this and return a bool.
4737         (include_callback): Move to read-md.h.
4738         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
4739         (file_name_list, first_dir_md_include): Move to read-md.c
4740         (first_bracket_include): Delete unused variable.
4741         (last_dir_md_include): Move to read-md.c.
4742         (process_include): Delete, moving code to read-md.c:handle_include.
4743         (process_rtx): Don't handle INCLUDE.
4744         (save_string): Delete.
4745         (rtx_handle_directive): New function.
4746         (init_md_reader_args_cb): Rename to...
4747         (init_rtx_reader_args_cb): ...this and return a boolean success value.
4748         Use read_md_args.
4749         (init_md_reader_args): Rename to...
4750         (init_rtx_reader_args): ...this and return a boolean success value.
4751         * rtl.def (INCLUDE): Delete.
4752         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
4753         argument.
4754         * read-rtl.c (read_conditions): Don't gobble ')' here.
4755         (read_mapping): Likewise.
4756         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
4757         Handle top-level non-rtx constructs here rather than in read_rtx_1.
4758         Store the whole queue in *X.  Remove call to init_md_reader.
4759         (read_rtx_1): Rename to...
4760         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
4761         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
4762         here.
4763         (read_nested_rtx): New function.  Handle (nil) here rather than
4764         in read_rtx_code.
4765         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
4766         gobble ')' here.
4767         * read-md.h (directive_handler_t): New type.
4768         (in_fname, include_callback): Moved from read-md.h.
4769         (read_constants, init_md_reader): Delete.
4770         (read_md_files): Declare.
4771         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
4772         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
4773         from gensupport.c.
4774         (read_constants): Rename to...
4775         (handle_constants): ...this.  Don't gobble ')' here.
4776         (handle_include, handle_file, handle_toplevel_file)
4777         (parse_include): New functions, mostly taken from gensupport.c.
4778         (init_md_reader): Subsume into...
4779         (read_md_files): ...this new function.
4780
4781 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4782
4783         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
4784         (unread_char): Decrement read_md_lineno after putting back '\n'.
4785         * read-md.c (fatal_with_file_and_line): Push back any characters
4786         that we decide not to add to the context.
4787         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
4788         fatal_expected_char in cases where '/' ends a line (for example).
4789         (read_name): Don't increment read_md_lineno here.
4790         (read_escape): Likewise.
4791         (read_quoted_string): Likewise.
4792         (read_braced_string): Likewise.
4793
4794 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4795
4796         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
4797         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
4798         * genconstants.c: Include read-md.h.
4799         * read-rtl.c (md_constants): Move to read-md.c.
4800         (md_name): Move to read-md.h.
4801         (initialize_iterators): Use leading_string_hash instead of def_hash
4802         and leading_string_eq_p instead of def_name_eq_p.
4803         (read_name): Move to read-md.c.
4804         (def_hash, def_name_eq_p): Delete.
4805         (read_constants, traverse_md_constants): Move to read-md.c.
4806         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
4807         * read-md.h: Include hashtab.h.
4808         (md_name): Moved from read-rtl.c.
4809         (md_constant): Moved from read-md.h.
4810         (leading_string_hash, leading_string_eq_p, read_name)
4811         (read_constants, traverse_md_constants): Declare.
4812         * read-md.c (md_constants): Moved from read-rtl.c.
4813         (leading_string_hash, leading_string_eq_p): New functions.
4814         (read_name, read_constants, traverse_md_constants): Moved from
4815         read-rtl.c.
4816
4817 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4818
4819         * read-rtl.c (md_name): New structure.
4820         (read_name): Take an md_name instead of a buffer pointer.
4821         Use the "string" field instead of strcpy when expanding constants.
4822         (read_constants): Remove the tmp_char argument.  Update the calls
4823         to read_name, using two local name buffers instead of the tmp_char
4824         argument.  Merge the constant-creation code.
4825         (read_conditions): Remove the tmp_char argument.  Update the calls
4826         to read_name, using a local name buffer instead of the tmp_char
4827         argument.
4828         (read_mapping): Replace tmp_char variable with a local name buffer.
4829         Update the calls to read_name.
4830         (read_rtx_1): Likewise.  Update the calls to read_constants and
4831         read_conditions.
4832
4833 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4834
4835         * Makefile.in (build/read-md.o): Depend on errors.h.
4836         * read-md.h (error_with_line): Declare.
4837         * read-md.c: Include errors.h.
4838         (message_with_line_1): New function, extracted from...
4839         (message_with_line): ...here.
4840         (error_with_line): New function.
4841         * genattrtab.c: If a call to message_with_line is followed by
4842         "have_error = 1;", replace both statements with a call to
4843         error_with_line.
4844         * genoutput.c: Likewise.
4845         * genpreds.c: Likewise.
4846         * genrecog.c: If a call to message_with_line is followed by
4847         "error_count++;", replace both statements with a call to
4848         error_with_line.
4849         (errorcount): Delete.
4850         (main): Don't check it.
4851         * gensupport.c: If a call to message_with_line is followed by
4852         "errors = 1;", replace both statements with a call to error_with_line.
4853         (errors): Delete.
4854         (process_define_cond_exec): Check have_error instead of errors.
4855         (init_md_reader_args_cb): Likewise.  Don't set errors.
4856
4857 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4858
4859         * read-md.h (read_md_file): Declare.
4860         (read_char, unread_char): New functions.
4861         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
4862         (read_quoted_string, read_string): Remove FILE * argument.
4863         * read-md.c (read_md_file): New variable.
4864         (read_md_filename, read_md_lineno): Update comments and remove
4865         unnecessary initialization.
4866         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
4867         (read_escape, read_quoted_string, read_braced_string, read_string):
4868         Remove FILE * argument.  Update calls accordingly, using read_char
4869         and unread_char instead of getc and ungetc.
4870         * rtl.h (read_rtx): Remove FILE * argument.
4871         * read-rtl.c (iterator_group): Remove FILE * argument from
4872         "find_builtin".
4873         (iterator_traverse_data): Remove "infile" field.
4874         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
4875         (add_mapping, read_name, read_constants, read_conditions)
4876         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
4877         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
4878         Remove file arguments from all calls, using read_char and unread_char
4879         instead of getc and ungetc.
4880         * gensupport.c (process_include): Preserve read_md_file around
4881         the include.  Set read_md_file to the handle of the included file.
4882         Update call to read_rtx.
4883         (init_md_reader_args_cb): Set read_md_file to the handle of the file
4884         and remove local FILE *.  Update calls to read_rtx.
4885
4886 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4887
4888         * read-md.h (read_rtx_lineno): Rename to...
4889         (read_md_lineno): ...this.
4890         (read_rtx_filename): Rename to...
4891         (read_md_filename): ...this.
4892         (copy_rtx_ptr_loc): Rename to...
4893         (copy_md_ptr_loc): ...this.
4894         (print_rtx_ptr_loc): Rename to...
4895         (print_md_ptr_loc): ...this.
4896         * read-md.c: Likewise.  Update references after renaming.
4897         (string_obstack): Replace RTL with MD in comment.
4898         (set_rtx_ptr_loc): Rename to...
4899         (set_md_ptr_loc): ...this.
4900         (get_rtx_ptr_loc): Rename to...
4901         (get_md_ptr_loc): ...this.
4902         * genconditions.c: Update references after renaming.
4903         * genemit.c: Likewise.
4904         * genoutput.c: Likewise.
4905         * genpreds.c: Likewise.
4906         * gensupport.c: Likewise.
4907         * read-rtl.c: Likewise.
4908
4909 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
4910
4911         * Makefile.in (READ_MD_H): New variable.
4912         (BUILD_RTL): Add build/read-md.o.
4913         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
4914         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
4915         (build/genattrtab.o, build/genconditions.o build/genemit.o)
4916         (build/genextract.o, build/genflags.o, build/genoutput.o)
4917         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
4918         (build/read-md.o): New rule.
4919         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
4920         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
4921         * coretypes.h: ...here.
4922         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
4923         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
4924         * genattr.c: Include read-md.h.
4925         * genattrtab.c: Likewise.
4926         * genconditions.c: Likewise.
4927         * genemit.c: Likewise.
4928         * genextract.c: Likewise.
4929         * genflags.c: Likewise.
4930         * genoutput.c: Likewise.
4931         * genpreds.c: Likewise.
4932         * genrecog.c: Likewise.
4933         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
4934         (join_c_conditions, print_c_condition, read_rtx_filename)
4935         (read_rtx_lineno): Move to read-md.h.
4936         * read-rtl.c: Include read-md.h.
4937         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
4938         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
4939         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
4940         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
4941         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
4942         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
4943         (read_braced_string, read_string): Move to read-md.c.
4944         (read_rtx): Move some initialization to init_md_reader and call
4945         init_md_reader here.
4946         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
4947         Move to read-md.h.
4948         * gensupport.c: Include read-md.h.
4949         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
4950         * read-md.h, read-md.c: New files.
4951
4952 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
4953
4954         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
4955         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
4956         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
4957         * config/moxie/moxie.c (moxie_function_value): Make static.
4958         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
4959         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
4960
4961 2010-06-10  Martin Jambor  <mjambor@suse.cz>
4962
4963         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
4964         * dbgcnt.def (tree_sra): New counter.
4965         * tree-sra.c: Include dbgcnt.h.
4966         (gate_intra_sra): Check tree_sra debug counter.
4967
4968 2010-06-10  Martin Jambor  <mjambor@suse.cz>
4969
4970         PR tree-optimization/44258
4971         * tree-sra.c (build_access_subtree): Return false iff there is a
4972         partial overlap.
4973         (build_access_trees): Likewise.
4974         (analyze_all_variable_accesses): Disqualify candidates if
4975         build_access_trees returns true for them.
4976
4977 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
4978
4979         PR debug/41371
4980         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
4981         tail-recurse into canonical node.  Fast-forward over
4982         non-canonical VALUEs.
4983
4984 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
4985
4986         PR boostrap/44470
4987         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
4988         (*addsi_1_zext) <TYPE_LEA>: Likewise.
4989         (add lea splitter): Likewise.
4990         (add_zext lea splitter): Likewise.
4991
4992 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
4993
4994         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
4995
4996 2010-06-10  Jan Hubicka  <jh@suse.cz>
4997
4998         * df-problems.c (df_live_problem_data): Add live_bitmaps.
4999         (df_live_alloc): Initialize problem data and live_osbtacks.
5000         (df_live_finalize): Remove obstack, problem data; do not
5001         clear all bitmaps.
5002         (df_live_top_dump, df_live_bottom_dump): Do not dump old
5003         data when not allocated.
5004         (df_live_verify_solution_start): Do not allocate problem data.
5005         (df_live_verify_solution_end): Check if out is allocated.
5006         (struct df_md_problem_data): New structure.
5007         (df_md_alloc): Allocate problem data.
5008         (df_md_free): Free problem data; do not clear bitmaps.
5009
5010 2010-06-10  Jan Beulich  <jbeulich@novell.com>
5011
5012         PR bootstrap/37304
5013         * configure.ac: Replace $() with ${} when intending to expand
5014         variables rather than invoking commands.
5015         * configure: Re-generate.
5016
5017 2010-06-10  Jan Hubicka  <jh@suse.cz>
5018
5019         PR rtl-optimization/44460
5020         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
5021         TYPE_NEEDS_CONSTRUCTING sanity check.
5022
5023 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
5024
5025         * doc/include/fdl.texi: Move to GFDL version 1.3.
5026
5027         * doc/cpp.texi: Move to GFDL version 1.3.
5028         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
5029         * doc/gccint.texi: Move to GFDL version 1.3.
5030         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
5031         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
5032         * doc/invoke.texi: Move to GFDL version 1.3.
5033
5034 2010-06-09  Jan Hubicka  <jh@suse.cz>
5035
5036         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
5037         Break out from ...
5038         (propagate) ... here; swap the order.
5039
5040 2010-06-09  Jan Hubicka  <jh@suse.cz>
5041
5042         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
5043         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
5044         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
5045         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
5046
5047 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
5048
5049         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
5050         Do not the gather memory reference in the outer loop if the step
5051         is not a constant.
5052
5053 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
5054
5055         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
5056         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
5057         8 to 4.  Minor change of the related comments.
5058
5059 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
5060
5061         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
5062         the scev analysis when the variable is not used outside the loop
5063         in a close phi node: call compute_overall_effect_of_inner_loop.
5064
5065 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
5066
5067         * graphite-sese-to-poly.c (single_pred_cond): Renamed
5068         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
5069         (build_sese_conditions_before): Renamed call to single_pred_cond.
5070         (build_sese_conditions_after): Same.
5071
5072 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
5073
5074         * graphite-poly.h: Fix comments and indentation.
5075         * graphite-sese-to-poly.c: Same.
5076         (build_sese_conditions_before): Compute stmt and gbb only when needed.
5077         * tree-chrec.c: Fix comments and indentation.
5078         (tree-ssa-loop-niter.c): Same.
5079
5080 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
5081
5082         PR rtl-optimization/42461
5083         * dce.c (deletable_insn_p): Return true for const or pure calls again.
5084         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
5085
5086 2010-06-09  Jan Hubicka  <jh@suse.cz>
5087
5088         * bitmap.c (bitmap_and): Walk array forward.
5089         (bitmap_and_compl_into): Likewise.
5090         (bitmap_xor): Likewise.
5091         (bitmap_xor_into):  Likewise.
5092         (bitmap_equal_p): Likewise.
5093         (bitmap_intersect_p): Likewise.
5094         (bitmap_intersect_compl_p): Likewise.
5095         (bitmap_ior_and_into): Likewise.
5096         (bitmap_elt_copy): Likewise.
5097         (bitmap_and_compl): Likewise.
5098         (bitmap_elt_ior): Likewise.
5099
5100 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
5101
5102         * opts-common.c (prune_options): Ensure replacement argv array
5103         is correctly terminated by a NULL entry.
5104
5105 2010-06-09  Jan Hubicka  <jh@suse.cz>
5106
5107         * cgraph.h (varpool_first_static_initializer,
5108         varpool_next_static_initializer): Make checking only when
5109         checking enabled.
5110         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
5111         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
5112         gcc_assert to gcc_checking_assert.
5113         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
5114         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
5115         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
5116         op_iter_init_phiuse, op_iter_init_phidef,
5117         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
5118         gcc_checking_assert.
5119         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
5120         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
5121         partition_is_global, live_on_entry, live_on_exit,
5122         live_merge_and_clear): Likewise.
5123         * system.h (gcc_checking_assert): New macro.
5124         * gimple.h (set_bb_seq): Use gcc_checking_assert.
5125
5126 2010-06-09  Jason Merrill  <jason@redhat.com>
5127
5128         * Makefile.in (TAGS): Collect tags info from c-family.
5129
5130 2010-06-09  Jan Hubicka  <jh@suse.cz>
5131
5132         * gimple.h (gcc_gimple_checking_assert): New macro.
5133         (gimple_set_def_ops, gimple_set_use_ops,
5134         gimple_set_vuse, gimple_set_vdef,
5135         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
5136         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
5137         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
5138         gimple_asm_output_op, gimple_asm_output_op_ptr,
5139         gimple_asm_set_output_op, gimple_asm_clobber_op,
5140         gimple_asm_set_clobber_op, gimple_asm_label_op,
5141         gimple_asm_set_label_op, gimple_try_set_kind,
5142         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
5143         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
5144         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
5145         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
5146         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
5147         gimple_omp_for_set_initial, gimple_omp_for_final,
5148         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
5149         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
5150         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
5151         conditional with ENABLE_GIMPLE_CHECKING.
5152         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
5153
5154 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
5155
5156         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
5157         (get_computation_cost_at): Use it.
5158         (determine_use_iv_cost_condition): Likewise.
5159         (determine_iv_cost): Likewise.
5160
5161 2010-06-09  Richard Guenther  <rguenther@suse.de>
5162
5163         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
5164         replace constants.
5165
5166 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
5167
5168         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
5169
5170 2010-06-09  Martin Jambor  <mjambor@suse.cz>
5171
5172         PR tree-optimization/44423
5173         * tree-sra.c (dump_access): Dump also grp_assignment_read.
5174         (analyze_access_subtree): Pass negative allow_replacements to children
5175         if the current type is scalar.
5176
5177 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
5178
5179         PR testsuite/42843
5180         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
5181         * doc/plugins.texi (Plugin license check): Update information
5182         on type of plugin_is_GPL_compatible.
5183         * Makefile.in (PLUGINCC): Define as $(COMPILER).
5184         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
5185
5186 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
5187
5188         * config/arm/arm.c (thumb2_reorg): New function.
5189         (arm_reorg): Call it.
5190         * config/arm/thumb2.md (define_peephole2 for flag clobbering
5191         arithmetic operations): Delete.
5192
5193 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
5194
5195         PR target/44067
5196         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
5197         e500v2 target.
5198
5199 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
5200
5201         PR plugins/44459
5202         * gcc-plugin.h: Encapsulate all declarations in extern "C".
5203
5204 2010-06-08  Jan Hubicka  <jh@suse.cz>
5205
5206         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
5207         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
5208
5209 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
5210
5211         PR tree-optimization/39874
5212         PR middle-end/28685
5213         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
5214         Declare.
5215         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
5216         same_bool_result_p): New.
5217         (and_var_with_comparison, and_var_with_comparison_1,
5218         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
5219         (or_var_with_comparison, or_var_with_comparison_1,
5220         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
5221         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
5222         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
5223         of combine_comparisons.
5224         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
5225
5226 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
5227
5228         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
5229         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
5230         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
5231         pdp11_function_value_regno_p): New functions.
5232         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5233         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5234
5235 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
5236
5237         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
5238         Thumb-2 in the MINUS case.
5239
5240 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5241
5242         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
5243
5244         * doc/gty.texi (GTY Options): Document typed GC allocation and
5245         variable_size GTY option.
5246
5247         * ggc-internal.h: New.
5248
5249         * ggc.h: Update copyright year.
5250         (digit_string): Move to stringpool.c.
5251         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
5252         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
5253         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
5254         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
5255         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
5256         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
5257         (ggc_force_collect, ggc_get_size, ggc_statistics)
5258         (ggc_print_common_statistics): Move to ggc-internal.h.
5259         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
5260         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
5261         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
5262         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
5263         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
5264         (ggc_alloc_zone_pass_stat): Remove.
5265         (ggc_internal_alloc_stat, ggc_internal_alloc)
5266         (ggc_internal_cleared_alloc_stat): New.
5267         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
5268         (ggc_internal_vec_alloc_stat)
5269         (ggc_internal_cleared_vec_alloc_stat)
5270         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
5271         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
5272         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
5273         (ggc_cleared_alloc_ptr_array_two_args): New.
5274         (htab_create_ggc, splay_tree_new_ggc): Redefine.
5275         (ggc_splay_alloc): Change the type of the first argument to
5276         enum gt_types_enum.
5277         (ggc_alloc_string): Make macro.
5278         (ggc_alloc_string_stat): New.
5279         (ggc_strdup): Redefine.
5280         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
5281         (ggc_alloc_rtvec_sized): New.
5282         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
5283         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
5284         (ggc_internal_cleared_alloc_zone_stat)
5285         (ggc_internal_zone_alloc_stat)
5286         (ggc_internal_zone_cleared_alloc_stat)
5287         (ggc_internal_zone_vec_alloc_stat)
5288         (ggc_alloc_zone_rtx_def_stat)
5289         (ggc_alloc_zone_tree_node_stat)
5290         (ggc_alloc_zone_cleared_tree_node_stat)
5291         (ggc_alloc_cleared_gimple_statement_d_stat): New.
5292
5293         * ggc-common.c: Include ggc-internal.h.
5294         (ggc_internal_cleared_alloc_stat): Rename from
5295         ggc_alloc_cleared_stat.
5296         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
5297         (ggc_calloc): Remove.
5298         (ggc_cleared_alloc_htab_ignore_args): New.
5299         (ggc_cleared_alloc_ptr_array_two_args): New.
5300         (ggc_splay_alloc): Add obj_type parameter.
5301         (init_ggc_heuristics): Formatting fixes.
5302
5303         * ggc-none.c: Update copyright year.
5304         (ggc_alloc_stat): Rename to ggc_alloc_stat.
5305         (ggc_alloc_cleared_stat): Rename to
5306         ggc_internal_cleared_alloc_stat.
5307         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
5308
5309         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
5310         Remove references to ggc_alloc in comments.
5311         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
5312         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
5313         (new_ggc_zone, destroy_ggc_zone): Remove.
5314         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
5315
5316         * ggc-zone.c: Include ggc-internal.h.  Remove references to
5317         ggc_alloc in comments.
5318         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
5319         (ggc_internal_alloc_zone_pass_stat): New.
5320         (ggc_internal_cleared_alloc_zone_stat): New.
5321         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
5322         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
5323         (new_ggc_zone, destroy_ggc_zone): Remove.
5324
5325         * stringpool.c: Update copyright year.  Include ggc-internal.h
5326         (digit_vector): Make static.
5327         (digit_string): Moved from ggc.h.
5328         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
5329         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
5330
5331         * Makefile.in (GGC_INTERNAL_H): New.
5332         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
5333         $(GGC_INTERNAL_H) to dependencies.
5334
5335         * gentype.c: Update copyright year.
5336         (walk_type): Accept variable_size GTY option.
5337         (USED_BY_TYPED_GC_P): New macro.
5338         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
5339         whitespace at the end of strings.
5340         (get_type_specifier, variable_size_p): New functions.
5341         (alloc_quantity, alloc_zone): New enums.
5342         (write_typed_alloc_def): New function.
5343         (write_typed_struct_alloc_def): Likewise.
5344         (write_typed_typed_typedef_alloc_def): Likewise.
5345         (write_typed_alloc_defns): Likewise.
5346         (output_typename, write_splay_tree_allocator_def): Likewise.
5347         (write_splay_tree_allocators): Likewise.
5348         (main): Call write_typed_alloc_defns and
5349         write_splay_tree_allocators.
5350
5351         * lto-streamer.h (lto_file_decl_data_ptr): New.
5352
5353         * passes.c (order): Define using cgraph_node_ptr.
5354
5355         * strinpool.c (struct string_pool_data): Declare nested_ptr using
5356         ht_identifier_ptr.
5357
5358         * gimple.h (union gimple_statement_d): Likewise.
5359
5360         * rtl.h (struct rtx_def): Likewise.
5361         (struct rtvec_def): Likewise.
5362
5363         * tree.h (union tree_node): Likewise.
5364
5365         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
5366
5367         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
5368
5369         * tree-scalar-evolution.c (scev_initialize): Likewise.
5370
5371         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
5372
5373         * dwarf2asm.c (dw2_force_const_mem): Likewise.
5374
5375         * omp-low.c (lower_omp_critical): Likewise.
5376
5377         * bitmap.h (struct bitmap_head_def): Update comment to not
5378         reference ggc_alloc.
5379
5380         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
5381
5382         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
5383
5384         * ipa-prop.c (duplicate_ggc_array): Rename to
5385         duplicate_ipa_jump_func_array.  Use typed GC allocation.
5386         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
5387
5388         * gimple.c (gimple_alloc_stat): Use
5389         ggc_alloc_cleared_gimple_statement_d_stat.
5390
5391         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
5392
5393         * tree.c (make_node_stat): Use
5394         ggc_alloc_zone_cleared_tree_node_stat.
5395         (make_tree_vec_stat): Likewise.
5396         (build_vl_exp_stat): Likewise.
5397         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
5398         (make_tree_binfo_stat): Likewise.
5399         (tree_cons_stat): Likewise.
5400
5401         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
5402         (shallow_copy_rtx_stat): Likewise.
5403         (make_node_stat): Likewise.
5404
5405         * lto-symtab.c: Fix comment.
5406
5407         * tree-cfg.c (create_bb): Update comment to not reference
5408         ggc_alloc_cleared.
5409         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
5410
5411         * varpool.c (varpool_node): Use typed GC allocation.
5412         (varpool_extra_name_alias): Likewise.
5413
5414         * varasm.c (emutls_decl): Likewise.
5415         (get_unnamed_section): Likewise.
5416         (get_noswitch_section): Likewise.
5417         (get_section): Likewise.
5418         (get_block_for_section): Likewise.
5419         (build_constant_desc): Likewise.
5420         (create_constant_pool): Likewise.
5421         (force_const_mem): Likewise.
5422
5423         * tree.c (build_vl_exp_stat): Likewise.
5424         (build_real): Likewise.
5425         (build_string): Likewise.
5426         (decl_debug_expr_insert): Likewise.
5427         (decl_value_expr_insert): Likewise.
5428         (type_hash_add): Likewise.
5429         (build_omp_clause): Likewise.
5430
5431         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
5432
5433         * tree-ssa.c (init_tree_ssa): Likewise.
5434
5435         * tree-ssa-structalias.c (heapvar_insert): Likewise.
5436
5437         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
5438
5439         * tree-ssa-loop-niter.c (record_estimate): Likewise.
5440
5441         * tree-ssa-alias.c (get_ptr_info): Likewise.
5442
5443         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
5444
5445         * tree-phinodes.c (allocate_phi_node): Likewise.
5446
5447         * tree-iterator.c (tsi_link_before): Likewise.
5448         (tsi_link_after): Likewise.
5449
5450         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
5451
5452         * tree-dfa.c (create_var_ann): Likewise.
5453
5454         * tree-cfg.c (create_bb): Likewise.
5455
5456         * toplev.c (alloc_for_identifier_to_locale): Likewise.
5457         (general_init): Likewise.
5458
5459         * stringpool.c (stringpool_ggc_alloc): Likewise.
5460         (gt_pch_save_stringpool): Likewise.
5461
5462         * sese.c (if_region_set_false_region): Likewise.
5463
5464         * passes.c (do_per_function_toporder): Likewise.
5465
5466         * optabs.c (set_optab_libfunc): Likewise.
5467         (set_conv_libfunc): Likewise.
5468
5469         * lto-symtab.c (lto_symtab_register_decl): Likewise.
5470
5471         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
5472         (input_eh_region): Likewise.
5473         (input_eh_lp): Likewise.
5474         (make_new_block): Likewise.
5475         (unpack_ts_real_cst_value_fields): Likewise.
5476
5477         * lto-section-in.c (lto_new_in_decl_state): Likewise.
5478
5479         * lto-cgraph.c (input_node_opt_summary): Likewise.
5480
5481         * loop-init.c (loop_optimizer_init): Likewise.
5482
5483         * lambda.h (lambda_vector_new): Likewise.
5484
5485         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
5486
5487         * ira.c (update_equiv_regs): Likewise.
5488
5489         * ipa.c (cgraph_node_set_new): Likewise.
5490         (cgraph_node_set_add): Likewise.
5491         (varpool_node_set_new): Likewise.
5492         (varpool_node_set_add): Likewise.
5493
5494         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
5495         (duplicate_ipa_jump_func_array): Likewise.
5496         (ipa_read_node_info): Likewise.
5497
5498         * ipa-cp.c (ipcp_create_replace_map): Likewise.
5499
5500         * integrate.c (get_hard_reg_initial_val): Likewise.
5501
5502         * gimple.c (gimple_alloc_stat): Likewise.
5503         (gimple_build_omp_for): Likewise.
5504         (gimple_seq_alloc): Likewise.
5505         (gimple_copy): Likewise.
5506
5507         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
5508         (gsi_insert_after_without_update): Likewise.
5509
5510         * function.c (add_frame_space): Likewise.
5511         (insert_temp_slot_address): Likewise.
5512         (assign_stack_temp_for_type): Likewise.
5513         (allocate_struct_function): Likewise.
5514         (types_used_by_var_decl_insert): Likewise.
5515
5516         * except.c (init_eh_for_function): Likewise.
5517         (gen_eh_region): Likewise.
5518         (gen_eh_region_catch): Likewise.
5519         (gen_eh_landing_pad): Likewise.
5520         (add_call_site): Likewise.
5521
5522         * emit-rtl.c (get_mem_attrs): Likewise.
5523         (get_reg_attrs): Likewise.
5524         (start_sequence): Likewise.
5525         (init_emit): Likewise.
5526
5527         * dwarf2out.c (new_cfi): Likewise.
5528         (queue_reg_save): Likewise.
5529         (dwarf2out_frame_init): Likewise.
5530         (new_loc_descr): Likewise.
5531         (find_AT_string): Likewise.
5532         (new_die): Likewise.
5533         (add_var_loc_to_decl): Likewise.
5534         (clone_die): Likewise.
5535         (clone_as_declaration): Likewise.
5536         (break_out_comdat_types): Likewise.
5537         (new_loc_list): Likewise.
5538         (loc_descriptor): Likewise.
5539         (add_loc_descr_to_each): Likewise.
5540         (add_const_value_attribute): Likewise.
5541         (tree_add_const_value_attribute): Likewise.
5542         (add_comp_dir_attribute): Likewise.
5543         (add_name_and_src_coords_attributes): Likewise.
5544         (lookup_filename): Likewise.
5545         (store_vcall_insn): Likewise.
5546         (dwarf2out_init): Likewise.
5547
5548         * dbxout.c (dbxout_init): Likewise.
5549
5550         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
5551
5552         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
5553
5554         * config/score/score7.c (score7_output_external): Likewise.
5555
5556         * config/score/score3.c (score3_output_external): Likewise.
5557
5558         * config/s390/s390.c (s390_init_machine_status): Likewise.
5559
5560         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
5561         (rs6000_init_machine_status): Likewise.
5562         (output_toc): Likewise.
5563
5564         * config/pa/pa.c (pa_init_machine_status): Likewise.
5565         (get_deferred_plabel): Likewise.
5566
5567         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
5568
5569         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
5570
5571         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
5572
5573         * config/mep/mep.c (mep_init_machine_status): Likewise.
5574         (mep_note_pragma_flag): Likewise.
5575
5576         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
5577
5578         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
5579
5580         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
5581
5582         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
5583         (i386_pe_maybe_record_exported_symbol): Likewise.
5584
5585         * config/i386/i386.c (get_dllimport_decl): Likewise.
5586         (ix86_init_machine_status): Likewise.
5587         (assign_386_stack_local): Likewise.
5588
5589         * config/frv/frv.c (frv_init_machine_status): Likewise.
5590
5591         * config/darwin.c (machopic_indirection_name): Likewise.
5592
5593         * config/cris/cris.c (cris_init_machine_status): Likewise.
5594
5595         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
5596
5597         * config/avr/avr.c (avr_init_machine_status): Likewise.
5598
5599         * config/arm/arm.c (arm_init_machine_status): Likewise.
5600
5601         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
5602         (alpha_need_linkage): Likewise.
5603         (alpha_use_linkage): Likewise.
5604
5605         * cgraph.c (cgraph_allocate_node): Likewise.
5606         (cgraph_create_edge_1): Likewise.
5607         (cgraph_create_indirect_edge): Likewise.
5608         (cgraph_add_asm_node): Likewise.
5609
5610         * cfgrtl.c (init_rtl_bb_info): Likewise.
5611
5612         * cfgloop.c (alloc_loop): Likewise.
5613         (rescan_loop_exit): Likewise.
5614
5615         * cfg.c (init_flow): Likewise.
5616         (alloc_block): Likewise.
5617         (unchecked_make_edge): Likewise.
5618
5619         * c-parser.c (c_parse_init): Likewise.
5620         (c_parse_file): Likewise.
5621
5622         * c-decl.c (bind): Likewise.
5623         (record_inline_static): Likewise.
5624         (push_scope): Likewise.
5625         (make_label): Likewise.
5626         (lookup_label_for_goto): Likewise.
5627         (finish_struct): Likewise.
5628         (finish_enum): Likewise.
5629         (c_push_function_context): Likewise.
5630
5631         * bitmap.c (bitmap_element_allocate): Likewise.
5632         (bitmap_gc_alloc_stat): Likewise.
5633
5634         * alias.c (record_alias_subset): Likewise.
5635         (init_alias_analysis): Likewise.
5636
5637 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
5638
5639         * fold-const.c (fold_comparison): Remove redundant parenthesis.
5640         * tree-inline.c (expand_call_inline): Pass translated return value of
5641         cgraph_inline_failed_string to diagnostic function.
5642
5643 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
5644             Shujing Zhao  <pearly.zhao@oracle.com>
5645
5646         PR c/37724
5647         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
5648         implicit bad conversions is initialization.
5649         (error_init): Use gmsgid instead of msgid for argument name and change
5650         the call for error.
5651         (pedwarn_init): Use gmsgid instead of msgid for argument name and
5652         change the call for pedwarn.
5653         (warning_init): Use gmsgid instead of msgid for argument name and
5654         change the call for warning.
5655
5656 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
5657
5658         * config/mips/mips-protos.h (mips_print_operand): Delete.
5659         (mips_print_operand_address): Delete.
5660         * config/mips/mips.h (mips_print_operand_punct): Delete.
5661         (PRINT_OPERAND): Delete.
5662         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
5663         (PRINT_OPERAND_ADDRESS): Delete.
5664         * config/mips/mips.c (mips_print_operand_punct): Make static.
5665         (mips_print_operand_address): Make static.
5666         (mips_print_operand): Make static.  Call
5667         mips_print_operand_punct_valid_p.
5668         (mips_print_operand_punct_valid_p): New function.
5669         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5670         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5671
5672 2010-06-07  Jan Hubicka  <jh@suse.cz>
5673
5674         PR middle-end/44454
5675         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
5676         are allocated.
5677
5678 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
5679
5680         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
5681         name of RECORD.
5682
5683 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5684
5685         * doc/sourcebuild.texi (Effective-Target Keywords, Other
5686         attributes): Document gas.
5687
5688 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
5689
5690         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
5691         <TYPE_LEA>: Split instruction.
5692         <default>: Remove alternative 2 handling.
5693         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
5694         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
5695         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
5696
5697         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
5698         (ashift_zext lea splitter): Use DImode for multiplication.
5699
5700         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
5701         to generate addition.
5702
5703 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
5704
5705         * common.opt (fira-verbose): Use Var.
5706         (fpcc-struct-return): Use Init instead of VarExists.
5707         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
5708         toplev.c.
5709         * flags.h (flag_signed_char, flag_short_enums,
5710         flag_pcc_struct_return, flag_ira_verbose,
5711         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
5712         * toplev.c (flag_detailed_statistics, flag_signed_char,
5713         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
5714         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
5715         * toplev.h (flag_crossjumping, flag_if_conversion,
5716         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
5717         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
5718         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
5719         flag_cprop_registers, time_report, flag_ira_loop_pressure,
5720         flag_ira_coalesce, flag_ira_move_spills,
5721         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
5722
5723 2010-06-07  Jan Hubicka  <jh@suse.cz>
5724
5725         * df-core.c (df_analyze_problem): Do verification after allocation.
5726
5727         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
5728         (df_lr_alloc): Initialize problem data; move bitmaps to
5729         lr_bitmaps obstack.
5730         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
5731         (df_lr_verify_solution_start): Do not initialize problem data;
5732         allocate bitmaps in lr_bitmaps.
5733         (df_lr_verify_solution_end): Do not free problem data.
5734
5735 2010-06-07  Jan Hubicka  <jh@suse.cz>
5736
5737         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
5738         if caller is noreturn.
5739         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
5740         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
5741         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
5742         * ipa-pure-const.c (check_decl): Add IPA parameter.
5743         (state_from_flags): New function.
5744         (better_state, worse_state): New functions.
5745         (check_call): When in IPA mode, do not care about callees.
5746         (check_load, check_store): Update.
5747         (check_ipa_load, check_ipa_store): New.
5748         (check_stmt): When in IPA mode, use IPA checkers.
5749         (analyze_function): Use state_from_flags.
5750         (propagate): Check indirect edges and references.
5751
5752 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
5753
5754         PR rtl-optimization/44404
5755         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
5756         of count_occurrences to see if it's safe to modify mem_insn.
5757
5758 2010-06-07  Richard Guenther  <rguenther@suse.de>
5759
5760         * gimplify.c (gimplify_cleanup_point_expr): For empty body
5761         and EH-only cleanup drop the cleanup instead of inserting it
5762         unconditionally.
5763
5764 2010-06-07  Ira Rosen  <irar@il.ibm.com>
5765
5766         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
5767         documentation.
5768         * targhooks.c (default_builtin_vectorization_cost): New function.
5769         * targhooks.h (default_builtin_vectorization_cost): Declare.
5770         * target.h (enum vect_cost_for_stmt): Define.
5771         (builtin_vectorization_cost): Change argument and comment.
5772         * tree-vectorizer.h: Remove cost model macros.
5773         * tree-vect-loop.c: Include target.h.
5774         (vect_get_cost): New function.
5775         (vect_estimate_min_profitable_iters): Replace cost model macros with
5776         calls to vect_get_cost.
5777         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
5778         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
5779         default implementation.
5780         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
5781         calls to target hook builtin_vectorization_cost.
5782         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
5783         Likewise.
5784         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
5785         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
5786         implementation to return costs.
5787         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
5788         * config/spu/spu.h: Remove vectorizer cost model macros.
5789         * config/i386/i386.h: Likewise.
5790         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
5791         a call to target hook builtin_vectorization_cost.
5792
5793 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
5794
5795         PR target/44319
5796         * config/i386/i386.c (override_options): Turn zee pass on for level 2
5797         and above and defer till target is known.
5798         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
5799         turn off otherwise.
5800
5801 2010-05-25  Jan Hubicka  <jh@suse.cz>
5802
5803         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
5804         (df_compact_blocks): Likewise.
5805         * df.h (struct df): Turn hardware_regs_used,
5806         regular_block_artificial_uses, eh_block_artificial_uses,
5807         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
5808         bitmap_head.
5809         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
5810         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
5811         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
5812         df_scan_blocks, df_insn_delete, df_insn_rescan,
5813         df_insn_rescan_debug_internal, df_insn_rescan_all,
5814         df_process_deferred_rescans, df_process_deferred_rescans,
5815         df_notes_rescan, df_get_call_refs, df_get_call_refs,
5816         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
5817         df_record_entry_block_defs, df_record_exit_block_uses,
5818         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
5819         df_scan_verify): Update.
5820
5821 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
5822
5823         PR c++/44188
5824         * c-common.c (is_typedef_decl): Move this definition ...
5825         * tree.c (is_typedef_decl): ... here.
5826         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
5827         * c-common.h (is_typedef_decl): Move this declaration ...
5828         * tree.h (is_typedef_decl): ... here.
5829         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
5830         * dwarf2out.c (is_naming_typedef_decl): New function.
5831         (gen_tagged_type_die): Split out of ...
5832         (gen_type_die_with_usage): ... this function. When an anonymous
5833         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
5834         is emitted for the typedef.
5835         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
5836         anonymous tagged types.
5837
5838 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5839
5840         PR c/20000
5841         * c-decl.c (grokdeclarator): Delete warning.
5842
5843 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5844
5845         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
5846         newly built CALL_EXPR.
5847         * tree-profile.c (tree_profiling): Don't profile functions produced
5848         for built-in stuff.
5849
5850 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
5851
5852         PR bootstrap/44427
5853         PR bootstrap/44428
5854         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
5855         endianness-independent.
5856
5857 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
5858
5859         * c-common.c: Move to c-family/.
5860         * c-common.def: Likewise.
5861         * c-common.h: Likewise.
5862         * c-cppbuiltin.c: Likewise.
5863         * c-dump.c: Likewise.
5864         * c-format.c: Likewise.
5865         * c-format.h : Likewise.
5866         * c-gimplify.c: Likewise.
5867         * c-lex.c: Likewise.
5868         * c-omp.c: Likewise.
5869         * c.opt: Likewise.
5870         * c-opts.c: Likewise.
5871         * c-pch.c: Likewise.
5872         * c-ppoutput.c: Likewise.
5873         * c-pragma.c: Likewise.
5874         * c-pragma.h: Likewise.
5875         * c-pretty-print.c: Likewise.
5876         * c-pretty-print.h: Likewise.
5877         * c-semantics.c: Likewise.
5878         * stub-objc.c: Likewise.
5879
5880         * gengtype.c (get_file_langdir): Special-case files in c-family/.
5881         (get_output_file_with_visibility): Fix name for c-common.h.
5882         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
5883
5884         * c-tree.h: Update include path for moved files.
5885         * c-lang.c: Likewise.
5886         * c-lang.h: Likewise.
5887         * c-parser.c: Likewise.
5888         * c-convert.c: Likewise.
5889         * c-decl.c: Likewise.
5890         * c-objc-common.c: Likewise.
5891         * configure.ac: Make sure c-family/ exists in the build directory.
5892         * configure: Regenerate.
5893         * Makefile.in: Update paths for moved files.  Regroup files per
5894         location and update dependencies.  Move generated_files down after
5895         ALL_GTFILES_H.
5896
5897         * config/spu/spu-c.c: Update paths for moved files.
5898         * config/mep/mep-pragma.c: Likewise.
5899         * config/darwin-c.c: Likewise.
5900         * config/i386/msformat-c.c: Likewise.
5901         * config/i386/i386-c.c: Likewise.
5902         * config/avr/avr-c.c: Likewise.
5903         * config/sol2-c.c: Likewise.
5904         * config/ia64/ia64-c.c: Likewise.
5905         * config/rs6000/rs6000-c.c: Likewise.
5906         * config/arm/arm.c: Likewise.
5907         * config/arm/arm-c.c: Likewise.
5908         * config/h8300/h8300.c: Likewise.
5909         * config/v850/v850-c.c: Likewise.
5910
5911         * config/t-darwin: Fix dependencies for moved files.
5912         * config/t-sol2: Fix dependencies for moved files.
5913         * config/mep/t-mep: Fix dependencies for moved files.
5914         * config/ia64/t-ia64: Fix dependencies for moved files.
5915         * config/rs6000/t-rs6000: Fix dependencies for moved files.
5916         * config/v850/t-v850: Fix dependencies for moved files.
5917         * config/v850/t-v850e: Fix dependencies for moved files.
5918
5919         * config/m32c/m32c-pragma.c
5920
5921         * po/exgettext: Look in c-family/ also.
5922
5923 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
5924
5925         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
5926         (mark_control_dependent_edges_necessary): Call it instead of marking
5927         the last statement manually.
5928         (propagate_necessity): Likewise.
5929
5930 2010-06-05  Jan Hubicka  <jh@suse.cz>
5931
5932         * basic-block.h (compute_dominance_frontiers): Updated.
5933         (compute_idf): Likewise.
5934
5935         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
5936         for dominance frontiers.
5937         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
5938         (insert_updated_phi_nodes_for): Likewise.
5939         (update_ssa): Likewise.
5940         * cfganal.c (compute_dominance_frontiers_1): Likewise.
5941         (compute_dominance_frontiers): Likewise.
5942         (compute_idf): Likewise.
5943         * df-problems.c (df_md_local_compute): Likewise.
5944
5945 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
5946
5947         * target.h (struct gcc_target): Add memory_move_cost field.
5948         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
5949         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
5950         * targhooks.c (default_memory_move_cost): New function.
5951         * targhooks.h (default_memory_move_cost): Declare function.
5952         * reload.h (memory_move_cost): Declare.
5953         (memory_move_secondary_cost): Change type of 'in' argument to bool.
5954         * reginfo.c (memory_move_cost): New function.
5955         (memory_move_secondary_cost): Change type of 'in' argument to bool.
5956         * ira.h (ira_memory_move_cost): Update comment.
5957         * ira.c: (ira_memory_move_cost): Update comment.
5958         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
5959         with memory_move_cost.
5960         * postreload.c (reload_cse_simplify_set): (Ditto.).
5961         * reload1.c (choose_reload_regs): (Ditto.).
5962         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
5963         (MEMORY_MOVE_COST):  Revise documentation.
5964
5965         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
5966         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
5967         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
5968         type of 'in' argument to bool.
5969         (TARGET_MEMORY_MOVE_COST): Define.
5970
5971 2010-06-05  Jan Hubicka  <jh@suse.cz>
5972
5973         * ipa-pure-const.c (propagate): Fix typo in handling of functions
5974         that cannot return.  Be more careful when merging the results with
5975         previously known ones.
5976
5977 2010-06-05  Matthias Klose  <doko@ubuntu.com>
5978
5979         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
5980         function to add the -iplugindir option.
5981         (find_plugindir_spec_function): Add new declaration and function.
5982         (static_spec_func): Use it for "find-plugindir".
5983
5984 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
5985
5986         PR c++/44361
5987         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
5988         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
5989         statement expression.
5990
5991 2010-06-05  Jan Hubicka  <jh@suse.cz>
5992
5993         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
5994         (df_rd_problem_data): Convert sparse_invalidated_by_call,
5995         dense_invalidated_by_call to bitmap head.
5996         (df_rd_alloc, df_rd_bb_local_compute_process_def,
5997         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
5998         df_rd_start_dump, df_lr_verify_transfer_functions,
5999         df_live_verify_transfer_functions, df_chain_create_bb,
6000         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
6001         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
6002         df_simulate_one_insn_forwards, df_md_alloc,
6003         df_md_bb_local_compute_process_def,
6004         df_md_bb_local_compute_process_def, df_md_local_compute,
6005         df_md_transfer_function df_md_free): Update.
6006
6007 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
6008
6009         PR c/44322
6010         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
6011         target type for ADDR_EXPR; require no changes to qualifiers except
6012         for function types.
6013         * c-tree.h (c_build_type_variant): Remove.
6014
6015 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
6016
6017         * genautomata.c (get_excl_set): Do work per element, not per char.
6018         (check_presence_pattern_sets): Similar.
6019         (check_absence_pattern_sets): Similar.
6020
6021 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
6022
6023         * genautomata.c (curr_state_pass_num): Delete.
6024         (min_issue_delay_pass_states): Delete.
6025         (min_issue_delay): Delete.
6026         (initiate_min_issue_delay_pass_states): Delete.
6027         (output_min_issue_delay_table): Compute min_issue_delay_vect
6028         using a breadth-first search variant.
6029         (output_tables): Don't call initiate_min_issue_delay_pass_states.
6030
6031 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
6032
6033         PR boostrap/44421
6034         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
6035         (df_byte_lr_bb_local_compute): Likewise.
6036
6037 2010-06-03  Jason Merrill  <jason@redhat.com>
6038
6039         Implement noexcept operator (5.3.7)
6040         * c-common.c (c_common_reswords): Add noexcept.
6041         * c-common.h (enum rid): Add RID_NOEXCEPT.
6042
6043 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
6044
6045         * config/darwin-driver.c (darwin_default_min_version): Use
6046         GCC-specific formats in diagnostics.
6047         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
6048         diagnostics.
6049         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
6050         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
6051         eval_spec_function, handle_braces, process_brace_body, main,
6052         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
6053         getenv_spec_function, compare_version_strings,
6054         version_compare_spec_function): Use GCC-specific formats in
6055         diagnostics.
6056
6057 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
6058
6059         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
6060         that operand 0 and operand 1 are equal.
6061         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
6062         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
6063         and operand 1 are equal.
6064         <default>: Ditto.  Remove ??? comment.
6065         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
6066         and operand 1 are equal.
6067         <default>: Ditto.  Remove ??? comment.
6068         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
6069         are equal.
6070         (*add<mode>_4) <default>: Ditto.
6071         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
6072
6073 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
6074
6075         * config/i386/i386-protos.h (ix86_print_operand): Declare.
6076         * config/i386/i386.c (ix86_print_operand): Make non-static.
6077         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
6078         * output.h (output_operand): Declare.
6079         * final.c (output_operand): Make non-static.
6080
6081 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
6082
6083         PR rtl-optimization/44013
6084         * sched-deps.c (add_dependence_list_and_free): Don't free lists
6085         when processing debug insns.
6086
6087         PR debug/41371
6088         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
6089         recursing.  Check that recursion is bounded.  Rename inner var
6090         to avoid hiding incoming argument.
6091
6092 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
6093
6094         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
6095         operands[2] == 255.
6096         (*addqi_3): Ditto.
6097         (*addqi_4): Ditto.
6098         (*addqi_5): Ditto.
6099         (*addqi_ext_1_rex64): Ditto.
6100         (*addqi_ext_1): Ditto.
6101
6102         (*addqi_4): Check for incdec_operand in QImode.
6103
6104         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
6105         using SWI mode iterator.
6106         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
6107         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
6108         mode iterator.
6109         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
6110         using SWI mode iterator.
6111
6112 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6113
6114         PR c/25880
6115         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
6116         * c-format.c (gcc_diag_flag_specs): Add hash.
6117         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
6118         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
6119         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
6120         pp_c_cv_qualifiers. Handle qualifiers spelling here.
6121         (pp_c_type_qualifier_list): Call the function above.
6122         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
6123         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
6124         (WARN_FOR_QUALIFIERS): New macro.
6125         (convert_for_assignment): Use it.
6126
6127 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
6128
6129         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
6130
6131 2010-06-04  Jan Hubicka  <jh@suse.cz>
6132
6133         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
6134         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
6135         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
6136         DF_BYTE_LR_OUT): Update for embedded bitmaps.
6137         * fwprop.c (single_def_use_enter_block): Likewise.
6138         * ddg.c (create_ddg_dep_from_intra_loop_link,
6139         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
6140         * loop-iv.c (latch_dominating_def): Likewise.
6141         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
6142         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
6143         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
6144         df_rd_transfer_function, df_rd_top_dump,
6145         df_rd_bottom_dump): Update.
6146         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
6147         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
6148         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
6149         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
6150         df_lr_verify_solution_start, df_lr_verify_solution_end,
6151         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
6152         df_live_free_bb_info, df_live_alloc, df_live_reset,
6153         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
6154         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
6155         df_live_verify_solution_start, df_live_verify_solution_end,
6156         df_live_verify_transfer_functions, df_chain_create_bb,
6157         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
6158         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
6159         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
6160         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
6161         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
6162         df_byte_lr_transfer_function, df_byte_lr_top_dump,
6163         df_byte_lr_bottom_dump, df_create_unused_note,
6164         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
6165         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
6166         df_md_transfer_function, df_md_init, df_md_confluence_0,
6167         df_md_confluence_n,
6168         df_md_top_dump, df_md_bottom_dump): Update.
6169         (struct df_lr_problem_data): Embedd bitmap headers.
6170
6171 2010-06-04  Jan Hubicka  <jh@suse.cz>
6172
6173         * dce.c (dce_process_block): Do not re-scan already marked
6174         instructions.
6175
6176 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
6177
6178         PR rtl-optimization/39871
6179         PR rtl-optimization/40615
6180         PR rtl-optimization/42500
6181         PR rtl-optimization/42502
6182         * ira.c (init_reg_equiv_memory_loc: New function.
6183         (ira): Call it twice.
6184         * reload.h (calculate_elim_costs_all_insns): Declare.
6185         * ira-costs.c: Include "reload.h".
6186         (regno_equiv_gains): New static variable.
6187         (init_costs): Allocate it.
6188         (finish_costs): Free it.
6189         (ira_costs): Call calculate_elim_costs_all_insns.
6190         (find_costs_and_classes): Take estimated elimination costs
6191         into account.
6192         (ira_adjust_equiv_reg_cost): New function.
6193         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
6194         * reload1.c (init_eliminable_invariants, free_reg_equiv,
6195         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
6196         (elim_bb): New static variable.
6197         (reload): Move code out of here into init_eliminable_invariants and
6198         free_reg_equiv.  Call them.
6199         (calculate_elim_costs_all_insns): New function.
6200         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
6201         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
6202         but call note_reg_elim_costly if we turned a valid memory address
6203         into an invalid one.
6204         * Makefile.in (ira-costs.o): Depend on reload.h.
6205
6206 2010-06-04  Julian Brown  <julian@codesourcery.com>
6207
6208         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
6209         for pool ranges.
6210
6211 2010-06-04  Richard Guenther  <rguenther@suse.de>
6212
6213         PR lto/41584
6214         * cgraph.h (struct varpool_node): Add lto_file_data field.
6215         * lto-cgraph.c (input_varpool_node): Initialize it.
6216
6217 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
6218
6219         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
6220         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
6221         predicate in "type" attribute calculation.
6222         (*addsi_1_zext): Ditto.
6223         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
6224         (*addsi_2_zext): Ditto.
6225         (*add<mode>_3): Ditto.
6226         (*addsi_3_zext): Ditto.
6227         (*add<mode>_5): Ditto.
6228
6229 2010-06-03  Jan Hubicka  <jh@suse.cz>
6230
6231         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
6232         of bitmap_bit_p.
6233         * cfganal.c (compute_dominance_frontiers_1): Likewise.
6234
6235 2010-06-03  Jan Hubicka  <jh@suse.cz>
6236
6237         * df-problems.c (df_create_unused_note, df_note_bb_compute):
6238         micro-optimize the checks when to add new note.
6239
6240 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
6241
6242         * final.c (output_asm_insn): Call
6243         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
6244         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
6245         (output_address): Call targetm.asm_out.print_operand_address.
6246         Update comments.
6247         * target.h (struct gcc_target): Add print_operand,
6248         print_operand_address, and print_operand_punct_valid_p fields.
6249         * targhooks.h (default_print_operand): Declare.
6250         (default_print_operand_address): Declare.
6251         (default_print_operand_punct_valid_p): Declare.
6252         * targhooks.c (default_print_operand): Define.
6253         (default_print_operand_address): Define.
6254         (default_print_operand_punct_valid_p): Define.
6255         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
6256         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
6257         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
6258         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
6259         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
6260         * vmsdbgout.c (addr_const_to_string): Update comment.
6261         * config/i386/i386.c (print_operand): Rename to...
6262         (ix86_print_operand): ...this.  Make static.
6263         (print_operand_address): Rename to...
6264         (ix86_print_operand_address): ...this.  Make static.  Call
6265         ix86_print_operand instead of PRINT_OPERAND.
6266         (ix86_print_operand_punct_valid_p): New function.
6267         (TARGET_PRINT_OPERAND): Define.
6268         (TARGET_PRINT_OPERAND_ADDRESS): Define.
6269         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
6270         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
6271         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6272         (PRINT_OPERAND): Delete.
6273         (PRINT_OPERAND_ADDRESS): Delete.
6274         * config/i386/i386-protos.h (print_operand): Delete prototype.
6275         (print_operand_address): Delete prototype.
6276
6277 2010-06-03  Richard Guenther  <rguenther@suse.de>
6278
6279         PR tree-optimization/44403
6280         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
6281         Preserve pointer qualifiers.
6282         (vect_create_data_ref_ptr): Likewise.
6283
6284 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
6285
6286         PR c++/44294
6287         * defaults.h (MAX_FIXED_MODE_SIZE): New.
6288
6289         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
6290
6291 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
6292
6293         PR debug/44375
6294         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
6295         return false if merging the bbs would lead to goto_locus
6296         location being lost from the IL.
6297
6298 2010-06-03  Jan Hubicka  <jh@suse.cz>
6299             Jakub Jelinek  <jakub@redhat.com>
6300
6301         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
6302         set->regs[i] is NULL or has just one entry.
6303
6304 2010-06-03  Jan Hubicka  <jh@suse.cz>
6305
6306         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
6307         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
6308
6309 2010-06-03  Paul Brook  <paul@codesourcery.com>
6310
6311         * config/arm/arm.c (FL_TUNE): Define.
6312         (arm_default_cpu, arm_cpu_select): Remove.
6313         (all_cores): Populate core field.
6314         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
6315         (arm_find_cpu): New function.
6316         (arm_handle_option): Lookup cpu/architecture names.
6317         (arm_override_options): Cleanup mcpu/march/mtune handling.
6318         (arm_file_start): Ditto.
6319
6320 2010-06-03  Alan Modra  <amodra@gmail.com>
6321
6322         PR target/44169
6323         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
6324         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
6325         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
6326         (rs6000_emit_load_toc_table): Likewise.
6327
6328 2010-06-02  Jan Hubicka  <jh@suse.cz>
6329
6330         * passes.c (init_optimization_passes): Put ipa reference
6331         after ipa pure-const.
6332
6333 2010-06-02  Jan Hubicka  <jh@suse.cz>
6334
6335         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
6336         calls_read_all and calls_write_all.
6337         (get_reference_optimization_summary): Fix formatting.
6338         (is_proper_for_analysis): Check that decl is not readonly.
6339         (propagate_bits): Check CONST/PURE/noreturn flags.
6340         (ipa_init): Move all_module_statics to optimization_summary_obstack.
6341         (analyze_function): Ignore indirect edges.
6342         (copy_global_bitmap): For all module statics, do nothing.
6343         (generate_summary): Do not print calls_read_all/calls_write_all.
6344         (read_write_all_from_decl): Take node as argument; check
6345         cgraph_node_cannot_return.
6346         (propagate): Reorganize read_all/write_all computation;
6347         check indirect edges; check ecf flags; use all_module_statics
6348         in the results; do not free all_module_statics.
6349         (stream_out_bitmap): Handle all_module_statics.
6350         (ipa_reference_write_optimization_summary): Likewise; use
6351         varpool/cgraph encoders to get boundaries.
6352         (ipa_reference_read_optimization_summary): Read in all_module_statics;
6353         use it when possible.
6354
6355 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6356
6357         PR target/44218
6358         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
6359         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
6360
6361         * doc/extend.texi (powerpc builtins): Document vec_recip,
6362         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
6363
6364         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
6365         (rs6000_emit_swrsqrt): Ditto.
6366         (rs6000_emit_swdivsf): Delete.
6367         (rs6000_emit_swdivdf): Ditto.
6368         (rs6000_emit_swrsqrtsf): Ditto.
6369
6370         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
6371         describe the reciprocal estimate support for each type.
6372         (recip_options): Map -mrecip=<opt> into option bits.
6373         (gen_2arg_fn_t): New typedef for binary rtx gen function.
6374         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
6375         reciprocal estimate instructions.
6376         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
6377         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
6378         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
6379         cost information if -mdebug=cost or -mdebug=reg.
6380         (rs6000_override_options): Set -mrecip-precision for power6, and
6381         power7 machines.  If -mvsx or -mdfp, enable various options that
6382         came in previous instruction set ISAs, unless the option was
6383         explicitly disabled by the command line option.  Parse
6384         -mrecip=<opt> options.
6385         (rs6000_builtin_vectorized_function): Add support for vectorizing
6386         the reciprocal estimate builtins and expansions.
6387         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
6388         (bdesc_2arg): Add reciprocal estimate builtins.
6389         (bdesc_1arg): Add reciprocal square root estimate builtins.
6390         (rs6000_expand_builtin): Rewrite to use a switch statement,
6391         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
6392         (rs6000_init_builtins): Create declarations for reciprocal
6393         estimate builtins.
6394         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
6395         sized, prefer traditional floating point registers, if integer
6396         vector types, prefer altivec registers.  Don't actually look at
6397         the memory address any more.
6398         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
6399         builtins.
6400         (rs6000_load_constant_and_splat): New helper function to load up
6401         the constant for reciprocal estimate instructions.
6402         (rs6000_emit_madd): New helper function for generating
6403         multiply/add type instructions, based on the current switches.
6404         (rs6000_emit_msub): Ditto.
6405         (rs6000_emit_mnsub): Ditto.
6406         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
6407         replace a divide with a reciprocal estimate and fixup, adding
6408         support for machines with high precision and vectors.
6409         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
6410         low precision machines.
6411         (rs6000_emit_swdiv): New common function to be called to replace a
6412         division with reciprocal estimate and fixup.
6413         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
6414         for double and vector types.  Add support for high precision machines.
6415
6416         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
6417         the reciprocal estimate instructions can be generated.
6418         (TARGET_FRE): Ditto.
6419         (TARGET_FRSQRTES): Ditto.
6420         (TARGET_FRSQRTE): Ditto.
6421         (RS6000_RECIP_*): New macros for reciprocal estimate support.
6422
6423         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
6424         square root estimate on vectors.
6425         (re<mode>2): New insn for reciprocal division estimate on vectors.
6426
6427         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
6428         New builtin.
6429         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
6430         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
6431         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
6432         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
6433         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
6434         (RS6000_BUILTIN_RSQRT): Ditto.
6435         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
6436         floating point builtin.
6437
6438         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6439         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
6440         __RECIP_PRECISION__ based on the command line switches.
6441         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
6442
6443         * config/rs6000/rs6000.opt (-mrecip): Document add support for
6444         replacing division instructions with reciprocal estimate and fixup.
6445         (-mrecip=<opt>): New option.
6446         (-mrecip-precision): Ditto.
6447
6448         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
6449         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
6450         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
6451         precision scalar.
6452
6453         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
6454         (UNSPEC_VREFP): Ditto.
6455         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
6456         conterparts with regard to support of -mno-fused-madd and -ffast-math.
6457         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
6458         reciprocal estimate instructions to be generated.
6459         (altivec_vrefp): Ditto.
6460
6461         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
6462         estimate support.
6463         (rreg): New mode attribute for reciprocal estimate support.
6464         (recip<mode>3): New insn for division using reciprocal estimate
6465         and fixup builtins.
6466         (divide define_split): New define_split to convert floating point
6467         division to use reciprocal estimate if the user used the
6468         appropriate options and the split is run when we can add new
6469         pseudo registers for the fixup.
6470         (rsqrt<mode>2): New insn for reciprocal square root support.
6471         (recipsf3): Move into recip<mode>3.
6472         (recipdf3): Ditto.
6473         (fres): Use TARGET_FRES.
6474         (rsqrtsf2): Move into rsqrt<mode>2.
6475         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
6476         (copysignsf3): Add support for VSX.
6477         (fred): Use TARGET_FRE.
6478         (fred_fpr): Ditto.
6479         (rsqrtdf_internal1): New function for frsqrte instruciton.
6480
6481         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
6482         (vec_rsqrt): Ditto.
6483
6484 2010-06-03  Richard Guenther  <rguenther@suse.de>
6485
6486         PR middle-end/44291
6487         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
6488         (set_user_assembler_libfunc): Likewise.
6489
6490 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
6491
6492         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
6493         defaults.h.
6494         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
6495         to defaults.h
6496         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
6497         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
6498         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
6499         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
6500         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
6501         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
6502         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
6503         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
6504         * defaults.h: Updated for above mentioned changes.
6505
6506 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
6507
6508         * c-common.c: Remove header include of tm_p.h.
6509         * Makefile.in (c-common.o): Remove TM_P_H dependency.
6510
6511 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
6512
6513         * tree.h (struct tree_decl_map): New type.
6514         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
6515         (tree_decl_map_hash): New prototype.
6516         (debug_expr_for_decl, value_expr_for_decl): Change into
6517         tree_decl_map hashtab from tree_map.
6518         (init_ttree): Adjust initialization.
6519         (tree_decl_map_hash): New function.
6520         (decl_debug_expr_lookup, decl_debug_expr_insert,
6521         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
6522
6523 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6524
6525         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
6526         linker emulations.
6527         * configure: Regenerate.
6528         * config.in: Regenerate.
6529
6530         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
6531         (X86_64_EMULATION): Define.
6532         (TARGET_LD_EMULATION): Use them.
6533
6534         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
6535         (SPARC64_EMULATION): Define.
6536         (LINK_ARCH_SPEC): Use them.
6537
6538 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
6539
6540         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
6541         smallest_mode_for_size for computing the precision types of new
6542         graphite IVs.  Do not call lang_hooks.types.type_for_size.
6543
6544 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
6545
6546         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
6547         information.
6548         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
6549
6550 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
6551
6552         PR middle-end/44363
6553         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
6554         return false instead.
6555
6556 2010-06-02  Jan Hubicka  <jh@suse.cz>
6557
6558         PR middle-end/44295
6559         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
6560         create new cgraph node to check callee.
6561
6562 2010-06-02  Richard Guenther  <rguenther@suse.de>
6563
6564         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
6565
6566 2010-06-02  Richard Guenther  <rguenther@suse.de>
6567
6568         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
6569         (lto_wrapper_cleanup): ... this.  Do not exit.
6570         (fatal): Adjust.  Exit here.
6571         (fatal_perror): Likewise.
6572         (fatal_signal): New function.
6573         (main): Set up signal handlers to cleanup temporary files.
6574         * Makefile.in (lto-wrapper.o): Adjust dependencies.
6575
6576 2010-06-02  Richard Guenther  <rguenther@suse.de>
6577
6578         PR tree-optimization/44377
6579         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
6580
6581 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6582
6583         * config/s390/2097.md (z10_fhex): Remove insn reservation.
6584         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
6585         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
6586         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
6587         instruction.
6588         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
6589
6590 2010-06-02  Jan Hubicka  <jh@suse.cz>
6591
6592         * bitmap.c (bitmap_descriptor): Add search_iter.
6593         (bitmap_find_bit): Increment it.
6594         (print_statistics): Print it.
6595
6596 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
6597
6598         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
6599         instead of gimple_build_call_vec.  Delete unnecessary local variable.
6600
6601 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
6602
6603         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
6604         change from yesterday.
6605
6606 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
6607
6608         * c-ada-spec.c: Clean up redundant includes.
6609
6610 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
6611
6612         * gimplify.c: Do not include except.h and optabs.h.
6613         (gimplify_body): Do not initialize RTL profiling.
6614         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
6615         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
6616         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
6617         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
6618         langhooks.h.
6619
6620         * tree-pretty-print.h: Include pretty-print.h.
6621         * gimple-pretty-print.h: Include pretty-print.h.
6622
6623         * tree-pretty-print.c: Do not include diagnostic.h.
6624         * tree-vrp.c: Likewise.
6625         * tree-tailcall.c: Likewise
6626         * tree-scalar-evolution.c: Likewise
6627         * tree-ssa-dse.c: Likewise
6628         * tree-chrec.c: Likewise
6629         * tree-ssa-sccvn.c: Likewise
6630         * tree-ssa-copyrename.c: Likewise
6631         * tree-nomudflap.c: Likewise
6632         * tree-call-cdce.c: Likewise
6633         * tree-stdarg.c: Likewise
6634         * tree-ssa-math-opts.c: Likewise
6635         * tree-nrv.c: Likewise
6636         * tree-ssa-sink.c: Likewise
6637         * tree-browser.c: Likewise
6638         * tree-ssa-loop-ivcanon.c: Likewise
6639         * tree-ssa-loop.c: Likewise
6640         * tree-parloops.c: Likewise
6641         * tree-ssa-address.c: Likewise
6642         * tree-ssa-ifcombine.c: Likewise
6643         * tree-if-conv.c: Likewise
6644         * tree-data-ref.c: Likewise
6645         * tree-affine.c: Likewise
6646         * tree-ssa-phiopt.c: Likewise
6647         * tree-ssa-coalesce.c: Likewise
6648         * tree-ssa-pre.c: Likewise
6649         * tree-ssa-live.c: Likewise
6650         * tree-predcom.c: Likewise
6651         * tree-ssa-forwprop.c: Likewise
6652         * tree-ssa-dce.c: Likewise
6653         * tree-ssa-ter.c: Likewise
6654         * tree-ssa-loop-prefetch.c: Likewise
6655         * tree-optimize.c: Likewise
6656         * tree-ssa-phiprop.c: Likewise
6657         * tree-object-size.c: Likewise
6658         * tree-outof-ssa.c: Likewise
6659         * tree-ssa-structalias.c: Likewise
6660         * tree-switch-conversion.c: Likewise
6661         * tree-ssa-reassoc.c: Likewise
6662         * tree-ssa-operands.c: Likewise
6663         * tree-vectorizer.c: Likewise
6664         * tree-vect-data-refs.c: Likewise
6665         * tree-vect-generic.c: Likewise
6666         * tree-vect-stmts.c: Likewise
6667         * tree-vect-patterns.c: Likewise
6668         * tree-vect-slp.c: Likewise
6669         * tree-vect-loop.c: Likewise
6670         * tree-ssa-loop-ivopts.c: Likewise
6671         * tree-ssa-loop-im.c: Likewise
6672         * tree-ssa-loop-niter.c: Likewise
6673         * tree-ssa-loop-unswitch.c: Likewise
6674         * tree-ssa-loop-manip.c: Likewise
6675         * tree-ssa-loop-ch.c: Likewise
6676         * tree-dump.c: Likewise
6677         * tree-complex.c: Likewise
6678
6679         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
6680         * tree-ssa-uninit.c: Likewise
6681         * tree-ssa-threadupdate.c: Likewise
6682         * tree-ssa-uncprop.c: Likewise
6683         * tree-ssa-ccp.c: Likewise
6684         * tree-ssa-dom.c: Likewise
6685         * tree-ssa-propagate.c: Likewise
6686         * tree-ssa-alias.c: Likewise
6687         * tree-dfa.c: Likewise
6688         * tree-cfgcleanup.c: Likewise
6689         * tree-sra.c: Likewise
6690         * tree-ssa-copy.c: Likewise
6691         * tree-ssa.c: Likewise
6692         * tree-profile.c: Likewise
6693         * tree-cfg.c: Likewise
6694         * tree-ssa-threadedge.c: Likewise
6695         * tree-vect-loop-manip.c: Likewise
6696
6697         * tree-inline.c: Do not include diagnostic.h and expr.h.
6698         Include rtl.h.
6699         (copy_decl_for_dup_finish): Do not use NULL_RTX.
6700
6701         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
6702         * tree-loop-distribution.c: Likewise.
6703
6704 2010-06-01  Jan Hubicka  <jh@suse.cz>
6705
6706         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
6707
6708 2010-06-01  Jan Hubicka  <jh@suse.cz>
6709
6710         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
6711         remove return value.
6712         (split_bbs_on_noreturn_calls) .... here.
6713         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
6714         * tree-flow.h (fixup_noreturn_call): New.
6715
6716 2010-06-01  Jan Hubicka  <jh@suse.cz>
6717
6718         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
6719
6720 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
6721
6722         * tree.h (build_nt_call_list): Delete.
6723         * tree.c (build_nt_call_list): Delete.
6724
6725 2010-06-01  Jan Hubicka  <jh@suse.cz>
6726
6727         * fwprop.c: Make emit-rtl.h include last.
6728         * rtlanal.c: Include emit-rtl.h.
6729         * genautomata.c: Output emit-rtl include into insn-automata.c
6730         * df-scan.c: Include emit-rtl.h.
6731         * haifa-sched.c: Indlude emit-rtl.h.
6732         * mode-switching.c: Indlude emit-rtl.h.
6733         * graph.c: Indlude emit-rtl.h.
6734         * sel-sched.c: Include emit-rtl.h.
6735         * sel-sched-ir.c: Include emit-rtl.h.
6736         * ira-build.c: Include emit-rtl.h.
6737         * emit-rtl.c: (first_insn, last_insn): Remove defines.
6738         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
6739         Move to emit-rtl.h.
6740         (set_new_first_and_last_insn, get_last_insn_anywhere,
6741         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
6742         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
6743         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
6744         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
6745         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
6746         Use accessor functions.
6747         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
6748          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
6749         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
6750         mem_expr_equal_p): Move here from rtl.h.
6751         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
6752         Move here from emit-rtl.c; make inline.
6753         * cfglayout.h: Include emit-rtl.h.
6754         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
6755          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
6756         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
6757         mem_expr_equal_p, get_insns, set_first-insn,
6758         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
6759         * reg-stack.c: Include emit-rtl.h.
6760         * dce.c: Likewise.
6761
6762 2010-06-01  Jan Hubicka  <jh@suse.cz>
6763
6764         * cgraph.h (tree_function_versioning): Update prototype.
6765         (cgraph_function_versioning): Update prototype.
6766         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
6767         bitmap.
6768         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
6769         (cgraph_materialize_clone, save_inline_function_body): Update use of
6770         tree_function_versioning.
6771         * tree-inline.c (copy_bb): Look for previous copied block to link
6772         after; fix debug output.
6773         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
6774         (copy_body): Likewise.
6775         (expand_call_inline): Update use of copy_body.
6776         (tree_function_versioning): Update use of copy body; accept
6777         blocks_to_copy and new_entry.
6778
6779 2010-06-01  Jan Hubicka  <jh@suse.cz>
6780
6781         * gegenrtl.c: Remove unnecesary prototypes.
6782         (gendecl): Remove.
6783         (gendef): Produce static inline.
6784         (gencode): Remove.
6785         (main): Do not decode parameters; generate header only.
6786         * Makefile.in (genrtl.c): Remove.
6787
6788 2010-06-01  Jan Hubicka  <jh@suse.cz>
6789
6790         * tree-switch-conversion.c (build_one_array): Make it readonly.
6791
6792 2010-06-01  Richard Guenther  <rguenther@suse.de>
6793
6794         * optabs.c (init_optabs): Guard all accesses to reinit.
6795         * ipa-pure-const.c (propagate): Fix another typo.
6796         * opts.c (common_handle_option): Split assignment to bool.
6797         * c-opts.c (c_common_handle_option): Likewise.
6798
6799 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
6800             Matthew Gingell  <gingell@adacore.com>
6801
6802         * doc/invoke.texi: Mention -fdump-ada-spec.
6803         * tree-dump.c (dump_files): Add ada-spec.
6804         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
6805         * tree-pass.h (tree_dump_index): Add TDI_ada.
6806         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
6807         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
6808         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
6809         * c-decl.c: Include c-ada-spec.h.
6810         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
6811         functions.
6812         (c_write_global_declarations): Add handling of -fdump-ada-spec.
6813         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
6814         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
6815         * c-ada-spec.h, c-ada-spec.c: New files.
6816
6817 2010-06-01  Richard Guenther  <rguenther@suse.de>
6818
6819         PR lto/43853
6820         * ipa-pure-const.c (get_function_state): Hand back varying state
6821         if we do not have one.
6822         (has_function_state): New function.
6823         (duplicate_node_data): Adjust.
6824         (remove_node_data): Likewise.
6825         (pure_const_write_summary): Likewise.
6826         (propagate): Likewise.  Fix typo.
6827
6828 2010-06-01  Jan Hubicka  <jh@suse.cz>
6829
6830         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
6831         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
6832         (execute_all_ipa_transforms): Do not play with the states.
6833
6834 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
6835
6836         * config/arm/t-linux-androideabi: New.
6837         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
6838
6839 2010-06-01  Jan Hubicka  <jh@suse.cz>
6840
6841         * tree-inline.c (estimate_num_insns): For stdarg functions look
6842         into call statement to count cost of argument passing.
6843
6844 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
6845
6846         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
6847         argument for fprintf.
6848         (ix86_output_addr_diff_elt): Likewise.
6849         (x86_function_profiler): Likewise.
6850         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
6851         (LPREFIX): Likewise.
6852         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
6853
6854 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
6855
6856         PR target/44338
6857         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
6858         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
6859         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
6860         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
6861         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
6862         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
6863         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
6864         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
6865         TARGET_FUSED_MADD.
6866
6867 2010-05-31  Jan Hubicka  <jh@suse.cz>
6868
6869         * tree.h (tree_range_check_failed): Declare noreturn.
6870
6871 2010-05-31  Jan Hubicka  <jh@suse.cz>
6872
6873         * gimple.c (gimple_call_builtin_p): New function.
6874         * gimple.h (gimple_call_builtin_p): Declare.
6875         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
6876         to exit.
6877         (execute_warn_function_return): BUILT_IN_RETURN is return.
6878         (split_critical_edges): Return edges are not critical.
6879         (is_ctrl_altering_stmt): Builtin_in_return is altering.
6880         (gimple_verify_flow_info): Handle built_in_return.
6881         (execute_warn_function_return): Handle built_in_return.
6882         * ipa-pure-const.c (check_call): Ignore builtin_return.
6883
6884 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
6885
6886         PR middle-end/44337
6887         * expr.c (expand_assignment): Don't store anything for out-of-bounds
6888         array accesses with non-MEM.
6889
6890         PR tree-optimization/44182
6891         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
6892         newly needs to end a bb is followed by debug stmts, instead return
6893         true from the function at the end.
6894         (maybe_move_debug_stmts_to_successors): New function.
6895         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
6896
6897 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
6898
6899         PR target/44161
6900         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
6901
6902 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
6903
6904         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
6905         for nested functions in non-optimized compilation.
6906
6907 2010-05-31  Richard Guenther  <rguenther@suse.de>
6908
6909         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
6910
6911 2010-05-30  Jan Hubicka  <jh@suse.cz>
6912
6913         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
6914
6915 2010-05-30  Richard Guenther  <rguenther@suse.de>
6916
6917         PR lto/42975
6918         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
6919         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
6920         no longer needed.
6921
6922 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
6923
6924         * config/darwin.c (output_objc_section_asm_op): Add comment.
6925         (name_needs_quotes): Add '_' to list of valid comment chars.
6926         (machopic_output_function_base_name): Remove unneeded quotes.
6927         (darwin_encode_section_info): Adjust asm whitespace.
6928         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
6929         (ASM_OUTPUT_LOCAL): Ditto.
6930         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
6931         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
6932         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
6933
6934 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
6935
6936         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
6937         RS6000_OUTPUT_BASENAME unconditionally.
6938         (rs6000_output_function_epilogue): Likewise.
6939
6940 2010-05-30  Jan Hubicka  <jh@suse.cz>
6941
6942         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
6943         nodes.
6944
6945 2010-05-30  Richard Guenther  <rguenther@suse.de>
6946
6947         * tree-cfg.c (verify_gimple_assign_single): Implement
6948         verification for COND_EXPR rhs.
6949
6950 2010-05-30  Jan Hubicka  <jh@suse.cz>
6951
6952         * cgraph.h (cgraph_dump_file): Declare.
6953         * cgraphunit.c (cgraph_dump_file): Export.
6954         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
6955
6956 2010-05-30  Jan Hubicka  <jh@suse.cz>
6957
6958         * dwarf2out.c (reference_to_unused,
6959         premark_types_used_by_global_vars_helper): Avoid creation of new
6960         varpool nodes.
6961
6962 2010-05-30  Jan Hubicka  <jh@suse.cz>
6963
6964         * cgraph.h (cgraph_node_cannot_return,
6965         cgraph_edge_cannot_lead_to_return): New functions.
6966         * cgraph.c (cgraph_node_cannot_return,
6967         cgraph_edge_cannot_lead_to_return): Use them.
6968         * ipa-pure-const.c (pure_const_names): New static var.
6969         (check_call): Handle calls not leading to return.
6970         (pure_const_read_summary): Dump info read.
6971         (propagate): Dump info about propagation process; ignore side effects
6972         of functions not leading to exit; fix handling of pure functions.
6973
6974 2010-05-30  Jan Hubicka  <jh@suse.cz>
6975
6976         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
6977         for tail call epilogues.
6978
6979 2010-05-30  Jan Hubicka  <jh@suse.cz>
6980
6981         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
6982         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
6983         dump files.
6984
6985 2010-05-29  Jan Hubicka  <jh@suse.cz>
6986
6987         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
6988         node; remove references in node we no longer keep in cgrpah but need
6989         body of.
6990
6991 2010-05-29  Jan Hubicka  <jh@suse.cz>
6992
6993         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
6994
6995 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6996
6997         PR target/44165
6998         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
6999
7000 2010-05-29  Jan Hubicka  <jh@suse.cz>
7001
7002         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
7003         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
7004         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
7005         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
7006         debug_names_replaced_by, debug_update_ssa): Likewise.
7007         * sbitmap.c (debug_sbitmap): Likewise.
7008         * genrecog.c (debug_decision, debug_decision_list): Likewise.
7009         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
7010         debug_tree_chain): Likewise.
7011         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
7012         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
7013         * optabs.c  (debug_optab_libfuncs): Likewise.
7014         (verify_loop_closed_ssa): Likewise.
7015         * value-prof.c (verify_histograms): Likewise.
7016         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
7017         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
7018         * cfghooks.c (verify_flow_info): Likewise.
7019         * fold-const.c (debug_fold_checksum): Likewise.
7020         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
7021         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
7022         Likewise.
7023         * omega.c (debug_omega_problem): Likewise.
7024         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
7025         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
7026         * dominance.c (verify_dominators, debug_dominance_info,
7027         debug_dominance_tree): Likewise.
7028         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
7029         * df_regno_debug, df_ref_debug,
7030         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
7031         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
7032         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
7033         * sel-sched.c (debug_state): Likewise.
7034         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
7035         Likewise.
7036         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
7037         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
7038         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
7039         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
7040         Likewise.
7041         * c-pretty-print.c (debug_c_tree): Likewise.
7042         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
7043         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
7044         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
7045         * ebitmap.c (debug_ebitmap): Likewise.
7046         * function.c (debug_find_var_in_block_tree): Likewise.
7047         * print-rtl.c (debug_rtx): Likewise.
7048         (debug_rtx_count): Likewise.
7049         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
7050         * stor-layout.c (debug_rli): Likewise.
7051         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
7052         * tree-data-ref.c (debug_data_references,
7053         debug_data_dependence_relations, debug_data_reference,
7054         debug_data_dependence_relation, debug_rdg_vertex,
7055         debug_rdg_component, debug_rdg): Likewise.
7056         * tree-affine.c (debug_aff): Likewise.
7057         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
7058         Likewise.
7059         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
7060         * emit-rtl.c (verify_rtl_sharing): Likewise.
7061         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
7062         debug_value_expressions): Likewise.
7063         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
7064         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
7065         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
7066         * cfglayout.c (verify_insn_chain): Likewise.
7067         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
7068         debug_clast_stmt, debug_generated_program): Likewise.
7069         * ggc-page.c (debug_print_page_list): Likewise.
7070         * tree-ssa-ter.c (debug_ter): Likewise.
7071         * graphite-dependences.c (debug_pddr): Likewise.
7072         * sched-deps.c (debug_ds): Likewise.
7073         * tree-ssa.c (verify_ssa): Likewise.
7074         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
7075         debug_scattering_functions, debug_iteration_domains, debug_pdr,
7076         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
7077         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
7078         * tree-inline.c (debug_find_tree): Likewise.
7079         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
7080         debug_ppl_powerset_matrix): Likewise.
7081         * var-tracking.c (debug_dv): Likewise.
7082         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
7083         * cfgloop.c (verify_loop_structure): Likewise.
7084         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
7085         * c-common.c (verify_sequence_points): Likewise.
7086         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
7087         debug_candidates, debug_rgn_dependencies): Likewise.
7088         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
7089         * debug_constraint_graph, debug_solution_for_var,
7090         debug_sa_points_to_info): Likewise.
7091         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
7092         Likewie.
7093         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
7094         debug_loops, debug_loop, debug_loop_num): Likewise.
7095         * passes.c (debug_pass): Likewise.
7096         (dump_properties): Likewise; add cfglayout property.
7097         (debug_properties): Likewise.
7098         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
7099         * varpool.c (debug_varpool): Likewise.
7100         * regcprop.c (debug_value_data): Likewise.
7101         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
7102         debug_immediate_uses_for): Likewise.
7103
7104 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
7105
7106         PR bootstrap/44315
7107         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
7108         Filter out insn-flags.h.
7109
7110 2010-05-29  Jan Hubicka  <jh@suse.cz>
7111
7112         * cgraph.h (struct varpool_node_set_def,
7113         struct cgraph_node_set_def): Remove unused AUX pointer.
7114         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
7115         VEC_empty macro.
7116
7117 2010-05-29  Jan Hubicka  <jh@suse.cz>
7118
7119         PR middle-end/44324
7120         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
7121
7122 2010-05-29  Richard Guenther  <rguenther@suse.de>
7123
7124         * lto-streamer.c (cached_bp): New global variable.
7125         (bitpack_create): Return the cached bitpack, if available.
7126         (bitpack_delete): Clear and cache the bitpack, if appropriate.
7127         (bp_pack_value): Remove redundant asserts.
7128
7129 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
7130
7131         PR middle-end/44306
7132         * tree-if-conv.c (is_true_predicate): New.
7133         (is_predicated): Use is_true_predicate.
7134         (add_to_predicate_list): Same.  Do not use unshare_expr.
7135         (add_to_dst_predicate_list): Same.
7136
7137 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
7138
7139         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
7140         field on edges.
7141         (predicate_bbs): Same.
7142         (clean_predicate_lists): Same.
7143         (find_phi_replacement_condition): Do not AND the predicate from
7144         edge->aux.
7145
7146 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
7147
7148         PR bootstrap/44315
7149         * Makefile.in (build/gencondmd.o): Add a missing `\'.
7150
7151 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7152
7153         PR target/44261
7154         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
7155         (negdf2): Adjust expander pattern and use negdf2_slow.
7156         (negsf2): Likewise.
7157
7158 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
7159
7160         * basic-block.h (struct control_flow_graph): Move last_label_uid field
7161         up.
7162         * df.h (struct df_base_ref): Move regno field up.
7163         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
7164         * expr.h (struct separate_ops): Move location field up.
7165         * optabs.h (struct optab_d): Move libcall_basename field down.
7166         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
7167         * config/i386/i386.h (struct machine_function): Convert call_abi field
7168         into a bitfield.  Move cfa field to the end of the structure.
7169
7170 2010-05-29  Jan Hubicka  <jh@suse.cz>
7171
7172         * varpool.c (varpool_get_node): Fix lookup.
7173
7174 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
7175
7176         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
7177         RTL specific prototypes with #ifdef RTX_CODE.
7178         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
7179         * config/spu/t-spu-elf: Fix dependencies.
7180
7181         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
7182
7183 2010-05-29  Mike Stump  <mikestump@comcast.net>
7184
7185         PR bootstrap/44315
7186         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
7187         TM_H when building to avoid dependency loops.
7188
7189 2010-05-29  Jan Hubicka  <jh@suse.cz>
7190
7191         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
7192         refs and body; not the whole node for masters of materialized clones.
7193
7194 2010-05-29  Mike Stump  <mikestump@comcast.net>
7195
7196         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
7197
7198 2010-05-29  Jan Hubicka  <jh@suse.cz>
7199
7200         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
7201         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
7202         use of clone_function_name.
7203         * cgraph.h (cgraph_create_virtual_clone,
7204         cgraph_function_versioning): update prototypes.
7205         (clone_function_name): Declare.
7206         * ipa-cp.c (ipcp_insert_stage): Update call of
7207         cgraph_create_virtual_clone.
7208         * omp-low.c (create_omp_child_function_name): Use
7209         cgraph_create_virtual_clone.
7210         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
7211         (cgraph_function_versioning): Take SUFFIX argument; produce new name
7212         and make decl local.
7213
7214 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
7215
7216         * vec.h: Include statistics.h
7217         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
7218         with VEC_H.
7219
7220 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
7221
7222         * c-lex.c: Do not include c-tree.h.
7223         * c-pretty-print.c: Likewise.
7224         * c-opts.c: Likewise.
7225         * c-gimplify.c: Likewise.
7226         * c-common.c: Likewise.
7227         * c-dump.c: Likewise.  Include c-common.h.
7228
7229 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
7230
7231         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
7232         before including diagnostic-core.h.
7233         (c_cpp_error): New prototype moved from c-tree.h.
7234         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
7235         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
7236         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
7237         (c_cpp_error): Prototype moved to c-common.h.
7238         * Makefile.in: Update dependency for C_COMMON_H.
7239
7240 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
7241
7242         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
7243         * c-common.c (c_register_addr_space): Remove here.
7244         * c-decl.c (c_register_addr_space): Re-add here.
7245
7246 2010-05-28  Mike Stump  <mikestump@comcast.net>
7247
7248         * config/darwin-c.c: Remove c-tree.h include.
7249
7250 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
7251
7252         * gcc.c: Include diagnostic.h.
7253         (error_count): Remove.  All users changed to use errorcount.
7254         (programname): Remove.  All users changed to use progname.
7255         (fancy_abort, internal_error, fatal_error, error, warning, inform,
7256         fnotice): Remove.
7257         (execute): Don't include "Internal error" and bug reporting
7258         information in argument of internal_error call.
7259         (process_command): Don't increment error_count after calling
7260         perror_with_name.
7261         (input_filename): Rename to gcc_input_filename.  All users
7262         changed.
7263         (main): Call diagnostic_initialize.  Register delete_temp_files
7264         with atexit.  Use seen_error to test for errors.
7265         * gcc.h: Include diagnostic-core.h.
7266         (fatal_error, error, warning): Remove.
7267         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
7268         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
7269         (gcc.o): Update dependencies.
7270
7271 2010-05-28  Jeff Law  <law@redhat.com>
7272
7273         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
7274         functions.
7275         * ira.h (ira_bad_reload_regno): Declare
7276         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
7277
7278         * ira-color.c (update_curr_costs): Free updated hard reg costs.
7279         (ira_reassign_conflict_allocnos): Remove bogus asserts.
7280         (allocno_reload_assign): Likewise.
7281
7282 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
7283
7284         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
7285         build1_stat.
7286
7287 2010-05-28  Richard Guenther  <rguenther@suse.de>
7288
7289         PR lto/44312
7290         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
7291         Stream fixed-point constants mode.
7292         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
7293         and TYPE_PRECISION.
7294         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
7295         Stream fixed-point constants mode.
7296         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
7297         and TYPE_PRECISION.
7298
7299 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
7300
7301         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
7302         only place it was called from.
7303         (number_of_latch_executions): Do not return chrec_dont_know when the
7304         may_be_zero is a runtime condition: instead, return a COND_EXPR
7305         including the may_be_zero condition.
7306         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
7307         of nb_iterations.
7308         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
7309         COND_EXPRs.
7310
7311 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
7312
7313         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
7314         generate COND_EXPRs for degenerate_phi_result.
7315
7316 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
7317
7318         PR middle-end/44293
7319         * tree-if-conv.c (if_convertible_loop_p): Check the
7320         if-convertibility of phi nodes in non predicated BBs.
7321
7322 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
7323
7324         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
7325
7326 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
7327
7328         PR driver/15303
7329         * gcc.c (inform, warning, inform): New functions.
7330         (fatal_ice): Rename to internal_error; change cmsgid parameter to
7331         gmsgid.  All callers changed.
7332         (notice): Rename to fnotice; add parameter fp.  All callers changed.
7333         (fatal_error): Rename to fatal_signal.  All users changed.
7334         (fatal): Rename to fatal_error; change cmsgid parameter to
7335         gmsgid.  All callers changed.
7336         (process_command): Use warning instead of error for warnings.
7337         (end_going_arg): Don't use _() around argument of error.
7338         (do_spec_1): Use inform for message from %n specs.  Use warning
7339         instead of error for warnings.
7340         (main): Use inform for comparison messages.  Use warning for
7341         message about unused linker input.
7342         (error): Increment error_count.  Print "error: ".
7343         * gcc.h (fatal): Change to fatal_error.
7344         (warning): Declare.
7345         * config/darwin-driver.c (darwin_default_min_version): Use warning
7346         instead of fprintf for warnings.
7347         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
7348
7349 2010-05-28  Julian Brown  <julian@codesourcery.com>
7350
7351         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
7352         (*thumb2_addsi3_compare0_scratch): New.
7353         * config/arm/constraints.md (Pv): New.
7354         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
7355         for ARM mode only.
7356         (*addsi3_compare0_scratch): Likewise.
7357
7358 2010-05-28  Jan Hubicka  <jh@suse.cz>
7359
7360         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
7361         check.
7362         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
7363         only on local statics.
7364
7365 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
7366
7367         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
7368
7369 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
7370
7371         PR bootstrap/44314
7372         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
7373         (OPTION_GLIBC): Define.
7374
7375 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
7376
7377         PR debug/41048
7378         * dwarf2out.c (double_int_type_size_in_bits): New function.
7379         (round_up_to_align): Change first argument and return value to
7380         double_int.
7381         (field_byte_offset): Work internally on double_ints.
7382
7383         PR target/43636
7384         * builtins.c (expand_movstr): Use a temporary pseudo instead
7385         of target even when target is not NULL and not const0_rtx, but
7386         fails movstr predicate.
7387         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
7388
7389 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
7390
7391         * final.c (rest_of_clean_state): Use %m in errors instead of
7392         strerror (errno).
7393         * gengtype.c (read_input_list, close_output_files): Use xstrerror
7394         instead of strerror.
7395         * toplev.c (process_options): Use %m in errors instead of strerror
7396         (errno).
7397         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
7398         (errno).
7399
7400 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
7401
7402         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
7403         (ix86_canonical_va_list_type): Make static.  Add declaration.
7404         (ix86_enum_va_list): Make static.  Reindent.
7405         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
7406         (ix86_canonical_va_list_type): Ditto.
7407         (ix86_enum_va_list): Ditto.
7408
7409 2010-05-28  Richard Guenther  <rguenther@suse.de>
7410
7411         * lto-wrapper.c (run_gcc): With -save-temps generate a
7412         user-visible ltrans filename.  Fixup ltrans unit numbering.
7413
7414 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
7415
7416         * c-common.c (c_common_nodes_and_builtins): Replace use
7417         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
7418         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
7419         to ix86_enum_va_list.
7420         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
7421         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
7422         (TARGET_ENUM_VA_LIST_P): Add hook description.
7423         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
7424         * target.h (gcc_target): Add enum_va_list hook.
7425
7426         PR bootstrap/44299
7427         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
7428         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
7429         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
7430
7431 2010-05-28  Alan Modra  <amodra@gmail.com>
7432
7433         PR target/44266
7434         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
7435         emit_library_call machinery to set up __tls_get_addr calls.
7436
7437 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7438
7439         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
7440
7441 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
7442
7443         Revert fix for PR c++/44188
7444         * c-common.c (is_typedef_decl): Revert the moving of  this
7445         definition ...
7446         * tree.c (is_typedef_decl): ... here.
7447         (typdef_variant_p): Revert the moving of this  definition
7448         here from gcc/cp/tree.c.
7449         * c-common.h (is_typedef_decl): Revert the moving of this
7450         declaration ...
7451         * tree.h (is_typedef_decl): ... here.
7452         (typedef_variant_p): Revert the moving of this  declaration here
7453         from gcc/cp/cp-tree.h
7454         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
7455         (gen_tagged_type_die): Revert the splitting out of ...
7456         (gen_type_die_with_usage): ... this function. Revert the anonymous
7457         tagged type handling.
7458         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
7459         typedefs naming anonymous tagged types.
7460
7461 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
7462
7463         * config/rs6000/rs6000-modes.def (PSImode): Delete.
7464
7465 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
7466
7467         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
7468         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
7469         throughout.
7470         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
7471         "xer" to "ca".
7472         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
7473         XER_REGS to CA_REGS throughout.
7474         * config/rs6000/rs6000.h: Same.
7475         (ADDITIONAL_REGISTER_NAMES): Add "xer".
7476         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
7477         that mode_iterator "P" is the size for arithmetic carries as well.
7478         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
7479
7480 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
7481
7482         PR bootstrap/44255
7483         * combine.c (struct rtx_subst_pair): Define unconditionally.
7484         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
7485         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
7486         Call make_compound_operation on pair->to.
7487         (propagate_for_debug): Don't call make_compound_operation here.
7488         Always use simplify_replace_fn_rtx.
7489
7490 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
7491
7492         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
7493         * config/xtensa/xtensa.c (override_options): Check
7494           TARGET_FORCE_NO_PIC and set flag_pic.
7495         * config/xtensa/xtensa.opt: Document -mforce-no-pic
7496
7497 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
7498
7499         PR bootstrap/44299
7500         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
7501         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
7502
7503 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
7504
7505         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
7506         toplev.h.
7507         * diagnostic.c: Don't include toplev.h.
7508         (progname): Define.  Moved from toplev.c.
7509         (seen_error): New function.
7510         * diagnostic.h: Include diagnostic-core.h.
7511         (diagnostic_t, emit_diagnostic): Don't declare here.
7512         * toplev.c (progname): Move to toplev.c.
7513         (emit_debug_global_declarations, compile_file, finalize,
7514         do_compile, toplev_main): Use seen_error.
7515         * toplev.h: Include diagnostic-core.h.
7516         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
7517         internal_error, warning, warning_at, error, error_n, error_at,
7518         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
7519         verbatim, fnotice, progname): Move to diagnostic-core.h.
7520         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
7521         (expand_builtin_expect): Use seen_error.
7522         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
7523         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
7524         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
7525         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
7526         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
7527         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
7528         errorcount for errors.
7529         * c-opts.c (c_common_finish): Use seen_error.
7530         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
7531         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
7532         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
7533         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
7534         (get_coverage_counts): Use seen_error.
7535         * dwarf2out.c (dwarf2out_finish): Use seen_error.
7536         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
7537         gimplify_body): Use seen_error.
7538         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
7539         * ipa-pure-const.c (gate_pure_const): Use seen_error.
7540         * ipa-reference.c (gate_reference): Use seen_error.
7541         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
7542         * lambda-code.c: Include diagnostic-core.h instead of
7543         diagnostic.h.
7544         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
7545         * lto-compress.c: Include diagnostic-core.h instead of
7546         diagnostic.h.
7547         * lto-section-in.c: Include diagnostic-core.h instead of
7548         diagnostic.h.
7549         * lto-streamer-out.c: Include diagnostic-core.h instead of
7550         diagnostic.h.
7551         * lto-streamer.c: Include diagnostic-core.h instead of
7552         diagnostic.h.
7553         (gate_lto_out): Use seen_error.
7554         * matrix-reorg.c: Include diagnostic-core.h instead of
7555         diagnostic.h.
7556         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
7557         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
7558         (gate_expand_omp, lower_omp_1): Use seen_error.
7559         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
7560         (rest_of_decl_compilation, rest_of_type_compilation,
7561         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
7562         * tree-cfg.c (label_to_block_fn): Use seen_error.
7563         * tree-inline.c (optimize_inline_calls): Use seen_error.
7564         * tree-mudflap.c (mudflap_finish_file): Use
7565         seen_error.
7566         * tree-optimize.c (gate_all_optimizations,
7567         gate_all_early_local_passes, gate_all_early_optimizations): Use
7568         seen_error.
7569         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
7570         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
7571         (varpool_remove_unreferenced_decls,
7572         varpool_assemble_pending_decls): Use seen_error.
7573         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
7574         (TOPLEV_H, DIAGNOSTIC_H): Update.
7575         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
7576         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
7577         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
7578         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
7579         coverage.o, lambda-code.o): Update dependencies.
7580
7581 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
7582
7583         PR c++/44188
7584         * c-common.c (is_typedef_decl): Move this definition ...
7585         * tree.c (is_typedef_decl): ... here.
7586         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
7587         * c-common.h (is_typedef_decl): Move this declaration ...
7588         * tree.h (is_typedef_decl): ... here.
7589         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
7590         * dwarf2out.c (is_naming_typedef_decl): New function.
7591         (gen_tagged_type_die): Split out of ...
7592         (gen_type_die_with_usage): ... this function. When an anonymous
7593         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
7594         is emitted for the typedef.
7595         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
7596         anonymous tagged types.
7597
7598 2010-05-27  Jason Merrill  <jason@redhat.com>
7599
7600         * print-tree.c (debug_vec_tree): New fn.
7601         (print_vec_tree): New fn.
7602         * tree.h: Declare them.
7603         * gdbinit.in (pvt): New command.
7604
7605         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
7606
7607         * gdbinit.in (pdd): New command.
7608
7609 2010-05-27  Jan Hubicka  <jh@suse.cz>
7610
7611         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
7612         (update_caller_keys): Return early if there are no callers;
7613         only update fibheap when decresing the key.
7614         (update_callee_keys): Avoid recursion.
7615         (decide_inlining_of_small_functions): When badness does not match;
7616         re-insert into fibheap.
7617
7618 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
7619
7620         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
7621         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
7622         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
7623         (ALL_HOST_OBJS): Now a union of the above two.
7624         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
7625         all files in ALL_HOST_FRONTEND_OBJS.
7626         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
7627
7628         * c-common.c: Pretend to be a backend file by undefining
7629         IN_GCC_FRONTEND (still need rtl.h here).
7630
7631 2010-05-27  Jan Hubicka  <jh@suse.cz>
7632
7633         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
7634         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
7635
7636 2010-05-27  Jan Hubicka  <jh@suse.cz>
7637
7638         * sched-ebb.c: Rename struct deps to struct deps_desc.
7639         * ddg.c: Likewise.
7640         * sel-sched-ir.c: Likewise.
7641         * sched-deps.c: Likewise.
7642         * sched-int.h: Likewise.
7643         * sched-rgn.c: Likewise.
7644
7645 2010-05-27  Jon Beniston  <jon@beniston.com>
7646
7647         PR 43726
7648         * config/lm32/lm32.h: Remove definition of
7649         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
7650
7651 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
7652
7653         PR lto/44230
7654         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
7655
7656 2010-05-27  Richard Guenther  <rguenther@suse.de>
7657
7658         PR tree-optimization/44284
7659         * tree-vect-stmts.c (vectorizable_assignment): Handle
7660         sign-changing conversions as simple copy.
7661
7662 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7663
7664         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
7665         Bionic C library.
7666         (__gthread_active_p): Check for pthread_create if compiling against
7667         Bionic C library.
7668
7669 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7670
7671         Support compilation for Android platform.  Reimplement -mandroid.
7672
7673         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
7674         (*android*): Set ANDROID_DEFAULT.
7675         (arm*-*-linux*): Include linux-android.h.
7676         (arm*-*-eabi*): Don't include previous -mandroid implementation.
7677         * config/arm/eabi.h: Remove, move Android-specific parts ...
7678         * config/linux-android.h: ... here.  New file.
7679         * config/arm/eabi.opt: Rename to ...
7680         * config/linux-android.opt: ... this.
7681         (mandroid): Allow -mno-android option.  Initialize based on
7682         ANDROID_DEFAULT.
7683         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
7684         Move logic to corresponding LINUX_TARGET_* macros.
7685         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
7686         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
7687         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
7688         Android definitions.
7689         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
7690         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
7691         Document.
7692
7693 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7694
7695         Add support for Bionic C library
7696
7697         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
7698         macro.
7699         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
7700         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
7701
7702         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
7703         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
7704         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
7705         to support multiple C libraries.  Handle Bionic.
7706         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
7707         (BIONIC_DYNAMIC_LINKER64): Define.
7708         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
7709         Update.
7710         (TARGET_HAS_SINCOS): Enable for Bionic.
7711
7712         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
7713         the last option specified on command line take effect.
7714         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
7715         (mbionic): New.
7716         (mglibc, muclibc): Update.
7717
7718         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
7719         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
7720         DEFAULT_LIBC.
7721
7722         * doc/invoke.texi (-mglibc, -muclibc): Update.
7723         (-mbionic): Document.
7724
7725 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7726
7727         * c-common.h (c_register_addr_space): Add prototype.
7728         (ADDR_SPACE_KEYWORD): Remove.
7729         * c-common.c (c_register_addr_space): New function.
7730         (c_addr_space_name): Reimplement.
7731         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
7732
7733         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
7734         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
7735
7736         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
7737         Remove TARGET_ADDR_SPACE_KEYWORDS.
7738
7739 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
7740
7741         * input.c: New file.
7742         * input.h (main_input_filename): Move declaration to toplev.h.
7743         * toplev.c (input_location, line_table): Move to input.c
7744         * toplev.h (main_input_filename): Move declaration from input.h.
7745         * tree.c (expand_location): Move to input.c.
7746         * Makefile.in (OBJS-common): Add input.o.
7747         (input.o): Add dependencies.
7748
7749 2010-05-27  Richard Guenther  <rguenther@suse.de>
7750
7751         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
7752         for non-existant files.
7753         (fork_execute): Mark args_name file as deleted.
7754
7755 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
7756
7757         PR bootstrp/44287
7758         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
7759         (narrow_signed_type): Likewise.
7760
7761 2010-05-26  Jan Hubicka  <jh@suse.cz>
7762
7763         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
7764         edge only when checking is enabled; check using former_clone_of;
7765         check inline clones too.
7766         (cgraph_materialize_clone): Record former_clone_of pointer.
7767         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
7768         combining redirections; dump args_to_skip bitmap
7769         (cgraph_materialize_all_clones): Do no redirection here.
7770         * ipa-inline.c (inline_transform): Do redirection here.
7771         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
7772         cheking only).
7773
7774 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
7775
7776         * config/avr/avr-c.c: Do not include regs.h.
7777         Include cpplib.h for cpp_define and tree.h for c-common.h.
7778         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
7779         * config/avr/t-avr: Fix dependencies for avr-c.o.
7780
7781 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
7782
7783         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
7784         string instead of SYMBOL_REF rtx.
7785         * rtl.h (set_stack_check_libfunc): Move prototype from here...
7786         * libfuncs.h: ...to here.  Adjust for explow.c change.
7787
7788 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
7789
7790         * pretty-print.c: Don't include ggc.h.
7791         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
7792         (identifier_to_locale): Use them for allocation.
7793         * pretty-print.h (identifier_to_locale_alloc,
7794         identifier_to_locale_free): Declare.
7795         * toplev.c (alloc_for_identifier_to_locale): New.
7796         (general_init): Set identifier_to_locale_alloc and
7797         identifier_to_locale_free.
7798         * Makefile.in (pretty-print.o): Update dependencies.
7799
7800 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
7801
7802         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
7803         pointer types if they have different alignment or mode.
7804
7805 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
7806
7807         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
7808         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
7809         * config/sparc/sparc-protos.h (function_value): Remove declaration.
7810         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
7811         sparc_function_value_regno_p): New functions.
7812         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7813         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7814         (function_value): Rename to...
7815         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
7816         argument to 'outgoing'.
7817         (function_arg_record_value, function_arg_union_value,
7818         function_arg_vector_value): Update comment.
7819
7820 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
7821
7822         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
7823         (fde_needed_for_eh_p): New predicate.
7824         (output_call_frame_info): Use it throughout to decide whether FDEs
7825         are needed for EH purpose.
7826         (dwarf2out_begin_prologue): Reorder assignments.
7827
7828 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
7829
7830         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
7831         special case loop->header.
7832         (is_predicated): New.
7833         (if_convertible_loop_p): Call it.
7834
7835 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
7836
7837         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
7838         iterator in parameter.  Do not generate code during the analysis.
7839         (tree_if_convert_cond_stmt): Removed.
7840         (tree_if_convert_stmt): Removed.
7841         (predicate_bbs): New.
7842         (if_convertible_loop_p): Call predicate_bbs.
7843         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
7844         now contains all the analysis part.
7845
7846 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
7847
7848         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
7849         statements in the analysis part.
7850         (tree_if_convert_stmt): Update comment.
7851         (remove_conditions_and_labels): New.
7852         (combine_blocks): Call remove_conditions_and_labels.
7853         (tree_if_conversion): Update comment.
7854
7855 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
7856
7857         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
7858         than 2 predecessors or more than 2 successors.
7859
7860 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
7861
7862         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
7863         of loops in which the data dependence analysis fails.
7864
7865 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
7866
7867         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
7868         CDI_POST_DOMINATORS.
7869         (tree_if_conversion): Same.
7870
7871 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
7872
7873         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
7874
7875 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
7876
7877         * tree-if-conv.c: Update copyright years.  Fix comments.
7878         Fix indentation.
7879
7880 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
7881
7882         * builtin-types.def (BT_INT128): New primitive type.
7883         (BT_UINT128): Likewise.
7884         * c-common.c (c_common_r): Add __int128 keyword.
7885         (c_common_type_for_size): Handle __int128.
7886         (c_common_type_for_mode): Likewise.
7887         (c_common_signed_or_unsigned_type): Likewise.
7888         (c_common_nodes_and_builtins): Add builtin type
7889         if target supports 128-bit integer scalar.
7890         * c-common.h (enum rid): Add RID_INT128.
7891         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
7892         if target supports 128-bit integer scalar.
7893         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
7894         (finish_declspecs): Likewise.
7895         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
7896         (c_token_starts_declspecs): Likewise.
7897         (c_parser_declspecs): Likewise.
7898         (c_parser_attributes): Likewise.
7899         (c_parser_objc_selector): Likewise.
7900         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
7901         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
7902         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
7903         * tree.c (make_or_reuse_type): Likewise.
7904         (make_unsigned_type): Likewise.
7905         (build_common_tree_nodes_2): Likewise.
7906         * tree.h (enum integer_type_kind): Add itk_int128 and
7907         itk_unsigned_int128.
7908         (int128_integer_type_node): New define.
7909         (int128_unsigned_type_node): New define.
7910         * doc/extend.texi: Add documentation about __int128 type.
7911
7912 2010-05-26  Richard Guenther  <rguenther@suse.de>
7913
7914         * tree-ssa-sccvn.c (copy_nary): Adjust.
7915         (copy_phis): Rename to ...
7916         (copy_phi): ... this.  Adjust.
7917         (copy_references): Rename to ...
7918         (copy_reference): ... this.  Adjust.
7919         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
7920         result into the valid table.
7921
7922 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
7923
7924         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
7925         insn-config.h, insn-codes.h, recog.h, and optabs.h.
7926
7927 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7928
7929         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
7930
7931 2010-05-26  Richard Guenther  <rguenther@suse.de>
7932
7933         * opts.c (common_handle_option): Handle OPT_Ofast.
7934
7935 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
7936
7937         * diagnostic.c: Don't include opts.h.
7938         (permissive_error_option): Define.
7939         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
7940         for classify_diagnostic.  Don't use memset for
7941         classify_diagnostic.  Initialize new and recently added fields.
7942         (diagnostic_classify_diagnostic): Use context->n_opts instead of
7943         N_OPTS.
7944         (diagnostic_report_diagnostic): Pass context parameter to
7945         diagnostic_report_warnings_p.  Use option_enabled and option_name
7946         hooks from context.
7947         (emit_diagnostic): Use permissive_error_option.
7948         (permerror): Likewise.
7949         * diagnostic.h: Don't include options.h.
7950         (struct diagnostic_context): Add n_opts, opt_permissive,
7951         inhibit_warnings, warn_system_headers, option_enabled and
7952         option_name fields.  Change classify_diagnostic to a pointer.
7953         * opts-diagnostic.h: New file.
7954         * opts.c: Include opts-diagnostic.h.
7955         (common_handle_option): Set global_dc fields for -Wfatal-errors,
7956         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
7957         (option_name): New function.
7958         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
7959         (c_common_handle_option): Set global_dc->permissive for
7960         -fpermissive.
7961         * c-common.c (c_cpp_error): Save and restore
7962         global_dc->warn_system_headers, not variable warn_system_headers.
7963         * toplev.c: Include opts-diagnostic.h.
7964         (general_init): Update call to diagnostic_initialize.  Set
7965         global_dc->show_column, global_dc->option_enabled and
7966         global_dc->option_name.
7967         (process_options): Don't set global_dc fields here.
7968         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
7969         (diagnostic.o, opts.o, toplev.o): Update dependencies.
7970
7971 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
7972
7973         * config/picochip/picochip.md (movsi): Split a movsi from a
7974         const after reload.
7975
7976 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7977
7978         * ggc-zone.c: Update copyright year.
7979         (poison_region): Mark memory for Valgrind as undefined before
7980         memset () call and inaccessible afterwards.
7981         (ggc_pch_total_size): Change type of i to int.
7982
7983 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7984
7985         * ggc-common.c (ggc_free_overhead): Allow empty slot.
7986
7987 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7988
7989         * ggc-common.c: Update copyright year.
7990         (ggc_rlimit_bound): Remove prototype.  Compile only if
7991         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
7992         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
7993         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
7994         (ggc_min_heapsize_heuristic): Likewise.
7995
7996 2010-05-26  Richard Guenther  <rguenther@suse.de>
7997
7998         PR rtl-optimization/44164
7999         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
8000         no-common access-path disambiguation.
8001         (indirect_ref_may_alias_decl_p): Adjust.
8002         (indirect_refs_may_alias_p): Likewise.
8003         (refs_may_alias_p_1): Likewise.
8004
8005 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
8006
8007         * c-typeck.c: Do not include expr.h.
8008
8009 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
8010
8011         * rtl.h (decl_default_tls_model): Move prototype from here...
8012         * output.h: ...to here.
8013         * c-decl.c: Do not include rtl.h.
8014         * c-pragma.c: Likewise.
8015         * c-parser.c: Likewise.
8016         * c-gimplify.c: Likewise.  And also not hard-reg-set.
8017         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
8018         FIXME note for it.  Add a FIXME note for expr.h.
8019         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
8020         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
8021         defined.
8022
8023 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
8024
8025         PR target/44199
8026         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
8027         or total_size is larger than red zone size for non-V4 ABI, emit a
8028         stack_tie resp. frame_tie insn before stack pointer restore.
8029         * config/rs6000/rs6000.md (frame_tie): New insn.
8030
8031 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
8032
8033         * function.h (struct function): Add can_throw_non_call_exceptions bit.
8034         * lto-streamer-in.c (input_function): Stream it in.
8035         * lto-streamer-out.c (output_function): Stream it out.
8036         * function.c (allocate_struct_function): Set it.
8037         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
8038         for flag_non_call_exceptions.
8039         * cfgbuild.c (control_flow_insn_p): Likewise.
8040         (make_edges): Likewise.
8041         * cfgexpand.c (expand_stack_alignment): Likewise.
8042         * combine.c (distribute_notes): Likewise.
8043         * cse.c (cse_extended_basic_block): Likewise.
8044         * except.c (insn_could_throw_p): Likewise.
8045         * gcse.c (simple_mem): Likewise.
8046         * ipa-pure-const.c (check_call): Likewise.
8047         (check_stmt ): Likewise.
8048         * lower-subreg.c (lower-subreg.c): Likewise.
8049         * optabs.c (emit_libcall_block): Likewise.
8050         (prepare_cmp_insn): Likewise.
8051         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
8052         * postreload.c (rest_of_handle_postreload): Likewise.
8053         * reload1.c (reload_as_needed): Likewise.
8054         (emit_input_reload_insns): Likewise.
8055         (emit_output_reload_insns): Likewise.
8056         (fixup_abnormal_edges): Likewise.
8057         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
8058         * store-motion.c (find_moveable_store): Likewise.
8059         * tree-eh.c (stmt_could_throw_p): Likewise.
8060         (tree_could_throw_p): Likewise.
8061         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8062         * config/arm/arm.c (arm_expand_prologue): Likewise.
8063         (thumb1_expand_prologue): Likewise.
8064         * config/rx/rx.md (cbranchsf4): Likewise.
8065         (cmpsf): Likewise.
8066         * config/s390/s390.c (s390_emit_prologue): Likewise.
8067         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
8068         (inline_forbidden_into_p): New predicate.
8069         (expand_call_inline): Use it to forbid inlining.
8070         (tree_can_inline_p): Likewise.
8071
8072 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
8073
8074         * config/i386/i386-c.c: Do not include rtl.h.
8075         * config/i386/t-i386: Update dependencies.
8076
8077 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
8078
8079         * attribs.c: Do not include rtl.h.
8080         * Makefile.in: Update dependencies.
8081
8082 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
8083
8084         * double-int.h (double_int_and): New.
8085         * combine.c (try_combine): Clean up, use double_int_* and
8086         immed_double_int_const functions.
8087
8088 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8089
8090         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
8091         stderr to /dev/null instead of grep -q.
8092         * configure: Regenerate.
8093
8094 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
8095
8096         * Makefile.in (EXCEPT_H): Fix typo.
8097
8098 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
8099
8100         * ira-build.c (update_conflict_hard_reg_costs): New.
8101         (ira_build): Call update_conflict_hard_reg_costs.
8102
8103 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
8104
8105         PR debug/41371
8106         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
8107         ENABLE_CHECKING.
8108         (intersect_loc_chains): Walk the s2var's loc_chain together
8109         with s1node chain as long as the locations are equal, don't
8110         call find_loc_in_1pdv in that case.
8111
8112         PR debug/42801
8113         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
8114         (copy_bind_expr): ... instead of here.
8115         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
8116         if the block hasn't been remapped.
8117         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
8118         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
8119
8120 2010-05-25  Richard Guenther  <rguenther@suse.de>
8121
8122         PR middle-end/44069
8123         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
8124         out-of-bounds array accesses.
8125
8126 2010-05-25  Richard Guenther  <rguenther@suse.de>
8127
8128         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
8129         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
8130         (run_gcc): Re-organize to make cleanup easier.
8131
8132 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8133
8134         * config/s390/s390.c (optimization_options): Fix and move the
8135         flag_prefetch_loop_arrays override ...
8136         (override_options): ... here.
8137
8138 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
8139
8140         * diagnostic.c: Don't include plugin.h.
8141         (diagnostic_report_diagnostic): Don't handle plugins specially
8142         here.  Pass context to internal_error callback.
8143         * diagnostic.h (struct diagnostic_context): Add context parameter
8144         to internal_error callback.
8145         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
8146         * plugin.h (struct diagnostic_context): Declare.
8147         (warn_if_plugins, plugins_internal_error_function): Declare.
8148         * toplev.c (general_init): Set global_dc->internal_error.
8149         * Makefile.in (diagnostic.o): Update dependencies.
8150
8151 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
8152
8153         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
8154         * config/rs6000/t-darwin64: New.
8155         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
8156         build crt2.
8157
8158 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
8159
8160         PR 44203
8161         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
8162         match the original (and intended) behaviour before r159557.  This
8163         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
8164         in two ways.
8165
8166 2010-05-25  Richard Guenther  <rguenther@suse.de>
8167
8168         * doc/invoke.texi: Document -Ofast.
8169         * target.h (struct gcc_target): Add handle_ofast.
8170         * target-def.h (TARGET_HANDLE_OFAST): Add.
8171         (TARGET_INITIALIZER): Adjust.
8172         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
8173         * common.opt (Ofast): Add.
8174
8175 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
8176
8177         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
8178         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
8179
8180 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
8181
8182         PR target/43610
8183         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
8184         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
8185         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
8186         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
8187
8188 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
8189
8190         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
8191         DW_OP_minus with negated offset instead of DW_OP_plus.
8192         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
8193
8194 2010-05-25  Wei Guozhi  <carrot@google.com>
8195
8196         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
8197         tst instruction and a new alternative.
8198         * config/arm/constraints.md (Pu): New constraint.
8199
8200 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
8201
8202         * function.c (assign_stack_local_1): Initialize variable
8203         to avoid warning when bootstrapping at -O3.
8204
8205 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
8206
8207         * configure.ac (all_lang_makefiles): Remove everything related to it.
8208         * configure: Regenerate.
8209         * Makefile.in: Fix reference to ada Make-lang.in.
8210         Remove support for LANG_MAKEFILES.
8211
8212 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
8213             Sandra Loosemore  <sandra@codesourcery.com>
8214
8215         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
8216         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
8217         description.  Add arm_neon_fp16_ok.
8218         (Add Options): Add arm_neon and arm_neon_fp16.
8219
8220 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
8221
8222         * diagnostic.c: Don't include flags.h.
8223         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
8224         context parameters.  Check flags in the context passed as a parameter.
8225         (diagnostic_build_prefix): Add context parameter.  Check
8226         show_column flag in context.
8227         (diagnostic_action_after_output): Check fatal_errors flag in context.
8228         (diagnostic_report_current_module): Check show_column flag in context.
8229         (default_diagnostic_starter): Update call to
8230         diagnostic_build_prefix.
8231         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
8232         (emit_diagnostic): Pass context to permissive_error_kind.
8233         (permerror): Pass context to permissive_error_kind.
8234         * diagnostic.h (struct diagnostic_context): Add show_column,
8235         pedantic_errors, permissive and fatal_errors fields.
8236         (diagnostic_build_prefix): Update prototype.
8237         * langhooks.c
8238         * toplev.c (process_options): Set flags in global_dc from
8239         flag_show_column, flag_pedantic_errors, flag_permissive,
8240         flag_fatal_errors.
8241         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
8242         to diagnostic_build_prefix.
8243         * Makefile.in (diagnostic.o): Update dependencies.
8244
8245 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
8246
8247         * config/i386/ia32intrin.h (__crc32q): Define only if
8248         __SSE4_2__ is defined.
8249
8250 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
8251
8252         PR target/44132
8253         PR middle-end/43602
8254         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
8255         DECL_VISIBILITY_SPECIFIED.
8256         (emutls_decl): Set DECL_PRESERVE_P and copy
8257         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
8258         (emutls_finalize_control_var): New callback.
8259         (emutls_finish): Finalize emutls control variables.
8260         * toplev.c (compile_file): Move the call to emutls_finish ()
8261         before varpool_assemble_pending_decls ().
8262
8263 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
8264
8265         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
8266         added to the preprocessor condition.
8267
8268 2010-05-24  Paul Brook  <paul@codesourcery.com>
8269
8270         * gengtype-lex.l: Add HARD_REG_SET.
8271         * expr.c (expand_expr_real_1): Record writes to hard registers.
8272         * function.c (rtl_data): Add asm_clobbers.
8273         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
8274         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
8275         Use crtl->asm_clobbers.
8276
8277 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8278
8279         * doc/makefile.texi (Makefile): Mention stages 'profile'
8280         and 'feedback' for profiledbootstrap.
8281
8282 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
8283
8284         PR target/44245
8285         * config/i386/i386.c (def_builtin): Properly check
8286         OPTION_MASK_ISA_64BIT.
8287
8288 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
8289
8290         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
8291         typedefs with different but compatible types.  Allow duplicate
8292         typedefs with the same type except for pedantic non-C1X, but give
8293         warning for variably modified types.
8294         * c-typeck.c (tagged_types_tu_compatible_p,
8295         function_types_compatible_p, type_lists_compatible_p,
8296         comptypes_internal): Add parameter different_types_p; set
8297         *different_types_p for different but compatible types.  All
8298         callers changed.
8299         (comptypes_check_different_types): New.
8300         * c-tree.h (comptypes_check_different_types): Declare.
8301
8302 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
8303
8304         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
8305         * jump.c: Include basic-block.h.
8306         * profile.c: Likewise.
8307         * tree-profile.c: Likewise.
8308         * coverage.c: Likewise.
8309         * basic-block.h (optimize_function_for_size_p): Move to function.h.
8310         (optimize_function_for_speed_p): Likewise.
8311         * function.h (optimize_function_for_size_p,
8312         optimize_function_for_speed_p): Moved here from basic-block.h.
8313         * Makefile.in: Update dependencies.
8314
8315 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8316
8317         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
8318         before calling make; allow override through $MAKE.
8319         * doc/invoke.texi (Optimize Options): Document override.
8320
8321 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
8322
8323         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
8324         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8325         (rs6000_mode_dependent_address_ptr): Make static.
8326         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8327         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
8328         Remove.
8329
8330 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
8331
8332         PR target/43869
8333         * config/i386/i386.c: Make sure that the correct regparm is passed.
8334
8335 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
8336
8337         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
8338         * sbitmap.c: ...to here to internalize sbitmap element access.
8339         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
8340         Explain why basic-block.h is included.
8341         * function.h: Include tm.h for CUMULATIVE_ARGS.
8342         * Makefile.in: Update dependencies.
8343
8344 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
8345
8346         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
8347         New core types.
8348         * sbitmap.h (struct sbitmap_def): Do not typedef here.
8349         * sbitmap.c: Include sbitmap.h.
8350         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
8351         hard-reg-set.h.  Split everything related to regsets out from here...
8352         * regset.h: ...to here.  New file.
8353         * df.h: Include regset.h and sbitmap.h.
8354         * tree-flow.h: Likewise.
8355         * cfgloop.h: Likewise.
8356         * except.h: Do not include sbitmap.h.  Include hashtab.h.
8357         * cgraph.h: Include vec.h and function.h.
8358         * reload.h (struct insn_chain): Change types of live_throughout
8359         and dead_or_set from regset_head to bitmap_head.
8360         (compute_use_by_pseudos): Be defined also if regset.h is not included.
8361         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
8362         spilled_regs from regset_head to bitmap_head to avoid dependency
8363         in regset.h.
8364         * sel-sched-ir.h: Include regset.h.
8365         * reload.c: Include df.h before reload.h.
8366         * caller-save.c: Likewise.
8367         * reload1.c: Likewise.
8368         * ira.c: Likewise.
8369         (mark_elimination): Update type of r to bitmap, consistent with
8370         DF_LR_IN.
8371         * dominance.c: Include bitmap.h.
8372         * modulo-sched.c: Include df.h.
8373         * cfganal.c: Include bitmap.h and sbitmap.h.
8374         * cfgbuild.c: Include sbitmap.h.
8375         * lcm.c: Include sbitmap.h.
8376         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
8377         * domwalk.c: Include sbitmap.h, exclude ggc.h.
8378         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
8379         * cselib.c: Include bitmap.h.
8380         * tree-optimize.c: Include regset.h.
8381         * stmt.c: Include bitmap.h.
8382         * Makefile.in: Update dependencies.
8383
8384 2010-05-22  Jan Hubicka  <jh@suse.cz>
8385
8386         * cgraph.h (struct varpool_node): Add same_comdat_group.
8387         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
8388         pointer.
8389         (output_varpool): Update call of lto_output_varpool_node.
8390         (input_varpool): Read same_comdat_group pointer.
8391         (input_varpool_1): Fixup same_comdat_group pointer.
8392         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
8393         group is needed, all are.
8394         * varpool.c (varpool_remove_node): Remove node from same comdat group
8395         linklist too.
8396         (varpool_analyze_pending_decls): Walk same comdat groups.
8397
8398 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
8399
8400         * rtl.h (union rtunion_def): Remove rt_bit member.
8401         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
8402         * print-rtl (print_rtx): Do not print the member.
8403         * gengtype.c (adjust_field_rtx_def): Do not handle it.
8404         * gengenrtl.c (type_from_format): Likewise.
8405         (accessor_from_format): Likewise.
8406
8407 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
8408
8409         * dbgcnt.c: Include toplev.h instead of errors.h.
8410         * ira-emit.c: Don't include errors.h.
8411         * ira.c: Include toplev.h instead of errors.h.
8412         * lto-compress.c: Include toplev.h instead of errors.h.
8413         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
8414         ira.o, dbgcnt.o): Update dependencies.
8415
8416 2010-05-22  Richard Guenther  <rguenther@suse.de>
8417
8418         * gimple.c (gimple_types_compatible_p): Check type qualifications
8419         before merging pointer to complete and pointer to incomplete type.
8420         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
8421         we use our own resolution algorithm.  The gold linker plugin
8422         doesn't do the job we want it to do here.
8423
8424 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
8425
8426         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8427         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8428         (sparc_mode_dependent_address_p): New function.
8429
8430 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
8431
8432         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
8433
8434         * timevar.c: Do not include any core headers.
8435         (timevar_print): De-i18n-ize.
8436         (print_time): Likewise.
8437         * timevar.h (timevar_push, timevar_pop): Make inline functions.
8438
8439 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
8440
8441         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
8442         langhooks-def.h.
8443         (diagnostic_initialize): Initialize x_data not last_function.
8444         (diagnostic_report_current_function): Move to tree-diagnostic.c.
8445         (default_diagnostic_starter): Call
8446         diagnostic_report_current_module not
8447         diagnostic_report_current_function.
8448         (diagnostic_report_diagnostic): Initialize x_data not
8449         abstract_origin.
8450         (verbatim): Likewise.
8451         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
8452         x_data.
8453         (struct diagnostic_context): Change last_function to x_data.
8454         (diagnostic_auxiliary_data): Replace with
8455         diagnostic_context_auxiliary_data and
8456         diagnostic_info_auxiliary_data.
8457         (diagnostic_last_function_changed, diagnostic_set_last_function,
8458         diagnostic_report_current_function): Move to tree-diagnostic.h.
8459         (print_declaration, dump_generic_node, print_generic_stmt,
8460         print_generic_stmt_indented, print_generic_expr,
8461         print_generic_decl, debug_c_tree, dump_omp_clauses,
8462         print_call_name, debug_generic_expr, debug_generic_stmt,
8463         debug_tree_chain, default_tree_printer): Move to
8464         tree-pretty-print.h.
8465         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
8466         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
8467         gimple-pretty-print.h.
8468         * pretty-print.c: Don't include tree.h
8469         (pp_base_format): Don't handle %K here.
8470         (pp_base_tree_identifier): Move to tree-pretty-print.c.
8471         * pretty-print.h (text_info): Change abstract_origin to x_data.
8472         (pp_tree_identifier, pp_unsupported_tree,
8473         pp_base_tree_identifier): Move to tree-pretty-print.h.
8474         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
8475         tree-pretty-print.h: New files.
8476         * tree-pretty-print.c: Include tree-pretty-print.h.
8477         (percent_K_format): New.  Moved from pretty-print.c.
8478         (pp_base_tree_identifier): Move from pretty-print.c.
8479         * c-objc-common.c: Include tree-pretty-print.h.
8480         (c_tree_printer): Handle %K here.
8481         * langhooks.c: Include tree-diagnostic.h.
8482         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
8483         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
8484         (default_tree_printer): Handle %K using percent_K_format.
8485         (general_init): Use default_tree_diagnostic_starter.
8486         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
8487         (free_lang_data): Use default_tree_diagnostic_starter.
8488         * c-pretty-print.c: Include tree-pretty-print.h.
8489         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
8490         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
8491         * dwarf2out.c: Include tree-pretty-print.h.
8492         * except.c: Include tree-pretty-print.h.
8493         * gimple-pretty-print.c: Include tree-pretty-print.h and
8494         gimple-pretty-print.h.
8495         * gimplify.c: Include tree-pretty-print.h.
8496         * graphite-poly.c: Include tree-pretty-print.h and
8497         gimple-pretty-print.h.
8498         * ipa-cp.c: Include tree-pretty-print.h.
8499         * ipa-inline.c: Include gimple-pretty-print.h.
8500         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
8501         * ipa-pure-const.c: Include gimple-pretty-print.h.
8502         * ipa-struct-reorg.c: Include tree-pretty-print.h and
8503         gimple-pretty-print.h.
8504         * ipa-type-escape.c: Include tree-pretty-print.h.
8505         * print-rtl.c: Include tree-pretty-print.h.
8506         * print-tree.c: Include gimple-pretty-print.h.
8507         * sese.c: Include tree-pretty-print.h.
8508         * tree-affine.c: Include tree-pretty-print.h.
8509         * tree-browser.c: Include tree-pretty-print.h.
8510         * tree-call-cdce.c: Include gimple-pretty-print.h.
8511         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
8512         * tree-chrec.c: Include tree-pretty-print.h.
8513         * tree-data-ref.c: Include tree-pretty-print.h and
8514         gimple-pretty-print.h.
8515         * tree-dfa.c: Include tree-pretty-print.h.
8516         * tree-if-conv.c: Include tree-pretty-print.h and
8517         gimple-pretty-print.h.
8518         * tree-inline.c: Include tree-pretty-print.h.
8519         * tree-into-ssa.c: Include tree-pretty-print.h and
8520         gimple-pretty-print.h.
8521         * tree-nrv.c: Include tree-pretty-print.h.
8522         * tree-object-size.c: Include tree-pretty-print.h and
8523         gimple-pretty-print.h.
8524         * tree-outof-ssa.c: Include tree-pretty-print.h and
8525         gimple-pretty-print.h.
8526         * tree-parloops.c: Include tree-pretty-print.h and
8527         gimple-pretty-print.h.
8528         * tree-predcom.c: Include tree-pretty-print.h and
8529         gimple-pretty-print.h.
8530         * tree-scalar-evolution.c: Include tree-pretty-print.h and
8531         gimple-pretty-print.h.
8532         * tree-sra.c: Include tree-pretty-print.h.
8533         * tree-ssa-address.c: Include tree-pretty-print.h.
8534         * tree-ssa-alias.c: Include tree-pretty-print.h.
8535         * tree-ssa-ccp.c: Include tree-pretty-print.h and
8536         gimple-pretty-print.h.
8537         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
8538         * tree-ssa-copy.c: Include tree-pretty-print.h and
8539         gimple-pretty-print.h.
8540         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
8541         * tree-ssa-dce.c: Include tree-pretty-print.h and
8542         gimple-pretty-print.h.
8543         * tree-ssa-dom.c: Include tree-pretty-print.h and
8544         gimple-pretty-print.h.
8545         * tree-ssa-dse.c: Include gimple-pretty-print.h.
8546         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
8547         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
8548         * tree-ssa-live.c: Include tree-pretty-print.h and
8549         gimple-pretty-print.h.
8550         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
8551         gimple-pretty-print.h.
8552         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
8553         gimple-pretty-print.h.
8554         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
8555         gimple-pretty-print.h.
8556         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
8557         gimple-pretty-print.h.
8558         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
8559         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
8560         * tree-ssa-operands.c: Include tree-pretty-print.h and
8561         gimple-pretty-print.h.
8562         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
8563         gimple-pretty-print.h.
8564         * tree-ssa-pre.c: Include tree-pretty-print.h and
8565         gimple-pretty-print.h.
8566         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
8567         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
8568         gimple-pretty-print.h.
8569         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
8570         gimple-pretty-print.h.
8571         * tree-ssa-sink.c: Include gimple-pretty-print.h.
8572         * tree-ssa-ter.c: Include tree-pretty-print.h and
8573         gimple-pretty-print.h.
8574         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
8575         * tree-ssa.c: Include tree-pretty-print.h and
8576         gimple-pretty-print.h.
8577         * tree-stdarg.c: Include gimple-pretty-print.h.
8578         * tree-switch-conversion.c: Include gimple-pretty-print.h.
8579         * tree-tailcall.c: Include tree-pretty-print.h and
8580         gimple-pretty-print.h.
8581         * tree-vect-data-refs.c: Include tree-pretty-print.h and
8582         gimple-pretty-print.h.
8583         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
8584         gimple-pretty-print.h.
8585         * tree-vect-loop.c: Include tree-pretty-print.h and
8586         gimple-pretty-print.h.
8587         * tree-vect-patterns.c: Include gimple-pretty-print.h.
8588         * tree-vect-slp.c: Include tree-pretty-print.h and
8589         gimple-pretty-print.h.
8590         * tree-vect-stmts.c: Include tree-pretty-print.h and
8591         gimple-pretty-print.h.
8592         * tree-vectorizer.c: Include tree-pretty-print.h.
8593         * tree-vrp.c: Include tree-pretty-print.h and
8594         gimple-pretty-print.h.
8595         * value-prof.c: Include tree-pretty-print.h and
8596         gimple-pretty-print.h.
8597         * var-tracking.c: Include tree-pretty-print.h.
8598         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
8599         (tree-diagnostic.o): New dependencies.
8600         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
8601         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
8602         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
8603         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
8604         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
8605         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
8606         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
8607         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
8608         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
8609         tree-ssa-address.o, tree-ssa-loop-niter.o,
8610         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
8611         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
8612         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
8613         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
8614         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
8615         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
8616         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
8617         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
8618         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
8619         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
8620         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
8621         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
8622         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
8623         tree-switch-conversion.o, var-tracking.o, value-prof.o,
8624         cfgexpand.o, pretty-print.o): Update dependencies.
8625
8626 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
8627
8628         * tree-ssa-structalias.c: Remove tm_p.h from include.
8629
8630 2010-05-21  Jeff Law  <law@redhat.com>
8631
8632         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
8633
8634 2010-05-21  Jason Merrill  <jason@redhat.com>
8635
8636         * tree-eh.c (cleanup_is_dead_in): New.
8637         (lower_try_finally): Don't generate a dead cleanup region.
8638         (lower_cleanup): Likewise.
8639
8640 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
8641
8642         PR debug/44223
8643         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
8644         unchain each use from the cyclic next_regno_use chain first.
8645
8646 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
8647
8648         * real: Do not include gmp.h, mpfr.h, and mpc.h.
8649         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
8650         (real_value_negate, real_value_abs): New prototypes.
8651         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
8652         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
8653         new include file for interface between MPFR and REAL_VALUE_TYPE.
8654         * real.c: Include realmpfr.h.
8655         (real_arithmetic2): Remove legacy function.
8656         (real_value_negate): New.
8657         (real_value_abs): New.
8658         (mfpr_from_real, real_from_mpfr): Move from here...
8659         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
8660         * builtins.c: Include realmpfr.h.
8661         * fold-const.c: Include realmpfr.h.
8662         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
8663         (fold_negate_const): Likewise.
8664         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
8665         * toplev.c: Include realmpfr.h.
8666         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
8667         and real_value_negate.
8668         * fixed-value.c (check_real_for_fixed_mode): Likewise.
8669         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
8670         (vfp3_const_double_index): Likewise.
8671         (arm_print_operand): Likewise.
8672         * Makefile.in: Update dependencies.
8673
8674 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8675
8676         * config/s390/s390.c (override_options): Increase the default
8677         of max-completely-peel-times.
8678
8679 2010-05-21  Julian Brown  <julian@codesourcery.com>
8680             Mark Mitchell  <mark@codesourcery.com>
8681
8682         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
8683         sibling calls for Thumb-1.
8684         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
8685         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
8686         Thumb-2.
8687         (*call_insn, *call_value_insn): Don't use for Thumb-2.
8688         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
8689         for Thumb-2.
8690         (return): New expander.
8691         (*arm_return): New name for ARM return insn.
8692         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
8693
8694 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
8695
8696         * config.gcc (sparc64-*-rtems*): New target.
8697
8698 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
8699
8700         * tree.c (build_function_decl_skip_args): Fix grammar.
8701         (build_function_type_list_1): Fix typos, adjust formatting.
8702
8703 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
8704
8705         * tree.h: Include real.h and fixed-value.h as basic datatypes.
8706         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
8707         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
8708         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
8709         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
8710         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
8711         tree-pretty-print.c, tree-loop-distribution.c,
8712         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
8713         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
8714         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
8715         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
8716         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
8717         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
8718         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
8719         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
8720         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
8721         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
8722         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
8723         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
8724         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
8725         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
8726         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
8727         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
8728         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
8729         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
8730         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
8731         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
8732         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
8733         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
8734         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
8735         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
8736         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
8737         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
8738         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
8739         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
8740         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
8741         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
8742         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
8743         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
8744         config/score/score7.c, config/score/score.c, config/arm/arm.c,
8745         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
8746         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
8747         config/bfin/bfin.c: Clean up redundant includes.
8748         * Makefile.in: Update accordingly.
8749
8750 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
8751
8752         PR middle-end/44204
8753         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
8754         statement has no arguments.
8755
8756 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
8757
8758         PR/44139
8759         * varasm.c (emutls_decl): Merge attributes to new decl.
8760
8761 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
8762
8763         PR middle-end/44101
8764         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
8765         around the uniquized constructor if its type requires a conversion.
8766
8767 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
8768
8769         PR debug/44205
8770         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
8771         at -O0 goto_locus of any of the incoming edges differs from
8772         goto_locus of outgoing edge, or gimple_location of any of the
8773         labels differs.
8774
8775 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
8776
8777         * ira.c (ira_non_ordered_class_hard_regs): Define.
8778         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
8779         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
8780         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
8781         cost of unaligned hard regs when allocating multi-reg pseudos.
8782
8783 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
8784
8785         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
8786         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
8787         for TARGET_NO_FLOAT.
8788         * config/mips/mips.c (mips_file_start): Expand conditional expression
8789         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
8790         (mips_override_options): Move -mno-float override -msoft-float and
8791         -mhard-float.
8792         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
8793         Condition(TARGET_SUPPORTS_NO_FLOAT).
8794         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
8795         __mips_no_float here.
8796         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
8797         (TARGET_SUPPORTS_NO_FLOAT): Define.
8798         * config/mips/sdemtk.opt: Delete.
8799
8800 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
8801
8802         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
8803
8804 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
8805
8806         PR target/43733
8807         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
8808         * configure: Regenerate.
8809         * config.in: Regenerate.
8810         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
8811         instead of sahf only for 64bit targets.
8812
8813 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
8814
8815         PR debug/44178
8816         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
8817         setup_ref_regs for DEBUG_INSNs.
8818
8819 2010-05-20  Jan Hubicka  <jh@suse.cz>
8820
8821         PR middle-end/44197
8822         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
8823
8824 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
8825
8826         PR bootstrap/43870
8827         * df-scan.c (df_ref_compare): Stabilize sort.
8828
8829 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
8830
8831         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
8832         argument.  Don't use DW_OP_piece if offset is non-zero,
8833         put offset into second DW_OP_bit_piece argument.
8834         (dw_sra_loc_expr): Adjust callers.  For memory expressions
8835         compute offset.
8836
8837 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
8838
8839         PR target/44202
8840         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
8841         settings for 16-bit-constant "addo" alternative.
8842
8843 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
8844
8845         * config/mips/mips-dsp.md (add<DSPV:mode>3,
8846         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
8847
8848         PR target/43764
8849         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
8850         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
8851         Use it.
8852
8853 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
8854
8855         * diagnostic.c (FLOAT, FFS): Don't undefine.
8856         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
8857         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
8858         include ordering.
8859
8860 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
8861
8862         * combine.c (propagate_for_debug): Call make_compound_operation
8863         on the source value.
8864         (try_combine): When implementing a split chosen by find_split_point,
8865         either copy i2src or set it to null.  Assert that i2src is not null
8866         before substituting into CALL_INSN_FUNCTION_USAGE.
8867
8868 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
8869
8870         * double-int.h (double_int_ior): New function.
8871         * tree.h (build_int_cst_wide_type): Remove.
8872         * tree.c (build_int_cst_wide_type): Remove.
8873         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
8874         of build_int_cst_wide_type.
8875         * stor-layout.c (set_sizetype): (Ditto.).
8876         * dojump.c (do_jump): Use build_int_cstu instead of
8877         build_int_cst_wide_type.
8878
8879 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
8880
8881         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
8882         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
8883         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
8884         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
8885         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
8886         propagate the 'data' argument to copy_tree_r.
8887         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
8888         Propagate 'data' argument to walk_tree.
8889         (copy_if_shared): New function.
8890         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
8891         (unmark_visited): New function.
8892         (unshare_body): Call copy_if_shared instead of doing it manually.
8893         (unvisit_body): Call unmark_visited instead of doing it manually.
8894
8895 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
8896
8897         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
8898         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
8899         * hooks.c: Likewise.
8900         * target-def.h (TARGET_FOLD_BUILTIN): Define to
8901         hook_tree_tree_int_treep_bool_null.
8902         * target.h (struct gcc_target): Update signature of fold_builtin
8903         field.
8904         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
8905         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
8906         instead of the call expression.
8907         (fold_builtin_call_array): Pass n and argarray directly.
8908         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
8909         consing a list.
8910         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
8911         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
8912         `i' and use it in place of `arity'.
8913         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
8914         Dereference `args' directly.
8915         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
8916
8917 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8918
8919         * doc/sourcebuild.texi (Effective-Target Keywords): Document
8920         3dnow, sse3, sse2.
8921         (Directives): Document optional dg-require-effective-target
8922         selector.
8923
8924 2010-05-19  Richard Guenther  <rguenther@suse.de>
8925
8926         PR lto/44196
8927         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
8928
8929 2010-05-19  Richard Guenther  <rguenther@suse.de>
8930
8931         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
8932         * common.opt (fwhopr=): New.
8933         * opts.c (common_handle_option): Handle OPT_fwhopr.
8934         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
8935         * collect2.c (main): Match -fwhopr*.
8936         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
8937         Execute ltrans stage in parallel when jobs is bigger than 1.
8938
8939 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8940
8941         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
8942         pentiumpro on Solaris 8/x86 with Sun as.
8943         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
8944         hidden alias bug.
8945         (gcc_cv_as_ix86_quad): Check for .quad directive.
8946         * configure: Regenerate.
8947         * config.in: Regenerate.
8948         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
8949
8950 2010-05-19  Martin Jambor  <mjambor@suse.cz>
8951
8952         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
8953         also for indirect edges.  Actual printing moved...
8954         (ipa_print_node_jump_functions_for_edge): ...here.
8955         (ipa_compute_jump_functions): Renamed to
8956         ipa_compute_jump_functions_for_edge and made static.
8957         (ipa_compute_jump_functions): New function.
8958         (make_edge_direct_to_target): Check if the number of arguments on
8959         the newly direct edge is the same as the number of parametrs of
8960         the callee.
8961         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
8962         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
8963         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
8964         analysis functions unconditionally, call the new
8965         ipa_analyze_params_uses on the node instead of every edge.
8966
8967 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
8968
8969         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
8970         to tree.
8971         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
8972         also checks for a constant int vs.  non-constant but
8973         loop-invariant steps.
8974         (find_or_create_group): Change the sort algorithm to only consider
8975         steps that are constant ints.
8976         (idx_analyze_ref): Adopt code to handle a tree instead of a
8977         HOST_WIDE_INT for step.
8978         (gather_memory_references_ref): Handle tree instead of int and be
8979         prepared to see a NULL_TREE.
8980         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
8981         prefetches if the step cannot be calculated at compile time.
8982         (issue_prefetch_ref): Issue prefetches for non-constant but
8983         loop-invariant steps.
8984
8985 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
8986
8987         Revert:
8988         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
8989
8990         * tree.h (build_call_list): Remove.
8991         * tree.c (build_call_list): Remove.
8992
8993 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
8994
8995         * tree.h (build_call_list): Remove.
8996         * tree.c (build_call_list): Remove.
8997
8998 2010-05-18  Jan Hubicka  <jh@suse.cz>
8999
9000         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
9001
9002 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
9003
9004         PR rtl-optimization/43332
9005         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
9006
9007 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
9008
9009         * tree.h (build_int_cstu): Implement as static inline.
9010         * tree.c (build_int_cstu): Remove function.
9011         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
9012         sign extended.
9013
9014 2010-05-18  Richard Guenther  <rguenther@suse.de>
9015
9016         PR lto/44143
9017         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
9018         (debug): Initialize from -save-temps.
9019         (collect_execute): Print command-line when verbose.
9020         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
9021         for ltrans invocation.  Produce -dumpbase flag again.
9022         (process_args): Remove.
9023         (main): Simplify.
9024         * collect2.c (maybe_run_lto_and_relink): Only pass object
9025         files to lto-wrapper.
9026         * gcc.c (LINK_COMMAND_SPEC): Likewise.
9027
9028 2010-05-18  Jan Hubicka  <jh@suse.cz>
9029
9030         * opts.c (decode_options): Do not disable whopr at ipa_cp.
9031         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
9032
9033 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
9034
9035         PR lto/44184
9036         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
9037         in a GIMPLE_ASM.
9038         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
9039         in a GIMPLE_ASM.
9040
9041 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
9042
9043         PR debug/41371
9044         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
9045         rtx_equal_p inline.
9046
9047 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
9048
9049         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
9050         lto-macho as lto_binary_reader.
9051
9052         * darwin.c (darwin_asm_named_section): Do not add assembler comment
9053         after .section directive; just print it before the directive instead.
9054
9055 2010-05-17  Jan Hubicka  <jh@suse.cz>
9056
9057         * cgraph.c (cgraph_create_virtual_clone): Only check
9058         versionable_function_p when not in wpa and checking is enabled.
9059         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
9060         there are no more functions to materialize.
9061
9062 2010-05-17  Jan Hubicka  <jh@suse.cz>
9063
9064         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
9065         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
9066         New functions.
9067         (output_cgraph): Call output_cgraph_opt_summary.
9068         (input_cgrpah): Call input_cgraph_opt_summary.
9069         (output_cgraph_opt_summary_p, output_node_opt_summary,
9070         input_node_opt_summary, input_cgraph_opt_section): New functions.
9071         * lto-section-in.c (lto_section_name): Add cgraphopt.
9072         * tree-inline.c (tree_function_versioning): Handle parm_num.
9073         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
9074         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
9075
9076 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
9077
9078         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
9079         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
9080         the insn to prefetch ratio heuristic to loops with known trip count.
9081
9082 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
9083
9084         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
9085         (schedule_prefetches): Do not generate a prefetch if the unroll factor
9086         is far from what is required by the prefetch.
9087
9088 2010-05-17  Jan Hubicka  <jh@suse.cz>
9089
9090         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
9091         (ipcp_estimate_growth): Likewise.
9092         (ipcp_const_param_count): Likewise.
9093         (ipcp_insert_stage): Likewise.
9094         * ipa-prop.c (visit_load_for_mod_analysis): New function.
9095         (visit_store_addr_for_mod_analysis): Set used flag.
9096         (ipa_detect_param_modifications): Set used flag for SSE params;
9097         update use of walk_stmt_load_store_addr_ops.
9098         (ipa_print_node_params): Print used flag.
9099         (ipa_write_node_info): Stream used flag.
9100         (ipa_read_node_info): Likewise.
9101         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
9102         (ipa_is_param_used): New function.
9103         (lto_ipa_fixup_call_notes): Remove unused declaration.
9104
9105 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9106
9107         PR target/44074
9108         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
9109         * configure: Regenerate.
9110         * config.in: Regenerate.
9111         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
9112         !HAVE_AS_IX86_REP_LOCK_PREFIX.
9113         Don't emit whitespace.
9114         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
9115         (*rep_movsi): Likewise.
9116         (*rep_movsi_rex64): Likewise.
9117         (*rep_movqi): Likewise.
9118         (*rep_movqi_rex64): Likewise.
9119         (*rep_stosdi_rex64): Likewise.
9120         (*rep_stossi): Likewise.
9121         (*rep_stossi_rex64): Likewise.
9122         (*rep_stosqi): Likewise.
9123         (*rep_stosqi_rex64): Likewise.
9124         (*cmpstrnqi_nz_1): Use {%;} after repz.
9125         (*cmpstrnqi_nz_rex_1): Likewise.
9126         (*cmpstrnqi_1): Likewise.
9127         (*cmpstrnqi_rex_1): Likewise.
9128         (*strlenqi_1): Use {%;} after repnz.
9129         (*strlenqi_rex_1): Likewise.
9130         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
9131         (*sync_compare_and_swap<mode>): Likewise.
9132         (sync_double_compare_and_swap<mode>): Likewise.
9133         (*sync_double_compare_and_swapdi_pic): Likewise.
9134         (sync_old_add<mode>): Likewise.
9135         (sync_add<mode>): Likewise.
9136         (sync_sub<mode>): Likewise.
9137         (sync_<code><mode>): Likewise.
9138
9139 2010-05-17  Martin Jambor  <mjambor@suse.cz>
9140
9141         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
9142         otr_token and polymorphic.
9143         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
9144         (cgraph_clone_edge): Copy the above fields.
9145         * tree.c (get_binfo_at_offset): New function.
9146         * tree.h (get_binfo_at_offset): Declare.
9147         * ipa-prop.h (enum jump_func_type): Added known_type jump function
9148         type, reordered items, updated comments.
9149         (union jump_func_value): Added base_type field, reordered fields.
9150         (enum ipa_lattice_type): Moved down in the file.
9151         (struct ipa_param_descriptor): New field polymorphic.
9152         (ipa_is_param_polymorphic): New function.
9153         * ipa-prop.c: Include gimple.h and gimple-fold.h.
9154         (ipa_print_node_jump_functions): Print known type jump functions.
9155         (compute_complex_pass_through): Renamed to...
9156         (compute_complex_assign_jump_func): this.
9157         (compute_complex_ancestor_jump_func): New function.
9158         (compute_known_type_jump_func): Likewise.
9159         (compute_scalar_jump_functions): Create known type and complex ancestor
9160         jump functions.
9161         (ipa_note_param_call): New parameter polymorphic, set the corresponding
9162         flag in the call note accordingly.
9163         (ipa_analyze_call_uses): Renamed to...
9164         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
9165         variable var only in the block where it is used.
9166         (ipa_analyze_virtual_call_uses): New function.
9167         (ipa_analyze_call_uses): Likewise.
9168         (combine_known_type_and_ancestor_jfs): Likewise.
9169         (update_jump_functions_after_inlining): Implemented handling of a
9170         number of new jump function types combination.
9171         (print_edge_addition_message): Removed.
9172         (make_edge_direct_to_target): New function.
9173         (try_make_edge_direct_simple_call): Likewise.
9174         (try_make_edge_direct_virtual_call): Likewise.
9175         (update_call_notes_after_inlining): Renamed to...
9176         (update_indirect_edges_after_inlining): this.  Moved edge creation for
9177         indirect calls to try_make_edge_direct_simple_call, also calls
9178         try_make_edge_direct_virtual_call for virtual calls.
9179         (ipa_print_node_params): Changed the header message.
9180         (ipa_write_jump_function): Stream also known type jump functions.
9181         (ipa_read_jump_function): Likewise.
9182         (ipa_write_indirect_edge_info): Stream new fields in
9183         cgraph_indirect_call_info.
9184         (ipa_read_indirect_edge_info): Likewise.
9185         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
9186         GIMPLE_FOLD_H.
9187
9188 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9189
9190         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
9191
9192 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
9193
9194         * tree.h (CALL_EXPR_ARGS): Delete.
9195         (call_expr_arglist): Delete.
9196         * tree.c (call_expr_arglist): Delete.
9197         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
9198         targetm.fold_builtin.
9199         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
9200         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
9201         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
9202         arglist parameter.  Use CALL_EXPR_ARG.
9203         (picochip_expand_builtin_3op): Likewise.
9204         (picochip_expand_builtin_2opvoid): Likewise.
9205         (picochip_expand_array_get): Likewise.
9206         (picochip_expand_array_put): Likewise.
9207         (picochip_expand_array_testport): Likewise.
9208         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
9209         rather than arglist.
9210         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
9211         CALL_EXPR_ARGS.
9212         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
9213         than TREE_VALUE and TREE_CHAIN.
9214         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
9215         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
9216         the arglist.
9217
9218 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
9219
9220         PR bootstrap/42347
9221         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
9222         to have no fallthru edge.
9223
9224         PR middle-end/44102
9225         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
9226         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
9227         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
9228         add BARRIER after previous bb if needed.
9229
9230 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
9231
9232         * tree.c (build_function_type_list_1): Remove bogus assert condition.
9233
9234 2010-05-17  Alan Modra  <amodra@gmail.com>
9235
9236         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
9237         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
9238         with copy_reg rtx param.
9239         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
9240         Correct cases where code for ABI_V4 did not initialise the reg
9241         used to access frame.  Also leave frame_reg_rtx as sp for large
9242         frames that save no regs.
9243
9244 2010-05-17  Martin Jambor  <mjambor@suse.cz>
9245
9246         PR middle-end/44133
9247         * tree-sra.c (create_access_replacement): New parameter rename, mark
9248         the replaement for renaming only when it is true.
9249         (get_access_replacement): Pass true in the rename parameter of
9250         create_access_replacement.
9251         (get_unrenamed_access_replacement): New function.
9252         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
9253         replacement declaration from it.
9254
9255 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
9256
9257         * function.c (try_fit_stack_local, add_frame_space): New static
9258         functions.
9259         (assign_stack_local_1): Use them.  Look for opportunities to use
9260         space previously wasted on alignment.
9261         * function.h (struct frame_space): New.
9262         (struct rtl_data): Add FRAME_SPACE_LIST member.
9263         * reload1.c (something_was_spilled): New static variable.
9264         (alter_reg): Set it.
9265         (reload): Test it in addition to testing if the frame size changed.
9266
9267 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
9268
9269         * config/s390/s390.c: Define sane prefetch settings and activate
9270         flag_prefetch_loop_arrays on -O3.
9271         * config/s390/s390.h: Declare that read can use write prefetch.
9272
9273 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
9274
9275         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
9276         build.
9277
9278 2010-05-16  Jan Hubicka  <jh@suse.cz>
9279
9280         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
9281         function body; do not check stdarg field of struct function.
9282
9283 2010-05-16  Jan Hubicka  <jh@suse.cz>
9284
9285         * cgraph.c (dump_cgraph_node): Dump versionable flag.
9286         * cgraph.h (cgraph_local_info): Add versionable flag.
9287         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
9288         (ipcp_versionable_function_p): Use it.
9289         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
9290         versionable flag.
9291
9292 2010-05-16  Jan Hubicka  <jh@suse.cz>
9293
9294         * cgraph.c (cgraph_clone_node): Take decl argument and insert
9295         clone into hash when it is different from orig.
9296         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
9297         * cgraph.h (cgraph_clone_node): Update prototype.
9298         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
9299         (lto_cgraph_encoder_delete): Delete body map.
9300         (lto_cgraph_encoder_size): Move to header.
9301         (lto_cgraph_encoder_encode_body_p,
9302         lto_set_cgraph_encoder_encode_body): New.
9303         (lto_output_node): Do not take written_decls argument; output clone_of
9304         pointer.
9305         (add_node_to): Add include_body_argument; call
9306         lto_set_cgraph_encoder_encode_body on master of the clone.
9307         (add_references): Update use of add_node_to.
9308         (compute_ltrans_boundary): Likewise.
9309         (output_cgraph): Do not create written_decls bitmap.
9310         (input_node): Take nodes argument; stream in clone_of correctly.
9311         (input_cgraph_1): Update use of input_node.
9312         * lto-streamer-out.c (lto_output): Use encoder info to decide
9313         what bodies to output.
9314         * ipa-inline.c (cgraph_clone_inlined_nodes,
9315         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
9316         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
9317         (lto_cgraph_encoder_size): Define here.
9318         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
9319         Declare.
9320
9321 2010-05-16  Richard Guenther  <rguenther@suse.de>
9322
9323         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
9324         -fipa-type-escape.
9325         * ipa-type-escape.c (gate_type_escape_vars): Run when
9326         -fipa-struct-reorg runs.
9327         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
9328         * common.opt (fipa-type-escape): Remove.
9329
9330 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
9331
9332         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
9333         (decode_options): Likewise.
9334         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
9335
9336 2010-05-16  Jan Hubicka  <jh@suse.cz>
9337
9338         * ipa.c (function_and_variable_visibility): Also bring local all
9339         aliases.
9340
9341 2010-05-16  Richard Guenther  <rguenther@suse.de>
9342
9343         * alias.c (nonoverlapping_memrefs_p): Remove use of
9344         IPA type-escape information.
9345
9346 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
9347
9348         * c-common.c (c_common_reswords): Add _Static_assert for C.
9349         * c-parser.c (c_token_starts_declaration,
9350         c_parser_next_token_starts_declaration,
9351         c_parser_static_assert_declaration_no_semi,
9352         c_parser_static_assert_declaration): New.
9353         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
9354         Handle static assertions if static_assert_ok.
9355         (c_parser_external_declaration, c_parser_declaration_or_fndef,
9356         c_parser_compound_statement_nostart, c_parser_label,
9357         c_parser_for_statement, c_parser_objc_methodprotolist,
9358         c_parser_omp_for_loop): All callers of
9359         c_parser_declaration_or_fndef changed.
9360         (c_parser_struct_declaration): Handle static assertions.
9361         (c_parser_compound_statement_nostart): Use
9362         c_parser_next_token_starts_declaration and
9363         c_token_starts_declaration to detect start of declarations.
9364         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
9365         Likewise.
9366
9367 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
9368
9369         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
9370         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9371         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9372         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9373         (mmix_function_outgoing_value): Rename to...
9374         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
9375         (mmix_function_value_regno_p): Make static.
9376         (mmix_libcall_value): New function.
9377         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
9378         mmix_function_value_regno_p): Remove declaration.
9379
9380 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
9381
9382         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
9383         BUILT_IN_ALLOCA if stack checking is enabled.
9384
9385 2010-05-16  Richard Guenther  <rguenther@suse.de>
9386
9387         * var-tracking.c (vars_copy_1): Inline ...
9388         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
9389         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
9390         (variable_merge_over_cur): Adjust.  Merge asserts.
9391         (variable_merge_over_src): Likewise.
9392         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
9393         (variable_post_merge_new_vals): Merge asserts.
9394         (variable_post_merge_perm_vals): Likewise.
9395         (find_mem_expr_in_1pdv): Likewise.
9396         (dataflow_set_different_value): Remove.
9397         (onepart_variable_different_p): Merge asserts.
9398         (variable_different_p): Likewise.
9399         (dataflow_set_different_1): Inline ...
9400         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
9401         (emit_notes_for_differences_1): Merge asserts.
9402
9403 2010-05-16  Richard Guenther  <rguenther@suse.de>
9404
9405         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
9406         * optabs.c (libfunc_decl_hash): Likewise.
9407         * varasm.c (emutls_decl): Likewise.
9408
9409 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
9410
9411         * c-decl.c: Don't include gimple.h.
9412         (merge_decls): Do not copy gimple_body.
9413
9414 2010-05-15  Jason Merrill  <jason@redhat.com>
9415
9416         * c.opt: Add -fnothrow-opt.
9417
9418 2010-05-15  Jan Hubicka  <jh@suse.cz>
9419
9420         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
9421         analyzed.
9422         * passes.c (ipa_write_summaries): Write all analyzed nodes.
9423
9424 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
9425
9426         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
9427         * Makefile.in: Add it.
9428         Fix all other Makefile dependencies for changes below.
9429         * tree.h: Include it instead of defining VEC primitives here.
9430         * gimple.h: Likewise.
9431         * rtl.h: Likewise.
9432         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
9433         * except.h: Include vecir.h, break dependence on tree.h.
9434
9435         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
9436         Move from here...
9437         * tree-iterator.c: ...to here.
9438         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
9439
9440         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
9441         tm_p.h.
9442         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
9443         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
9444         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
9445         tree-mudflap.h, and target.h.
9446         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
9447         predict.h, tree-inline.h, gimple.h, and langhooks.h.
9448         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
9449         Add FIXME for why gimple.h is still included (should be unnecessary
9450         since GCC 4.5 gimplification unit-at-a-time).
9451         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
9452         * c-pragma.c: Add FIXME for why function.h needs to be included just
9453         for cfun, at front-end level.
9454         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
9455         Do not include ggc.h, but include vecprim.h for VEC(char).
9456         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
9457         Explain why target.h is included.
9458         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
9459         Explain why gimple.h is included.
9460         * c-ppoutput.c: Do not include tm.h.
9461         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
9462         * c-parses.c: Explain why rtl.h is included, and that this (and only
9463         this) is also why tm.h must be included.
9464         Do not include except.h.
9465         * c-lang.c: Do not include ggc.h.
9466
9467 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
9468
9469         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
9470
9471 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
9472
9473         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
9474         unions by default if those structs and unions have no tags.  Do
9475         not condition anonymous struct and unions handling on flag_iso.
9476         Allow anonymous structs and unions for C1X.
9477         (finish_struct): Do not diagnose lack of named fields when
9478         anonymous structs and unions present for C1X.  Accept flexible
9479         array members in structure with anonymous structs or unions but no
9480         directly named fields.
9481         * doc/extend.texi (Unnamed Fields): Update.
9482
9483 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
9484
9485         * gimple.h (compare_field_offset): Rename into...
9486         (gimple_compare_field_offset): ...this.
9487         * gimple.c (compare_field_offset): Rename into...
9488         (gimple_compare_field_offset): ...this.  Compare the full access if
9489         the offset is self-referential.
9490         (gimple_types_compatible_p): Adjust for above renaming.
9491         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
9492         DECL_NONADDRESSABLE_P flag of fields before merging them.
9493
9494 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
9495
9496         * tree.h (ctor_to_list): Delete.
9497         * tree.c (ctor_to_list): Delete.
9498
9499 2010-05-15  Jan Hubicka  <jh@suse.cz>
9500
9501         * ipa-reference.c: Include toplev.h
9502         (is_proper_for_analysis): Only add to all_module_statics
9503         if it is allocated.
9504         (write_node_summary_p, stream_out_bitmap,
9505         ipa_reference_write_optimization_summary,
9506         ipa_reference_read_optimization_summary): New.
9507         (struct ipa_opt_pass_d pass_ipa_reference): Add
9508         optimization summary streaming.
9509         * lto-cgraph.c (referenced_from_this_partition_p,
9510         reachable_from_this_partition_p): New functions.
9511         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
9512         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
9513         * opts.c (decode_options): Enable ipa_reference.
9514         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
9515         * lto-streamer.h (referenced_from_this_partition_p,
9516         reachable_from_this_partition_p): Declare.
9517
9518 2010-05-15  Richard Guenther  <rguenther@suse.de>
9519
9520         PR tree-optimization/44038
9521         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
9522         taking the address of a V_C_E of a constant.
9523
9524 2010-05-14  Jan Hubicka  <jh@suse.cz>
9525
9526         * tree.h (memory_identifier_string): Remove.
9527         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
9528         (ipa_reference_global_vars_info_d): Remove statics_not_read and
9529         statics_not_written.
9530         (ipa_reference_optimization_summary_d): New structure.
9531         (ipa_reference_optimization_summary_t): New type and vector.
9532         (ipa_reference_vars_info_d): Embedd structures instead of using
9533         pointers.
9534         (reference_vars_to_consider): Remove out of GGC space.
9535         (module_statics_escape): Remove.
9536         (global_info_obstack): Rename to ...
9537         (optimization_summary_obstack): ... this one.
9538         (initialization_status_t): Remove.
9539         (memory_identifier_string): Remove.
9540         (get_reference_vars_info): Fix indenting.
9541         (set_reference_vars_info): Likewise.
9542         (get_reference_optimization_summary): New.
9543         (set_reference_optimization_summary): New.
9544         (get_global_reference_vars_info): Remove.
9545         (ipa_reference_get_read_global): Remove.
9546         (ipa_reference_get_written_global): Remove.
9547         (ipa_reference_get_not_read_global): Update.
9548         (ipa_reference_get_not_written_global): Update.
9549         (is_proper_for_analysis): Outlaw addressable.
9550         (propagate_bits): Update for new datastructures.
9551         (analyze_variable): Remove.
9552         (init_function_info): Update for new datastructures.
9553         (clean_function_local_data): Remove.
9554         (clean_function): Remove.
9555         (copy_global_bitmap): Use optimizations_summary_obstack.
9556         (duplicate_node_data): Duplicate optimization summary only.
9557         (remove_node_data): Remove optimization summary only.
9558         (generate_summary): Do not analyze variables; do not compute
9559         module_statics_escape; do not prune solutions by it.
9560         (read_write_all_from_decl): Fix typos in comments.
9561         (propagate): Doscover readonly and nonaddressable first;
9562         update for new datastructures; share global bitmaps.
9563         * ipa-reference.h (ipa_reference_get_read_global,
9564         ipa_reference_get_written_global): Remove.
9565         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
9566         * Makefile.in: Remove ipa-refereference from GT files.
9567
9568 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
9569
9570         PR debug/44112
9571         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
9572         for all SYMBOL_REF_DECLs.
9573
9574 2010-05-14  Jan Hubicka  <jh@suse.cz>
9575
9576         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
9577         (varpool_all_refs_explicit_p): New inline function.
9578         * ipa-reference.c: Update comment.
9579         (module_statics_written): Remove.
9580         (get_static_decl): Remove.
9581         (ipa_init): Do not initialize module_statics_written.
9582         (analyze_function): Likewise.
9583         (generate_summary): Likewise; do not compute module_statics_readonly
9584         and do not update variable flags.
9585         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
9586         * ipa.c: Inlucde flags.h
9587         (cgraph_local_node_p): New.
9588         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
9589         promote functions to local.
9590         (ipa_discover_readonly_nonaddressable_vars): New function.
9591         (function_and_variable_visibility): Use cgraph_local_node_p.
9592         * varpool.c (varpool_finalize_decl): Set force_output for
9593         DECL_PRESERVE_P vars.
9594
9595 2010-05-14  Jan Hubicka  <jh@suse.cz>
9596
9597         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
9598
9599 2010-05-14  Richard Guenther  <rguenther@suse.de>
9600
9601         PR tree-optimization/44119
9602         * tree-ssa-pre.c (eliminate): Properly mark replacement of
9603         a PHI node necessary.
9604
9605 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
9606
9607         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
9608
9609 2010-05-14  Jason Merrill  <jason@redhat.com>
9610
9611         PR c++/44127
9612         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
9613         (gimple_call_set_nothrow): New.
9614         * gimple.c (gimple_build_call_from_tree): Call it.
9615         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
9616
9617         PR c++/44127
9618         * gimplify.c (gimplify_seq_add_stmt): No longer static.
9619         * gimple.h: Declare it.
9620         * gimple.c (gimple_build_eh_filter): No ops.
9621
9622 2010-05-14  Jan Hubicka  <jh@suse.cz>
9623
9624         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
9625         nodes already in queue.
9626         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
9627         re-enqueueing node.
9628
9629 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
9630
9631         PR debug/44136
9632         * cfgexpand.c (expand_debug_expr): If non-memory op0
9633         has BLKmode, return NULL.
9634
9635 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
9636
9637         * config.gcc: Add support for --with-cpu option for bdver1.
9638         * config/i386/i386.h (TARGET_BDVER1): New macro.
9639         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
9640         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
9641         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
9642         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
9643         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
9644         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
9645         (processor_type): Add PROCESSOR_BDVER1.
9646         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
9647         processor_type in config/i386/i386.h.
9648         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
9649         movaps <reg, reg> instead of movapd <reg, reg> when replacing
9650         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
9651         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
9652         to emit packed xor instead of packed double/packed integer
9653         xor for SSE and AVX when moving a zero value.
9654         * config/i386/sse.md: Add check for
9655         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
9656         movapd/movdqa for SSE and AVX.
9657         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
9658         single logical operations i.e and, or and xor instead of packed double
9659         logical operations for SSE and AVX.
9660         * config/i386/i386-c.c (ix86_target_macros_internal):
9661         Add PROCESSOR_BDVER1.
9662         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
9663         (has_fma4, has_xop): New.
9664         * config/i386/i386.c (bdver1_cost): New variable.
9665         (m_BDVER1): New macro.
9666         (m_AMD_MULTIPLE): Add m_BDVER1.
9667         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
9668         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
9669         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
9670         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
9671         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
9672         x86_tune_sse_partial_reg_dependency,
9673         x86_tune_sse_unaligned_load_optimal,
9674         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
9675         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
9676         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
9677         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
9678         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
9679         Enable/disable for bdver1.
9680         (processor_target_table): Add bdver1_cost.
9681         (cpu_names): Add bdver1.
9682         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
9683          processor_alias_table.
9684         (ix86_expand_vector_move_misalign): Change.
9685         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
9686         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
9687         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
9688         of movupd/movdqu for SSE and AVX.
9689         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
9690         (ix86_tune_adjust_cost): Add code for bdver1.
9691         (standard_sse_constant_opcode): Add check for
9692         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
9693         of packed double xor for SSE and AVX.
9694
9695 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
9696
9697         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
9698         result to unsigned.
9699
9700 2010-05-14  Tristan Gingold  <gingold@adacore.com>
9701
9702         * toplev.c (default_debug_hooks): Remove this variable.
9703         (process_options): Remove assignments to default_debug_hooks.
9704
9705 2010-05-14  Martin Jambor  <mjambor@suse.cz>
9706
9707         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
9708         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
9709         * langhooks.h (struct lang_hooks_for_decls): Removed field
9710         fold_obj_type_ref.
9711         * tree.c (free_lang_data): Remove assignment to
9712         lang_hooks.fold_obj_type_ref.
9713         * tree.def (OBJ_TYPE_REF): Update comment.
9714
9715 2010-05-14  Richard Guenther  <rguenther@suse.de>
9716
9717         PR tree-optimization/44124
9718         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
9719
9720 2010-05-14  Alan Modra  <amodra@gmail.com>
9721
9722         PR target/44075
9723         * config/rs6000/rs6000.c (struct machine_function): Reorder
9724         fields for better packing.  Add lr_save_state.
9725         (rs6000_ra_ever_killed): Return lr_save_state if set.
9726         (rs6000_emit_eh_reg_restore): Set lr_save_state.
9727
9728 2010-05-13  Jan Hubicka  <jh@suse.cz>
9729
9730         * varpool.c (decide_is_variable_needed): Drop code checking
9731         TREE_SYMBOL_REFERENCED.
9732
9733 2010-05-13  Jan Hubicka  <jh@suse.cz>
9734
9735         * final.c (output_addr_const): Do not call mark_decl_referenced.
9736         * cgraphunit.c (process_function_and_variable_attributes): Use
9737         mark_needed_node dirrectly.
9738         (assemble_thunk): Do not call mark_decl_referenced.
9739
9740 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
9741
9742         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
9743
9744 2010-05-13  Jeff Law  <law@redhat.com>
9745
9746         * ira-conflicts.c (print_allocno_conflicts): New function broken out
9747         from...
9748         (print_conflicts): Call print_allocno_conflicts.
9749
9750 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
9751
9752         PR debug/44104
9753         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
9754         if it is NULL.
9755
9756 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
9757
9758         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
9759         t-mingw-w64 or t-mingw-w32 for multilib configuration.
9760         * config/i386/t-mingw-w32: New.
9761         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
9762
9763 2010-05-13  Martin Jambor  <mjambor@suse.cz>
9764
9765         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
9766         gimple-fold.c).
9767         * gimple-fold.c (get_base_binfo_for_type): New function.
9768         (gimple_get_relevant_ref_binfo): Likewise.
9769         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9770         (gimple_fold_obj_type_ref): Likewise.
9771         (fold_gimple_call): Simplify condition for folding virtual calls
9772         and call gimple_fold_obj_type_ref.
9773         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
9774         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9775
9776 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
9777
9778         * config/rs6000/rs6000-protos.h
9779         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
9780         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
9781         (rs6000_debug_mode_dependent_address)
9782         (rs6000_mode_dependent_address_ptr): Likewise.
9783
9784 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
9785
9786         PR debug/43983
9787         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
9788         by SRA.
9789         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
9790         * tree-sra.c (create_access_replacement): Call unshare_expr before
9791         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
9792         * dwarf2out.c: Include tree-flow.h.
9793         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
9794         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
9795         Handle DW_OP_bit_piece.
9796         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
9797         construct_piece_list, adjust_piece_list): New functions.
9798         (add_var_loc_to_decl): Handle SRA optimized variables.
9799         Adjust for var_loc_note to loc field renaming.
9800         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
9801         in VAR_LOCATION note.
9802         (new_loc_descr_op_bit_piece): New function.
9803         (dw_sra_loc_expr): New function.
9804         (dw_loc_list): Use it.  Don't handle the last range after the
9805         loop, handle it inside of the loop.  Adjust for var_loc_note
9806         to loc field renaming.
9807         (add_location_or_const_value_attribute): Only special case
9808         single entry loc lists if loc is NOTE_P.  Adjust for
9809         var_loc_note to loc field renaming.
9810         (dwarf2out_var_location): Don't set newloc->var_loc_note
9811         and newloc->next here.
9812
9813 2010-05-12  Jan Hubicka  <jh@suse.cz>
9814
9815         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
9816         flag.
9817         * cgraph.h (cgraph_only_called_directly_p,
9818         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
9819         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
9820         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
9821         (assemble
9822         * ipa.c (cgraph_remove_unreachable_nodes): Use
9823         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
9824         flags.
9825         * tree-inline.c (copy_bb): Check address_taken flag.
9826         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
9827         externally_visible flag.
9828
9829 2010-05-12  Jason Merrill  <jason@redhat.com>
9830
9831         PR bootstrap/44048
9832         PR target/44099
9833         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
9834         * sdbout.c (plain_type_1): Likewise.
9835         * dwarf2out.c (is_base_type): Likewise.
9836         (gen_type_die_with_usage): Likewise.  Generate
9837         DW_TAG_unspecified_type for any LANG_TYPE.
9838
9839 2010-05-12  Jan Hubicka  <jh@suse.cz>
9840
9841         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
9842         indrect edges too.
9843         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
9844         (cgraph_clone_edge): Update.
9845         (cgraph_node_remove_callees): Remove indirect calls too.
9846         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
9847         (cgraph_create_indirect_edge): Update prototype.
9848         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
9849         is_proper_for_analysis.
9850         (add_new_function, visited_nodes, function_insertion_hook_holder,
9851         get_local_reference_vars_info, mark_address_taken, mark_address,
9852         mark_load, mark_store, check_asm_memory_clobber, check_call,
9853         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
9854         (ipa_init): Do not initialize visited_nodes;
9855         function_insertion_hook_holder.
9856         (analyze_variable): Rewrite.
9857         (analyze_function): Rewrite.
9858         (copy_local_bitmap): Remove.
9859         (duplicate_node_dat): Do not duplicate local info.
9860         (generate_summary): Simplify to only walk cgraph.
9861         (write_node_summary_p, ipa_reference_write_summary,
9862         ipa_reference_read_summary): Remove.
9863         (propagate): Do not remove function insertion;
9864         generate summary.
9865         (pass_ipa_reference): NULLify summary handling fields.
9866         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
9867         (input_edge): Input ecf_flags.
9868         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
9869         (update_indirect_edges_after_inlining): Ignore edges with unknown
9870         param.
9871
9872 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
9873
9874         * implicit-zee.c: New file.
9875         * tree-pass.h (pass_implicit_zee): Declare.
9876         * passes.c (init_optimization_passes): Add zee pass.
9877         * common.opt (fzee): New flag.
9878         * timevar.def (TV_ZEE): Define.
9879         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
9880         and beyond.
9881         * Makefile.in (implicit-zee.o): Add new build file.
9882
9883 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
9884             Nathan Froyd  <froydnj@codesourcery.com>
9885
9886         * c-common.c (sync_resolve_params): Remove write-only variable.
9887
9888 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
9889
9890         * target.h (struct gcc_target): Add mode_dependent_address_p field.
9891         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
9892         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
9893         * targhooks.c (default_mode_dependent_address_p): New function.
9894         * targhooks.h (default_mode_dependent_address_p): Declare function.
9895         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
9896         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
9897         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
9898         target hook. Change return type to bool.
9899         * recog.h (mode_dependent_address_p): Change return type to bool.
9900
9901 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
9902             Nathan Froyd  <froydnj@codesourcery.com>
9903
9904         * tree-mudflap.c (build_function_type_0, build_function_type_1,
9905         build_function_type_2, build_function_type_3): Remove.
9906         (mudflap_init): Use build_function_type_list.
9907
9908 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
9909             Nathan Froyd  <froydnj@codesourcery.com>
9910
9911         * coverage.c (build_fn_info_value): Call build_constructor instead of
9912         build_constructor_from_list.
9913         (build_ctr_info_value): Likewise.
9914         (build_gcov_info): Likewise.
9915
9916 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
9917
9918         * tree.c (build_constructor): Compute TREE_CONSTANT for the
9919         resultant constructor.
9920         (build_constructor_single): Don't set TREE_CONSTANT.
9921         (build_constructor_from_list): Don't compute TREE_CONSTANT.
9922
9923 2010-05-12  Jan Hubicka  <jh@suse.cz>
9924
9925         * cgraph.h (struct varpool_node): Add aux.
9926         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
9927         * varpool.c (varpool_remove_node): Do not remove initializer.
9928         (varpool_reset_queue): Export.
9929         (varpool_finalize_decl): Volatile vars are forced to be output.
9930         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
9931         replaced decl.
9932         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
9933         process_references, varpool_can_remove_if_no_refs): New functions.
9934         (cgraph_remove_unreachable_nodes): Handle variables too.
9935
9936 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
9937
9938         PR target/44088
9939         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
9940
9941 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
9942
9943         PR middle-end/44085
9944         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
9945         change value of ORT_TASK.
9946         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
9947         (omp_notice_threadprivate_variable): New function.
9948         (omp_notice_variable): Call it for threadprivate variables.
9949         If enclosing ctx is a task, print enclosing task rather than
9950         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
9951         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
9952         if task has untied clause.
9953
9954         PR debug/42278
9955         * dwarf2out.c (base_type_die): Don't add name attribute here.
9956         (modified_type_die): Instead of sizetype use
9957         its underlying original type.  If a DW_TAG_base_type doesn't
9958         have name added, add __unknown__.
9959         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
9960         always call force_type_die instead.
9961
9962 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
9963
9964         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
9965         for __stack_chk_guard.
9966
9967 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
9968
9969         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
9970         don't call start_source_file debug hook here...
9971         (finish_options): ... but here, after outputting predefined and
9972         command line defines and undefs.
9973
9974         PR middle-end/44071
9975         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
9976         no fallthru edge.
9977         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
9978         optimizing away empty bb with no successors, move over its
9979         footer chain to fallthru predecessor.
9980         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
9981         (rtl_split_edge): For asm goto call patch_jump_insn even if
9982         splitting fallthru edge.
9983
9984         PR c++/44059
9985         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
9986         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
9987         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
9988         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
9989         on DW.ref.* decls.
9990
9991         PR c++/44062
9992         * c-parser.c (c_parser_expression): Mark LHS of a comma
9993         expression as read if it is a decl, handled component or
9994         COMPOUND_EXPR with that on the RHS.
9995         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
9996         if it is a decl or handled component.
9997
9998 2010-05-11  Jan Hubicka  <jh@suse.cz>
9999
10000         * lto-symtab.c (lto_symtab_free): New function.
10001         * lto-streamer.h (lto_symtab_free): Declare.
10002
10003 2010-05-11  Jan Hubicka  <jh@suse.cz>
10004
10005         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
10006         that if function is needed it is reachable.
10007         (lto_output_node): See if it the function is reachable or referenced.
10008         (output_cgraph): Update call of lto_output_node.
10009         * lto-streamer.h (reachable_from_other_partition_p): Declare.
10010
10011 2010-05-11  Jan Hubicka  <jh@suse.cz>
10012
10013         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
10014         Mark as used.
10015
10016 2010-05-11  Jan Hubicka  <jh@suse.cz>
10017
10018         PR tree-optimize/44063
10019         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
10020         queue.
10021         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
10022         limits.
10023         (estimate_function_body_sizes): Compute sizes even when disregarding.
10024
10025 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
10026
10027         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
10028
10029 2010-05-11  Jan Hubicka  <jh@suse.cz>
10030
10031         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
10032         into every boundary.
10033
10034 2010-05-11  Jan Hubicka  <jh@suse.cz>
10035
10036         * matrix-reorg.c (matrix_reorg): Rebuild edges.
10037
10038 2010-05-11  Jan Hubicka  <jh@suse.cz>
10039
10040         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
10041         lto_streamer_cache_delete): Put nodes into heap.
10042         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
10043         heap.
10044
10045 2010-05-11  Jan Hubicka  <jh@suse.cz>
10046
10047         * cgraphbuild.c (cgraph_rebuild_references): New.
10048         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
10049         out extern inlines.
10050         * cgraph.h (cgraph_rebuild_references): Declare.
10051         * tree-inline.c (tree_function_versioning): Use it.
10052         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
10053
10054 2010-05-11  Jan Hubicka  <jh@suse.cz>
10055
10056         * cgraph.c: Include ipa-utils.h
10057         (cgraph_create_virtual_clone): Update references.
10058         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
10059
10060 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
10061
10062         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
10063         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
10064         cache size.
10065
10066 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
10067
10068         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
10069
10070 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
10071
10072         * gcc.c (execute): For -### don't quote arguments that
10073         contain just alphanumerics and _/-. characters.
10074         * doc/invoke.texi: Document that change for -###.
10075
10076         PR debug/44023
10077         * df-problems.c (struct dead_debug): Add to_rescan field.
10078         (dead_debug_init): Clear to_rescan field.
10079         (dead_debug_finish): Rescan all debug insns in to_rescan
10080         bitmap and free the bitmap.
10081         (dead_debug_insert_before): Instead of rescanning debug insns
10082         immediately queue their rescanning until dead_debug_finish.
10083         (df_note_bb_compute): After dead_debug_add do continue instead
10084         of break.
10085
10086 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
10087
10088         PR debug/44028
10089         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
10090         clear also INSN_REG_USE_LIST.
10091
10092 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10093
10094         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
10095
10096 2010-05-10  Jan Hubicka  <jh@suse.cz>
10097
10098         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
10099         commited change.
10100
10101 2010-05-10  Jan Hubicka  <jh@suse.cz>
10102
10103         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
10104         Allocate encoders.
10105         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
10106         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
10107         (lto_streamer_cache_create): Init alloc pool.
10108         (lto_streamer_cache_delete): Free alloc pool.
10109         * lto-streamer.h: Include alloc pool.
10110         (lto_streamer_cache_d): Use alloc pool.
10111         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
10112
10113 2010-05-10  Jan Hubicka  <jh@suse.cz>
10114
10115         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
10116         * cgraphbuild.c: Include except.h
10117         (record_type_list, record_eh_tables): New function.
10118         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
10119
10120 2010-05-10  Jan Hubicka  <jh@suse.cz>
10121
10122         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
10123         __frame_dummy_init_array_entry, force_to_data): Attribute as used
10124         rather than unused.
10125
10126 2010-05-10  Michael Matz  <matz@suse.de>
10127
10128         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
10129         (can_reassociate_p): Use FLOAT_TYPE_P.
10130         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
10131         (vect_force_simple_reduction): ... this.
10132         * tree-parloops.c (gather_scalar_reductions): Use
10133         vect_force_simple_reduction.
10134         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
10135         vect_is_simple_reduction, add modify argument, if true rewrite
10136         "a-b" into "a+(-b)".
10137         (vect_is_simple_reduction, vect_force_simple_reduction): New
10138         functions.
10139         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
10140
10141 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
10142             Vladimir Makarov  <vmakarov@redhat.com>
10143
10144         PR rtl-optimization/44012
10145         * ira-build.c (remove_unnecessary_allocnos): Nullify
10146         regno_allocno_map of the removed allocno.
10147
10148 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10149
10150         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
10151         to /dev/null.
10152         * configure: Regenerate.
10153
10154 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10155
10156         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
10157         unused.
10158         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
10159         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
10160         support in Sun ld.
10161         * configure: Regenerate.
10162
10163 2010-05-10  Richard Guenther  <rguenther@suse.de>
10164
10165         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
10166         marked if the entry identifier is marked.
10167
10168 2010-05-10  Richard Guenther  <rguenther@suse.de>
10169
10170         * c-common.c (struct c_common_attributes): Add fnspec attribute.
10171         (handle_fnspec_attribute): New function.
10172         * gimple.h (gimple_call_return_flags): Declare.
10173         (gimple_call_arg_flags): Likewise.
10174         * gimple.c (gimple_call_arg_flags): New function.
10175         (gimple_call_return_flags): Likewise.
10176         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
10177         New argument flags.
10178         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
10179         return value flags.
10180         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
10181         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
10182         main work to ...
10183         (make_heapvar_for): ... this new function.
10184         (handle_rhs_call): Handle fnspec attribute argument specifiers.
10185         (handle_lhs_call): Likewise.
10186         (find_func_aliases): Adjust.
10187
10188 2010-05-10  Richard Guenther  <rguenther@suse.de>
10189
10190         PR tree-optimization/44050
10191         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
10192
10193 2010-05-10  Wei Guozhi  <carrot@google.com>
10194
10195         PR target/42879
10196         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
10197
10198 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
10199
10200         PR c/10676
10201         * c-typeck.c (lookup_field): Take a type directly.  Update
10202         recursive calls.
10203         (build_component_ref): Update call to lookup_field.
10204         (set_init_label): Use lookup_field to find initialized field.
10205         Handle returned list of fields like a sequence of designators.
10206
10207 2010-05-09  Richard Guenther  <rguenther@suse.de>
10208
10209         PR middle-end/44024
10210         * fold-const.c (tree_single_nonzero_warnv_p): Properly
10211         handle &FUNCTION_DECL.
10212
10213 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
10214
10215         PR c/4784
10216         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
10217         structures and unions recursively.
10218         (detect_field_duplicates): Move duplicate detection with a hash to
10219         detect_field_duplicates_hash.  Always use a hash if anonymous
10220         structures or unions are present.
10221         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
10222         give errors.
10223
10224 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
10225
10226         PR target/44046
10227         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
10228         detect Atom, Core 2 and Core i7.
10229
10230 2010-05-09  Richard Guenther  <rguenther@suse.de>
10231
10232         * gcc.c (store_arg): Handle temporary file deletion for
10233         joined arguments.
10234
10235 2010-05-09  Richard Guenther  <rguenther@suse.de>
10236
10237         PR middle-end/44043
10238         * ipa-inline.c (estimate_function_body_sizes): Return after
10239         disregarding inline limits.
10240
10241 2010-05-09  Richard Guenther  <rguenther@suse.de>
10242
10243         * gcc.c (store_arg): Revert last change.
10244
10245 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
10246
10247         PR middle-end/28685
10248         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
10249         (optimize_ops_list): Call it.
10250
10251 2010-05-08  Richard Guenther  <rguenther@suse.de>
10252
10253         PR tree-optimization/44030
10254         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
10255         NECESSARY flag if we propagate from a inserted expression.
10256
10257 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
10258
10259         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
10260         domain types as equal if they are both PLACEHOLDER_EXPRs.
10261
10262 2010-05-08  Richard Guenther  <rguenther@suse.de>
10263
10264         * lto-wrapper.c (run_gcc): Remove linker output from
10265         command line for LTRANS invocation.
10266
10267 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
10268
10269         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
10270         lto-macho as lto_binary_reader.
10271         * target.h (struct gcc_target): New hooks lto_start and lto_end.
10272         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
10273         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
10274         in lto_start and lto_end calls.
10275         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
10276         magic numbers.
10277         (scan_prog_file): Update is_elf_or_coff call.
10278         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
10279
10280         * collect2.c (main): Fix enum comparison.
10281
10282         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
10283         Add prototypes.
10284         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
10285         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
10286         and TARGET_ASM_LTO_END.
10287         * darwin.c: Include obstack.h and lto-streamer.h.
10288         (lto_section_names_offset, lto_section_names_obstack,
10289         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
10290         global variables.
10291         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
10292         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
10293         to a temporary file.
10294         (darwin_asm_lto_end): New function.  Restore asm_out_file.
10295         (darwin_asm_named_section): For LTO sections, replace the name with
10296         the offset of the section name in a string table, and build this
10297         table.
10298         (darwin_file_start): Initialize global vars for LTO support.
10299         (darwin_file_end): If output to asm_out_file was redirected, append it
10300         to the proper asm_out_file here.  Add the section names section.
10301
10302 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
10303
10304         * c-pragma.c (pending_weak_d, pending_weak): New.
10305         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
10306         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
10307         handle_pragma_weak): Update the uses of pending_weaks.
10308
10309 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10310
10311         PR documentation/44016
10312         * doc/standards.texi (Standards): Link to unversioned
10313         cxx0x_status.html page.
10314
10315 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
10316
10317         PR target/43708
10318         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
10319         in addition to TREE_USED, to avoid "set but unused" warnings.
10320
10321 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
10322
10323         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
10324         (is_loop_prefetching_profitable): Do not insert prefetches
10325         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
10326         times the prefetch ahead distance.
10327
10328 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
10329
10330         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
10331         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
10332         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
10333         the unroll_factor.
10334
10335 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
10336
10337         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
10338         a diagnostic info when the insn-to-mem ratio is too small.
10339
10340 2010-05-07  Richard Guenther  <rguenther@suse.de>
10341
10342         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
10343         the linker plugin.
10344         (store_arg): Queue temp_filename for deletion instead of
10345         the whole argument.
10346
10347 2010-05-07  Richard Guenther  <rguenther@suse.de>
10348
10349         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
10350         (run_gcc): Handle LTRANS phase invocation.
10351         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
10352
10353 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
10354
10355         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
10356         this is also meaningful on PARM_DECLs and RESULT_DECLs.
10357
10358 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10359
10360         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
10361
10362 2010-05-07  Richard Guenther  <rguenther@suse.de>
10363
10364         PR tree-optimization/44020
10365         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
10366         code when PRE is not yet initialized.
10367
10368 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10369
10370         * config/mips/dbxmdebug.h: Remove.
10371         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
10372
10373 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
10374
10375         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
10376         with null pointer and also warn about ordered comparison of zero with
10377         pointer if -Wextra.
10378
10379 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10380
10381         * graphite-blocking.c
10382         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
10383         * graphite-clast-to-gimple.c
10384         (clast_to_gcc_expression): Same.
10385         (precision_for_value): Same.
10386         (precision_for_interval): Same.
10387         (gcc_type_for_interval): Same.
10388         (graphite_create_new_guard): Same.
10389         (compute_bounds_for_level): Same.
10390         (graphite_create_new_loop_guard): Same.
10391         * graphite-interchange.c
10392         (build_linearized_memory_access): Same.
10393         (pdr_stride_in_loop): Same.
10394         (memory_strides_in_loop_1): Same.
10395         (memory_strides_in_loop): Same.
10396         (extend_scattering): Same.
10397         (psct_scattering_dim_for_loop_depth): Same.
10398         (pbb_number_of_iterations): Same.
10399         * graphite-poly.h
10400         (debug_iteration_domains): Same.
10401         * graphite-ppl.c
10402         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
10403         (ppl_set_inhomogeneous_gmp): Same.
10404         (ppl_strip_loop): Same.
10405         (ppl_lexico_compare_linear_expressions): Same.
10406         (ppl_read_polyhedron_matrix): Same.
10407         (ppl_max_for_le_pointset): Same.
10408         * graphite-ppl.h
10409         (ppl_read_polyhedron_matrix): Same.
10410         (tree_int_to_gmp): Same.
10411         (gmp_cst_to_tree): Same.
10412         (ppl_set_inhomogeneous): Same.
10413         (ppl_set_inhomogeneous_tree): Same.
10414         (ppl_set_coef): Same.
10415         (ppl_set_coef_tree): Same.
10416         * graphite-sese-to-poly.c
10417         (build_pbb_scattering_polyhedrons): Same.
10418         (build_scop_scattering): Same.
10419         (scan_tree_for_params_right_scev): Same.
10420         (scan_tree_for_params): Same.
10421         (find_params_in_bb): Same.
10422         (find_scop_parameters): Same.
10423         (add_upper_bounds_from_estimated_nit): Same.
10424         (build_loop_iteration_domains): Same.
10425         (add_condition_to_domain): Same.
10426         (pdr_add_memory_accesses): Same.
10427
10428 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10429
10430         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
10431         CLooG's value_* macros to their respective mpz_* counterparts.
10432         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
10433         (graphite_create_new_loop_guard): Same.
10434         * graphite-interchange.c (build_linearized_memory_access): Same.
10435         (pdr_stride_in_loop): Same.
10436         (memory_strides_in_loop_1): Same.
10437         (1st_interchange_profitable_p): Same.
10438         * graphite-poly.c (extend_scattering): Same.
10439         (psct_scattering_dim_for_loop_depth): Same.
10440         (pbb_number_of_iterations): Same.
10441         (pbb_number_of_iterations_at_time): Same.
10442         * graphite-poly.h (new_1st_loop): Same.
10443         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
10444         (oppose_constraint): Same.
10445         (insert_constraint_into_matrix): Same.
10446         (ppl_set_inhomogeneous_gmp): Same.
10447         (ppl_set_coef_gmp): Same.
10448         (ppl_strip_loop): Same.
10449         (ppl_lexico_compare_linear_expressions): Same.
10450         (ppl_max_for_le_pointset): Same.
10451         (ppl_min_for_le_pointset): Same.
10452         (ppl_build_realtion): Same.
10453         * graphite-ppl.h (gmp_cst_to_tree): Same.
10454         (ppl_set_inhomogeneous): Same.
10455         (ppl_set_inhomogeneous_tree): Same.
10456         (ppl_set_coef): Same.
10457         (ppl_set_coef_tree): Same.
10458         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
10459         (build_scop_scattering): Same.
10460         (add_value_to_dim): Same.
10461         (scan_tree_for_params_right_scev): Same.
10462         (scan_tree_for_params_int): Same.
10463         (scan_tree_for_params): Same.
10464         (find_params_in_bb): Same.
10465         (find_scop_parameters): Same.
10466         (add_upper_bounds_from_estimated_nit): Same.
10467         (build_loop_iteration_domains): Same.
10468         (create_linear_expr_from_tree): Same.
10469         (add_condition_to_domain): Same.
10470         (pdr_add_memory_accesses): Same.
10471
10472 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
10473             Jason Merrill  <jason@redhat.com>
10474
10475         * c-common.c (c_common_reswords): Add nullptr.
10476         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
10477         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
10478         (gen_type_die_with_usage): Likewise.
10479         * dbxout.c (dbxout_type): Likewise.
10480         * sdbout.c (plain_type_1): Likewise.
10481
10482 2010-05-06  Jason Merrill  <jason@redhat.com>
10483
10484         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
10485         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
10486         ret appropriately.
10487         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
10488
10489         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
10490         stripping WITH_SIZE_EXPR.
10491         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
10492         change.
10493
10494 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10495
10496         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
10497         list of obsolete configurations.
10498         Disabled check for obsolete configurations.
10499         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
10500         Removed support for previous versions.
10501         * config/mips/iris.h: Removed.
10502         * config/mips/iris5.h: Removed.
10503         * config/mips/iris6.h: Merged old iris.h contents.
10504         (TARGET_IRIX): Removed.
10505         (DRIVER_SELF_SPECS): Removed mabi=32.
10506         (IDENT_ASM_OP): Removed undef.
10507         (STARTFILE_SPEC): Removed mabi=32.
10508         (ENDFILE_SPEC): Likewise.
10509         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
10510         (MACHINE_TYPE): Update for IRIX 6.5.
10511         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
10512         TARGET_IRIX by TARGET_IRIX6.
10513         (mips_file_start): Likewise.
10514         (mips_output_external): Remove IRIX 5/6 O32 support.
10515         (mips_output_function_prologue): Likewise.
10516         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
10517         TARGET_IRIX6.
10518         (TARGET_CPU_CPP_BUILTINS): Likewise.
10519         (TARGET_IRIX): Removed.
10520         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
10521         (MULTILIB_DIRNAMES): Removed 32.
10522         (MULTILIB_OSDIRNAMES): Removed ../lib.
10523         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
10524         (Specific, mips-sgi-irix5): Document removal.
10525         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
10526         Remove references to older IRIX 6 releases and the O32 ABI.
10527
10528 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
10529
10530         PR bootstrap/43994
10531         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
10532         instead of DF_REF_REAL_REG.
10533
10534 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
10535
10536         PR target/43888
10537         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
10538         handling to still return true for x64 targets.
10539
10540 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
10541
10542         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
10543
10544 2010-05-06  Jan Hubicka  <jh@suse.cz>
10545
10546         PR tree-optimization/43791
10547         * ipa-inline.c (update_caller_keys): Remove bogus
10548         disregard_inline_limits check.
10549
10550 2010-05-06  Michael Matz  <matz@suse.de>
10551
10552         PR tree-optimization/43984
10553         * tree-ssa-pre.c (inserted_phi_names): Remove.
10554         (inserted_exprs): Change to bitmap.
10555         (create_expression_by_pieces): Set bits, don't append to vector.
10556         (insert_into_preds_of_block): Don't handle inserted_phi_names.
10557         (eliminate): Don't look at inserted_phi_names, remove deleted
10558         insns from inserted_exprs.
10559         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
10560         (init_pre, fini_pre): Allocate and free bitmaps.
10561         (execute_pre): Insert insns on edges before elimination.
10562
10563 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
10564
10565         * tree.c (initializer_zerop): Handle STRING_CST.
10566
10567 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10568
10569         PR 40989
10570         * doc/invoke.texi (Wimplicit): Document as C only.
10571         * opts.c (common_handle_option): Add argument kind.
10572         (handle_option): Rename as read_cmdline_option. Factor out code to...
10573         (handle_option): ... here. New.
10574         (handle_options): Rename as read_cmdline_options.
10575         (decode_options): Update call.
10576         (set_option): Use option index instead of option pointer. Classify
10577         diagnostics correctly.
10578         (enable_warning_as_error): Call handle_option.
10579         * opts.h (set_option): Update declaration.
10580         (handle_option): Declare.
10581         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
10582         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
10583         * c-opts.c (set_Wimplicit): Delete.
10584         (c_family_lang_mask): New static constant.
10585         (c_common_handle_option): Add argument kind. Use handle_option
10586         instead of set_Wimplicit.
10587         (c_common_post_options): warn_implicit and warn_implicit_int
10588         are disabled by default.
10589         * c-common.c (warn_implicit): Do not define here.
10590         * c-common.h (warn_implicit): Do not declare here.
10591         (c_common_handle_option): Update declaration.
10592         * lto-opts.c (lto_reissue_options): Update call to set_option.
10593
10594 2010-05-06  Richard Guenther  <rguenther@suse.de>
10595
10596         PR tree-optimization/43571
10597         * domwalk.c (walk_dominator_tree): Walk the dominator
10598         sons in more optimal order.
10599
10600 2010-05-06  Richard Guenther  <rguenther@suse.de>
10601
10602         PR tree-optimization/43934
10603         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
10604         (stmt_cost): Likewise.
10605         (extract_true_false_args_from_phi): New helper.
10606         (determine_max_movement): For PHI nodes verify we can hoist them
10607         and compute their cost.
10608         (determine_invariantness_stmt): Handle PHI nodes.
10609         (move_computations_stmt): Likewise.  Hoist PHI nodes in
10610         if-converted form using COND_EXPRs.
10611         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
10612         (tree_ssa_lim): Likewise.
10613         * tree-flow.h (tree_ssa_lim): Adjust prototype.
10614         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
10615
10616 2010-05-06  Richard Guenther  <rguenther@suse.de>
10617
10618         PR tree-optimization/43987
10619         * tree-ssa-structalias.c (could_have_pointers): For possibly
10620         address-taken variables force pointers to be recorded.
10621         (create_variable_info_for_1): Likewise.
10622         (push_fields_onto_fieldstack): Pass in wheter all fields
10623         must have pointers.
10624         (find_func_aliases): Query types instead of vars whether
10625         they contain pointers where appropriate.
10626
10627 2010-05-06  Jan Hubicka  <jh@suse.cz>
10628
10629         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
10630         (record_reference, mark_address, mark_load, mark_store): Record
10631         references.
10632         (record_references_in_initializer): Update call of record_references.
10633         (rebuild_cgraph_edges): Remove all references before rebuiding.
10634         * cgraph.c (cgraph_create_node): Clear ref list.
10635         (cgraph_remove_node): Remove references.
10636         (dump_cgraph_node): Dump references.
10637         (cgraph_clone_node): Clone references.
10638         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
10639         (struct cgraph_node, varpool_node): Add ref_lst.
10640         * ipa-ref.c: New file.
10641         * ipa-ref.h: New file.
10642         * ipa-ref-inline.h: New file.
10643         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
10644         (referenced_from_other_partition_p): New function.
10645         (lto_output_varpool_node): Take set arugment; call
10646         referenced_from_other_partition.
10647         (lto_output_ref): New.
10648         (add_references): New.
10649         (output_refs): New.
10650         (output_cgraph): Compute boundary based on references; output refs.
10651         (output_varpool): Accept cgraph_node_set argument.
10652         (input_ref): New.
10653         (input_refs): New.
10654         (input_cgraph): Call input_refs.
10655         * lto-section-in.c (lto_section_name): Add refs.
10656         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
10657         (ipa-ref.o): New file.
10658         * varpool.c (varpool_node): Clear ipa ref list.
10659         (varpool_remove_node): Remove references.
10660         (dump_varpool_node): Dump references.
10661         (varpool_assemble_decl): Only compile finalized ones.
10662         (varpool_extra_name_alias): Initialize ref list.
10663         * lto-streamer.c (lto-get_section_name): Add .refs section.
10664         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
10665         (referenced_from_other_partition_p): Declared.
10666
10667 2010-05-06  Ira Rosen  <irar@il.ibm.com>
10668
10669         PR tree-optimization/43901
10670         * tree-vect-stmts.c (vectorizable_call): Assert that vector
10671         type is not NULL if it's transformation phase, and return
10672         FALSE if it's analysis.
10673         (vectorizable_conversion, vectorizable_operation,
10674         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
10675
10676 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
10677
10678         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
10679         Delete.
10680         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
10681         New define.
10682         * config/mips/mips-protos.h
10683         (mips_small_register_classes_for_mode_p): Delete prototype.
10684
10685 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
10686
10687         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
10688         * config/arm/arm.c (multiple_operation_profitable_p,
10689         compute_offset_order): New static functions.
10690         (load_multiple_sequence, store_multiple_sequence): Use them.
10691         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
10692         memory offsets, not register numbers.
10693         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
10694
10695 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
10696
10697         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
10698         (get_pending_sizes, put_pending_size, put_pending_sizes):
10699         Update the uses of pending_sizes.
10700         * c-decl.c (store_parm_decls): Likewise.
10701         * c-tree.h (struct c_arg_info): Likewise.
10702         * tree.h: Update the prototype for get_pending_sizes and
10703         put_pending_sizes.
10704
10705 2010-05-05  Jason Merrill  <jason@redhat.com>
10706
10707         PR debug/43370
10708         * c-common.c (handle_aligned_attribute): Respect
10709         ATTR_FLAG_TYPE_IN_PLACE.
10710
10711         PR testsuite/43758
10712         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
10713         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
10714         (TARGET_INITIALIZER): Use it.
10715         * c-common.c (attribute_takes_identifier_p): Call it.
10716         * c-common.h: Update prototype.
10717         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
10718         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
10719
10720 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
10721
10722         PR debug/43950
10723         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
10724         DW_ID_down_case for Fortran compilation units.
10725
10726 2010-05-05  Jan Hubicka  <jh@suse.cz>
10727
10728         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
10729         handle aliases.
10730
10731 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
10732
10733         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
10734         a variable-sized RESULT_DECL.
10735
10736 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
10737
10738         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
10739
10740 2010-05-05  Jason Merrill  <jason@redhat.com>
10741
10742         PR c++/43787
10743         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
10744         returns GS_OK.
10745         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
10746
10747 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
10748             Jakub Jelinek  <jakub@redhat.com>
10749
10750         PR debug/43478
10751         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
10752         (dead_debug_init, dead_debug_finish): New functions.
10753         (dead_debug_add, dead_debug_insert_before): Likewise.
10754         (df_note_bb_compute): Initialize a dead_debug object, add dead
10755         debug uses to it, insert debug bind insns before death insns,
10756         reset debug insns that refer to pending uses at the end.
10757         * rtl.h (make_debug_expr_from_rtl): New prototype.
10758         * varasm.c (make_debug_expr_from_rtl): New function.
10759
10760 2010-05-05  Jan Hubicka  <jh@suse.cz>
10761
10762         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
10763         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
10764         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
10765         lto_varpool_encoder_deref, lto_varpool_encoder_size,
10766         lto_varpool_encoder_encode_initializer_p,
10767         lto_set_varpool_encoder_encode_initializer): New functions.
10768         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
10769         call output_varpool.
10770         (input_varpool_node): Do not always set analyzed.
10771         (input_cgraph_1): Return vector of cgraph nodes.
10772         (input_varpool_1): Return vector of varpools.
10773         (input_cgraph): Free the vectors.
10774         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10775         output only initializers needed.
10776         (lto_output): Only call output_cgraph.
10777         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
10778         * lto-section-out.c (lto_new_out_decl_state): Initialize
10779         state->varpool_node_encoder.
10780         * lto-streamer.h (lto_varpool_encoder_d): New.
10781         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
10782         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
10783         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
10784         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
10785         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
10786         Declare.
10787         (output_varpool, input_varpool): Remove declarations.
10788
10789 2010-05-05  Jan Hubicka  <jh@suse.cz>
10790
10791         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
10792         with body can prevail.
10793
10794 2010-05-05  Jan Hubicka  <jh@suse.cz>
10795
10796         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
10797         size.
10798
10799 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10800
10801         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
10802
10803         * gengtype.h (erro_at_line): Constify pos argument.
10804
10805         * gengtype.c: Include hashtab.h.
10806         (enum gc_used): Document GC_MAYBE_POINTED_TO.
10807         (error_at_line): Constify pos argument.
10808         (do_typedef): Initialize p->opt field.
10809         (get_file_gtfilename): Fix comment typo.
10810         (struct walk_type_data): Constify line field.
10811         (get_output_file_for_structure): New function.
10812         (write_local_func_for_structure): Constify orig_s argument.
10813         Use get_output_file_for_structure.
10814         (write_func_for_structure): Use get_output_file_for_structure.
10815         (INDENT): New define.
10816         (dump_pair, dump_type, dump_type_list, dump_typekind)
10817         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
10818         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
10819         functions.
10820         (seen_types): New variable.
10821         (main): New variable do_dump.  Process "-d" command line option.
10822         Call dump_everything if dump requested.
10823
10824 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
10825
10826         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
10827         in a temporary instead of invoking the macro multiple times.
10828         (track_expr_p): Likewise.
10829
10830 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
10831
10832         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
10833         per new semantics.
10834         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
10835         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
10836         conditions for printing notes.
10837         * common.opt (-Wcoverage-mismatch): Allow negative, default to
10838         true, update documentation.
10839         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
10840
10841 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
10842
10843         PR c/43981
10844         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
10845         on dimen.
10846
10847 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
10848
10849         PR target/43799
10850         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
10851         (*sse_prologue_save_insn1): Likewise.
10852         (SSE prologue save splitter): Likewise.
10853
10854 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
10855
10856         * tree.c (free_lang_data_in_one_sizepos): New inline function.
10857         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
10858         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
10859         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
10860         all decls.  Call it on DECL_FIELD_OFFSET of fields.
10861         (find_decls_types_r): Follow DECL_VALUE_EXPR.
10862         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
10863
10864 2010-05-04  Martin Jambor  <mjambor@suse.cz>
10865
10866         * tree-sra.c (build_access_from_expr_1): The first parameter type
10867         changed to simple tree.
10868         (build_access_from_expr): Likewise, gsi parameter was eliminated.
10869         (scan_assign_result): Renamed to assignment_mod_result, enum elements
10870         renamed as well.
10871         (build_accesses_from_assign): Removed all parameters except for a
10872         simple gimple statement.  Now returns a simple bool.
10873         (scan_function): All non-analysis parts moved to separate functions
10874         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
10875         parameters and updated both callers.
10876         (sra_modify_expr): Removed parameter data.
10877         (sra_modify_function_body): New function.
10878         (perform_intra_sra): Call sra_modify_function_body to modify the
10879         function body.
10880         (replace_removed_params_ssa_names): Parameter data changed into
10881         adjustments vector.
10882         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
10883         changed the parameter dont_convert to convert with the opposite
10884         meaning.
10885         (sra_ipa_modify_assign): Parameter data changed into adjustments
10886         vector, return value changed to bool.
10887         (ipa_sra_modify_function_body): New function.
10888         (sra_ipa_reset_debug_stmts): Updated a comment.
10889         (modify_function): Use ipa_sra_modify_function_body to modify function
10890         body.
10891
10892 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
10893
10894         PR middle-end/43671
10895         * alias.c (true_dependence): Handle the same VALUE in x and mem.
10896         (canon_true_dependence): Likewise.
10897         (write_dependence_p): Likewise.
10898
10899 2010-05-04  Jan Hubicka  <jh@suse.cz>
10900
10901         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
10902         * cgraphbuild.c: Include ipa-utils.h
10903         (record_reference_ctx): New struct.
10904         (record_reference): Simplify to work on initializers; not statements.
10905         (mark_address, mark_load, mark_store): New.
10906         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
10907         walk PHI nodes too.
10908         (record_references_in_initializer): Update use of record_reference.
10909         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
10910         walk PHI nodes too.
10911
10912 2010-05-04  Jan Hubicka  <jh@suse.cz>
10913
10914         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
10915         node will be removed anyway.
10916         (lto_varpool_replace_node): Allow also unanalyzed nodes;
10917         relink aliases of node into prevailing node.
10918         * varpool.c (varpool_remove_node): Remove aliases properly;
10919         when removing node, remove all its aliases too; remove DECL_INITIAL
10920         of removed node; ggc_free the varpool node.
10921
10922 2010-05-04  Richard Guenther  <rguenther@suse.de>
10923
10924         PR tree-optimization/43879
10925         * tree-ssa-structalias.c (alias_get_name): Use
10926         DECL_ASSEMBLER_NAME if available.
10927         (create_function_info_for): Return the varinfo node.
10928         (ipa_pta_execute): Associate same-body aliases and extra names
10929         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
10930
10931 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
10932
10933         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
10934
10935 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
10936
10937         PR bootstrap/43964
10938         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
10939         only if HONOR_REG_ALLOC_ORDER is not defined.
10940
10941 2010-05-04  Richard Guenther  <rguenther@suse.de>
10942
10943         PR tree-optimization/43949
10944         * tree-vrp.c (extract_range_from_binary_expr): Only handle
10945         TRUNC_MOD_EXPR.
10946
10947 2010-04-26  Jason Merrill  <jason@redhat.com>
10948
10949         * c.opt (-fstrict-enums): New.
10950         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
10951
10952 2010-05-03  David Ung  <davidu@mips.com>
10953             James E. Wilson  <wilson@codesourcery.com>
10954
10955         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
10956         emit the trap instruction before the divide for TUNE_74K.
10957
10958 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
10959
10960         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
10961         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
10962         based on the above, for new target hook.
10963
10964         * hooks.c (hook_bool_mode_true): New generic hook.
10965         * hooks.h (hook_bool_mode_true): Add prototype.
10966
10967         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
10968         target hook.
10969         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
10970         target hook, set to hook_bool_mode_false.
10971         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
10972         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
10973         with targetm.small_register_classes_for_mode_p.
10974         (find_reusable_reload): Likewise.
10975         (combine_reloads): Likewise.
10976         * reload1.c (reload_as_needed): Likewise.
10977         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
10978         * ifcvt.c (noce_process_if_block, check_cond_move_block,
10979         dead_or_predicable): Likewise.
10980         * regmove.c (optimize_reg_copy_1): Likewise.
10981         * calls.c (prepare_call_address): Likewise.
10982         (precompute_register_parameters): Likewise.
10983
10984         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
10985         hook definition.
10986         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
10987         implementation of the hook that considers all register classes
10988         small except for SH64.
10989         (sh_override_options): Use the new hook.
10990         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
10991         Add prototype.
10992
10993         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
10994         hook definition.
10995         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
10996         implementation of the hook that considers all register classes
10997         small for THUMB1.
10998         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
10999         Add prototype.
11000
11001         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
11002         hook definition.
11003         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
11004         implementation of the hook that considers all register classes
11005         small for MIPS16.
11006         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
11007         Add prototype.
11008
11009         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
11010         hook definition.
11011         * config/m32c/m32c.h: Likewise.
11012         * config/pdp11/pdp11.h: Likewise.
11013         * config/avr/avr.h: Likewise.
11014         * config/xtensa/xtensa.h: Likewise.
11015         * config/m68hc11/m68hc11.h: Likewise.
11016         * config/mn10300/mn10300.h: Likewise.
11017         * config/mcore/mcore.h: Likewise.
11018         * config/h8300/h8300.h: Likewise.
11019         * config/bfin/bfin.h: Likewise.
11020
11021         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
11022         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
11023
11024 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
11025
11026         * double-int.h (tree_to_double_int): Remove macro.
11027         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
11028         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
11029         (tree_to_double_int): New function.
11030         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
11031         Move ...
11032         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
11033
11034 2010-05-03  Richard Guenther  <rguenther@suse.de>
11035
11036         PR tree-optimization/43971
11037         * tree-ssa-structalias.c (get_constraint_for_1): Fix
11038         constraints in the !flag_delete_null_pointer_checks case.
11039
11040 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
11041
11042         PR debug/43972
11043         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
11044         result mode matches original rtl mode.
11045
11046 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
11047
11048         PR target/43888
11049         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
11050
11051 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
11052
11053         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
11054         when processing flag options.
11055
11056 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
11057
11058         * gcov-iov.c (main): Change format string placeholder
11059         from %#08x to 0x%08x.
11060         * genchecksum.c (dosum): Change format string placeholder
11061         from %#02x to 0x%02x.
11062
11063 2010-05-02  Richard Guenther  <rguenther@suse.de>
11064
11065         PR tree-optimization/43879
11066         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
11067
11068 2010-05-02  Bruno Haible  <bruno@clisp.org>
11069
11070         * doc/extend.texi (Function Attributes): Fix a typo.
11071
11072 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
11073
11074         Revert:
11075         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
11076         placeholder from 0x%x to %#x.
11077         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
11078         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
11079         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
11080         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
11081         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
11082         * config/i386/i386.c (ix86_target_string): Ditto.
11083         * config/i386/i386.c (output_pic_addr_const): Ditto.
11084         (print_operand): Ditto.
11085
11086 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
11087
11088         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
11089         placeholder from 0x%x to %#x.
11090         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
11091         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
11092         (ASM_OUTPUT_DEBUG_DATA): Ditto.
11093         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
11094         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
11095         * optc-gen.awk: Ditto.
11096         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
11097         (HOST_WIDE_INT_PRINT_HEX): Ditto.
11098         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
11099         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
11100
11101 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
11102
11103         * target.h (struct calls): Add function_value_regno_p field.
11104         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11105         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
11106         * targhooks.c (default_function_value_regno_p): New function.
11107         * targhooks.h (default_function_value_regno_p): Declare function.
11108         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
11109         * builtins.c. (apply_result_size): (Ditto.).
11110         * combine.c. (likely_spilled_retval_p): (Ditto.).
11111         * mode-switching.c. Include 'target.h'.
11112         (create_pre_exit): Use function_value_regno_p hook.
11113         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
11114         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
11115         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
11116
11117         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
11118         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
11119         (ix86_function_value_regno_p): Declare as static, change argument
11120         type to const unsigned int.
11121         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
11122
11123 2010-05-01  Richard Guenther  <rguenther@suse.de>
11124
11125         PR tree-optimization/43949
11126         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
11127         types.
11128         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
11129
11130 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
11131
11132         * rtl.h (CONST_DOUBLE_P): Define.
11133         (rtx_to_double_int): Declare.
11134         * emit-rtl.c (rtx_to_double_int): New function.
11135         * dwarf2out.c (insert_double): New function.
11136         (loc_descriptor, add_const_value_attribute): Clean up, use
11137         rtx_to_double_int and insert_double functions.
11138
11139 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
11140
11141         * doc/extend.texi (Inline): Add missing return keyword to examples.
11142         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
11143         "command-line".
11144
11145 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
11146
11147         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
11148         the variable part of the offset as well.  Use highest_pow2_factor for
11149         all alignment checks.
11150
11151 2010-04-30  Richard Guenther  <rguenther@suse.de>
11152
11153         PR tree-optimization/43879
11154         * tree-ssa-structalias.c (type_could_have_pointers): Functions
11155         can have pointers.
11156
11157 2010-04-30  Jan Hubicka  <jh@suse.cz>
11158
11159         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
11160         varpool.
11161         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
11162
11163 2010-04-30  Jan Hubicka  <jh@suse.cz>
11164
11165         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
11166         New.
11167         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
11168         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
11169         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
11170         cgraph_node_set_needs_ltrans_p): Remove.
11171
11172 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
11173
11174         * sdbout.c: Include vec.h, do not include varray.h.
11175         (deferred_global_decls, sdbout_global_decl,
11176         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
11177         * toplev.c: Do not include varray.h.
11178         (dump_memory_report): Do not dump VARRAY statistics.
11179         * gengtype.c (open_base_file): Ignore varray.h.
11180         * Makefile.in: Update for abovementioned changes.
11181         Remove all traces of varray.c and varray.h.
11182         * varray.c: Remove file.
11183         * varray.h: Remove file.
11184
11185 2010-04-30  Jan Hubicka  <jh@suse.cz>
11186
11187         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
11188         references.
11189
11190 2010-04-30  Jan Hubicka  <jh@suse.cz>
11191
11192         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
11193         needed.
11194
11195 2010-04-30  Richard Guenther  <rguenther@suse.de>
11196
11197         * tree-ssa-structalias.c (get_constraint_for_1): Generate
11198         constraints for CONSTRUCTOR.
11199
11200 2010-04-30  Richard Guenther  <rguenther@suse.de>
11201
11202         PR lto/43946
11203         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
11204         first after all lowering passes.
11205
11206 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
11207
11208         * toplev.c: Include varray.h for statistics dumping.
11209         * tree.h: Do not declare varray_head_tag.
11210         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
11211         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
11212         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
11213         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
11214         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
11215         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
11216         c-common.c, c-common.h, reg-stack.c, basic-block.h,
11217         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
11218         include varray.h.
11219         * Makefile.in: Update for abovementioned changes.
11220
11221 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
11222
11223         PR debug/43942
11224         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
11225
11226 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
11227
11228         * config/picochip/picochip.c (picochip_legitimize_address): Define.
11229         Use this function to do machine-specific conversion.
11230         (picochip_legitimize_reload_address): Likewise.
11231         (picochip_legitimate_address_p): Check valid base register only if
11232         strict.
11233         (picochip_check_conditional_copy): Check for modw only if opnd is
11234         register.
11235         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
11236         to call the function in c.
11237         * config/picochip/picochip-protos.h
11238         (picochip_legitimize_reload_address): Define.
11239         * config/picochip/picochip.md (supported_compare1): Define.
11240
11241 2010-04-30  Jan Hubicka  <jh@suse.cz>
11242
11243         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
11244         (cgraph_global_info): Remove inlined.
11245         (LTO_cgraph_tag_names): Remove.
11246         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
11247         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
11248         simplify cgraph tags and document.
11249         (lto_output_node): Use only LTO_cgraph_unavail_node and
11250         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
11251         for_functions_valid, global info, process and output flags.
11252         (input_overwrite_node): Initialize estimated stack size and
11253         estimated growth.  Do not read flags we no longer store.
11254         (input_node): Likewise do not read info no longer stored.
11255         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
11256         flag.
11257
11258 2010-04-30  Richard Guenther  <rguenther@suse.de>
11259
11260         PR tree-optimization/43879
11261         * tree-ssa-structalias.c (get_constraint_for_1): Properly
11262         handle non-zero initializers.
11263
11264 2010-04-30  Richard Guenther  <rguenther@suse.de>
11265
11266         * builtins.c (fold_builtin_1): Delete free (0).
11267
11268 2010-04-29  Jan Hubicka  <jh@suse.cz>
11269
11270         * gengtype.c (open_base_files): Add lto-streamer.h
11271         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
11272         (pass_ipa_cp): GGC collect.
11273         * toplev. (compile_file): Do not output symbols.
11274         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
11275         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
11276         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
11277         * lto-section-in.c: Include ggc.h
11278         (lto_new_in_decl_state): Alloc in GGC.
11279         (lto_delete_in_decl_state): Likewise.
11280         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
11281         Collect.
11282
11283 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
11284
11285         PR target/42895
11286         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
11287         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
11288         (HONOR_REG_ALLOC_ORDER): Describe new macro.
11289         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
11290         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
11291         account only if HONOR_REG_ALLOC_ORDER is not defined.
11292         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
11293         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
11294
11295 2010-04-29  Jon Grant  <04@jguk.org>
11296
11297         * collect2.c (vflag): Change type from int to bool.
11298         (debug): Likewise.
11299         (helpflag): New global bool.
11300         (main): Set vflag and debug with boolean, not integer truth values.
11301         Accept new "--help" option and output usage text if found.
11302         * collect2.h (vflag): Update prototype.
11303         (debug): Likewise.
11304
11305 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
11306
11307         PR bootstrap/43936
11308         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
11309
11310 2010-04-29  Richard Guenther  <rguenther@suse.de>
11311
11312         PR bootstrap/43935
11313         * plugin.h (invoke_plugin_callbacks): Annotate arguments
11314         with ATTRIBUTE_UNUSED.
11315
11316 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
11317
11318         PR target/43921
11319         * config/i386/i386.c (get_some_local_dynamic_name): Replace
11320         INSN_P with NONDEBUG_INSN_P.
11321         (distance_non_agu_define): Likewise.
11322         (distance_agu_use): Likewise.
11323
11324 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
11325
11326         From Dominique d'Humieres  <dominiq@lps.ens.fr>
11327         PR bootstrap/43858
11328         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
11329         test_set.
11330
11331 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
11332
11333         * plugin.h (invoke_plugin_callbacks): New inline function.
11334         * plugin.c (flag_plugin_added): New global flag.
11335         (add_new_plugin): Initialize above flag.
11336         (invoke_plugin_callbacks): Rename to ...
11337         (invoke_plugin_callbacks_full): ... this.
11338
11339 2010-04-28  Jan Hubicka  <jh@suse.cz>
11340
11341         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
11342         (lto_varpool_replace_node): New.
11343         (lto_symtab_resolve_symbols): Resolve varpool nodes.
11344         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
11345         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
11346         * cgraph.h (varpool_node_ptr): New type.
11347         (varpool_node_ptr): New vector.
11348         (varpool_node_set_def): New structure.
11349         (varpool_node_set): New type.
11350         (varpool_node_set): New vector.
11351         (varpool_node_set_element_def): New structure.
11352         (varpool_node_set_element, const_varpool_node_set_element): New types.
11353         (varpool_node_set_iterator): New type.
11354         (varpool_node): Add prev pointers, add used_from_other_partition,
11355         in_other_partition.
11356         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
11357         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
11358         varpool_get_node, varpool_remove_node): Declare.
11359         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
11360         varpool_node_set_size): New inlines.
11361         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
11362         * tree-pass.h (varpool_node_set_def): Forward declare.
11363         (ipa_opt_pass_d): Summary writting takes vnode sets too.
11364         (ipa_write_optimization_summaries): Update prototype.
11365         * ipa-cp.c (ipcp_write_summary): Update.
11366         * ipa-reference.c (ipa_reference_write_summary): Update.
11367         * lto-cgraph.c (lto_output_varpool_node): New static function.
11368         (output_varpool): New function.
11369         (input_varpool_node): New static function.
11370         (input_varpool_1): New function.
11371         (input_cgraph): Input varpool.
11372         * ipa-pure-const.c (pure_const_write_summary): Update.
11373         * lto-streamer-out.c (lto_output): Update, output varpool too.
11374         (write_global_stream): Kill WPA hack.
11375         (produce_asm_for_decls): Update.
11376         (output_alias_pair_p): Handle variables.
11377         (output_unreferenced_globals): Output only needed partition of varpool.
11378         * ipa-inline.c (inline_write_summary): Update.
11379         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
11380         cgraph.
11381         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
11382         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
11383         varpool_node_set_new, varpool_node_set_add,
11384         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
11385         debug_varpool_node_set): New functions.
11386         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
11387         (execute_one_pass): Process new decls too.
11388         (ipa_write_summaries_2): Pass around vsets.
11389         (ipa_write_summaries_1): Likewise.
11390         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
11391         to add.
11392         (ipa_write_optimization_summaries_1): Pass around vsets.
11393         (ipa_write_optimization_summaries): Likewise.
11394         * varpool.c (varpool_get_node): New.
11395         (varpool_node): Update doubly linked lists.
11396         (varpool_remove_node): New.
11397         (dump_varpool_node): More dumping.
11398         (varpool_enqueue_needed_node): Update doubly linked lists.
11399         (decide_is_variable_needed): Kill ltrans hack.
11400         (varpool_finalize_decl): Kill lto hack.
11401         (varpool_assemble_decl): Skip decls in other partitions.
11402         (varpool_assemble_pending_decls): Update doubly linkes lists.
11403         (varpool_empty_needed_queue): Likewise.
11404         (varpool_extra_name_alias): Likewise.
11405         * lto-streamer.c (lto_get_section_name): Add vars section.
11406         * lto-streamer.h (lto_section_type): Update.
11407         (output_varpool, input_varpool): Declare.
11408
11409 2010-04-28  Mike Stump  <mikestump@comcast.net>
11410
11411         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
11412
11413 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
11414
11415         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
11416         record or union type with RECORD_OR_UNION_TYPE_P predicate.
11417         (lto_input_ts_type_tree_pointers): Likewise.
11418         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
11419         (lto_output_ts_type_tree_pointers): Likewise.
11420
11421 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
11422
11423         Uniquization of constants at the Tree level
11424         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
11425         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
11426         bit to the end.
11427         (tree_output_constant_def): Declare.
11428         * gimplify.c (gimplify_init_constructor): When using block copy, first
11429         uniquize the constant constructor on the RHS.
11430         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
11431         DECL_IN_CONSTANT_POOL flag.
11432         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
11433         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
11434         constant pool.
11435         (assemble_variable): Deal with symbols belonging to the tree constant
11436         pool.
11437         (get_constant_section): Add ALIGN parameter and simplify.
11438         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
11439         (assemble_constant_contents): Use the expression of the VAR_DECL.
11440         (output_constant_def_contents): Use the alignment of the VAR_DECL.
11441         (tree_output_constant_def): New global function.
11442         (mark_constant): Use the expression of the VAR_DECL.
11443         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
11444         its expression.
11445         (output_object_block): Likewise and assemble the expression.
11446
11447 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
11448
11449         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
11450         hash_tree, eq_tree): New tree hash table.
11451         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
11452         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
11453         lto_orig_address_remove): Reimplement.
11454
11455 2010-04-28  Xinliang David Li  <davidxl@google.com>
11456
11457         PR c/42643
11458         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
11459         (compute_uninit_opnds_pos): New function.
11460         (is_non_loop_exit_postdominating): New function.
11461         (compute_control_dep_chain): New function.
11462         (find_pdom): New function.
11463         (convert_control_dep_chain_into_preds): New function.
11464         (find_predicates): New function.
11465         (find_control_equiv_block): New function.
11466         (collect_phi_def_edges): New function.
11467         (find_def_preds): New function.
11468         (find_dom): New function.
11469         (dump_predicates): New function.
11470         (get_cmp_code): New function.
11471         (is_value_included_in): New function.
11472         (find_matching_predicate_in_rest_chains): New function.
11473         (use_pred_not_overlap_with_undef_path_pred): New function.
11474         (is_use_properly_guarded): New function.
11475         (normalize_cond_1): New function.
11476         (is_and_or_or): New function.
11477         (normalize_cond): New function.
11478         (is_gcond_subset_of): New function.
11479         (is_subset_of_any): New function.
11480         (is_or_set_subset_of): New function.
11481         (is_and_set_subset_of): New function.
11482         (is_norm_cond_subset_of): New function.
11483         (is_pred_expr_subset_of): New function.
11484         (is_pred_chain_subset_of): New function.
11485         (is_included_in): New function.
11486         (is_superset_of): New function.
11487         (find_uninit_use): New function.
11488         (warn_uninitialized_phi): New function.
11489         (compute_possibly_undefined_names): New function.
11490         (ssa_undefined_value_p): New function.
11491         (execute_late_warn_uninitialized): New function.
11492         * tree-ssa.c (ssa_undefined_value_p): Removed.
11493         (warn_uninit): Changed to extern.
11494         (warn_uninitialized_phi): Removed.
11495         (warn_uninitialized_vars): Changed to extern.
11496         (execute_late_warn_uninitialized): Removed
11497         * tree-flow.h: Add new prototypes.
11498         * timevar.def: Add new time variable.
11499         * Makefile.in: Add new build file.
11500
11501 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
11502
11503         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
11504         type if available.
11505
11506 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11507
11508         PR target/22224
11509         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
11510
11511 2010-04-28  Martin Jambor  <mjambor@suse.cz>
11512
11513         * cgraph.h (struct cgraph_node): New field indirect_calls.
11514         (struct cgraph_indirect_call_info): New type.
11515         (struct cgraph_edge): Removed field indirect_call. New fields
11516         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
11517         (cgraph_create_indirect_edge): Declare.
11518         (cgraph_make_edge_direct): Likewise.
11519         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
11520         * ipa-prop.h (struct ipa_param_call_note): Removed.
11521         (struct ipa_node_params): Removed field param_calls.
11522         (ipa_create_all_structures_for_iinln): Declare.
11523         * cgraph.c: Described indirect edges and uids in initial comment.
11524         (cgraph_add_edge_to_call_site_hash): New function.
11525         (cgraph_edge): Search also among the indirect edges, use
11526         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
11527         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
11528         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
11529         site hash.
11530         (initialize_inline_failed): Assign a reason to indirect edges.
11531         (cgraph_create_edge_1): New function.
11532         (cgraph_create_edge): Moved some functionality to
11533         cgraph_create_edge_1.
11534         (cgraph_create_indirect_edge): New function.
11535         (cgraph_edge_remove_callee): Add an assert checking for
11536         non-indirectness.
11537         (cgraph_edge_remove_caller): Special-case indirect edges.
11538         (cgraph_remove_edge): Likewise.
11539         (cgraph_set_edge_callee): New function.
11540         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
11541         (cgraph_make_edge_direct): New function.
11542         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
11543         the declaration of the call statement matches.
11544         (cgraph_node_remove_callees): Special-case indirect edges.
11545         (cgraph_clone_edge): Likewise.
11546         (cgraph_clone_node): Clone also the indirect edges.
11547         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
11548         indirect_call, dump count of indirect_calls edges.
11549         * ipa-prop.c (iinlining_processed_edges): New variable.
11550         (ipa_note_param_call): Create indirect edges instead of
11551         creating notes.  New parameter node.
11552         (ipa_analyze_call_uses): New parameter node, pass it on to
11553         ipa_note_param_call.
11554         (ipa_analyze_stmt_uses): Likewise.
11555         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
11556         (print_edge_addition_message): Work on edges rather than on notes.
11557         (update_call_notes_after_inlining): Likewise, renamed to
11558         update_indirect_edges_after_inlining.
11559         (ipa_create_all_structures_for_iinln): New function.
11560         (ipa_free_node_params_substructures): Do not free notes.
11561         (ipa_edge_duplication_hook): Propagate bits within
11562         iinlining_processed_edges bitmap.
11563         (ipa_node_duplication_hook): Do not duplicate notes.
11564         (free_all_ipa_structures_after_ipa_cp): Renamed to
11565         ipa_free_all_structures_after_ipa_cp.
11566         (free_all_ipa_structures_after_iinln): Renamed to
11567         ipa_free_all_structures_after_iinln.
11568         (ipa_write_param_call_note): Removed.
11569         (ipa_read_param_call_note): Removed.
11570         (ipa_write_indirect_edge_info): New function.
11571         (ipa_read_indirect_edge_info): Likewise.
11572         (ipa_write_node_info): Do not stream notes, do stream information
11573         in indirect edges.
11574         (ipa_read_node_info): Likewise.
11575         (lto_ipa_fixup_call_notes): Removed.
11576         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
11577         * ipa-inline.c (pass_ipa_inline): Likewise.
11578         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
11579         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
11580         * tree-inline.c (copy_bb): Removed an unnecessary double check for
11581         is_gimple_call.
11582         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
11583         edges.
11584         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
11585         (output_cgraph): Stream also indirect edges.
11586         (lto_output_edge): Added capability to stream indirect edges.
11587         (input_edge): Likewise.
11588         (input_cgraph_1): Likewise.
11589         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
11590         of indirect edges.
11591
11592 2010-04-28  Richard Guenther  <rguenther@suse.de>
11593
11594         PR tree-optimization/43879
11595         PR tree-optimization/43909
11596         * tree-ssa-structalias.c (struct variable_info): Add
11597         only_restrict_pointers flag.
11598         (new_var_info): Initialize it.  Increment stats.total_vars here.
11599         (create_function_info_for): Do not increment stats.total_vars here.
11600         (get_function_part_constraint): Fix build with C++.
11601         (insert_into_field_list): Remove.
11602         (push_fields_onto_fieldstack): Properly merge fields.
11603         (create_variable_info_for): Split and simplify.
11604         (create_variable_info_for_1): New piece.
11605         (intra_create_variable_infos): Properly make restrict constraints
11606         from parameters.
11607
11608 2010-04-28  Richard Guenther  <rguenther@suse.de>
11609
11610         PR c++/43880
11611         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
11612
11613 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11614             Jan Hubicka  <hubicka@ucw.cz>
11615
11616         * doc/invoke.texi (-Wsuggest-attribute=const,
11617         -Wsuggest-attribute=pure): Document.
11618         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
11619         (function_always_visible_to_compiler_p,
11620         suggest_attribute, warn_function_pure, warn_function_const):
11621         New functions.
11622         (check_call): Improve debug info.
11623         (analyze_function): Do not check availability.
11624         (add_new_function): Check availability.
11625         (propagate): Output warnings.
11626         (skip_function_for_local_pure_const): New function.
11627         (local_pure_const): Use it; output warnings.
11628         * common.opt (Wsuggest-attribute=const,
11629         Wsuggest-attribute=pure): New.
11630
11631 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
11632
11633         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
11634         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
11635         or DW_CFA_def_cfa_offset{,_sf}.
11636
11637 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
11638
11639         * tree.h: Fix truncated long macros.
11640
11641 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
11642
11643         * collect2.c (TARGET_64BIT): Redefine to target's default.
11644         * tlink.c: Likewise.
11645         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
11646         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
11647         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
11648         for underscoring __USER_LABEL_PREFIX__.
11649         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
11650         (SUB_LINK_ENTRY32): New.
11651         (SUB_LINK_ENTRY64): New.
11652         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
11653         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
11654         (SUB_LINK_ENTRY64): New.
11655         (SUB_LINK_ENTRY): New.
11656         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
11657         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
11658         x64 target is choosen.
11659         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
11660         * configure: Regenerated.
11661         * configure.ac (leading-mingw64-underscores): Option added.
11662
11663 2010-04-27  Jan Hubicka  <jh@suse.cz>
11664
11665         * doc/invoke.texi (-fipa-profile): Document.
11666         * opts.c (decode_options): Enable ipa-profile at -O1.
11667         * timevar.def (TV_IPA_PROFILE): Define.
11668         * common.opt (fipa-profile): Add.
11669         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
11670         flag for clones.
11671         (cgraph_propagate_frequency): Handle only local ones.
11672         * tree-pass.h (pass_ipa_profile): Declare.
11673         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
11674         (pass_ipa_profile): Use TV_IPA_PROFILE.
11675         * ipa.c (ipa_profile): New function.
11676         (gate_ipa_profile): Likewise.
11677         (pass_ipa_profile): New global variable.
11678         * passes.c (pass_ipa_profile): New.
11679
11680 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
11681
11682         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
11683
11684 2010-04-27  Martin Jambor  <mjambor@suse.cz>
11685
11686         PR middle-end/43812
11687         * ipa.c (dissolve_same_comdat_group_list): New function.
11688         (function_and_variable_visibility): Call
11689         dissolve_same_comdat_group_list when comdat group contains external or
11690         newly local nodes.
11691         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
11692         lists are circular and that they contain only DECL_ONE_ONLY nodes.
11693
11694 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
11695
11696         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
11697         (const_hash_1) <VECTOR_CST>: New case.
11698         (compare_constant) <VECTOR_CST>: Likewise.
11699         <ADDR_EXPR>: Deal with LABEL_REFs.
11700         (copy_constant) <VECTOR_CST>: New case.
11701
11702 2010-04-27  Jan Hubicka  <jh@suse.cz>
11703
11704         * cgraph.c (cgraph_propagate_frequency): New function.
11705         * cgraph.h (cgraph_propagate_frequency): Declare.
11706         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
11707         cgraph_propagate_frequency.
11708
11709 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
11710
11711         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
11712
11713 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
11714
11715         PR target/40657
11716         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
11717         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
11718         here to determine which regs to push and how much stack to reserve.
11719
11720 2010-04-27  Jie Zhang  <jie@codesourcery.com>
11721
11722         * doc/gimple.texi (gimple_statement_with_ops): Remove
11723         addresses_taken field.
11724         (gimple_statement_with_memory_ops): Likewise.
11725
11726 2010-04-27  Jan Hubicka  <jh@suse.cz>
11727
11728         * tree-inline.c (eni_inlining_weights): Remove.
11729         (estimate_num_insns): Special case more builtins.
11730
11731 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
11732
11733         PR c/32207
11734         * c-typeck.c (build_binary_op): Move forward check for comparison
11735         pointer with null pointer constant and adjust the diagnostic message.
11736
11737 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
11738
11739         PR lto/42776
11740         * configure.ac (gcc_cv_as_section_has_align): Set if installed
11741         binutils supports extended .section directive needed by LTO, or
11742         warn if older binutils found.
11743         (LTO_BINARY_READER): New AC_SUBST'd variable.
11744         (LTO_USE_LIBELF): Likewise.
11745         * gcc/config.gcc (lto_binary_reader): New target-specific configure
11746         variable.
11747         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
11748         (LTO_USE_LIBELF): Likewise.
11749         * configure: Regenerate.
11750
11751         * collect2.c (is_elf): Rename from this ...
11752         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
11753          object files in addition to ELF-formatted ones.
11754         (scan_prog_file): Caller updated.  Also allow for LTO info marker
11755         symbol to be prefixed or not by an extra underscore.
11756
11757         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
11758         * config/i386/winnt.c: Also #include lto-streamer.h
11759         (i386_pe_asm_named_section): Specify 1-byte section alignment for
11760         LTO named sections.
11761         (i386_pe_asm_output_aligned_decl_common): Add comment.
11762         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
11763
11764 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
11765
11766         PR target/43889
11767         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
11768         Add missing earlyclobber for second alternative.
11769
11770 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
11771
11772         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
11773         bits for artificial defs at the top of the block.
11774         * fwprop.c (single_def_use_enter_block): Don't call it.
11775
11776 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
11777
11778         PR 43715
11779         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
11780         instead of "$gcc_cv_objdump -T".
11781         Use "-undefined dynamic_lookup" on darwin.
11782         * gcc/configure: Regenerate.
11783
11784 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
11785
11786         PR c/43893
11787         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
11788
11789 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
11790
11791         * c-parser.c (struct c_token): Move location field up.
11792         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
11793         (struct c_declspecs): Convert typespec_word, storage_class, and
11794         default_int_p into bitfields.
11795         (struct c_declarator): Move loc field up.
11796
11797 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
11798
11799         * cfgloop.h (struct loop): Move can_be_parallel field up.
11800         * ipa-prop.h (struct ip_node_params): Move bitfields up.
11801         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
11802         down.
11803         (struct iv_cand): Convert pos field into a bitfield.
11804         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
11805         field up.
11806         (struct _stmt_vec_info): Shuffle fields for better packing.
11807
11808 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
11809
11810         * varasm.c (IN_NAMED_SECTION): Remove guard.
11811         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
11812         (IN_NAMED_SECTION_P): ...this.
11813         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
11814         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
11815
11816 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
11817
11818         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
11819         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
11820         of shadowing it.  Fix comments.
11821
11822 2010-04-26  Jan Hubicka  <jh@suse.cz>
11823
11824         * cgraph.c (cgraph_create_node): Set node frequency to normal.
11825         (cgraph_clone_node): Copy function frequency.
11826         * cgraph.h (node_frequency): New enum
11827         (struct cgraph_node): Add.
11828         * final.c (rest_of_clean_state): Update.
11829         * lto-cgraph.c (lto_output_node): Output node frequency.
11830         (input_overwrite_node): Input node frequency.
11831         * tre-ssa-loop-ivopts (computation_cost): Update.
11832         * lto-streamer-out.c (output_function): Do not output function
11833         frequency.
11834         * predict.c (maybe_hot_frequency_p): Update and handle functions
11835         executed once.
11836         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
11837         attribute lookup.
11838         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
11839         (compute_function_frequency): Set noreturn functions to be executed
11840         once.
11841         (choose_function_section): Update.
11842         * lto-streamer-in.c (input_function): Do not input function frequency.
11843         * function.c (allocate_struct_function): Do not initialize function
11844         frequency.
11845         * function.h (function_frequency): Remove.
11846         (struct function): Remove function frequency.
11847         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
11848         (try_update): Update.
11849         * tree-inline.c (initialize_cfun): Do not update function frequency.
11850         * passes.c (pass_init_dump_file): Update.
11851         * i386.c (ix86_compute_frame_layout): Update.
11852         (ix86_pad_returns): Update.
11853
11854 2010-04-26  Jie Zhang  <jie@codesourcery.com>
11855
11856         PR tree-optimization/43833
11857         * tree-vrp.c (range_int_cst_p): New.
11858         (range_int_cst_singleton_p): New.
11859         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
11860         when both operands are constants.  Use range_int_cst_p in
11861         BIT_IOR_EXPR case.
11862
11863 2010-04-26  Jan Hubicka  <jh@suse.cz>
11864
11865         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
11866
11867 2010-04-26  Richard Guenther  <rguenther@suse.de>
11868
11869         PR lto/43080
11870         * gimple.c (gimple_decl_printable_name): Deal gracefully
11871         with a NULL DECL_NAME.
11872
11873 2010-04-26  Richard Guenther  <rguenther@suse.de>
11874
11875         PR lto/42425
11876         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
11877         if emitting debug information and it is either a function
11878         or a namespace decl.
11879
11880 2010-04-26  Ira Rosen  <irar@il.ibm.com>
11881
11882         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
11883         determine if the statement is vectorizable, and a macro to access it.
11884         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
11885         Skip statements that can't be vectorized. If the analysis fails,
11886         mark the statement as unvectorizable if vectorizing basic block.
11887         (vect_compute_data_refs_alignment): Likewise.
11888         (vect_verify_datarefs_alignment): Skip statements marked as
11889         unvectorizable. Add print.
11890         (vect_analyze_group_access): Skip statements that can't be
11891         vectorized. If the analysis fails, mark the statement as
11892         unvectorizable if vectorizing basic block.
11893         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
11894         * tree-vect-stmts.c (vectorizable_store): Fix the number of
11895         generated stmts for SLP.
11896         (new_stmt_vec_info): Initialize the new field.
11897         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
11898         statements marked as unvectorizable.
11899
11900 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
11901
11902         * c-common.c (flag_isoc1x): New.
11903         (flag_isoc99): Update comment.
11904         * c-common.h (flag_isoc1x): New.
11905         (flag_isoc99): Update comment.
11906         * c-cppbuiltin.c (builtin_define_float_constants): Also define
11907         __<type>_DECIMAL_DIG__.
11908         * c-opts.c (set_std_c1x): New.
11909         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
11910         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
11911         * c.opt (-std=c1x, -std=gnu1x): New options.
11912         * doc/cpp.texi: Mention -std=c1x.
11913         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
11914         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
11915         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
11916         * doc/standards.texi: Mention C1X.
11917         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
11918         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
11919         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
11920         Define for C1X.
11921
11922 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
11923
11924         * config/i386/gmon-sol2.c (_mcleanup): Change format string
11925         placeholder from 0x%x to %#x.
11926         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
11927         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
11928         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
11929         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
11930         * config/i386/i386.c (ix86_target_string): Ditto.
11931         (output_pic_addr_const): Ditto.
11932         (print_operand): Ditto.
11933
11934 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
11935
11936         * combine.c (find_split_point): Add third argument.  Use it
11937         to find nested multiply-accumulate instructions.  Adjust calls.
11938         (try_combine): Adjust call to find_split_point.
11939
11940 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
11941
11942         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
11943
11944 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
11945
11946         PR tree-optimization/41442
11947         * fold-const.c (merge_truthop_with_opposite_arm): New function.
11948         (fold_binary_loc): Call it.
11949
11950 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11951
11952         * toplev.c (general_init): Set default for fdiagnostics-show-option.
11953         * opts.c (common_handle_option): Allow disabling it.
11954         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
11955
11956 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
11957
11958         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
11959         between modes if both types are integral.
11960
11961 2010-04-23  Richard Guenther  <rguenther@suse.de>
11962
11963         PR tree-optimization/43572
11964         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
11965
11966 2010-04-23  Richard Guenther  <rguenther@suse.de>
11967
11968         PR lto/43455
11969         * tree-inline.c (tree_can_inline_p): Also check compatibility
11970         of return types.
11971
11972 2010-04-23  Martin Jambor  <mjambor@suse.cz>
11973
11974         PR tree-optimization/43846
11975         * tree-sra.c (struct access): New flag grp_assignment_read.
11976         (build_accesses_from_assign): Set grp_assignment_read.
11977         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
11978         (enum mark_read_status): New type.
11979         (analyze_access_subtree): Propagate grp_assignment_read, create
11980         accesses also if both direct_read and root->grp_assignment_read.
11981
11982 2010-04-23  Martin Jambor  <mjambor@suse.cz>
11983
11984         PR middle-end/43835
11985         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
11986         function does not have type attributes.
11987
11988 2010-04-23  Richard Guenther  <rguenther@suse.de>
11989
11990         PR lto/42653
11991         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
11992         of FUNCTION_DECLs.
11993
11994 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11995
11996         * sese.h (create_if_region_on_edge): Remove.
11997
11998         * sese.c (create_if_region_on_edge): Make static.
11999
12000         * tree-inline.c: Do not include ggc.h.
12001
12002         * expr.c: Do not include ggc.h.
12003
12004         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
12005         dependencies.
12006
12007 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
12008
12009         PR target/43744
12010         * config/sh/sh.c (find_barrier): Don't emit a constant pool
12011         in the middle of insns for casesi_worker_2.
12012
12013 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
12014
12015         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
12016
12017 2010-04-22  Ira Rosen  <irar@il.ibm.com>
12018
12019         PR tree-optimization/43842
12020         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
12021         loop unrolling in update of exit phis. Fix comment.
12022         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
12023         least two reduction statements in the loop before starting SLP
12024         analysis.
12025
12026 2010-04-22  Nick Clifton  <nickc@redhat.com>
12027
12028         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
12029
12030 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
12031
12032         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
12033         to simplify a + ~a.
12034
12035 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12036
12037         * tree-parloops.c (loop_parallel_p): New argument
12038         parloop_obstack.  Pass it down.
12039         (parallelize_loops): New variable parloop_obstack.  Initialize it,
12040         pass it down, free it.
12041
12042         * tree-loop-linear.c (linear_transform_loops): Pass down
12043         lambda_obstack.
12044
12045         * tree-data-ref.h (lambda_compute_access_matrices): New argument
12046         of type struct obstack *.
12047
12048         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
12049         scratch_obstack.  Initialize it, pass down, free it.
12050
12051         * lambda.h (lambda_loop_new): Remove.
12052         (lambda_matrix_new, lambda_matrix_inverse)
12053         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
12054         argument of type struct obstack *.
12055
12056         * lambda-trans.c (lambda_trans_matrix_new): New argument
12057         lambda_obstack.  Pass it down, use obstack allocation for ret.
12058         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
12059         it down.
12060
12061         * lambda-mat.c (lambda_matrix_get_column)
12062         (lambda_matrix_project_to_null): Remove.
12063         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
12064         allocation for mat.
12065         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
12066         lambda_obstack.
12067
12068         * lambda-code.c (lambda_loop_new): New function.
12069         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
12070         (lambda_compute_auxillary_space, lambda_compute_target_space)
12071         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
12072         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
12073         (build_access_matrix): New argument lambda_obstack.  Use obstack
12074         allocation for am.
12075         (lambda_compute_step_signs, lambda_compute_access_matrices): New
12076         argument lambda_obstack.  Pass it down.
12077
12078 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
12079
12080         * optabs.h (expand_widening_mult): Declare.
12081
12082 2010-04-22  Richard Guenther  <rguenther@suse.de>
12083
12084         PR tree-optimization/43845
12085         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
12086         lookup the CALL_EXPR function and arguments.
12087
12088 2010-04-22  Nick Clifton  <nickc@redhat.com>
12089
12090         * config/stormy16/stormy16.c
12091         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
12092         * config/stormy16/stormy16.h: Tidy up formatting.
12093         (DONT_USE_BUILTIN_SETJMP): Remove definition.
12094         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
12095         (ineqbranchsi): Delete pattern.
12096         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
12097         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
12098         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
12099         stormy16-lib2-ucmpsi2.c.
12100
12101 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
12102
12103         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
12104         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
12105         extra set merge_set_noclobber, and use it to relax the final test
12106         slightly.
12107         * df.h (df_simulate_find_noclobber_defs): Declare.
12108         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
12109         conditional defs.
12110         (df_simulate_find_noclobber_defs): New function.
12111
12112 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
12113
12114         * config/i386/i386.md: Use {} around multi-line preparation statements.
12115
12116 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12117
12118         * c-tree.h (push_init_level, pop_init_level, set_init_index)
12119         (process_init_element): New argument of type struct obstack *.
12120
12121         * c-typeck.c (push_init_level, pop_init_level, set_designator)
12122         (set_init_index, set_init_label, set_nonincremental_init)
12123         (set_nonincremental_init_from_string, find_init_member)
12124         (output_init_element, output_pending_init_elements)
12125         (process_init_element): New argument braced_init_obstack.  Pass it
12126         down.
12127         (push_range_stack, add_pending_init): New argument
12128         braced_init_obstack.  Use obstack allocation.
12129
12130         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
12131         braced_init_obstack.  Pass it down.
12132         (c_parser_braced_init): New variables ret, braced_init_obstack.
12133         Initialize obstack, pass it down and finally free it.
12134
12135 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
12136
12137         PR middle-end/29274
12138         * tree-pass.h (pass_optimize_widening_mul): Declare.
12139         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
12140         gate_optimize_widening_mul): New static functions.
12141         (pass_optimize_widening_mul): New.
12142         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
12143         <case MULT_EXPR>: Remove support for widening multiplies.
12144         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
12145         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
12146         simplify_gen_unary rather than directly building extensions.
12147         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
12148         WIDEN_MULT_EXPR.
12149         * expmed.c (expand_widening_mult): New function.
12150         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
12151
12152 2010-04-21  Jan Hubicka  <jh@suse.cz>
12153
12154         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
12155         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
12156         * lto-wpa-fixup.c: Remove.
12157         * Makefile.in (lto-wpa-fixup.o): Remove.
12158         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
12159         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
12160         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
12161
12162 2010-04-21  Jan Hubicka  <jh@suse.cz>
12163
12164         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
12165         add write_optimization_summary, read_optimization_summary.
12166         (ipa_write_summaries_of_cgraph_node_set): Remove.
12167         (ipa_write_optimization_summaries): Declare.
12168         (ipa_read_optimization_summaries): Declare.
12169         * ipa-cp.c (pass_ipa_cp): Update.
12170         * ipa-reference.c (pass_ipa_reference): Update.
12171         * ipa-pure-const.c (pass_ipa_pure_const): Update.
12172         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
12173         Update.
12174         * ipa-inline.c (pass_ipa_inline): Update.
12175         * ipa.c (pass_ipa_whole_program): Update.
12176         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
12177         * passes.c (ipa_write_summaries_1): Do not test wpa.
12178         (ipa_write_optimization_summaries_1): New.
12179         (ipa_write_optimization_summaries): New.
12180         (ipa_read_summaries): Do not test ltrans.
12181         (ipa_read_optimization_summaries_1): New.
12182         (ipa_read_optimization_summaries): New.
12183
12184 2010-04-21  Jan Hubicka  <jh@suse.cz>
12185
12186         * lto-cgraph.c (lto_output_node): Do not output comdat groups
12187         for boundary nodes.
12188         (output_cgraph): Do not arrange comdat groups for boundary nodes.
12189
12190 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
12191
12192         PR debug/40040
12193         * dwarf2out.c (add_name_and_src_coords_attributes): Add
12194         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
12195
12196 2010-04-21  Jan Hubicka  <jh@suse.cz>
12197
12198         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
12199
12200 2010-04-21  Jan Hubicka  <jh@suse.cz>
12201
12202         * varpool.c (decide_is_variable_needed): Variable is always needed
12203         during ltrans.
12204
12205 2010-04-21  Jan Hubicka  <jh@suse.cz>
12206
12207         * opts.c (decode_options): Enable pure-const pass for whopr.
12208
12209 2010-04-21  Jan Hubicka  <jh@suse.cz>
12210
12211         * cgraph.c (dump_cgraph_node): Dump also assembler name.
12212         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
12213         at WPA dumping.
12214         (cgraph_decide_inlining): Do not expect callee to be removed in all
12215         cases.
12216
12217 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
12218
12219         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
12220
12221 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
12222
12223         * config/i386/i386.md (x86_shrd): Add athlon_decode and
12224         amdfam10_decode attributes.
12225
12226 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
12227
12228         PR middle-end/43570
12229         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
12230         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
12231         (lower_copyprivate_clauses): Use private var in outer
12232         context instead of original var.  Make sure the types
12233         are correct for VLAs.
12234
12235 2010-04-21  Richard Guenther  <rguenther@suse.de>
12236
12237         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
12238         to non-pointer objects.
12239
12240 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
12241
12242         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
12243         last chain entry if it starts with the still current label.
12244         (add_location_or_const_value_attribute): Check that
12245         loc_list->first->next is NULL instead of comparing ->first with ->last.
12246         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
12247         to add_var_loc_to_decl.
12248
12249         * dwarf2out.c (output_call_frame_info): For dw_cie_version
12250         >= 4 add also address size and segment size fields into CIE header.
12251
12252         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
12253         long as address size is the same as sizeof (void *) and
12254         segment size is 0.
12255         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
12256         address size or segment size is unexpected, return DW_EH_PE_omit.
12257         (classify_object_over_fdes): If get_cie_encoding returned
12258         DW_EH_PE_omit, return -1.
12259         (init_object): If classify_object_over_fdes returned -1,
12260         pretend there were no FDEs at all.
12261
12262 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
12263
12264         * config/i386/i386.md (bswap<mode>2): Macroize expander from
12265         bswap{si,di}2 using SWI48 mode iterator.
12266         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
12267         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
12268         set modrm attribute of bswap insn to 0 and remove length attribute.
12269         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
12270         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
12271         set mode attribute to <MODE> and remove length attribute.
12272
12273 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
12274
12275         PR rtl-optimization/43520
12276         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
12277         zero available registers.
12278
12279 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12280
12281         * builtins.c (fold_builtin_cproj): Fold more cases.
12282
12283 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12284
12285         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
12286         (fold_builtin_1): Fold builtin cproj.
12287         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
12288         Use ATTR_CONST_NOTHROW_LIST.
12289
12290 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
12291
12292         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
12293         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
12294         ffsi2_no_cmove for !TARGET_CMOVE.
12295         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
12296         (ffssi2): Remove expander.
12297         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
12298         mode iterator.
12299         (ctz<mode>2): Ditto from ctz{si,di}2.
12300         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
12301         mode iterator.
12302         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
12303         mode iterator.
12304
12305 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
12306
12307         * dwarf2out.c (AT_linkage_name): Define.
12308         (clone_as_declaration): Handle DW_AT_linkage_name.
12309         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
12310         of DW_AT_MIPS_linkage_name.
12311         (move_linkage_attr): Likewise.
12312         (dwarf2out_finish): Likewise.
12313
12314 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
12315
12316         PR middle-end/41952
12317         * fold-const.c (fold_comparison): New folding rule.
12318
12319 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
12320
12321         * double-int.h (double_int_setbit): Declare.
12322         * double-int.c (double_int_setbit): New function.
12323         * rtl.h (immed_double_int_const): Declare.
12324         * emit-rtl.c (immed_double_int_const): New function.
12325         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
12326         and immed_double_int_const functions.
12327         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
12328         expand_copysign_bit):  (Ditto.).
12329         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
12330         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
12331         * dojump.c (prefer_and_bit_test): (Ditto.).
12332         * expr.c (convert_modes, reduce_to_bit_field_precision,
12333         const_vector_from_tree): (Ditto.).
12334         * expmed.c (mask_rtx, lshift_value): (Ditto.).
12335
12336 2010-04-20  Jan Hubicka  <jh@suse.cz>
12337
12338         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
12339         (dump_cgraph_node): Dump new flags.
12340         * cgraph.h (struct cgraph_node): Add flags
12341         reachable_from_other_partition and in_other_partition.
12342         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
12343         other partition can not be removed.
12344         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
12345         the other partition must be output; silence sanity checking on
12346         leaking functions bodies from other paritition.
12347         * lto-cgraph.c (reachable_from_other_partition_p): New function.
12348         (lto_output_node): Output new flags; do not sanity check that inline
12349         clones are output; drop lto_forced_extern_inline_p code; do not mock
12350         visibility flags at partition boundaries.
12351         (add_node_to): New function.
12352         (output_cgraph): Use it to sort functions so masters appear before
12353         clones.
12354         (input_overwrite_node): Input new flags.
12355         * passes.c (ipa_write_summaries): Do not call
12356         lto_new_extern_inline_states.
12357         * lto-section-out.c (forced_extern_inline,
12358         lto_new_extern_inline_states lto_delete_extern_inline_states,
12359         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
12360         * lto-streamer.h (lto_new_extern_inline_states,
12361         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
12362         lto_forced_extern_inline_p): Kill.
12363
12364 2010-04-20  Richard Guenther  <rguenther@suse.de>
12365
12366         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
12367         from vars that can have pointers.
12368         (process_constraint): Dump useless constraints.
12369
12370 2010-04-20  Richard Guenther  <rguenther@suse.de>
12371
12372         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
12373         (dump_sa_points_to_info): Remove asserts.
12374         (init_base_vars): nothing_id isn't an escape point nor does it
12375         have pointers.
12376
12377 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
12378
12379         * tree.h (TYPE_REF_IS_RVALUE): Define.
12380         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
12381         should_move_die_to_comdat, prune_unused_types_walk): Handle
12382         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
12383         (modified_type_die, gen_reference_type_die): Emit
12384         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
12385         if TYPE_REF_IS_RVALUE and -gdwarf-4.
12386
12387 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12388
12389         PR target/43635
12390         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
12391         calls for -fpic -m31 if they have been sibcall optimized.
12392
12393 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
12394
12395         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
12396         ar.lc fixed and call-used.
12397
12398         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
12399
12400 2010-04-19  Jan Hubicka  <jh@suse.cz>
12401
12402         * opts.c (decode_options): Disable whpr incompatible passes.
12403         * lto/lto.c (lto_1_to_1_map): Skip clones.
12404         (read_cgraph_and_symbols): Do not mark everything as needed.
12405         (do_whole_program_analysis): Do map only after optimizing;
12406         set proper cgraph_state; use passmanager.
12407
12408 2010-04-19  DJ Delorie  <dj@redhat.com>
12409
12410         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
12411         POINTER_PLUS_EXPR and fix them.
12412
12413 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
12414
12415         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
12416         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
12417         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
12418         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
12419         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
12420         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
12421         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
12422         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
12423         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
12424         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
12425         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
12426
12427 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
12428
12429         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
12430         (check_cond_move_block): Likewise.
12431         (cond_move_process_if_block): Likewise.
12432         (noce_find_if_block): Improve formatting.
12433         (find_if_header): Pass 0 to memset and tweak conditions.
12434         (cond_exec_find_if_block): Fix long lines and tweak conditions.
12435
12436 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
12437
12438         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
12439         for -gdwarf-4.
12440
12441         PR middle-end/43337
12442         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
12443         with non-local decl doesn't need chain.
12444
12445 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
12446
12447         * ira-color.c (allocno_reload_assign): Avoid accumulating
12448         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
12449
12450 2010-04-19  Martin Jambor  <mjambor@suse.cz>
12451
12452         * gimple.h (create_tmp_reg): Declare.
12453         * gimplify.c (create_tmp_reg): New function.
12454         (gimplify_return_expr): Use create_tmp_reg.
12455         (gimplify_omp_atomic): Likewise.
12456         (gimple_regimplify_operands): Likewise.
12457         * tree-dfa.c (make_rename_temp): Likewise.
12458         * tree-predcom.c (predcom_tmp_var): Likewise.
12459         (reassociate_to_the_same_stmt): Likewise.
12460         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
12461         (get_replaced_param_substitute): Likewise.
12462         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
12463         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
12464         * tree-ssa-pre.c (get_representative_for): Likewise.
12465         (create_expression_by_pieces): Likewise.
12466         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
12467         (create_tailcall_accumulator): Likewise.
12468
12469 2010-04-19  Martin Jambor  <mjambor@suse.cz>
12470
12471         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
12472         new_stmt.
12473         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
12474
12475 2010-04-19  Richard Guenther  <rguenther@suse.de>
12476
12477         PR tree-optimization/43796
12478         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
12479         from SCEV in the lattice.
12480         (vrp_visit_phi_node): Dump change.
12481
12482 2010-04-19  Richard Guenther  <rguenther@suse.de>
12483
12484         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
12485         * configure: Re-generated.
12486
12487 2010-04-19  Richard Guenther  <rguenther@suse.de>
12488
12489         PR tree-optimization/43783
12490         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
12491         constant ARRAY_REF operands two and three if possible.
12492
12493 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
12494
12495         PR target/43766
12496         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
12497
12498 2010-04-19  Jie Zhang  <jie@codesourcery.com>
12499
12500         PR target/43662
12501         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
12502
12503 2010-04-19  Ira Rosen  <irar@il.ibm.com>
12504
12505         PR tree-optimization/37027
12506         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
12507         and macro to access it.
12508         (vectorizable_reduction): Add argument.
12509         (vect_get_slp_defs): Likewise.
12510         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
12511         statements for possible use in SLP.
12512         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
12513         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
12514         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
12515         add new argument.
12516         (vectorizable_reduction): Likewise.
12517         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
12518         vect_get_slp_defs.
12519         (vectorizable_type_demotion, vectorizable_type_promotion,
12520         vectorizable_store): Likewise.
12521         (vect_analyze_stmt): Update call to vectorizable_reduction.
12522         (vect_transform_stmt): Likewise.
12523         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
12524         (vect_build_slp_tree): Fix indentation. Check that there are no loads
12525         from different interleaving chains in same node.
12526         (vect_slp_rearrange_stmts): New function.
12527         (vect_supported_load_permutation_p): Allow load permutations for
12528         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
12529         inside SLP nodes if necessary.
12530         (vect_analyze_slp_instance): Handle reductions.
12531         (vect_analyze_slp): Try to build SLP instances originating from groups
12532         of reductions.
12533         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
12534         (vect_get_constant_vectors): Create initial vectors for reductions
12535         according to reduction code. Add new argument.
12536         (vect_get_slp_defs): Add new argument, pass it to
12537         vect_get_constant_vectors.
12538         (vect_schedule_slp_instance): Remove SLP tree root statements.
12539
12540 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
12541
12542         * tree.h (ENUM_IS_SCOPED): Define.
12543         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
12544         for ENUM_IS_SCOPED enums.
12545
12546 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
12547
12548         * fold-const.c (fold_comparison): Use ssizetype.
12549         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
12550         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
12551         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
12552         * tree-object-size.c (compute_object_sizes): Use size_type_node.
12553
12554         * tree.h (initialize_sizetypes): Remove parameter.
12555         (build_common_tree_nodes): Remove second parameter.
12556         * stor-layout.c (initialize_sizetypes): Remove parameter.
12557         Always create an unsigned type.
12558         (set_sizetype): Assert that the passed type is unsigned and simplify.
12559         * tree.c (build_common_tree_nodes): Remove second parameter.
12560         Adjust call to initialize_sizetypes.
12561         * c-decl.c (c_init_decl_processing): Remove second argument in call to
12562         build_common_tree_nodes.
12563
12564 2010-04-18  Matthias Klose  <doko@ubuntu.com>
12565
12566         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
12567
12568 2010-04-18  Ira Rosen  <irar@il.ibm.com>
12569
12570         PR tree-optimization/43771
12571         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
12572         load permutation doesn't have gaps.
12573
12574 2010-04-18  Jan Hubicka  <jh@suse.cz>
12575
12576         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
12577         (sse_prologue_save_insn expander): Use new pattern.
12578         (sse_prologue_save_insn1): New pattern and splitter.
12579         (sse_prologue_save_insn): Update to deal also with 64bit aligned
12580         blocks.
12581         * i386.c (setup_incoming_varargs_64): Do not compute jump
12582         destination here.
12583         (ix86_gimplify_va_arg): Update alignment needed.
12584         (ix86_local_alignment): Do not align all local arrays to 128bit.
12585
12586 2010-04-17  Jan Hubicka  <jh@suse.cz>
12587
12588         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
12589
12590 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
12591
12592         * arm.md (negdi2): Remove redundant code to force values into a
12593         register.
12594
12595 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
12596
12597         * arm/bpabi.S: Add EABI alignment attributes to objects.
12598         * arm/bpabi-v6m.S: Likewise.
12599         * arm/crti.asm: Likewise.
12600         * arm/crtn.asm: Likewise.
12601         * arm/lib1funcs.asm: Likewise.
12602         * arm/libunwind.S: Likewise.
12603
12604 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
12605
12606         * arm-protos.h (tune_params): New structure.
12607         * arm.c (current_tune): New variable.
12608         (arm_constant_limit): Delete.
12609         (struct processors): Add pointer to the tune parameters.
12610         (arm_slowmul_tune): New tuning option.
12611         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
12612         (all_cores): Adjust to pick up the tuning model.
12613         (arm_constant_limit): New function.
12614         (arm_override_options): Select the appropriate tuning model.  Delete
12615         initialization of arm_const_limit.
12616         (arm_split_constant): Use the new constant-limit model.
12617         (arm_rtx_costs): Pick up the current tuning model.
12618         * arm.md (is_strongarm, is_xscale): Delete.
12619         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
12620         for Xscale variant architectures.
12621         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
12622
12623 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12624
12625         * config/arm/arm.c (arm_gen_constant): Remove unused variable
12626         can_shift.
12627         (arm_rtx_costs_1): Remove unused variable extra_cost.
12628         (arm_unwind_emit_set): Use variable offset.
12629         (thumb1_output_casesi): Remove unused variable flags.
12630
12631 2010-04-16  Jeff Law  <law@redhat.com>
12632
12633         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
12634         needing assignment rather than doing a two-phase assignment.  Remove
12635         unused variable 'm'.
12636
12637 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
12638
12639         PR bootstrap/43767
12640         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
12641
12642 2010-04-16  Doug Kwan  <dougkwan@google.com>
12643
12644         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
12645         (next_operand_entry_id): New static variable.
12646         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
12647         (add_to_ops_vec): Assigned unique ID to operand entry.
12648         (struct oecount_s): New field ID.
12649         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
12650         (undistribute_ops_list): Assign unique IDs to oecounts.
12651         (init_reassoc): reset next_operand_entry_id.
12652
12653 2010-04-16  Doug Kwan  <dougkwan@google.com>
12654
12655         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
12656         missing left parenthesis.
12657
12658 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
12659
12660         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
12661         *btdi_rex64 using SWI48 mode iterator.
12662         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
12663         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
12664         *jcc_btdi_mask_rex64.
12665
12666 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
12667
12668         * double-int.h (tree_to_double_int): Convert to macro.
12669         * double-int.c (tree_to_double_int): Remove.
12670
12671 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
12672
12673         PR debug/43762
12674         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
12675         with want_address 2 and in case a single element list might be
12676         possible, call it again with want_address 0.
12677
12678 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
12679
12680         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
12681         case 'W' print operands for HI mode.
12682         * config/h8300/h8300.h (Y0, Y2) : New constraints.
12683         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
12684         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
12685         * config/h8300/predicate.md (bit_register_indirect_operand): New.
12686
12687         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
12688
12689         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
12690         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
12691         #xx:3 and #xx:4 mode.
12692
12693         * config/h8300/h8300.md (inverted load with HImode dest): Add
12694         support for H8300SX.
12695
12696         * config/h8300/predicate.md (bit_operand): Allow immediate values that
12697         satisfy 'U' constraint.
12698
12699 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12700
12701         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
12702         * configure: Regenerate.
12703         * config.in: Regenerate.
12704         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
12705         works.
12706
12707 2010-04-16  Richard Guenther  <rguenther@suse.de>
12708
12709         * tree.h (struct tree_decl_minimal): Move pt_uid ...
12710         (struct tree_decl_common): ... here.
12711         (DECL_PT_UID): Adjust.
12712         (SET_DECL_PT_UID): Likewise.
12713         (DECL_PT_UID_SET_P): Likewise.
12714
12715 2010-04-16  Richard Guenther  <rguenther@suse.de>
12716
12717         PR tree-optimization/43572
12718         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
12719         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
12720         * tree-flow.h (is_call_clobbered): Remove.
12721         * tree-flow-inline.h (is_call_clobbered): Likewise.
12722         * tree-dfa.c (dump_variable): Do not dump call clobber state.
12723         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
12724         (execute_return_slot_opt): Adjust.
12725         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
12726         check for call clobbered vars here.
12727         (find_tail_calls): Move tailcall verification to the
12728         proper place.
12729
12730 2010-04-16  Diego Novillo  <dnovillo@google.com>
12731
12732         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
12733
12734 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
12735
12736         PR target/40603
12737         * config/arm/arm.md (cbranchqi4): New pattern.
12738         * config/arm/predicates.md (const0_operand,
12739         cbranchqi4_comparison_operator): New predicates.
12740
12741 2010-04-16  Richard Guenther  <rguenther@suse.de>
12742
12743         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
12744         (dump_gimple_stmt): Likewise.
12745
12746 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
12747
12748         * recog.h (struct recog_data): New field is_operator.
12749         (struct insn_operand_data): New field is_operator.
12750         * recog.c (extract_insn): Set recog_data.is_operator.
12751         * genoutput.c (output_operand_data): Emit code to set the
12752         is_operator field.
12753         * reload.c (find_reloads): Use it rather than testing for an
12754         empty constraint string.
12755
12756         PR target/41514
12757         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
12758         If the previous insn is a cbranchsi4_insn with the same arguments,
12759         omit the compare instruction.
12760
12761         * config/arm/arm.md (addsi3_cbranch): If destination is a high
12762         register, inputs must be low registers and we need a low register
12763         scratch.  Handle alternative 2 like alternative 3.
12764
12765 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
12766
12767         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
12768         don't call get_addr on both.  If one expression is a VALUE and
12769         the other a REG, check VALUE's locs if the REG isn't among them.
12770
12771 2010-04-16  Christian Bruel  <christian.bruel@st.com>
12772
12773         * config/sh/sh.h (sh_frame_pointer_required): New function.
12774         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
12775         (flag_omit_frame_pointer) Set.
12776         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
12777         (rounded_frame_size): Adjust size with outgoing_args_size.
12778         (sh_set_return_address): Must return from stack pointer.
12779         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
12780         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
12781         (ACCUMULATE_OUTGOING_ARGS): Define.
12782         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
12783         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
12784
12785 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
12786
12787         PR target/43471
12788         * config/sh/sh.c (sh_legitimize_reload_address): Use
12789         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
12790         Remove a unneeded check for offset_base.
12791
12792 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
12793
12794         * configure: Regenerated.
12795
12796 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12797
12798         * config/s390/s390.c (s390_call_save_register_used): Switch back
12799         to HARD_REGNO_NREGS.
12800
12801 2010-04-15  Richard Guenther  <rguenther@suse.de>
12802
12803         * alias.c (alias_set_subset_of): Handle alias-set zero
12804         child properly.
12805
12806 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
12807             Julian Brown  <julian@codesourcery.com>
12808
12809         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
12810         alternatives according to use of high and low regs.
12811         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
12812         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
12813         optimizing for size on Thumb-2.
12814
12815 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
12816
12817         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
12818
12819 2010-04-15  Richard Guenther  <rguenther@suse.de>
12820
12821         * tree-ssa-structalias.c (struct variable_info): Add
12822         is_fn_info flag.
12823         (new_var_info): Initialize it.
12824         (dump_constraints): Support printing last added constraints.
12825         (debug_constraints): Adjust.
12826         (dump_constraint_graph): Likewise.
12827         (make_heapvar_for): Check for NULL cfun.
12828         (get_function_part_constraint): New function.
12829         (get_fi_for_callee): Likewise.
12830         (find_func_aliases): Properly implement IPA PTA constraints.
12831         (process_ipa_clobber): New function.
12832         (find_func_clobbers): Likewise.
12833         (insert_into_field_list_sorted): Remove.
12834         (create_function_info_for): Properly allocate vars for IPA mode.
12835         Do not use insert_into_field_list_sorted.
12836         (create_variable_info_for): Properly generate constraints for
12837         global vars in IPA mode.
12838         (dump_solution_for_var): Always dump the solution.
12839         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
12840         (find_what_var_points_to): Adjust.
12841         (pt_solution_set): Change.
12842         (pt_solution_ior_into): New function.
12843         (pt_solution_empty_p): Export.
12844         (pt_solution_includes_global): Adjust.
12845         (pt_solution_includes_1): Likewise.
12846         (pt_solutions_intersect_1): Likewise.
12847         (dump_sa_points_to_info): Check some invariants.
12848         (solve_constraints): Move constraint dumping ...
12849         (compute_points_to_sets): ... here.
12850         (ipa_pta_execute): ... and here.
12851         (compute_may_aliases): Do not re-compute points-to info
12852         locally if IPA info is available.
12853         (ipa_escaped_pt): New global var.
12854         (ipa_pta_execute): Properly implement IPA PTA.
12855         * tree-into-ssa.c (dump_decl_set): Support dumping
12856         decls not in referenced-vars.
12857         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
12858         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
12859         (dump_points_to_solution): Likewise.
12860         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
12861         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
12862         (remap_gimple_stmt): Reset call clobber/use information if necessary.
12863         (copy_decl_to_var): Copy DECL_PT_UID.
12864         (copy_result_decl_to_var): Likewise.
12865         * tree.c (make_node_stat): Initialize DECL_PT_UID.
12866         (copy_node_stat): Copy it.
12867         * tree.h (DECL_PT_UID): New macro.
12868         (SET_DECL_PT_UID): Likewise.
12869         (DECL_PT_UID_SET_P): Likewise.
12870         (struct tree_decl_minimal): Add pt_uid member.
12871         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
12872         (pt_solution_empty_p): Declare.
12873         (pt_solution_set): Adjust.
12874         (ipa_escaped_pt): Declare.
12875         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
12876         * gimple-pretty-print.c (pp_points_to_solution): New function.
12877         (dump_gimple_call): Dump call clobber/use information.
12878         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
12879         * tree-pass.h (TDF_ALIAS): New dump option.
12880         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
12881         * doc/invoke.texi (-fipa-pta): Update documentation.
12882
12883 2010-04-15  Richard Guenther  <rguenther@suse.de>
12884
12885         * Makefile.in (OBJS-common): Add gimple-fold.o.
12886         (gimple-fold.o): New rule.
12887         * tree.h (maybe_fold_offset_to_reference,
12888         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
12889         prototypes ...
12890         * gimple.h: ... here.
12891         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
12892         may_propagate_address_into_dereference): Move prototypes ...
12893         * gimple.h: ... here.
12894         * tree-ssa-ccp.c (get_symbol_constant_value,
12895         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
12896         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
12897         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
12898         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
12899         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
12900         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
12901         gimplify_and_update_call_from_tree): Move ...
12902         * gimple-fold.c: ... here.  New file.
12903         (ccp_fold_builtin): Rename to ...
12904         (gimple_fold_builtin): ... this.
12905         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
12906
12907 2010-04-15  Richard Guenther  <rguenther@suse.de>
12908
12909         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
12910         fit_double_type, force_fit_type_double, add_double_with_sign,
12911         neg_double, mul_double_with_sign, lshift_double, rshift_double,
12912         lrotate_double, rrotate_double, div_and_round_double): Move ...
12913         * double-int.c: ... here.
12914         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
12915         add_double, neg_double, mul_double_with_sign, mul_double,
12916         lshift_double, rshift_double, lrotate_double, rrotate_double,
12917         div_and_round_double): Move prototypes ...
12918         * double-int.h: ... here.
12919
12920 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
12921
12922         PR target/43742
12923         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
12924         matching constraints to ensure inputs match the output.
12925
12926 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
12927
12928         PR target/43742
12929         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
12930         in an input-only operand.
12931
12932 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
12933
12934         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
12935         (double_int_not, double_int_lshift, double_int_rshift): Declare.
12936         (double_int_negative_p): Convert to static inline function.
12937         * double-int.c (double_int_lshift, double_int_lshift): New functions.
12938         (double_int_negative_p): Remove.
12939         * tree.h (lshift_double, rshift_double):
12940         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
12941         * fold-const.c (fold_convert_const_int_from_real,
12942         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
12943         (lshift_double): Change type of arith argument to bool.
12944         (rshift_double): Change type of arith argument to bool. Correct
12945         comment.
12946         * expmed.c (mask_rtx, lshift_value): (Ditto.).
12947
12948 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
12949
12950         PR target/21803
12951         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
12952         at the start and end of the then/else blocks, and omit them from the
12953         conversion.
12954         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
12955         argument; all callers changed.  Pass zero to old_insns_match_p instead.
12956         (flow_find_head_matching_sequence): New function.
12957         (old_insns_match_p): Check REG_EH_REGION notes for calls.
12958         * basic-block.h (flow_find_cross_jump,
12959         flow_find_head_matching_sequence): Declare functions.
12960
12961 2010-04-14  Jason Merrill  <jason@redhat.com>
12962
12963         PR c++/36625
12964         * c-common.c (attribute_takes_identifier_p): New fn.
12965         * c-common.h: Declare it.
12966
12967 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
12968
12969         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
12970         splitter condition.
12971         (*udivmod<mode>4): Ditto.
12972
12973 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
12974
12975         * config/i386/i386.md (maxmin_int): Rename code attribute from
12976         maxminiprefix and update all users.
12977         (maxmin_float): Ditto from maxminfprefix.
12978         (logic): Ditto from logicprefix.
12979         (absneg_mnemonic): Ditto from absnegprefix.
12980         * config/i386/mmx.md: Update all users of maxminiprefix,
12981         maxminfprefix and logicprefix for rename.
12982         * config/i386/sse.md: Ditto.
12983         * config/i386/sync.md (sync_<code><mode>): Update for
12984         logicprefix rename.
12985
12986 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12987
12988         PR 42966
12989         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
12990         warnings converted to errors.
12991
12992 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
12993
12994         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
12995         used insn_type variable.
12996         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
12997         to avoid set-but-not-used warning.
12998
12999 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
13000
13001         * df-core.c (df_ref_debug): Change format string placeholder
13002         from 0x%x to %#x.
13003         * dwarf2asm.c (dw2_asm_output_data_raw,
13004         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
13005         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
13006         * dwarf2out.c (output_cfi, output_cfi_directive,
13007         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
13008         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
13009         Ditto.
13010         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
13011         * print-rtl.c (print_rtx): Ditto.
13012
13013 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
13014
13015         PR middle-end/42694
13016         * builtins.c (expand_builtin_pow_root): New function to expand pow
13017         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
13018         series of sqrt and cbrt calls under -ffast-math.
13019         (expand_builtin_pow): Call it.
13020
13021 2010-04-14  Michael Matz  <matz@suse.de>
13022
13023         PR tree-optimization/42963
13024         * tree-cfg.c (touched_switch_bbs): New static variable.
13025         (group_case_labels_stmt): New function broken out from ...
13026         (group_case_labels): ... here, use the above.
13027         (start_recording_case_labels): Allocate touched_switch_bbs.
13028         (end_recording_case_labels): Deallocate it, call
13029         group_case_labels_stmt.
13030         (gimple_redirect_edge_and_branch): Remember index of affected BB.
13031
13032 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
13033
13034         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
13035         from insn template.
13036
13037 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
13038
13039         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
13040
13041 2010-04-13  Jan Hubicka  <jh@suse.cz>
13042
13043         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
13044         of optimized out static functions.
13045         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
13046         cost computation.  Also sanity check for overflows.
13047         (update_caller_keys): Update cgraph_edge_badness call; properly
13048         update fibheap and sanity check that it is up to date.
13049         (add_new_edges_to_heap): Update cgraph_edge_badness.
13050         (cgraph_decide_inlining_of_small_function): Likewise;
13051         add sanity checking that badness in heap is up to date;
13052         improve dumping of reason; Update badness of calls to the
13053         offline copy of function currently inlined; dump badness
13054         of functions not inlined because of unit growth limits.
13055
13056 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
13057
13058         PR middle-end/32628
13059         * c-common.c (pointer_int_sum): Disregard overflow that occured only
13060         because of sign-extension change when converting to sizetype here...
13061         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
13062
13063         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
13064         the folding to constants.  Remove redundant final conversion.
13065         (fold_binary) <associate>: Do not associate if the re-association of
13066         constants alone overflows.
13067         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
13068         to the end of the list.
13069         (multiple_of_p) <COND_EXPR>: New case.
13070
13071 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13072
13073         * opt-functions.awk (opt_sanitized_name): New.
13074         (opt_enum): New.
13075         * optc-gen.awk: Use it
13076         * opth-gen.awk: Use it.
13077
13078 2010-04-13  Martin Jambor  <mjambor@suse.cz>
13079
13080         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
13081         (sra_modify_assign): Delete stmts loading dead data even if racc has no
13082         children.  Call replace_uses_with_default_def_ssa_name to handle
13083         SSA_NAES on lhs.
13084
13085 2010-04-13  Michael Matz  <matz@suse.de>
13086
13087         PR middle-end/43730
13088         * builtins.c (expand_builtin_interclass_mathfn): Also create
13089         a register if the predicate doesn't match.
13090
13091 2010-04-13  Diego Novillo  <dnovillo@google.com>
13092
13093         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
13094         * c-pch.c: Include timevar.h.
13095         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
13096         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
13097         * ggc-common.c: Include timevar.h.
13098         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
13099         * timevar.def (TV_PCH_SAVE): Define.
13100         (TV_PCH_CPP_SAVE): Define.
13101         (TV_PCH_PTR_REALLOC): Define.
13102         (TV_PCH_PTR_SORT): Define.
13103         (TV_PCH_RESTORE): Define.
13104         (TV_PCH_CPP_RESTORE): Define.
13105
13106 2010-04-13  Michael Matz  <matz@suse.de>
13107
13108         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
13109         into MINUS_EXPRs.
13110         (can_reassociate_p): New function.
13111         (break_up_subtract_bb, reassociate_bb): Use it.
13112
13113 2010-04-13  Richard Guenther  <rguenther@suse.de>
13114
13115         PR bootstrap/43737
13116         * builtins.c (c_readstr): Fix assert.
13117
13118 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
13119
13120         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
13121         when generating cltd insn.
13122
13123         (*ashl<mode>3_1): Remove special handling for register operand 2.
13124         (*ashlsi3_1_zext): Ditto.
13125         (*ashlhi3_1): Ditto.
13126         (*ashlhi3_1_lea): Ditto.
13127         (*ashlqi3_1): Ditto.
13128         (*ashlqi3_1_lea): Ditto.
13129         (*<shiftrt_insn><mode>3_1): Ditto.
13130         (*<shiftrt_insn>si3_1_zext): Ditto.
13131         (*<shiftrt_insn>qi3_1_slp): Ditto.
13132         (*<rotate_insn><mode>3_1): Ditto.
13133         (*<rotate_insn>si3_1_zext): Ditto.
13134         (*<rotate_insn>qi3_1_slp): Ditto.
13135
13136 2010-04-13  Richard Guenther  <rguenther@suse.de>
13137
13138         * tree-ssa-structalias.c (callused_id): Remove.
13139         (call_stmt_vars): New.
13140         (get_call_vi): Likewise.
13141         (lookup_call_use_vi): Likewise.
13142         (lookup_call_clobber_vi): Likewise.
13143         (get_call_use_vi): Likewise.
13144         (get_call_clobber_vi): Likewise.
13145         (make_transitive_closure_constraints): Likewise.
13146         (handle_const_call): Adjust to do per-call call-used handling.
13147         (handle_pure_call): Likewise.
13148         (find_what_var_points_to): Remove general callused handling.
13149         (init_base_vars): Likewise.
13150         (init_alias_vars): Initialize call_stmt_vars.
13151         (compute_points_to_sets): Process call-used and call-clobbered
13152         vars for call statements.
13153         (delete_points_to_sets): Free call_stmt_vars.
13154
13155 2010-04-13  Richard Guenther  <rguenther@suse.de>
13156
13157         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
13158         Only add RW dependence for dependence distance zero.
13159         Adjust maximal vectorization factor according to dependences.
13160         Move alignment handling ...
13161         (vect_find_same_alignment_drs): ... here.  New function.
13162         (vect_analyze_data_ref_dependences): Adjust.
13163         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
13164         (vect_analyze_data_refs): Adjust minimal vectorization factor
13165         according to data references.
13166         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
13167         dependences before determining the vectorization factor.
13168         Analyze alignment after determining the vectorization factor.
13169         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
13170         dependences before alignment.
13171         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
13172         Adjust prototype.
13173         (vect_analyze_data_refs): Likewise.
13174         (MAX_VECTORIZATION_FACTOR): New define.
13175
13176 2010-04-13  Duncan Sands  <baldrick@free.fr>
13177
13178         * except.h (lang_eh_type_covers): Remove.
13179         * except.c (lang_eh_type_covers): Likewise.
13180
13181 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13182             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13183
13184         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
13185         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
13186         UNITS_PER_LONG where it is ABI relevant.
13187         (s390_return_addr_rtx): Likewise.
13188         (s390_back_chain_rtx): Likewise.
13189         (s390_frame_area): Likewise.
13190         (s390_frame_info): Likewise.
13191         (s390_initial_elimination_offset): Likewise.
13192         (save_gprs): Likewise.
13193         (s390_emit_prologue): Likewise.
13194         (s390_emit_epilogue): Likewise.
13195         (s390_function_arg_advance): Likewise.
13196         (s390_function_arg): Likewise.
13197         (s390_va_start): Likewise.
13198         (s390_gimplify_va_arg): Likewise.
13199         (s390_function_profiler): Likewise.
13200         (s390_optimize_prologue): Likewise.
13201         (s390_rtx_costs): Likewise.
13202         (s390_secondary_reload): Likewise.
13203         (s390_promote_function_mode): Likewise.
13204         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
13205         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
13206         registers available.
13207         (s390_unwind_word_mode): New function.
13208         (s390_function_value): Split 64 bit values into register pair if
13209         used as return value.
13210         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
13211         function call parameters.  Handle parallels.
13212         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
13213         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
13214         (DWARF_CIE_DATA_ALIGNMENT): New macro.
13215         (s390_expand_setmem): Remove unused variable src_addr.
13216         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
13217         deal with 64 bit registers.
13218         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
13219         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
13220         (UNITS_PER_LONG): New macro.
13221         * libjava/include/s390-signal.h: Define extended ucontext
13222         structure containing the upper halfs of the 64 bit registers.
13223
13224 2010-04-13  Simon Baldwin  <simonb@google.com>
13225
13226         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
13227
13228 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
13229
13230         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
13231         rvalue on the RHS if the LHS is of a non-renamable type.
13232         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
13233
13234 2010-04-13  Matthias Klose  <doko@ubuntu.com>
13235
13236         * gcc.c (cc1_options): Handle -iplugindir before processing
13237         the cc1 spec. Only add -iplugindir once.
13238         (cpp_unique_options): Add -iplugindir option if -fplugin* options
13239         found.
13240         * common.opt (iplugindir): Remove `Separate' property, initialize.
13241         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
13242         option.
13243         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
13244         (distclean): Remove plugin dir.
13245         * doc/invoke.texi: Document -iplugindir.
13246
13247 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
13248
13249         * doc/plugins.texi (Loading Plugins): Document short
13250         -fplugin=foo option.
13251         (Plugin API): Mention default_plugin_dir_name function.
13252
13253         * gcc.c (find_file_spec_function): Add new declaration.
13254         (static_spec_func): Use it for "find-file".
13255         (find_file_spec_function): Add new function.
13256         (cc1_options): Add -iplugindir option if -fplugin* options found.
13257
13258         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
13259
13260         * plugin.c (add_new_plugin): Updated comment, and handle short
13261         plugin name.
13262         (default_plugin_dir_name): Added new function.
13263
13264         * common.opt (iplugindir): New option to set the plugin directory.
13265
13266 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
13267
13268         * config/i386/i386.md (any_rotate): New code iterator.
13269         (rotate_insn): New code attribute.
13270         (rotate): Ditto.
13271         (SWIM124): New mode iterator.
13272         (<rotate_insn>ti3): New expander.
13273         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
13274         any_rotate code iterator.
13275         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
13276         using any_rotate code iterator and SWIM124 mode iterator.
13277         (ix86_rotlti3): New insn_and_split pattern.
13278         (ix86_rotrti3): Ditto.
13279         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
13280         ix86_rotl{di,ti}3 patterns.
13281         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
13282         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
13283         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
13284         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
13285         code iterator and SWI mode iterator.
13286         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
13287         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
13288         code iterator.
13289         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
13290         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
13291         (bswap rotatert splitter): Add splitter.
13292         (bswap splitter): Macroize splitter using any_rotate code iterator.
13293         Add insn predicate to split only for TARGET_USE_XCHGB or when
13294         optimizing function for size.
13295
13296 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
13297
13298         * config/pa/pa.c (emit_move_sequence): Remove use of
13299         deleted variable flag_argument_noalias.
13300
13301 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13302
13303         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
13304         configurations.
13305         Add to unsupported targets list.
13306         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
13307         sparc*-sun-solaris2.[567]* from target lists.
13308         * configure: Regenerate.
13309         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
13310         removal.
13311         Remove Solaris 7 patch references.
13312         (Specific, sparc-sun-solaris2.7): Removed.
13313         (sparc-sun-solaris2*): Update Solaris 7 example.
13314         (sparc64-*-solaris2*): Likewise.
13315
13316 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13317
13318         * config.build (alpha*-dec-osf4*): Remove.
13319         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
13320         of obsolete configurations.
13321         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
13322         support.
13323         * config/alpha/t-osf4: Renamed to ...
13324         * config/alpha/t-osf5: ... this.
13325         * config/alpha/osf.h: Renamed to ...
13326         * config/alpha/osf5.h: ... this.
13327         Merged old osf5.h contents.
13328         Update comments.
13329         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
13330         (EXTRA_SPECS): Removed.
13331         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
13332         reflect removal of Tru64 UNIX V4.0/V5.0 support.
13333         Document that.
13334
13335 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13336
13337         * doc/contrib.texi (Contributors, Rainer Orth): Update.
13338
13339 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
13340
13341         PR/43702
13342         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
13343         __thiscall convention.
13344
13345 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
13346
13347         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
13348         orig_base.
13349         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
13350
13351 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
13352
13353         * function.c (assign_parms_initialize_all): Add unused attribute
13354         to fntype.
13355
13356 2010-04-12  Richard Guenther  <rguenther@suse.de>
13357
13358         * gsstruct.def (GSS_CALL): New.
13359         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
13360         * gimple.h: Include tree-ssa-alias.h.
13361         (struct gimple_statement_call): New.
13362         (union gimple_statement_struct_d): Add gimple_call member.
13363         (gimple_call_reset_alias_info): Declare.
13364         (gimple_call_use_set): New function.
13365         (gimple_call_clobber_set): Likewise.
13366         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
13367         * gimple.c (gimple_call_reset_alias_info): New function.
13368         (gimple_build_call_1): Call it.
13369         * lto-streamer-in.c (input_gimple_stmt): Likewise.
13370         * tree-inline.c (remap_gimple_stmt): Likewise.
13371         (expand_call_inline): Remove callused handling.
13372         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
13373         * tree-dfa.c (dump_variable): Likewise.
13374         * tree-parloops.c (parallelize_loops): Likewise.
13375         * tree-ssa.c (init_tree_ssa): Likewise.
13376         (delete_tree_ssa): Likewise.
13377         * tree-flow-inline.h (is_call_used): Remove.
13378         * tree-flow.h (struct gimple_df): Remove callused member.
13379         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
13380         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
13381         (ref_maybe_used_by_call_p_1): Simplify.
13382         (call_may_clobber_ref_p_1): Likewise.
13383         * tree-ssa-structalias.c (compute_points_to_sets): Set
13384         the call stmt used and clobbered sets.
13385         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
13386         (find_tail_calls): Verify the tail call.
13387
13388 2010-04-12  Richard Guenther  <rguenther@suse.de>
13389
13390         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
13391         single-iteration always-inline inlining.
13392         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
13393         (cgraph_decide_inlining): Do not handle always-inline specially.
13394         (try_inline): Remove always-inline cycle detection special case.
13395         Do not recurse on always-inlines.
13396         (cgraph_early_inlining): Do not iterate if not optimizing.
13397         (cgraph_gate_early_inlining): remove.
13398         (pass_early_inline): Run unconditionally.
13399         (gate_cgraph_decide_inlining): New function.
13400         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
13401         not inlining or optimizing.
13402         (cgraph_decide_inlining_of_small_functions): Also consider
13403         always-inline functions.
13404         (cgraph_default_inline_p): Return true for nodes which should
13405         disregard inline limits.
13406         (estimate_function_body_sizes): Assume zero size and time for
13407         nodes which are marked as disregarding inline limits.
13408         (cgraph_decide_recursive_inlining): Do not perform recursive
13409         inlining on always-inline nodes.
13410
13411 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
13412
13413         PR bootstrap/43699
13414         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
13415         for exprs satisfying handled_component_p.
13416
13417 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
13418
13419         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
13420         non-constant aggregate elements.
13421
13422         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
13423         is a real initialization.
13424
13425 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
13426
13427         PR c/36774
13428         * c-decl.c (start_function): Move forward check for nested function.
13429
13430 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
13431
13432         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
13433         * config/sh/sh.c: Include reload.h.
13434         (sh_legitimize_reload_address): New.
13435         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
13436         sh_legitimize_reload_address.
13437
13438 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
13439
13440         * config/sh/sh.md (*movqi_pop): New insn pattern.
13441         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
13442
13443 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
13444
13445         * config/i386/i386.md (any_shiftrt): New code iterator.
13446         (shiftrt_insn): New code attribute.
13447         (shiftrt): Ditto.
13448         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
13449         using any_shiftrt code iterator.
13450         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
13451         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
13452         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
13453         pattern from corresponding peephole2 patterns.
13454         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
13455         using any_shiftrt code iterator.
13456         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
13457         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
13458         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
13459         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
13460         *{ashr,lshr}<mode>3_cmp_zext.
13461         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
13462
13463 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
13464
13465         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
13466         scratch register.
13467         (*lshr<mode>3_cconly): Ditto.
13468
13469 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
13470
13471         * config/i386/i386.md (lshr<mode>3): Macroize expander from
13472         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
13473         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
13474         pattern from *lshr{di,ti}3_1 and corresponding splitters using
13475         DWI mode iterator.
13476         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
13477         from corresponding peephole2 patterns.
13478         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
13479         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
13480         and *lshrdi3_1_rex64 using SWI mode iterator.
13481         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
13482         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
13483         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
13484         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
13485         and *lshrdi3_cmp_rex64 using SWI mode iterator.
13486         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
13487         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
13488         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
13489         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
13490         SWI mode iterator.
13491
13492 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
13493
13494         * config/i386/i386.md (ashr<mode>3): Macroize expander from
13495         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
13496         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
13497         pattern from *ashr{di,ti}3_1 and corresponding splitters using
13498         DWI mode iterator.
13499         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
13500         from corresponding peephole2 patterns.
13501         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
13502         (ashrsi3_cvt): Rename from ashrsi3_31.
13503         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
13504         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
13505         and x86_64_shift_adj_3 using SWI48 mode iterator.
13506         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
13507         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
13508         and *ashrdi3_1_rex64 using SWI mode iterator.
13509         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
13510         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
13511         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
13512         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
13513         and *ashrdi3_cmp_rex64 using SWI mode iterator.
13514         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
13515         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
13516         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
13517         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
13518         SWI mode iterator.
13519         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
13520         * config/i386/i386.c (ix86_split_ashr): Update for renamed
13521         x86_shift<mode>_adj_3 expanders.
13522
13523 2010-04-10  Wei Guozhi  <carrot@google.com>
13524
13525         PR target/42601
13526         * config/arm/arm.c (arm_pic_static_addr): New function.
13527         (legitimize_pic_address): Call arm_pic_static_addr when it detects
13528         a static symbol.
13529         (arm_output_addr_const_extra): Output expression for new pattern.
13530         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
13531
13532 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
13533
13534         * ira-costs.c (record_reg_classes): Ignore alternatives that are
13535         not enabled.
13536
13537         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
13538         * web.c: Include "insn-config.h" and "recog.h".
13539         (union_match_dups): New function.
13540         (web_main): Call it.
13541         (union_defs): Don't try to recognize match_dups.
13542
13543         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
13544         if doing so would replace the entire pattern.
13545
13546 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
13547
13548         PR target/43707
13549         PR target/43709
13550         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
13551         and splitter pattern.  Change splitter operand 1 predicate to
13552         nonmemory_operand.
13553
13554 2010-04-09  Martin Jambor  <mjambor@suse.cz>
13555
13556         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
13557         lattices are addresses of CONST_DECLs with the same initial value.
13558         (ipcp_print_all_lattices): Print values of CONST_DECLs.
13559         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
13560
13561 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
13562             Bernd Schmidt  <bernds@codesourcery.com>
13563
13564         * loop-invariant.c (replace_uses): New static function.
13565         (move_invariant_reg): Use it to ensure we can replace the uses.
13566
13567 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
13568
13569         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
13570         function template.
13571         (picochip_override_options): Enable section anchors only above -O1.
13572         (picochip_reorg): Fixed a couple of build warnings.
13573
13574 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13575
13576         * configure.ac (plugin -rdynamic test): Log result.
13577         * configure: Regenerate.
13578         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
13579         (RDYNAMIC_SPEC): Define.
13580         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
13581
13582 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13583
13584         * configure.ac: Determine Sun ld version numbers.
13585         (comdat_group): Restrict GNU ld version checks to gld.
13586         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
13587         (enable_comdat): Support --enable-comdat.
13588         * configure: Regenerate.
13589         * doc/install.texi (Configuration): Document --enable-comdat.
13590
13591 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13592
13593         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
13594         * config/sol2-gld.h: ... here.
13595         * config.gcc (sparc*-*-solaris2*): Reflect this.
13596         (i[34567]86-*-solaris2*): Use it.
13597
13598 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
13599
13600         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
13601         setup_clocks_p.
13602         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
13603
13604 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13605
13606         PR 42965
13607         * diagnostic.c (diagnostic_initialize): Initialize
13608         some_warnings_are_errors.
13609         (diagnostic_finish): New.
13610         (diagnostic_action_after_output): Call it before exiting.
13611         (diagnostic_report_diagnostic): Do not print message here. Set
13612         some_warnings_are_errors.
13613         * diagnostic.h (diagnostic_context): Delete
13614         issue_warnings_are_errors_message. Add some_warnings_are_errors.
13615         (diagnostic_finish): Declare.
13616         * toplev.c (toplev_main): Call it before exit.
13617
13618 2010-04-09  Jason Merrill  <jason@redhat.com>
13619
13620         PR c++/42623
13621         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
13622         for incomplete type.
13623
13624         PR c++/41788
13625         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
13626         based on a warning flag.
13627
13628 2010-04-09  Richard Guenther  <rguenther@suse.de>
13629
13630         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
13631
13632 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
13633
13634         PR bootstrap/43684
13635         * varasm.c (default_assemble_visibility): Wrap vars that are
13636         set, but unused, by targets without GAS.
13637         * config/rs6000/rs6000.c (paired_emit_vector_compare):
13638         Remove set, but unused, vars.
13639         (rs6000_legitimize_tls_address): Likewise.
13640         (altivec_expand_dst_builtin): Likewise.
13641         * config/darwin.c (machopic_classify_symbol): Likewise.
13642         (machopic_indirection_name): Likewise.
13643
13644 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
13645
13646         * config/i386/i386.md (DWI): New mode iterator.
13647         (S): New mode attribute.
13648         (shift_operand): Ditto.
13649         (shift_immediate_operand): Ditto.
13650         (ashl_input_operand): Ditto.
13651         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
13652         using SDWIM mode iterator.
13653         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
13654         pattern from *ashl{di,ti}3_1 and corresponding splitters using
13655         DWI mode iterator.
13656         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
13657         from corresponding peephole2 patterns.
13658         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
13659         and x86_64_shift_adj_1 using SWI48 mode iterator.
13660         (x86_shift<mode>_adj_2): Ditto.
13661         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
13662         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
13663         using SWI48 mode iterator.
13664         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
13665         *ashldi3_cmp_rex64 using SWI mode iterator.
13666         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
13667         *ashldi3_cconly_rex64 using SWI mode iterator.
13668         * config/i386/i386.c (ix86_split_ashl): Update for renamed
13669         x86_shift<mode>_adj_{1,2}.
13670         (ix86_split_ashr): Ditto.
13671         (ix86_split_lshr): Ditto.
13672
13673 2010-04-09  Richard Guenther  <rguenther@suse.de>
13674
13675         * target.h (builtin_conversion): Pass in input and output types.
13676         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
13677         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
13678         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
13679         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
13680
13681         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
13682         Handle AVX modes.
13683         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
13684
13685 2010-04-09  Richard Guenther  <rguenther@suse.de>
13686
13687         PR target/43152
13688         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
13689
13690 2010-04-09  Richard Guenther  <rguenther@suse.de>
13691
13692         * tree-vectorizer.h (struct _stmt_vec_info): Document
13693         that vectype is the type of the LHS.
13694         (supportable_widening_operation, supportable_narrowing_operation):
13695         Get both input and output vector types as arguments.
13696         (vect_is_simple_use_1): Declare.
13697         (get_same_sized_vectype): Likewise.
13698         * tree-vect-loop.c (vect_determine_vectorization_factor):
13699         Set STMT_VINFO_VECTYPE to the vector type of the def.
13700         (vectorizable_reduction): Adjust.
13701         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
13702         Adjust.  Specify the output vector type.
13703         (vect_pattern_recog_1): Adjust.
13704         * tree-vect-stmts.c (get_same_sized_vectype): New function.
13705         (vectorizable_call): Adjust.
13706         (vectorizable_conversion): Likewise.
13707         (vectorizable_operation): Likewise.
13708         (vectorizable_type_demotion): Likewise.
13709         (vectorizable_type_promotion): Likewise.
13710         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
13711         the def.
13712         (vect_is_simple_use_1): New function.
13713         (supportable_widening_operation): Get both input and output
13714         vector types.
13715         (supportable_narrowing_operation): Likewise.
13716         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
13717
13718 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
13719
13720         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
13721         __thiscall and _thiscall as predefined macros.
13722         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
13723         thiscall attribute handling.
13724         (ix86_comp_type_attributes): Likewise.
13725         (ix86_function_regparm): Likewise.
13726         (ix86_return_pops_args): Likewise.
13727         (init_cumulative_args): Likewise.
13728         (find_drap_reg): Likewise.
13729         (ix86_static_chain): Likewise.
13730         (x86_this_parameter): Likewise.
13731         (x86_output_mi_thunk): Likewise.
13732         (ix86_attribute_table): Add description for thiscall attribute.
13733         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
13734         * doc/extend.texi: Add documentation for thiscall.
13735
13736 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13737
13738         PR c++/28584
13739         * c.opt (Wint-to-pointer-cast): Available in C++.
13740         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
13741
13742 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
13743
13744         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
13745         * calls.c (expand_call): Pass the function type to aggregate_value_p.
13746         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
13747         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
13748         function type instead.  Reorder and simplify checks.
13749
13750         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
13751
13752 2010-04-08  Jing Yu  <jingyu@google.com>
13753             Zdenek Dvorak  <ook@ucw.cz>
13754
13755         PR tree-optimization/42720
13756         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
13757         loop unswitch conditions here from ...
13758         (tree_unswitch_single_loop): ... here.
13759
13760 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
13761
13762         * tree-if-conv.c: Fix comments and simplify logic.
13763
13764 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
13765
13766         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
13767         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
13768         (main_tree_if_conversion): Update call to tree_if_conversion.
13769
13770 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13771
13772         PR 42485
13773         * doc/invoke.texi (-b,-V): Delete.
13774         * doc/tm.texi: Do not mention -b.
13775         * gcc.c (display_help): Delete -b and -V.
13776         (process_command): Delete -b and -V.
13777         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
13778
13779 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
13780             Wolfgang Gellerich  <gellerich@de.ibm.com>
13781
13782         Implement target hook for loop unrolling
13783         * target.h (loop_unroll_adjust): Add a new target hook function.
13784         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
13785         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
13786         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
13787         (s390_loop_unroll_adjust): Implement the new target hook for s390.
13788         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
13789         target hook.
13790         (decide_unroll_stupid): Likewise.
13791
13792 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13793
13794         PR target/43643
13795         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
13796
13797 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13798
13799         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
13800         (Specific, *-*-solaris2*): Likewise.
13801         Don't prefer Sun as over GNU as.
13802
13803 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
13804
13805         * config/s390/s390.c (override_options): Adjust the z10 defaults
13806         for max-unroll-times, max-completely-peeled-insns
13807         and max-completely-peel-times.
13808
13809 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13810
13811         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
13812         instructions for z10.
13813         (s390_expand_setmem): Likewise.
13814         (s390_expand_cmpmem): Likewise.
13815
13816 2010-04-08  Richard Guenther  <rguenther@suse.de>
13817
13818         PR tree-optimization/43679
13819         * tree-ssa-pre.c (eliminate): Only propagate copies.
13820
13821 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
13822
13823         PR bootstrap/43681
13824         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
13825         set but not used variable warning.
13826
13827 2010-04-08  Wei Guozhi  <carrot@google.com>
13828
13829         PR target/41653
13830         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
13831         (arm_size_rtx_costs): Call the new function when optimized for size.
13832
13833 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
13834
13835         PR debug/43670
13836         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
13837         op0 is not a MEM, just return NULL instead of assertion
13838         failure.
13839         (discover_nonconstant_array_refs): Don't walk debug stmts.
13840
13841 2010-04-08  Doug Kwan  <dougkwan@google.com>
13842
13843         * configure.ac: Recognize gold and do not use its version number
13844         to test ld features.
13845         * configure: Regenerate.
13846
13847 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
13848
13849         PR middle-end/40815
13850         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
13851         (negate_value): Move code to push elements to broken_up_substracts ...
13852         (eliminate_plus_minus_pair): ... here.  Push operands that have no
13853         negative pair to plus_negates.
13854         (repropagate_negates, init_reassoc, fini_reassoc): Update.
13855
13856 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13857
13858         * doc/install.texi (Configuration): Move description of
13859         --enable-lto, --with-libelf*, --enable-gold from Java section to
13860         general section.
13861
13862         * doc/generic.texi (Working with declarations)
13863         (Function Properties, C and C++ Trees): Fix typos.
13864         * doc/sourcebuild.texi (Top Level): Likewise.
13865
13866 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
13867
13868         PR c/18624
13869         * tree.h (DECL_READ_P): Define.
13870         (struct tree_decl_common): Add decl_read_flag.
13871         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
13872         a set but not used warning.
13873         (merge_decls): Merge DECL_READ_P flag.
13874         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
13875         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
13876         * c-common.c (handle_used_attribute, handle_unused_attribute):
13877         Likewise.
13878         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
13879         New prototypes.
13880         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
13881         New functions.
13882         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
13883         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
13884         c_parser_binary_expression, c_parser_cast_expression,
13885         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
13886         Call default_function_array_read_conversion instead of
13887         default_function_array_conversion where needed.
13888         (c_parser_unary_expression, c_parser_conditional_expression,
13889         c_parser_postfix_expression_after_primary, c_parser_initelt):
13890         Likewise.  Call mark_exp_read where needed.
13891         (c_parser_statement_after_labels, c_parser_asm_operands,
13892         c_parser_typeof_specifier, c_parser_sizeof_expression,
13893         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
13894         where needed.
13895         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
13896         New.
13897         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
13898         (warn_unused_but_set_parameter): Default to warn_unused
13899         && extra_warnings.
13900         * doc/invoke.texi: Document -Wunused-but-set-variable and
13901         -Wunused-but-set-parameter.
13902
13903         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
13904         used count variable.
13905         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
13906         when operandN variables aren't used in the body of the expander
13907         or splitter.
13908         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
13909         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
13910         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
13911         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
13912         FOR_EACH_IMM_USE_ON_STMT): Likewise.
13913         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
13914         * tree.c (PROCESS_ARG): Likewise.
13915
13916 2010-04-07  Simon Baldwin  <simonb@google.com>
13917
13918         * diagnostic.h (diagnostic_override_option_index): New macro to
13919         set a diagnostic's option_index.
13920         * c-tree.h (c_cpp_error): Add warning reason argument.
13921         * opts.c (_warning_as_error_callback): New.
13922         (register_warning_as_error_callback): Store callback for
13923         warnings enabled via enable_warning_as_error.
13924         (enable_warning_as_error): Call callback, minor code tidy.
13925         * opts.h (register_warning_as_error_callback): Declare.
13926         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
13927         response to -Werror=.
13928         (c_common_init_options): Register warning_as_error_callback in opts.c.
13929         * common.opt: Add -Wno-cpp option.
13930         * c-common.c (struct reason_option_codes_t): Map cpp warning
13931         reason codes to gcc option indexes.
13932         * (c_option_controlling_cpp_error): New function, lookup the gcc
13933         option index for a cpp warning reason code.
13934         * (c_cpp_error): Add warning reason argument, call
13935         c_option_controlling_cpp_error for diagnostic_override_option_index.
13936         * doc/invoke.texi: Document -Wno-cpp.
13937
13938 2010-04-07  Richard Guenther  <rguenther@suse.de>
13939
13940         * ipa-reference.c (mark_load): Use get_base_address.
13941         (mark_store): Likewise.
13942
13943         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
13944         inserting GIMPLE_NOPs into the IL.
13945         * tree-ssa-structalias.c (get_constraint_for_component_ref):
13946         Explicitly strip handled components and indirect references.
13947
13948         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
13949         folding address expressions.
13950         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
13951         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
13952         operand_equal_p to compare decls.
13953         (ptr_deref_may_alias_decl_p): Likewise.
13954         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
13955         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
13956         Handle reversed comparison ops.
13957         * tree-sra.c (asm_visit_addr): Use get_base_address.
13958         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
13959         * ipa-reference.c (mark_address): Use get_base_address.
13960
13961 2010-04-07  Richard Guenther  <rguenther@suse.de>
13962
13963         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
13964         Propagate constants everywhere.
13965
13966 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
13967
13968         PR debug/43516
13969         * tree.c (MAX_INT_CACHED_PREC): Define.
13970         (nonstandard_integer_type_cache): New array.
13971         (build_nonstandard_integer_type): Cache results for precision
13972         <= MAX_INT_CACHED_PREC.
13973
13974 2010-04-07  Richard Guenther  <rguenther@suse.de>
13975
13976         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
13977         -fargument-noalias-global, -fargument-noalias-anything): Remove.
13978         * common.opt: Likewise.
13979         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
13980         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
13981         (nonoverlapping_memrefs_p): Likewise.
13982         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
13983         * opts.c (common_handle_option): Handle OPT_fargument_alias,
13984         OPT_fargument_noalias, OPT_fargument_noalias_anything and
13985         OPT_fargument_noalias_global for backward compatibility.
13986
13987 2010-04-07  Richard Guenther  <rguenther@suse.de>
13988
13989         PR tree-optimization/43270
13990         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
13991         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
13992         * tree-ssa-pre.c (phi_translate_1): Adjust.
13993         (fully_constant_expression): Split out vn_reference handling to ...
13994         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
13995         Fold reads from constant strings.
13996         (vn_reference_lookup): Handle fully constant references.
13997         (vn_reference_lookup_pieces): Likewise.
13998         * Makefile.in (expmed.o-warn): Add -Wno-error.
13999
14000 2010-04-07  Martin Jambor  <mjambor@suse.cz>
14001
14002         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
14003
14004 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
14005
14006         PR driver/41594
14007         * gcc.c: Add -static-libstdc++ to list of recognized options.
14008
14009 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14010
14011         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
14012
14013 2010-04-07  Richard Guenther  <rguenther@suse.de>
14014
14015         PR middle-end/42617
14016         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
14017         bases build simple mem attributes to retain points-to information.
14018
14019 2010-04-07  Richard Guenther  <rguenther@suse.de>
14020
14021         PR middle-end/42617
14022         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
14023         preserve points-to related information.
14024
14025 2010-04-07  Richard Guenther  <rguenther@suse.de>
14026
14027         PR middle-end/42617
14028         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
14029         discard plain indirect references.
14030         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
14031         * tree.c (tree_nop_conversion): Likewise.
14032
14033 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
14034
14035         PR debug/43628
14036         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
14037
14038 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
14039
14040         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
14041         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
14042
14043 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
14044
14045         * tree-if-conv.c: Fix indentation and comments.
14046
14047 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
14048
14049         * tree-if-conv.c: Sort static functions in topological order.
14050
14051 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
14052
14053         * tree-if-conv.c: Fix indentation and comments.
14054
14055 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
14056
14057         PR middle-end/43519
14058         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
14059         lang_hooks.types.type_for_size instead of
14060         build_nonstandard_integer_type.
14061         When converting an unsigned type to signed, double its precision.
14062         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
14063         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
14064         (graphite_create_new_loop_guard): When ub + 1 wraps around,
14065         use lb <= ub.
14066
14067 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
14068
14069         PR middle-end/43519
14070         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
14071         POINTER_PLUS_EXPR for pointer types.
14072
14073 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
14074
14075         PR middle-end/43519
14076         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
14077         * graphite-clast-to-gimple.c: Include langhooks.h.
14078         (max_signed_precision_type): New.
14079         (max_precision_type): Takes two types as arguments.
14080         (precision_for_value): New.
14081         (precision_for_interval): New.
14082         (gcc_type_for_interval): New.
14083         (gcc_type_for_value): New.
14084         (gcc_type_for_clast_term): New.
14085         (gcc_type_for_clast_red): New.
14086         (gcc_type_for_clast_bin): New.
14087         (gcc_type_for_clast_expr): Split up into several functions.
14088         (gcc_type_for_clast_eq): Rewritten.
14089         (compute_bounds_for_level): New.
14090         (compute_type_for_level_1): New.
14091         (compute_type_for_level): New.
14092         (gcc_type_for_cloog_iv): Removed.
14093         (gcc_type_for_iv_of_clast_loop): Rewritten.
14094         (graphite_create_new_loop): Compute the lower and upper bound types
14095         with gcc_type_for_clast_expr.
14096         (graphite_create_new_loop_guard): Same.
14097         (find_cloog_iv_in_expr): Removed.
14098         (compute_cloog_iv_types_1): Removed.
14099         (compute_cloog_iv_types): Removed.
14100         (gloog): Do not call compute_cloog_iv_types.
14101         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
14102         GBB_CLOOG_IV_TYPES.
14103         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
14104         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
14105         (GBB_CLOOG_IV_TYPES): Removed.
14106
14107 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
14108
14109         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
14110         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
14111         (detect_commutative_reduction): Same.
14112
14113 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
14114
14115         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
14116         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
14117         argument.
14118         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
14119         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
14120         (rewrite_commutative_reductions_out_of_ssa): Same.
14121         * passes.c (execute_function_todo): Call verify_ssa for every pass
14122         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
14123         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
14124         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
14125         with an extra argument.
14126         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
14127         verify_ssa only when the extra argument is true.
14128         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
14129         with an extra argument.
14130         (tree_transform_and_unroll_loop): Same.
14131
14132 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
14133
14134         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
14135         for all the passes of the LNO having LOOP_CLOSED_SSA.
14136         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
14137         * tree-loop-distribution.c (pass_loop_distribution): Same.
14138         * tree-pass.h (TODO_verify_loops): Removed.
14139         * tree-ssa-loop.c (pass_tree_loop_init): Same.
14140         (pass_lim): Same.
14141         (pass_tree_unswitch): Same.
14142         (pass_predcom): Same.
14143         (pass_vectorize): Same.
14144         (pass_linear_transform): Same.
14145         (pass_graphite_transforms): Same.
14146         (pass_iv_canon): Same.
14147         (pass_complete_unroll): Same.
14148         (pass_complete_unrolli): Same.
14149         (pass_parallelize_loops): Same.
14150         (pass_loop_prefetch): Same.
14151         (pass_iv_optimize): Same.
14152
14153 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
14154
14155         PR middle-end/32824
14156         * passes.c (init_optimization_passes): Move pass_lim before
14157         pass_copy_prop and pass_dce_loop.
14158
14159 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
14160
14161         PR target/43667
14162         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
14163         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
14164         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
14165         MULTI_* defines for 4 argument vpermil2p* builtins.
14166
14167 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
14168
14169         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
14170         * config/i386/i386.c (x86_maybe_negate_const_int): New.
14171         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
14172         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
14173         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
14174         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
14175         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
14176         Use x86_maybe_negate_const_int to output insn mnemonic.
14177         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
14178         check from instruction predicate.  Update comments.
14179         * config/i386/sync.md (sync_add<mode>): Use
14180         x86_maybe_negate_const_int to output insn mnemonic.
14181
14182 2010-04-06  Jan Hubicka  <jh@suse.cz>
14183
14184         PR tree-optimization/42906
14185         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
14186         IGNORE_SELF argument.  Set visited_control_parents for fully
14187         processed BBs.
14188         (find_obviously_necessary_stmts): Update call of
14189         mark_control_dependent_edges_necessary.
14190         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
14191
14192 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
14193
14194         * config/i386/i386.md: Remove comment about 'e' and 'E'
14195         operand modifier.
14196
14197 2010-04-06  Richard Guenther  <rguenther@suse.de>
14198
14199         PR tree-optimization/43627
14200         * tree-vrp.c (extract_range_from_unary_expr): Widenings
14201         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
14202         not varying.
14203
14204 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
14205
14206         * BASE-VER: Change to 4.6.0.
14207
14208         PR target/43638
14209         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
14210         handling.
14211
14212 2010-04-06  Richard Guenther  <rguenther@suse.de>
14213
14214         PR middle-end/43661
14215         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
14216
14217 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14218
14219         * doc/invoke.texi (Optimize Options): Document that LTO
14220         won't remove object access purely due to incompatible
14221         declarations.
14222
14223 2010-04-04  Matthias Klose  <doko@ubuntu.com>
14224
14225         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
14226         Initialize variable.
14227
14228 2010-04-03  Richard Guenther  <rguenther@suse.de>
14229
14230         PR middle-end/42509
14231         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
14232         require a non-NULL MEM_OFFSET.
14233
14234 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
14235
14236         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
14237         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
14238         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
14239         config/alpha/predicates.md, config/arm/arm.md,
14240         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
14241         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
14242         config/darwin9.h, config/darwin.c, config/darwin.h,
14243         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
14244         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
14245         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
14246         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
14247         config/mips/mips.md, config/mn10300/mn10300.c,
14248         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
14249         config/rs6000/aix.h, config/rs6000/dfp.md,
14250         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
14251         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
14252         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
14253         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
14254         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
14255         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
14256         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
14257         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
14258         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
14259         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
14260         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
14261         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
14262         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
14263         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
14264         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
14265         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
14266         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
14267         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
14268         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
14269         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
14270         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
14271         opt-functions.awk, opth-gen.awk, params.def, passes.c,
14272         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
14273         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
14274         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
14275         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
14276         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
14277         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
14278         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
14279         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
14280         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
14281         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
14282         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
14283         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
14284         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
14285         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
14286
14287 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14288
14289         PR other/43620
14290         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
14291         * aclocal.m4: Regenerate.
14292
14293 2010-04-02  Richard Guenther  <rguenther@suse.de>
14294
14295         PR tree-optimization/43629
14296         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
14297         if we have seen a constant value.
14298
14299 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
14300
14301         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
14302
14303 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
14304
14305         PR target/43469
14306         * arm.c (legitimize_tls_address): Adjust call to
14307         gen_tls_load_dot_plus_four.
14308         (arm_note_pic_base): New function.
14309         (arm_cannot_copy_insn_p): Use it.
14310         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
14311         constraint.
14312
14313 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14314
14315         PR bootstrap/43531
14316
14317         Revert:
14318         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14319
14320         * Makefile.in ($(out_object_file)): Depend on
14321         gt-$(basename $(notdir $(out_file))).h.
14322
14323 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
14324
14325         * config.gcc (lm32-*-rtems*): Add t-lm32.
14326
14327 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
14328
14329         * config.gcc: Add lm32-*-rtems*.
14330         * config/lm32/rtems.h: New file.
14331
14332 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
14333
14334         PR target/42609
14335         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
14336
14337 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
14338
14339         * dwarf2out.c (output_compilation_unit_header): For
14340         -gdwarf-4 use version 4 instead of version 3.
14341         (output_line_info): For version 4 and above emit additional
14342         maximum ops per insn header field.
14343         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
14344
14345         * dwarf2out.c (is_c_family, is_java): Remove.
14346         (lower_bound_default): New function.
14347         (add_bound_info, gen_descr_array_type_die): Use it.
14348
14349 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
14350
14351         PR debug/43325
14352         * dwarf2out.c (gen_variable_die): Allow debug info for variable
14353         re-declaration when it happens in a function.
14354
14355 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
14356
14357         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
14358         (cgraph_remove_function_insertion_hook): Same.
14359         (cgraph_call_function_insertion_hooks): Same.
14360
14361 2010-04-01  Richard Guenther  <rguenther@suse.de>
14362
14363         PR middle-end/43614
14364         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
14365         and TREE_THIS_VOLATILE.
14366         (copy_ref_info): Likewise.
14367         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
14368         * tree.c (build6_stat): Ignore side-effects of all but arg5
14369         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
14370         TARGET_MEM_REF.
14371
14372 2010-04-01  Richard Guenther  <rguenther@suse.de>
14373
14374         PR tree-optimization/43607
14375         * ipa-type-escape.c (check_call): Do not access non-existing
14376         arguments.
14377
14378 2010-04-01  Richard Guenther  <rguenther@suse.de>
14379
14380         PR middle-end/43602
14381         Revert
14382         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
14383                     Jack Howarth  <howarth@bromo.med.uc.edu>
14384
14385         * tree-profile.c (tree_init_ic_make_global_vars): Make static
14386         variables TLS.
14387
14388 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14389
14390         * doc/install.texi (Prerequisites): Document libelf usability on
14391         IRIX 5/6 and Solaris 2.
14392         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
14393         Update GNU as, GNU ld requirements.
14394         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
14395         Document Sun Studio compiler download.
14396         Update and simplify as, ld recommendations.
14397         (Specific, *-*-solaris2.7): Note obsoletion, removal.
14398
14399 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14400
14401         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
14402         with_tune_32 to pentium4.
14403
14404 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
14405
14406         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
14407
14408 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14409
14410         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
14411         obsoletion, removal.
14412         Update IDO URL.
14413         Document GNU as requirement.
14414         Update configure requirements.
14415         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
14416         Recomment IRIX 6.5.18+.
14417         Document IDF/IDL requirement.
14418         Document GNU as requirement.
14419         Document GNU ld bootstrap failure.
14420         Remove freeware.sgi.com reference.
14421
14422 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14423
14424         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
14425         UNIX V4.0, V5.0 obsoletion, removal.
14426         Remove --with-gc=simple reference.
14427         Update VM requirements during bootstrap.
14428         Remove -oldas bootstrap description.
14429         Update binutils reference.
14430         Remove comparison failure note.
14431
14432 2010-03-31  Richard Guenther  <rguenther@suse.de>
14433             Zdenek Dvorak  <ook@ucw.cz>
14434             Sebastian Pop  <sebastian.pop@amd.com>
14435
14436         PR middle-end/43464
14437         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
14438         with multiple arguments.
14439         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
14440
14441 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
14442
14443         * graphite-dependences.c (print_pddr): Call print_pdr with an
14444         extra argument.
14445         * graphite-poly.c (debug_pdr): Add an extra argument for the
14446         verbosity level.
14447         (print_pdr): Same.
14448         (print_pbb_domain): Same.
14449         (print_pbb): Same.
14450         (print_scop_context): Same.
14451         (print_scop): Same.
14452         (print_cloog): Same.
14453         (debug_pbb_domain): Same.
14454         (debug_pbb): Same.
14455         (print_pdrs): Same.
14456         (debug_pdrs): Same.
14457         (debug_scop_context): Same.
14458         (debug_scop): Same.
14459         (debug_cloog): Same.
14460         (print_scop_params): Same.
14461         (debug_scop_params): Same.
14462         (print_iteration_domain): Same.
14463         (print_iteration_domains): Same.
14464         (debug_iteration_domain): Same.
14465         (debug_iteration_domains): Same.
14466         (print_scattering_function): Same.
14467         (print_scattering_functions): Same.
14468         (debug_scattering_function): Same.
14469         (debug_scattering_functions): Same.
14470         * graphite-poly.h (debug_pdr): Update declaration.
14471         (print_pdr): Same.
14472         (print_pbb_domain): Same.
14473         (print_pbb): Same.
14474         (print_scop_context): Same.
14475         (print_scop): Same.
14476         (print_cloog): Same.
14477         (debug_pbb_domain): Same.
14478         (debug_pbb): Same.
14479         (print_pdrs): Same.
14480         (debug_pdrs): Same.
14481         (debug_scop_context): Same.
14482         (debug_scop): Same.
14483         (debug_cloog): Same.
14484         (print_scop_params): Same.
14485         (debug_scop_params): Same.
14486         (print_iteration_domain): Same.
14487         (print_iteration_domains): Same.
14488         (debug_iteration_domain): Same.
14489         (debug_iteration_domains): Same.
14490         (print_scattering_function): Same.
14491         (print_scattering_functions): Same.
14492         (debug_scattering_function): Same.
14493         (debug_scattering_functions): Same.
14494
14495 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
14496
14497         * graphite-poly.c (print_scattering_function_1): New.
14498         (print_scattering_function): Call it.
14499         (print_scop_params): Remove spaces at the end of lines.
14500         (print_cloog): New.
14501         (debug_cloog): New.
14502         * graphite-poly.h (print_cloog): Declared.
14503         (debug_cloog): Declared.
14504
14505 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
14506
14507         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
14508         in loop->header.
14509         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
14510         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
14511         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
14512         to switch between adding the IV bump in loop->latch or in loop->header.
14513
14514 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
14515
14516         * graphite-poly.c (print_scattering_function): Pretty print following
14517         the scoplib format.
14518         (print_pdr): Same.
14519         (print_pbb_domain): Same.
14520         (dump_gbb_cases): Same.
14521         (dump_gbb_conditions): Same.
14522         (print_pdrs): Same.
14523         (print_pbb): Same.
14524         (print_scop_params): Same.
14525         (print_scop_context): Same.
14526         (print_scop): Same.
14527         (print_pbb_body): New.
14528         (lst_indent_to): New.
14529         (print_lst): Start new lines with a #.
14530         * graphite-poly.h (pbb_bb): New.
14531         (pbb_index): Use pbb_bb.
14532         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
14533         disjuncts.
14534         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
14535
14536 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
14537
14538         * dwarf2out.c (size_of_die): For -gdwarf-4 use
14539         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
14540         and 0 instead of 1 for dw_val_class_flag.
14541         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
14542         dw_val_class_range_list, dw_val_class_loc_list,
14543         dw_val_class_lineptr and dw_val_class_macptr, use
14544         DW_FORM_flag_present for dw_val_class_flag and
14545         DW_FORM_exprloc for dw_val_class_loc.
14546         (output_die): For -gdwarf-4 print dw_val_class_loc
14547         size as uleb128 instead of 1 or 2 bytes and don't print
14548         anything for dw_val_class_flag.
14549
14550         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
14551         instead of cselib_lookup following by tweaking locs->setting_insn.
14552
14553         PR bootstrap/43596
14554         * cselib.c (cselib_process_insn): Clear cselib_current_insn
14555         even before returning from label, setjmp call or volatile asm
14556         handling.
14557
14558 2010-03-31  Richard Guenther  <rguenther@suse.de>
14559
14560         PR middle-end/43600
14561         * cgraphunit.c (cgraph_output_in_order): Do not allocate
14562         temporary data on stack.
14563
14564 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14565
14566         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
14567         (PUSHSECTION_ASM_OP): Remove.
14568         (POPSECTION_ASM_OP): Remove.
14569         (PUSHSECTION_FORMAT): Remove.
14570         * config/sol2.h (PUSHSECTION_FORMAT): Define.
14571         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
14572         * config/sol2.c (solaris_output_init_fini): Use it.
14573
14574 2010-03-31  Jie Zhang  <jie@codesourcery.com>
14575
14576         PR 43574
14577         * opt-functions.awk (var_type_struct): Use signed char type
14578         for simple variables.
14579
14580 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14581
14582         * config/sol2.c: Include output.h.
14583         (solaris_assemble_visibility): New function.
14584         * config/t-sol2 (sol2.o): Add output.h dependency.
14585         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
14586         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
14587         Redefine.
14588
14589 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
14590
14591         PR target/43580
14592         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
14593         V2SImode or XFmode on PRE_DEC.
14594
14595         PR debug/43557
14596         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
14597         BLKmode.
14598
14599 2010-03-31  Jie Zhang  <jie@codesourcery.com>
14600
14601         PR 43562
14602         * reload.h (caller_save_initialized_p): Declare.
14603         * toplev.c (backend_init_target): Don't call
14604         init_caller_save but set caller_save_initialized_p to false.
14605         * caller-save.c (caller_save_initialized_p): Define.
14606         (init_caller_save): Check caller_save_initialized_p.
14607         * ira.c (ira): Call init_caller_save if flag_caller_saves.
14608
14609 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14610
14611         PR target/39048
14612         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
14613         and soft-fp/t-softfp to tmake_file.
14614         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
14615         (LIBGCC2_TF_CEXT): Define.
14616         (TF_SIZE): Define.
14617
14618 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
14619
14620         PR debug/42977
14621         * cselib.c (n_useless_values): Document handling of debug locs.
14622         (n_useless_debug_values, n_debug_values): New variables.
14623         (new_elt_loc_list): Don't add to debug values, keep count.
14624         (promote_debug_loc): New.
14625         (cselib_reset_table): Zero new variables.
14626         (entry_and_rtx_equal_p): Promote debug locs.
14627         (discard_useless_locs): Increment n_useless_debug_values for
14628         debug values.
14629         (remove_useless_values): Adjust n_useless_values and n_debug_values
14630         with n_useless_debug_values.
14631         (add_mem_for_addr): Promote debug locs.
14632         (cselib_lookup_mem): Likewise.
14633         (cselib_lookup_addr): Renamed to...
14634         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
14635         (cselib_log_lookup): ... this.  Turn into...
14636         (cselib_lookup_addr): ... new wrapper.
14637         (cselib_lookup_from_insn): New.
14638         (cselib_invalidate_regno): Increment n_useless_debug_values for
14639         debug values.
14640         (cselib_invalidate_mem): Likewise.
14641         (cselib_process_insn): Take n_deleted and n_debug_values into
14642         account to guard remove_useless_value call.
14643         (cselib_finish): Zero n_useless_debug_values.
14644         * cselib.h (cselib_lookup_from_insn): Declare.
14645         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
14646         (sched_analyze_2): Likewise.
14647
14648 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
14649
14650         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
14651         functions.
14652         (adjust_mems): Replace narrowing SUBREG of expression containing
14653         just PLUS, MINUS, MULT and ASHIFT of registers and constants
14654         with operations in the narrower mode.
14655
14656         PR debug/43593
14657         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
14658         regs_invalidated_by_call instead all call_used_reg_set registers.
14659
14660 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
14661
14662         PR middle-end/43430
14663         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
14664         pointer comparisons with types_compatible_p.
14665         * tree-vect-stmts.c (vectorizable_call): Same.
14666         (vectorizable_condition): Same.
14667
14668 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14669
14670         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
14671         stack check if the mask would be zero.
14672
14673 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
14674             Jack Howarth  <howarth@bromo.med.uc.edu>
14675
14676         * tree-profile.c (tree_init_ic_make_global_vars): Make static
14677         variables TLS.
14678
14679 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
14680
14681         PR other/25232
14682         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
14683         and __unordtf2.
14684         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
14685         Include ___unordxf2 and ___unordtf2.
14686         * config/i386/libgcc-glibc.ver: Do not define inheritance from
14687         GCC_4.4.0 here.
14688
14689 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
14690
14691         * config/lm32/t-lm32: New file.
14692         * config.gcc: Use the above file when targetting lm32.
14693
14694 2010-03-28  Duncan Sands  <baldrick@free.fr>
14695
14696         * Makefile.in (PLUGIN_HEADERS): Add except.h.
14697
14698 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
14699
14700         PR middle-end/43431
14701         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
14702         Improve vectorization cost model diagnostic.
14703
14704 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
14705
14706         PR middle-end/43436
14707         * tree-vect-data-refs.c (vect_analyze_data_refs): When
14708         compute_data_dependences_for_loop returns false, early exit
14709         and output an extra diagnostic for the failed data reference
14710         analysis.
14711
14712 2010-03-29  Richard Guenther  <rguenther@suse.de>
14713
14714         PR tree-optimization/43560
14715         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
14716         (can_sm_ref_p): Treat stores to readonly locations as trapping.
14717
14718 2010-03-29  Jie Zhang  <jie@codesourcery.com>
14719
14720         PR 43564
14721         * toplev.c (process_options): Set optimization_default_node
14722         and optimization_current_node.
14723         * opts.c (decode_options): Don't set optimization_default_node
14724         and optimization_current_node.
14725
14726 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
14727
14728         * config/rtems.h: Abandon -qrtems_debug.
14729
14730 2010-03-28  Jan Hubicka  <jh@suse.cz>
14731
14732         PR tree-optimization/43505
14733         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
14734         map should not be copied.
14735
14736 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14737
14738         PR middle-end/41674
14739         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
14740         cdtors, set DECL_PRESERVE_P.
14741         * ipa.c (cgraph_externally_visible_p): Return true if declaration
14742         should be preseved.
14743
14744 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
14745
14746         PR tree-optimization/43528
14747         * stor-layout.c (place_field): Check that constant fits into
14748         unsigned HWI when skipping calculation of MS bitfield layout.
14749
14750 2010-03-27  Jan Hubicka  <jh@suse.cz>
14751
14752         PR middle-end/43391
14753         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
14754         notice_global_symbol work.
14755
14756 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
14757
14758         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
14759         instead of dwarf2out_decl.
14760         (struct var_loc_node): Remove section_label field.
14761         (dwarf2out_function_decl): New function.
14762         (dwarf2out_var_location): Don't set section_label field.
14763         (dwarf2out_begin_function): Don't empty decl_loc_table here.
14764
14765 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
14766
14767         PR tree-optimization/43544
14768         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
14769         First argument for builtin vectorized function hook is now a
14770         tree to be able to distinguish between machine specific and
14771         standard builtins.
14772         * targhooks.c (default_builtin_vectorized_function): Ditto.
14773         * targhooks.h (default_builtin_vectorized_function): Ditto.
14774         * target.h (struct gcc_target): Ditto.
14775         * tree-vect-stmts.c (vectorizable_function): Ditto.
14776         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
14777         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
14778         Ditto.
14779
14780 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
14781
14782         PR c/43381
14783         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
14784         nested binding iff it is a FUNCTION_DECL.
14785         (store_parm_decls_newstyle): Pass nested=true to bind for
14786         FUNCTION_DECLs amongst parameters.
14787
14788 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
14789
14790         * var-tracking.c (vt_expand_loc_callback): Don't run
14791         cselib_expand_value_rtx_cb in dummy mode if
14792         cselib_dummy_expand_value_rtx_cb returned false.
14793
14794         * var-tracking.c (emit_note_insn_var_location): For one part
14795         notes with offset 0, don't add EXPR_LIST around the location.
14796         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
14797         add_location_or_const_value_attribute): Adjust for that change.
14798
14799         PR debug/43540
14800         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
14801         into first operand and location into second.
14802         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
14803         dw_cfi_oprnd_loc for DW_CFA_expression.
14804         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
14805         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
14806         assume first argument is regnum and second argument is location.
14807
14808 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
14809
14810         PR target/42113
14811         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
14812         of scratch register to DImode.  Split to DImode comparison operator.
14813         Use SImode subreg of scratch register in the multiplication.
14814         (*cmp_sadd_sidi): Ditto.
14815         (*cmp_ssub_si): Ditto.
14816         (*cmp_ssub_sidi): Ditto.
14817
14818 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
14819
14820         PR target/43524
14821         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
14822         Remove invalid assert and wrong comment.
14823
14824 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
14825
14826         PR debug/43516
14827         * flags.h (final_insns_dump_p): New extern.
14828         * final.c (final_insns_dump_p): New variable.
14829         (rest_of_clean_state): Set it before -fdump-final-insns=
14830         dumping, clear afterwards.
14831         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
14832         MEM_ALIAS_SET on MEMs.
14833
14834 2010-03-26  David S. Miller  <davem@davemloft.net>
14835
14836         * configure.ac: Fix sparc GOTDATA_OP bug check.
14837         * configure: Rebuild.
14838
14839 2010-03-26  Alan Modra  <amodra@gmail.com>
14840
14841         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
14842
14843 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14844
14845         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
14846         TLS_SECTION_ASM_FLAG.
14847
14848 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
14849
14850         PR bootstrap/43511
14851         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
14852         Clear first_function_block_is_cold.
14853
14854         PR c/43385
14855         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
14856         argument if the argument is truth_value_p.
14857
14858 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
14859
14860         * config/rs6000/constraints.md: Update copyright year for my changes.
14861
14862         PR target/43484
14863         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
14864         used in reg+reg addressing, swap registers.
14865
14866 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
14867
14868         PR debug/43293
14869         * target.h (struct gcc_target): Add code_end hook.
14870         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
14871         if not yet defined.
14872         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
14873         * toplev.c (compile_file): Call targetm.asm_out.code_end
14874         hook before unwind info/debug info output.
14875         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
14876         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
14877         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
14878         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
14879         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
14880         * config/i386/i386.c (ix86_file_end): Renamed to...
14881         (ix86_code_end): ... this.  Make static.  Don't call
14882         file_end_indicate_exec_stack.  Emit unwind info using
14883         final_start_function/final_end_function.
14884         (darwin_x86_file_end): Remove.
14885         (TARGET_ASM_CODE_END): Define.
14886         * config/i386/i386.h (TARGET_ASM_FILE_END,
14887         NEED_INDICATE_EXEC_STACK): Don't define.
14888         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
14889         (TARGET_ASM_FILE_END): Define to darwin_file_end.
14890         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
14891         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
14892
14893         PR target/43498
14894         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
14895         at the beginning and final_end_function at the end.
14896         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
14897
14898 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14899
14900         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
14901         and Sun as TLS syntax.
14902         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
14903         * configure: Regenerate.
14904         * config.in: Regenerate.
14905         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
14906         (default_elf_asm_named_section): Use it.
14907         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
14908         (i386_output_dwarf_dtprel): Likewise.
14909         (output_addr_const_extra): Likewise.
14910         (output_pic_addr_const): Lowercase @GOTTPOFF.
14911         (output_addr_const_extra): Likewise.
14912         (output_pic_addr_const): Lowercase @GOTNTPOFF.
14913         (output_addr_const_extra): Likewise.
14914         (output_pic_addr_const): Lowercase @INDNTPOFF.
14915         (output_addr_const_extra): Likewise.
14916         (output_pic_addr_const): Lowercase @NTPOFF.
14917         (output_addr_const_extra): Likewise.
14918         (output_pic_addr_const): Lowercase @TPOFF.
14919         (output_addr_const_extra): Likewise.
14920         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
14921         (*tls_global_dynamic_64): Likewise.
14922         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
14923         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
14924
14925         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
14926         (ASM_OUTPUT_TLS_COMMON): Use it.
14927         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
14928
14929         PR target/38118
14930         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
14931         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
14932         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
14933         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
14934         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
14935         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
14936
14937 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14938
14939         * config/i386/i386.c (override_options): Don't accept
14940         -mtls-dialect=sun any longer.
14941         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
14942         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
14943         (*tls_local_dynamic_base_32_sun): Likewise.
14944         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
14945
14946 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
14947
14948         PR debug/43508
14949         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
14950         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
14951
14952         PR debug/43479
14953         * ira.c (adjust_cleared_regs): New function.
14954         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
14955
14956         PR debug/19192
14957         PR debug/43479
14958         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
14959         from gimple_block.
14960         * expr.c (expand_expr_real): Restore previous
14961         curr_insn_source_location and curr_insn_block after
14962         expand_expr_real_1 call.
14963         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
14964         instead of expand_expr_real_1.
14965
14966 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
14967
14968         PR rtl-optimization/43413
14969         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
14970         hard regs too.
14971
14972 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
14973
14974         PR target/43348
14975         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
14976         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
14977
14978 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
14979
14980         * config/i386/i386.c (ix86_target_string): Add -mfma.
14981         Fix a typo in comment.
14982
14983 2010-03-22  Mike Stump  <mikestump@comcast.net>
14984
14985         PR target/23071
14986         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
14987         Don't overly align based upon packed packed fields.
14988
14989 2010-03-22  Jason Merrill  <jason@redhat.com>
14990
14991         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
14992         Use () rather than [], and move before the element type.
14993
14994 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14995
14996         * doc/configfiles.texi (Configuration Files): Removed
14997         fixinc/Makefile*, intl/Makefile.*.
14998         * doc/makefile.texi: Fixed markup. Abstract from version
14999         control system used.
15000         (Makefile): Removed obsolete gcc/java/parse.y example.
15001         * doc/sourcebuild.texi: Likewise.
15002         (Top Level): Added config, gnattools, libdecnumber, libgcc,
15003         libgomp, libssp.  Removed fastjar.
15004         (Miscellaneous Docs): Clarify location.
15005         Added COPYING3, COPYING3.LIB.
15006         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
15007
15008 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15009
15010         PR target/38085
15011         * config/i386/i386.c (x86_function_profiler)
15012         [!NO_PROFILE_COUNTERS]: Fix typo.
15013         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
15014         instead of callq.
15015
15016 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
15017             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15018
15019         * doc/sourcebuild.texi (Test Directives): Split into six
15020         subsections, with most of the current text in new subsections
15021         Directives, Selectors, and Final Actions.
15022         (Directives): Split list of test directives into multiple
15023         subsubsections.
15024         (Selectors): Describe use and syntax of selectors.
15025         (Effective-Target Keywords): Describe all existing keywords.
15026         (Add Options): Describe features for dg-add-options.
15027         (Require Support): Describe variants of dg-require-support.
15028         (Final Actions): Describe commands to use in dg-final.
15029
15030 2010-03-22  Michael Matz  <matz@suse.de>
15031
15032         PR middle-end/43475
15033         * recog.c (validate_replace_rtx_group): Replace also in
15034         REG_EQUAL and REG_EQUIV notes.
15035
15036 2010-03-22  Richard Guenther  <rguenther@suse.de>
15037
15038         PR tree-optimization/43390
15039         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
15040         sure vector extracts are type correct.
15041
15042 2010-03-22  Richard Guenther  <rguenther@suse.de>
15043
15044         PR middle-end/40106
15045         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
15046         x * sqrt (x) even when optimizing for size if the target
15047         has native support for sqrt.
15048
15049 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
15050
15051         * varasm.c (make_decl_rtl_for_debug): Also clear
15052         flag_mudflap for the duration of make_decl_rtl call.
15053
15054         PR debug/43443
15055         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
15056         locs from preserved VALUEs.
15057
15058 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15059
15060         PR middle-end/42718
15061         * pa.md (movmemsi): Set align to one if zero.
15062         (movmemdi): Likewise.
15063
15064 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
15065
15066         PR target/42321
15067         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
15068         with their corresponding prologue pushes.
15069
15070 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
15071
15072         PR target/43156
15073         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
15074         at the begining or end.
15075         (spu_expand_epilogue): Likewise.
15076
15077 2010-03-20  Richard Guenther  <rguenther@suse.de>
15078
15079         PR rtl-optimization/43438
15080         * combine.c (make_extraction): Properly zero-/sign-extend an
15081         extraction of the low part of a CONST_INT.  Also handle
15082         CONST_DOUBLE.
15083
15084 2010-03-19  Mike Stump  <mikestump@comcast.net>
15085
15086         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
15087         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
15088         (override_options): Use SUBTARGET32_DEFAULT_CPU.
15089
15090 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
15091
15092         PR c/43211
15093         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
15094         an error.
15095
15096 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
15097
15098         PR rtl-optimization/42258
15099         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
15100         use that may match DEF.
15101
15102         PR target/40697
15103         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
15104         the cost of loading the constant rather than assuming
15105         COSTS_N_INSNS (1).
15106         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
15107         outer code is AND, do the same tests as the andsi3 expander and
15108         return COSTS_N_INSNS (1) if and is cheap.
15109
15110         * optabs.c (avoid_expensive_constant): Fix formatting.
15111
15112 2010-03-19  Michael Matz  <matz@suse.de>
15113
15114         PR c++/43116
15115         * attribs.c (decl_attributes): When rebuilding a function pointer
15116         type use the same qualifiers as the original pointer type.
15117
15118 2010-03-19  Martin Jambor  <mjambor@suse.cz>
15119
15120         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
15121         and is_gimple_ip_invariant_address.
15122
15123 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15124
15125         Revert
15126         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15127
15128         * config/arm/arm.c (arm_override_options): Turn off
15129         flag_dwarf2_cfi_asm for AAPCS variants.
15130
15131 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15132
15133         PR target/43399
15134         * config/arm/arm.c (emit_multi_reg_push): Update comments.
15135         Use PRE_MODIFY instead of PRE_DEC.
15136         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
15137         (vfp_emit_fstmd): Likewise.
15138
15139 2010-03-19  Michael Matz  <matz@suse.de>
15140
15141         PR target/43305
15142         * builtins.c (expand_builtin_interclass_mathfn,
15143         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
15144         if that fails.
15145
15146 2010-03-19  Richard Guenther  <rguenther@suse.de>
15147
15148         PR tree-optimization/43415
15149         * tree-ssa-pre.c (phi_translate): Split out worker to ...
15150         (phi_translate_1): ... this.
15151         (phi_translate): Move all caching here.  Cache all NARY
15152         and REFERENCE translations.
15153
15154 2010-03-19  David S. Miller  <davem@davemloft.net>
15155
15156         With help from Eric Botcazou.
15157         * config/sparc/sparc.c: Include dwarf2out.h.
15158         (emit_pic_helper): Delete.
15159         (pic_helper_symbol_name): Delete.
15160         (pic_helper_emitted_p): Delete.
15161         (pic_helper_needed): New.
15162         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
15163         (get_pc_thunk_name): New.
15164         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
15165         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
15166         Set pic_helper_needed to true.  Don't call emit_pic_helper.
15167         (sparc_expand_prologue): Update load_pic_register call.
15168         (sparc_output_mi_thunk): Likewise.
15169         (sparc_file_end): Emit a hidden comdat symbol for the PIC
15170         thunk if possible.  Output CFI information as needed.
15171
15172 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15173             Jack Howarth  <howarth@bromo.med.uc.edu>
15174
15175         PR target/36399
15176         * config/i386/i386.h: Fix ABI on darwin x86-32.
15177
15178 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
15179
15180         * tree.h: Declare make_decl_rtl_for_debug.
15181         * varasm.c (make_decl_rtl_for_debug): New.
15182         * dwarf2out.c (rtl_for_decl_location): Call it.
15183         * cfgexpand.c (expand_debug_expr): Call it.
15184
15185 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
15186
15187         PR bootstrap/43399
15188         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
15189         mem_mode.
15190
15191         PR bootstrap/43403
15192         * var-tracking.c (vt_init_cfa_base): Do nothing if
15193         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
15194
15195 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
15196
15197         PR debug/42873
15198         * var-tracking.c (canonicalize_vars_star): New.
15199         (dataflow_post_merge_adjust): Use it.
15200
15201 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
15202
15203         PR debug/43058
15204         * var-tracking.c (non_suitable_const): New function.
15205         (add_uses): For DEBUG_INSNs with constants, don't record any
15206         value, instead just the constant value itself.
15207         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
15208         is not VAR_LOC_UNKNOWN_P, set var to the constant.
15209         (emit_notes_in_bb): Likewise.
15210         (emit_note_insn_var_location): For onepart variables if
15211         cur_loc is a VOIDmode constant, use DECL_MODE.
15212
15213 2010-03-18  Martin Jambor  <mjambor@suse.cz>
15214
15215         PR middle-end/42450
15216         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
15217         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
15218         all non-clones.  Moved call redirection...
15219         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
15220         (cgraph_materialize_all_clones): Dispose of all
15221         combined_args_to_skip bitmaps.
15222         (verify_cgraph_node): Do not check for edges pointing to wrong
15223         nodes in inline clones.
15224         * tree-inline.c (copy_bb): Call
15225         cgraph_redirect_edge_call_stmt_to_callee.
15226         * ipa.c (cgraph_remove_unreachable_nodes): Call
15227         cgraph_node_remove_callees even when there are used clones.
15228
15229 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
15230
15231         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
15232
15233 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
15234
15235         PR target/43383
15236         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
15237         for 32bit.
15238
15239 2010-03-18  Michael Matz  <matz@suse.de>
15240
15241         PR middle-end/43419
15242         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
15243         into sqrt(x) if we need to preserve signed zeros.
15244
15245 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
15246             Eric Botcazou  <ebotcazou@adacore.com>
15247
15248         PR rtl-optimization/43360
15249         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
15250         note if we don't know its invariant status.
15251
15252 2010-03-18  Michael Matz  <matz@suse.de>
15253
15254         PR tree-optimization/43402
15255         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
15256         PHI chains of ssa names registered for update.
15257
15258 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
15259
15260         PR target/42427
15261         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
15262         non-offsettable and pre_modify update addressing.
15263         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
15264         and "2" alternatives "#".
15265         (*movdd_softfloat32): Make all alternatives "#";
15266         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
15267         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
15268         (*movdf_softfloat32): Make all alternatives "#";
15269         (movdi): Use the new DIFD mode iterator to create a common splitter
15270         for movdi, movdf and movdd patterns.
15271
15272 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
15273
15274         * common.opt (dumpdir): Remove redundant tab.
15275
15276 2010-03-17  Martin Jambor  <mjambor@suse.cz>
15277
15278         PR tree-optimization/43347
15279         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
15280         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
15281
15282 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
15283
15284         PR rtl-optimization/42216
15285         * regrename.c (create_new_chain): New function, broken out from...
15286         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
15287         appending a use to an empty chain.
15288         (build_def_use): Remove previous changes that convert OP_INOUT to
15289         OP_OUT operands; instead detect the case where an OP_INOUT operand
15290         uses a previously untracked register and create an empty chain for it.
15291
15292 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15293
15294         * doc/extend.texi (Function Attributes): Rewrite unfinished
15295         sentence in ms_abi documentation.
15296
15297 2010-03-17  Alan Modra  <amodra@gmail.com>
15298
15299         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
15300         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
15301         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
15302         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
15303
15304 2010-03-16  Richard Henderson  <rth@redhat.com>
15305
15306         PR middle-end/43365
15307         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
15308         (lower_try_finally): Save and restore eh_seq around the expansion
15309         of the try-finally.
15310
15311 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
15312
15313         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
15314         statements before splitting block.
15315
15316 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15317
15318         * doc/sourcebuild.texi (Testsuites): Fix markup.
15319         Use pathnames relative to gcc/testsuite.
15320         (Test Directives): Move description of how timeout is determined.
15321         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
15322         (C Tests): Correct gcc.misc-tests directory.
15323         Framework tests now live in gcc.test-framework.
15324
15325 2010-03-16  Richard Guenther  <rguenther@suse.de>
15326
15327         PR middle-end/43379
15328         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
15329         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
15330
15331 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
15332             Alexandre Oliva  <aoliva@redhat.com>
15333
15334         PR tree-optimization/42917
15335         * lambda-code.c (remove_iv): Skip debug statements.
15336         (lambda_loopnest_to_gcc_loopnest): Likewise.
15337         (not_interesting_stmt): Debug statements are not interesting.
15338
15339 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
15340
15341         PR debug/43051
15342         PR debug/43092
15343         * cselib.c (cselib_preserve_constants,
15344         cfa_base_preserved_val): New static variables.
15345         (preserve_only_constants): New function.
15346         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
15347         clear its REG_VALUES.  If cselib_preserve_constants, don't
15348         empty the whole hash table, but preserve there VALUEs with constants,
15349         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
15350         (cselib_preserve_cfa_base_value): New function.
15351         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
15352         (cselib_init): Change argument to int bitfield.  Set
15353         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
15354         is in it.
15355         (cselib_finish): Clear cselib_preserve_constants and
15356         cfa_base_preserved_val.
15357         * cselib.h (enum cselib_record_what): New enum.
15358         (cselib_init): Change argument to int.
15359         (cselib_preserve_cfa_base_value): New prototype.
15360         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
15361         * dse.c (dse_step1): Likewise.
15362         * cfgcleanup.c (thread_jump): Likewise.
15363         * sched-deps.c (sched_analyze): Likewise.
15364         * gcse.c (local_cprop_pass): Likewise.
15365         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
15366         If FN is non-NULL, call the callback always and whenever it returns
15367         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
15368         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
15369         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
15370         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
15371         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
15372         * var-tracking.c: Include recog.h.
15373         (bb_stack_adjust_offset): Remove.
15374         (vt_stack_adjustments): Don't call it, instead just gather the
15375         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
15376         (adjust_stack_reference): Remove.
15377         (compute_cfa_pointer): New function.
15378         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
15379         (struct adjust_mem_data): New type.
15380         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
15381         functions.
15382         (get_address_mode): New function.
15383         (replace_expr_with_values): Use it.
15384         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
15385         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
15386         (adjust_sets): Remove.
15387         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
15388         Use get_address_mode.
15389         (get_adjusted_src): Remove.
15390         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
15391         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
15392         (add_with_sets): Don't call adjust_sets.
15393         (fp_setter, vt_init_cfa_base): New functions.
15394         (vt_initialize): Change return type to bool.  Move most of pool etc.
15395         initialization to the beginning of the function from end.  Pass
15396         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
15397         If !frame_pointer_needed, call vt_stack_adjustment before mos
15398         vector is filled, call vt_init_cfa_base if argp/framep has been
15399         eliminated to sp.  If frame_pointer_needed and argp/framep has
15400         been eliminated to hard frame pointer, set
15401         hard_frame_pointer_adjustment and call vt_init_cfa_base after
15402         encountering fp setter in the prologue.  For MO_ADJUST, call
15403         log_op_type before pusing the op into mos vector, not afterwards.
15404         Call adjust_insn before cselib_process_insn/add_with_sets,
15405         call cancel_changes (0) afterwards.
15406         (variable_tracking_main_1): Adjust for vt_initialize calling
15407         vt_stack_adjustments and returning whether it succeeded or not.
15408
15409 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
15410
15411         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
15412         debug statements.
15413
15414 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
15415
15416         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
15417         has been set.
15418         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
15419         drap_reg has not been set.
15420
15421 2010-03-15  Michael Matz  <matz@suse.de>
15422
15423         PR middle-end/43300
15424         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
15425         use it to expand block copies.
15426         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
15427         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
15428         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
15429
15430 2010-03-15  Richard Guenther  <rguenther@suse.de>
15431
15432         PR tree-optimization/43367
15433         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
15434         elimination check.
15435
15436 2010-03-15  Richard Guenther  <rguenther@suse.de>
15437
15438         PR tree-optimization/43317
15439         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
15440
15441 2010-03-15  Martin Jambor  <mjambor@suse.cz>
15442
15443         PR tree-optimization/43141
15444         * tree-sra.c (create_abstract_origin): New function.
15445         (modify_function): Call create_abstract_origin.
15446
15447 2010-03-15  Chris Demetriou  <cgd@google.com>
15448
15449         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
15450         wasn't copied.
15451
15452 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
15453
15454         PR middle-end/43354
15455         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
15456         call insert_out_of_ssa_copy for default definitions.
15457
15458 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
15459
15460         * graphite-clast-to-gimple.c (my_long_long): Defined.
15461         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
15462         * graphite-sese-to-poly.c (my_long_long): Defined.
15463         (scop_ivs_can_be_represented): Use it.
15464
15465 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
15466
15467         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
15468         graphite-max-bbs-per-function, and loop-block-tile-size.
15469         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
15470         with "maximum".
15471         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
15472
15473 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
15474
15475         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
15476         forward declaration.
15477         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
15478         (add_upper_bounds_from_estimated_nit): New.
15479         (build_loop_iteration_domains): Use it.
15480
15481 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
15482
15483         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
15484
15485 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
15486
15487         PR middle-end/43306
15488         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
15489         should be an INTEGER_CST.  Also handle CASE_CONVERT.
15490
15491 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
15492
15493         * graphite.c (graphite_initialize): To bound the number of bbs per
15494         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
15495         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
15496         * doc/invoke.texi: Document it.
15497
15498 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
15499
15500         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
15501         * graphite-sese-to-poly.h (build_poly_scop): Same.
15502
15503 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
15504
15505         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
15506         the number of parameters in the scop.  Use as an upper bound
15507         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
15508         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
15509         * doc/invoke.texi: Document it.
15510
15511 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
15512
15513         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
15514         * doc/c-tree.texi: Remove.
15515         * doc/generic.texi: Merge c-tree.texi here.
15516         * doc/gccint.texi (Trees): Remove menu entry.
15517         (c-tree.texi): Remove @include.
15518         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
15519         * doc/languages.texi (Reading RTL): Ditto.
15520
15521 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
15522
15523         PR target/42869
15524         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
15525
15526 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
15527
15528         PR middle-end/42431
15529         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
15530         code added to work around reload clobbering CONST insns.
15531
15532 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
15533
15534         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
15535         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
15536         (cselib_preserve_only_values): Remove retain argument, don't
15537         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
15538         * cselib.h (cselib_preserve_only_values): Remove retain argument.
15539         * var-tracking.c (micro_operation): Move insn field before union.
15540         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
15541         (struct variable_tracking_info_def): Remove n_mos field, change
15542         mos into a vector of micro_operations.
15543         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
15544         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
15545         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
15546         changing into a vector.
15547         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
15548         come before all other uops generated by add_stores.
15549         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
15550         argument removal.
15551         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
15552         a vector.  Run just one pass over the bbs instead of separate counting
15553         and computation phase.
15554         (vt_finalize): Free VTI (bb)->mos vector instead of array.
15555
15556         PR debug/43329
15557         * tree-inline.c (remap_decls): Put old_var rather than origin_var
15558         into *nonlocalized_list vector.
15559         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
15560         even if origin is non-NULL.
15561         (gen_variable_die): Likewise.
15562         (process_scope_var): Don't change origin.
15563         (gen_decl_die): Likewise.
15564         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
15565         before adding new edges instead of after it, fix moving over
15566         debug stmts.
15567
15568 2010-03-11  David S. Miller  <davem@davemloft.net>
15569
15570         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
15571         of four.
15572         * configure: Rebuild.
15573
15574 2010-03-11  Martin Jambor  <mjambor@suse.cz>
15575
15576         PR tree-optimization/43257
15577         * tree.c (assign_assembler_name_if_neeeded): New function.
15578         (free_lang_data_in_cgraph): Assembler name assignment moved to the
15579         above new function.
15580         * tree.h (assign_assembler_name_if_neeeded): Declare.
15581         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
15582         the function if needed.
15583
15584 2010-03-11  Chris Demetriou  <cgd@google.com>
15585
15586         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
15587         include/stdint-gcc.h, and include/stdint.h world-readable.
15588
15589 2010-03-11  Richard Guenther  <rguenther@suse.de>
15590
15591         PR tree-optimization/43255
15592         * tree-vrp.c (process_assert_insertions_for): Do not insert
15593         asserts for trivial conditions.
15594
15595 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15596
15597         PR tree-optimization/43280
15598         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
15599         generation.  Move calculation of size out of the if branch.
15600         (find_bswap): Modify compare number generation.
15601
15602 2010-03-11  Richard Guenther  <rguenther@suse.de>
15603
15604         PR lto/43200
15605         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
15606         (input_gimple_stmt): Fixup handled component types during
15607         operand read.  Also fix up decls in ADDR_EXPRs.
15608
15609 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
15610
15611         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
15612         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
15613
15614 2010-03-10  Jan Hubicka  <jh@suse.cz>
15615
15616         PR c/43288
15617         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
15618         * varasm.c (get_variable_section): Don't do that here...
15619         (make_decl_rtl): ... and here.
15620         (do_assemble_alias): Produce decl RTL.
15621         (assemble_alias): Likewise.
15622
15623 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
15624
15625         PR debug/43290
15626         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
15627         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
15628         of fde->vdrap_reg.
15629         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
15630         (based_loc_descr): Only express drap or vdrap regno based expressions
15631         using DW_OP_fbreg when not optimizing.
15632         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
15633         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
15634         REG_CFA_SET_VDRAP note.
15635
15636 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
15637
15638         PR tree-optimization/43236
15639         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
15640         error in calculation of base address in reverse iteration case.
15641         (generate_builtin): Take number of latch executions if the statement
15642         is in the latch.
15643
15644 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
15645
15646         PR middle-end/42859
15647         * tree-eh.c: Include pointer-set.h.
15648         (lower_eh_dispatch): Filter out duplicate case labels and
15649         remove the unneeded edge when the label is unused.  Return
15650         true when some edges are removed.
15651         (execute_lower_eh_dispatch): When any lowering resulted in
15652         removing an edge, also delete unreachable blocks.
15653
15654 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
15655
15656         PR bootstrap/43287
15657         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15658         UNSPEC_MACHOPIC_OFFSET.
15659
15660 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
15661
15662         PR target/43294
15663         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
15664         (m68k_delegitimize_address): New function.
15665
15666 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
15667
15668         PR debug/43299
15669         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
15670
15671         PR debug/43299
15672         * var-tracking.c (adjust_sets): New function.
15673         (count_with_sets, add_with_sets): Use it.
15674         (get_adjusted_src): New inline function.
15675         (add_stores): Use it.
15676
15677         PR debug/43304
15678         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
15679         call cselib_dummy_expand_value_rtx_cb instead of
15680         cselib_expand_value_rtx_cb.
15681
15682         PR debug/43293
15683         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
15684         * config/i386/i386.c: Include debug.h and dwarf2out.h.
15685         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
15686         and .cfi_endproc around the pic thunks.
15687         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
15688         all queued unwind info register saves are saved before the call.
15689         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
15690         considered as sp-=4 for unwind info and the pop as sp+=4 which
15691         also clobbers dest, but doesn't actually restore it.
15692
15693         PR debug/43290
15694         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
15695         RTX_FRAME_RELATED_P.
15696
15697 2010-03-09  Jie Zhang  <jie@codesourcery.com>
15698
15699         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
15700         whitespaces in output template.
15701
15702 2010-03-09  Jie Zhang  <jie@codesourcery.com>
15703
15704         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
15705         out array boundary.
15706
15707 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
15708
15709         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
15710         builtins.exp in a separate job.
15711
15712 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15713
15714         * graphite-sese-to-poly.c (add_param_constraints): Use
15715         lower_bound_in_type and upper_bound_in_type.
15716
15717 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15718
15719         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
15720         instead of unsigned_type_node.
15721
15722 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15723             Reza Yazdani  <reza.yazdani@amd.com>
15724
15725         PR middle-end/43065
15726         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
15727         on pointer type parameters.
15728
15729 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
15730
15731         PR middle-end/42644
15732         PR middle-end/42130
15733         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
15734         handle conversions from pointer to integers.
15735         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
15736         induction variable, to be able to work with code generated by CLooG.
15737         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
15738         (build_poly_scop): Bail out if we cannot codegen a loop.
15739
15740 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
15741
15742         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
15743         code generation with gloog_error.
15744
15745 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15746
15747         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
15748         Call fold_convert on all the returned values.
15749         (expand_scalar_variables_expr): Pass to
15750         expand_scalar_variables_ssa_name the type of the resulting expression.
15751
15752 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15753
15754         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
15755         ppl_min_for_le_pointset.
15756         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
15757         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
15758
15759 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15760
15761         * graphite-dependences.c (map_into_dep_poly): Removed.
15762         (dependence_polyhedron_1): Use combine_context_id_scat.
15763
15764 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15765
15766         * graphite-poly.h (struct poly_scattering): Add layout documentation.
15767         (struct poly_bb): Same.
15768         (combine_context_id_scat): New.
15769
15770 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15771
15772         PR middle-end/42326
15773         * sese.c (name_defined_in_loop_p): Return false for default
15774         definitions.
15775
15776 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15777
15778         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
15779         and clean up the logic.
15780
15781 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
15782
15783         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
15784         early return.
15785
15786 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
15787
15788         * var-tracking.c (remove_cselib_value_chains): Define only for
15789         ENABLE_CHECKING.
15790         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
15791         delete_slot_part, emit_notes_for_differences_1): Don't call
15792         remove_cselib_value_chains here.
15793         (set_slot_part, emit_notes_for_differences_2): Don't call
15794         add_cselib_value_chains here.
15795         (preserved_values): New vector.
15796         (preserve_value): New function.
15797         (add_uses, add_stores, vt_add_function_parameters): Use it
15798         instead of cselib_preserve_value.
15799         (changed_values_stack): New vector.
15800         (check_changed_vars_0): New function.
15801         (check_changed_vars_1, check_changed_vars_2): Use it.
15802         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
15803         changed_values_stack VALUEs.
15804         (vt_emit_notes): For all preserved_values call
15805         add_cselib_value_chains.  If ENABLE_CHECKING call
15806         remove_cselib_value_chains before verifying value_chains is empty.
15807         Initialize and free changed_values_stack.
15808         (vt_initialize): Initialize preserved_values.
15809         (vt_finalize): Free preserved_values.
15810
15811 2010-03-08  Richard Guenther  <rguenther@suse.de>
15812
15813         PR tree-optimization/43269
15814         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
15815         region detection.
15816
15817 2010-03-08  Martin Jambor  <mjambor@suse.cz>
15818
15819         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
15820         (ipa_is_param_called): Removed.
15821         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
15822         (ipa_print_node_params): Do not print the called flag.
15823         (ipa_write_node_info): Do not stream the called flag.
15824         (ipa_read_node_info): Likewise.
15825
15826 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
15827
15828         PR debug/43176
15829         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
15830         * cselib.c (struct expand_value_data): Add dummy field.
15831         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
15832         dummy to false.
15833         (cselib_dummy_expand_value_rtx_cb): New function.
15834         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
15835         any rtl.
15836         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
15837         * var-tracking.c: Include pointer-set.h.
15838         (variable): Change n_var_parts to char from int.  Add
15839         cur_loc_changed and in_changed_variables fields.
15840         (variable_canonicalize): Remove.
15841         (shared_var_p): New inline function.
15842         (unshare_variable): Maintain cur_loc_changed and
15843         in_changed_variables fields.  If var was in changed_variables,
15844         replace it there with new_var.  Just copy cur_loc instead of
15845         resetting it to something else.
15846         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
15847         (dataflow_set_union): Don't call variable_canonicalize.
15848         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
15849         of their DEBUG_EXPR_TREE_DECLs.
15850         (canonicalize_loc_order_check): Verify that cur_loc is NULL
15851         and in_changed_variables and cur_loc_changed is false.
15852         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
15853         and cur_loc_changed.  Don't update cur_loc here.
15854         (variable_merge_over_src): Don't call variable_canonicalize.
15855         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
15856         removing loc that is equal to cur_loc, clear cur_loc,
15857         set cur_loc_changed and ensure variable_was_changed is called.
15858         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
15859         compare pointers in cur_loc check, if it is equal to loc,
15860         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
15861         (variable_different_p): Remove compare_current_location argument,
15862         don't compare cur_loc.
15863         (dataflow_set_different_1): Adjust variable_different_p caller.
15864         (variable_was_changed): If dv had some var in changed_variables
15865         already, reset in_changed_variables flag for it and propagate
15866         cur_loc_changed over to the new variable.  On empty var
15867         always set cur_loc_changed.  Set in_changed_variables on whatever
15868         var is added to changed_variables.
15869         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
15870         Use shared_var_p.  When removing loc that is equal to cur_loc,
15871         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
15872         end, don't set it to something else, just call variable_was_changed.
15873         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
15874         loc being removed, clear cur_loc and set cur_loc_changed.
15875         Set cur_loc_changed if all locations have been removed.
15876         (struct expand_loc_callback_data): New type.
15877         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
15878         allocated.  Always create SUBREGs if simplify_subreg failed.
15879         Prefer to use cur_loc, when that fails and still in
15880         changed_variables (and seen first time) recompute it.  Set
15881         cur_loc_changed of variables which had to change cur_loc and
15882         compute elcd->cur_loc_changed if any of the subexpressions used
15883         had to change cur_loc.
15884         (vt_expand_loc): Adjust to pass arguments in
15885         expand_loc_callback_data structure.
15886         (vt_expand_loc_dummy): New function.
15887         (emitted_notes): New variable.
15888         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
15889         that weren't used for any other decl in current
15890         emit_notes_for_changes call call vt_expand_loc_dummy to update
15891         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
15892         first loc_chain location if NULL before.  Always use just
15893         cur_loc instead of first loc_chain location.  When cur_loc_changed
15894         is false, when not --enable-checking=rtl just don't emit any note.
15895         When rtl checking, compute the note and assert it is the same
15896         as previous note.  Clear cur_loc_changed and in_changed_variables
15897         at the end before removing from changed_variables.
15898         (check_changed_vars_3): New function.
15899         (emit_notes_for_changes): Traverse changed_vars to call
15900         check_changed_vars_3 on each changed var.
15901         (emit_notes_for_differences_1): Clear cur_loc_changed and
15902         in_changed_variables.  Recompute cur_loc of new_var.
15903         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
15904         (vt_emit_notes): Initialize and destroy emitted_notes.
15905
15906 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
15907
15908         PR rtl-optimization/42220
15909         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
15910         Use verify_reg_tracked to determine if we should use OP_OUT rather
15911         than OP_INOUT.
15912         (build_def_use): If we see an in-out operand for a register that we
15913         know nothing about, treat is an output if possible, fail the block if
15914         not.
15915
15916 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
15917
15918         PR debug/42897
15919         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
15920         permanently.
15921
15922 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
15923
15924         PR debug/42897
15925         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
15926         uses of relevant DEFs that are dead outside the loop too.
15927
15928 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
15929
15930         * var-tracking.c (dataflow_set_merge): Swap src and src2.
15931         Reverted:
15932         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
15933         PR debug/41371
15934         * var-tracking.c (values_to_unmark): New variable.
15935         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
15936         values_to_unmark vector.  Moved body to...
15937         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
15938         instead queue it into values_to_unmark vector.
15939         (vt_find_locations): Free values_to_unmark vector.
15940
15941 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
15942
15943         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
15944         (site.exp): Export them when plugins are enabled.
15945
15946 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
15947
15948         PR middle-end/42326
15949         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
15950         that contain scevs.
15951         (chrec_fold_multiply): Same.
15952
15953 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
15954
15955         PR c/43248
15956         * c-decl.c (build_compound_literal): Return early if init is
15957         an error_mark_node.
15958
15959 2010-03-04  Martin Jambor  <mjambor@suse.cz>
15960
15961         PR tree-optimization/43164
15962         PR tree-optimization/43191
15963         * tree-sra.c (type_consists_of_records_p): Reject records with
15964         zero-size bit-fields at the end.
15965
15966 2010-03-04  Mike Stump  <mikestump@comcast.net>
15967
15968         * Makefile.in (TAGS): Remove *.y.
15969
15970 2010-03-04  Richard Guenther  <rguenther@suse.de>
15971
15972         PR tree-optimization/40761
15973         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
15974         in reverse order.
15975         (my_rev_post_order_compute): New function.
15976         (init_pre): Call it.
15977
15978 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
15979
15980         PR middle-end/43209
15981         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
15982         decrease the cost of an IV candidate when the cost is infinite.
15983
15984 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15985
15986         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
15987         Use '3DNow!' for the extension of that name, ensure normal space
15988         after the string.
15989         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
15990
15991 2010-03-03  Jeff Law  <law@redhat.com>
15992
15993         * PR middle-end/32693
15994         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
15995         than gen_rtx_SUBREG.
15996         (extract_bit_field_1): Likewise.
15997
15998 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
15999
16000         * doc/sourcebuild.texi (Test directives): Document that arguments
16001         include-opts and exclude-opts are now optional for dg-skip-if,
16002         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
16003
16004 2010-03-03  Jason Merrill  <jason@redhat.com>
16005
16006         PR c++/12909
16007         * cgraph.h (varpool_node): Add extra_name field.
16008         * varpool.c (varpool_extra_name_alias): New.
16009         (varpool_assemble_decl): Emit extra name aliases.
16010         (varpool_mark_needed_node): Look past an extra name alias.
16011         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
16012         * lto-streamer-in.c (lto_input_tree): Read it.
16013         * lto-streamer-out.c (output_unreferenced_globals): Write it.
16014
16015 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
16016
16017         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
16018         (sparc*-*-solaris2*): ...this.
16019
16020 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
16021
16022         PR debug/43229
16023         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
16024         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
16025         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
16026         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
16027
16028         PR debug/43237
16029         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
16030         fallthrough to default handling, just with want_address 0 instead of 2.
16031         For single element lists, add_AT_loc directly, otherwise create an
16032         artificial variable DIE and stick location list to it.
16033
16034         PR debug/43177
16035         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
16036         (VAL_EXPR_HAS_REVERSE): Define.
16037         (reverse_op): New function.
16038         (add_stores): For reversible operations add an extra MO_VAL_USE.
16039
16040 2010-03-02  Jason Merrill  <jason@redhat.com>
16041
16042         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
16043
16044 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
16045
16046         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
16047         (sparc64-*-linux*): Likewise.
16048         (sparc64-*-solaris2*): Include assembler files before linker ones.
16049         (sparc-*-solaris2*): Simplify and reorder to match previous case.
16050         * config/sparc/gas.h: Delete.
16051         * config/sparc/sol2-64.h: Add copyright notice.
16052         * config/sparc/sol2-gas-bi.h: Likewise.
16053         * config/sparc/sol2-gld.h: Likewise.
16054         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
16055         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
16056         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
16057         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
16058         (sparc_elf_asm_named_section): Rename into...
16059         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
16060
16061 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
16062
16063         * config/alpha/alpha.c (override_options): Fix -mtune error message.
16064
16065 2010-03-02  Jeff Law  <law@redhat.com>
16066
16067         PR middle-end/42431
16068         * reload1.c (rtx_p, substitute_stack): Declare.
16069         (substitute): Record addresses of changed rtxs.
16070         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
16071         Restore the original rtx when complete.
16072         (reload): Free subsitute_stack when complete.
16073
16074 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
16075
16076         * doc/gccint.texi (menu): Add Testsuites as a chapter.
16077         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
16078         new chapter.
16079         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
16080         LTO Testing, gcov Testing, profopt Testing, compat Testing,
16081         Torture Tests): Change from subsection to section.
16082
16083 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
16084             Steven Bosscher  <steven@gcc.gnu.org>
16085
16086         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
16087         instead of bb.
16088
16089 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
16090
16091         PR middle-end/42640
16092         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
16093         the assignment from the new induction variable to the assignment
16094         of the value from the original loop PHI function.
16095
16096 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
16097             Daniel Jacobowitz  <dan@codesourcery.com>
16098
16099         * doc/sourcebuild.texi (Test directives): Clarify options to
16100         dg-skip-if.
16101
16102 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16103
16104         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
16105         Disable cfi directives unless GCC and gas agree on using read-only
16106         .eh_frame sections for 64-bit.
16107         * configure: Regenerate.
16108
16109 2010-03-01  Richard Guenther  <rguenther@suse.de>
16110
16111         PR tree-optimization/43220
16112         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
16113         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
16114
16115 2010-03-01  Richard Guenther  <rguenther@suse.de>
16116             Martin Jambor  <mjambor@suse.cz>
16117
16118         PR middle-end/41250
16119         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
16120         gimplified parameters.
16121
16122 2010-03-01  Christian Bruel  <christian.bruel@st.com>
16123
16124         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
16125
16126 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
16127
16128         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
16129
16130 2010-03-01  Richard Guenther  <rguenther@suse.de>
16131
16132         PR middle-end/43213
16133         * expr.c (expand_assignment): Use the alias-oracle to tell
16134         if the rhs aliases the result decl.
16135
16136 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16137
16138         PR pch/14940
16139         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
16140         to sol_gt_pch_get_address.
16141         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
16142         64-bit, SPARC and x86.
16143         (sol_gt_pch_get_address): New function.
16144
16145 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
16146
16147         * toplev.h (inform_n, error_n): Declare.
16148         * diagnostic.c (inform_n, error_n): New function.
16149
16150 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
16151
16152         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
16153         has no rtl yet when processing local_decls, queue it and recheck
16154         if deferred stack allocation hasn't assigned it rtl.
16155
16156 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
16157
16158         * config/sh/sh.c (unspec_bbr_uid): New.
16159         (gen_block_redirect): Use it instead of INSN_UID.
16160         (gen_far_branch): Likewise.
16161
16162 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
16163
16164         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
16165         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
16166
16167 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16168
16169         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
16170         (Warning Options): -Wno-conversion-null is valid for
16171         Objective-C++ as well.
16172         * doc/tm.texi (Named Address Spaces): Likewise.
16173         * doc/plugins.texi (Plugins): Replace TABs with spaces.
16174         * doc/tree-ssa.texi (Tree SSA): Likewise.
16175
16176 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
16177
16178         PR bootstrap/43202
16179         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
16180         by default.  Don't set the default arch for
16181         i[34567]86-*-darwin*|x86_64-*-darwin*.
16182
16183 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
16184
16185         PR bootstrap/43202
16186         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
16187         default.  Set the default 32bit/64bit archs with $with_arch
16188         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
16189
16190 2010-02-27  Richard Guenther  <rguenther@suse.de>
16191
16192         PR tree-optimization/43186
16193         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
16194         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
16195         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
16196         unroller iterations.
16197
16198 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
16199
16200         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
16201         required and i[34567]86-*-* targets don't support 64bit ISA.
16202
16203 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
16204
16205         PR ada/43096
16206         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
16207         the same alias set.
16208
16209 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
16210
16211         * config.gcc: Set the default arch at least to Prescott for
16212         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
16213         if SSE math is enabled.
16214
16215 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16216
16217         * diagnostic.c (diagnostic_initialize): Update.
16218         (diagnostic_report_diagnostic): Test inhibit_notes_p for
16219         informative notes.
16220         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
16221         (diagnostic_inhibit_notes): New.
16222         * toplev.c (process_options): inhibit notes with -fcompare-debug.
16223
16224 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16225
16226         PR c/20631
16227         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
16228         * doc/standards.texi: Likewise.
16229         * doc/extend.texi: Likewise.
16230         * doc/trouble.texi: Likewise.
16231         * doc/cppopts.texi: Likewise.
16232         * doc/install.texi: Likewise.
16233         * c.opt (std=c90,std=gnu90): New options.
16234         * c-opts.c (c_common_handle_option): Handle them.
16235
16236 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16237
16238         PR c/24577
16239         * c-decl.c (undeclared_variable): Use an informative note.
16240
16241 2010-02-26  Richard Guenther  <rguenther@suse.de>
16242
16243         PR tree-optimization/43186
16244         * gimple.h (gimple_fold): Remove.
16245         * gimple.c (gimple_fold): Remove.  Inline into single user ...
16246         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
16247         Try harder for conditions.
16248
16249 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
16250
16251         PR debug/43190
16252         * function.c (used_types_insert): Don't skip through named pointer
16253         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
16254         and it is different from the main variant's type.
16255
16256 2010-02-26  Nick Clifton  <nickc@redhat.com>
16257
16258         * config/rx/rx.md (sminsi3): Remove bogus alternative.
16259
16260 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
16261
16262         * config.gcc: Support --with-fpmath=sse for x86.
16263
16264         * config/i386/ssemath.h: New.
16265
16266         * doc/install.texi (--with-fpmath=sse): Documented.
16267
16268 2010-02-26  Richard Guenther  <rguenther@suse.de>
16269
16270         PR tree-optimization/43188
16271         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
16272         vector types of over-aligned element type.
16273
16274 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
16275
16276         PR target/43175
16277         * config/i386/i386.c (expand_vec_perm_blend): Use correct
16278         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
16279
16280 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
16281
16282         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
16283
16284 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
16285
16286         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
16287         * var-tracking.c: Include diagnostic.h.
16288         (debug_dv): New function.
16289         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
16290
16291         PR debug/43160
16292         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
16293         (add_value_chain, add_value_chains, remove_value_chain,
16294         remove_value_chains): Handle DEBUG_EXPRs.
16295         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
16296
16297         PR debug/43161
16298         * regcprop.c (struct queued_debug_insn_change): New type.
16299         (struct value_data_entry): Add debug_insn_changes field.
16300         (struct value_data): Add n_debug_insn_changes field.
16301         (debug_insn_changes_pool): New variable.
16302         (free_debug_insn_changes, apply_debug_insn_changes,
16303         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
16304         (kill_value_one_regno): Call free_debug_insn_changes if needed.
16305         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
16306         fields.
16307         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
16308         changes for them.
16309         (copyprop_hardreg_forward_1): Don't call apply_change_group for
16310         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
16311         changes, call cprop_find_used_regs via note_stores.
16312         (copyprop_hardreg_forward): When copying vd from predecessor
16313         which has any queued DEBUG_INSN changes, make sure the pointers are
16314         cleared.  At the end call df_analyze and then if there are any
16315         DEBUG_INSN changes queued at the end of some basic block for still
16316         live registers, apply them.
16317         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
16318
16319 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
16320
16321         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
16322         (arm*-*-*): Ditto.
16323
16324 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
16325
16326         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
16327         targets.  Set the default with_cpu/with_arch from arch/cpu.
16328         Allow x86-64 and native for with_cpu/with_arch.
16329
16330 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
16331
16332         * ebitmap.c: Change calls to verify_popcount with calls to
16333         sbitmap_verify_popcount.
16334         (ebitmap_clear_bit): Fixed map->cacheindex test and
16335         map>cache update when bit clearing results in an empty
16336         element.
16337
16338 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
16339
16340         PR target/43154
16341         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
16342         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
16343         and support both V2DF and V2DI modes.
16344         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
16345         support both V2DF and V2DI modes.
16346         (general): Delete trailing whitespace from a few patterns.
16347
16348         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16349         V2DF/V2DI interleave high/low builtins.
16350
16351         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
16352         new VSX builtins.
16353
16354         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
16355         interleave high/low functions.
16356
16357 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
16358
16359         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
16360         #pragma extern_prefix.
16361
16362 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
16363
16364         PR debug/43166
16365         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
16366         BLKmode, assert op0 is a MEM and just adjust its mode.
16367
16368         PR debug/43165
16369         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
16370         if bitpos isn't multiple of mode's bitsize.
16371
16372 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16373
16374         * c.opt (-ftemplate-depth=): New.
16375         (-ftemplate-depth-): Deprecate.
16376         * optc-gen.awk: Handle -ftemplate-depth=.
16377         * opth-gen.awk: Likewise.
16378         * c-opts.c (c_common_handle_option): Likewise.
16379         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
16380
16381 2010-02-24  Jason Merrill  <jason@redhat.com>
16382
16383         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
16384
16385 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16386
16387         * cfg.c (alloc_aux_for_block): Remove inline.
16388         (alloc_aux_for_edge): Likewise.
16389
16390 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16391
16392         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
16393
16394 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16395
16396         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
16397         * config/i386/sol2-gas.h: New file.
16398         * config.gcc (i[34567]86-*-solaris2*): Use it.
16399
16400 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16401
16402         PR c/43128
16403         * c-typeck.c (ep_convert_and_check): New.
16404         (build_conditional_expr): Use it.
16405         (build_binary_op): Likewise.
16406
16407 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
16408
16409         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
16410
16411         PR debug/43150
16412         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
16413         bounds even for -O+.
16414         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
16415         expr needs to have DECL_NAME set.
16416
16417 2010-02-24  Nick Clifton  <nickc@redhat.com>
16418
16419         * config/mep/mep.c: Include gimple.h.
16420         (mep_function_uses_sp): Delete unused function.
16421         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
16422         parameters.  Use unsigned integers to count args.  Return a
16423         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
16424
16425 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
16426
16427         PR target/43107
16428         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
16429         greater or equal to nelt instead of 2 * nelt.
16430         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
16431         with nelt - 1.
16432
16433 2010-02-23  Jason Merrill  <jason@redhat.com>
16434
16435         PR debug/42800
16436         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
16437         in cfun->local_decls even if they have register types.
16438
16439         PR c++/42837
16440         * stor-layout.c (place_field): Don't warn about unnecessary
16441         DECL_PACKED if the type is packed.
16442
16443 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
16444
16445         PR target/43139
16446         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
16447         GOTOFF relocs, even when the base reg isn't pic pointer.
16448
16449 2010-02-23  Michael Matz  <matz@suse.de>
16450
16451         PR debug/43077
16452         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
16453         (expand_gimple_basic_block): Generate and use debug temps if there
16454         are debug uses left after the last real use of TERed ssa names.
16455         Unlink debug immediate uses when they are expanded.
16456
16457 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16458
16459         PR 43123
16460         * config/i386/i386.c (override_options): Reorganise to provide
16461         better error messages.
16462
16463 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
16464
16465         PR middle-end/43083
16466         * graphite-scop-detection.c (create_single_exit_edge): Move
16467         the call to find_single_exit_edge to....
16468         (create_sese_edges): ...here.  Don't handle multiple edges
16469         exiting the function.
16470         (build_graphite_scops): Don't handle multiple edges
16471         exiting the function.
16472
16473 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
16474
16475         PR middle-end/43097
16476         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
16477         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
16478
16479 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
16480
16481         PR middle-end/43026
16482         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
16483
16484 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16485
16486         PR c++/43126
16487         * c-typeck.c (convert_arguments): Print declaration location.
16488         * c-common.c (validate_nargs): Rename as
16489         builtin_function_validate_nargs.
16490         (check_builtin_function_arguments): Update.
16491
16492 2010-02-22  Richard Guenther  <rguenther@suse.de>
16493
16494         PR lto/43045
16495         * tree-inline.c (declare_return_variable): Use the type of
16496         the call stmt lhs if available.
16497
16498 2010-02-22  Duncan Sands  <baldrick@free.fr>
16499
16500         * passes.c (register_pass): Always consider all pass lists when
16501         ref_pass_instance_number is zero.
16502
16503 2010-02-22  Richard Guenther  <rguenther@suse.de>
16504
16505         PR tree-optimization/42749
16506         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
16507         parameter.  Do arithmetic in the original type.
16508         (update_accumulator_with_ops): Likewise.
16509         (adjust_accumulator_values): Adjust.
16510
16511 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16512
16513         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
16514         (QI to BLKmode splitter): New splitter.
16515
16516 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
16517
16518         * config/i386/i386.c (initial_ix86_tune_features): Turn on
16519         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
16520
16521 2010-02-22  Richard Guenther  <rguenther@suse.de>
16522
16523         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
16524
16525 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
16526
16527         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
16528         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
16529         ($(T)crti.o, $(T)crtn.o): Remove rules.
16530
16531 2010-02-21  Tobias Burnus  <burnus@net-b.de>
16532
16533         PR fortran/35259
16534         * doc/invoke.texi (-fassociative-math): Document that this
16535         option is automatically enabled for Fortran.
16536
16537 2010-02-20  David S. Miller  <davem@davemloft.net>
16538
16539         * configure.ac: Test if linker and assembler properly support
16540         GOTDATA_OP relocations.
16541         * configure: Rebuild.
16542         * config.in: Likewise.
16543         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
16544         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
16545         (movsi_high_pic): Likewise.
16546         (movdi_lo_sum_pic): Likewise.
16547         (movdi_high_pic): Likewise.
16548         (movsi_pic_gotdata_op): New pattern.
16549         (movdi_pic_gotdata_op): Likewise.
16550         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
16551         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
16552
16553 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
16554
16555         PR target/43067
16556         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
16557         attribute to ssemul.
16558         (xop_mulv2div2di3_high): Ditto.
16559
16560 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16561
16562         PR c++/35669
16563         * c.opt (Wconversion-null): New option.
16564         * doc/invoke.texi (Wconversion-null): Document.
16565
16566 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16567
16568         * common.opt (Wlarger-than-): Add Undocumented.
16569
16570 2010-02-19  Mike Stump  <mikestump@comcast.net>
16571
16572         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
16573
16574 2010-02-19  Jason Merrill  <jason@redhat.com>
16575
16576         PR target/40332
16577         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
16578         * configure: Likewise.
16579
16580 2010-02-20  Alan Modra  <amodra@gmail.com>
16581
16582         PR middle-end/42344
16583         * cgraph.h (cgraph_make_decl_local): Declare.
16584         * cgraph.c (cgraph_make_decl_local): New function.
16585         (cgraph_make_node_local): Use it.
16586         * cgraphunit.c (cgraph_function_versioning): Likewise.
16587         * ipa.c (function_and_variable_visibility): Likewise.
16588
16589 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
16590
16591         PR bootstrap/43121
16592         * except.c (sjlj_emit_function_enter): Don't call
16593         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
16594         directly.
16595         * rtl.h (add_reg_br_prob_note): Remove prototype.
16596
16597 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16598
16599         PR 41779
16600         * c-common.c (conversion_warning): Remove widening conversions
16601         before checking the conversion of integers to reals.
16602
16603 2010-02-19  Mike Stump  <mikestump@comcast.net>
16604
16605         PR middle-end/43125
16606         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
16607
16608         PR objc/43061
16609         * cgraphunit.c (process_function_and_variable_attributes): Check
16610         DECL_PRESERVE_P instead of looking up attribute "used".
16611         * ipa-pure-const.c (check_decl): Likewise.
16612         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
16613         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
16614         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
16615         instead of attribute "used".
16616         * config/sol2-c.c (solaris_pragma_init): Likewise.
16617         (solaris_pragma_fini): Likewise.
16618
16619 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
16620
16621         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
16622         Use XCNEW instead of xcalloc.
16623         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
16624         XNEW instead of xmalloc.
16625         (get_fields): Use XNEWVEC instead of xmalloc.
16626
16627         PR debug/43084
16628         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
16629         populate vars array.
16630         (create_new_general_access): For debug stmts just reset value.
16631         (get_stmt_accesses): For accesses within debug stmts just record them
16632         using add_access_to_acc_sites instead of preventing the peeling or
16633         counting them as accesses.
16634
16635         PR middle-end/42233
16636         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
16637
16638 2010-02-19  Richard Guenther  <rguenther@suse.de>
16639
16640         PR tree-optimization/42916
16641         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
16642         instructions.
16643
16644 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
16645
16646         * configure.ac: Replace all uses of changequote in macro arguments
16647         with proper quoting.
16648
16649 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
16650
16651         PR middle-end/42233
16652         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
16653
16654 2010-02-19  Richard Guenther  <rguenther@suse.de>
16655
16656         PR tree-optimization/42944
16657         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
16658         test for aliasing with errno.
16659
16660 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
16661
16662         PR middle-end/42233
16663         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
16664         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
16665         * dojump.c: Include output.h.
16666         (inv): New inline function.
16667         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
16668         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
16669         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
16670         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
16671         argument, pass it down to other calls.
16672         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
16673         add REG_BR_PROB note to the conditional jump.
16674         * cfgexpand.c (add_reg_br_prob_note): Removed.
16675         (expand_gimple_cond): Don't call it, add the probability
16676         as last argument to jumpif_1/jumpifnot_1.
16677         * Makefile.in (dojump.o): Depend on output.h.
16678         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
16679         callers.
16680         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
16681         * stmt.c (do_jump_if_equal): Likewise.
16682         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
16683         * loop-unswitch.c (compare_and_jump_seq): Likewise.
16684         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
16685         Likewise.
16686         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
16687         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
16688         jumpifnot_1 callers.
16689         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
16690         callers.
16691         (store_expr): Adjust jumpifnot caller.
16692         (store_constructor): Adjust jumpif caller.
16693
16694         PR middle-end/42233
16695         * gimplify.c (gimple_boolify): For __builtin_expect call
16696         gimple_boolify also on its first argument.
16697
16698 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
16699
16700         * configure.ac (gnu-unique-object): Wrap regexps using [] in
16701         changequote block.
16702         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
16703         * configure: Regenerated.
16704
16705 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16706
16707         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
16708         lang_hooks.types_compatible_p instead of comptypes.
16709
16710 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16711
16712         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
16713         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
16714         if __prefer_thumb__ is defined.
16715
16716 2010-02-18  Martin Jambor  <mjambor@suse.cz>
16717
16718         PR tree-optimization/43066
16719         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
16720         array with zero-sized element type.
16721
16722 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
16723
16724         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
16725         rtx, allocate struct var_loc_node here and return it to the
16726         caller, and only if it is actually needed.
16727         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
16728         move it earlier and return immediately if it returns NULL.
16729
16730 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
16731
16732         * config/sparc/gas.h: New file.  Restore
16733         TARGET_ASM_NAMED_SECTION to its ELF default.
16734         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
16735         check !HAVE_GNU_AS.
16736         * config/sparc/sparc.c (sparc_elf_asm_named_section):
16737         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
16738         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
16739         after sparc/sysv4.h.
16740
16741 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
16742
16743         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
16744
16745 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
16746
16747         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
16748         patterns from predicated pattern.
16749
16750 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
16751
16752         PR target/43103
16753         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
16754         for insn mnemonic suffix.
16755
16756 2010-02-17  Richard Guenther  <rguenther@suse.de>
16757
16758         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
16759         to loop PHI nodes.
16760
16761 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
16762
16763         PR debug/42918
16764         * caller-save.c (save_call_clobbered_regs): If BB ends with
16765         a DEBUG_INSN, move any notes in between last real insn and the last
16766         DEBUG_INSN after the last DEBUG_INSN.
16767
16768 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
16769
16770         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
16771         Fix return type.  Fix argument type.  Explain meaning of return value.
16772
16773 2010-02-16  Richard Guenther  <rguenther@suse.de>
16774
16775         PR tree-optimization/41043
16776         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
16777         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
16778         statements ...
16779         (vrp_visit_phi_node): ... but only for loop PHI nodes.
16780
16781 2010-02-16  Ira Rosen  <irar@il.ibm.com>
16782
16783         PR tree-optimization/43074
16784         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
16785         * tree-vect-loop.c (vect_analyze_loop_operations): Add
16786         vectorizable cycles in hybrid SLP check.
16787         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
16788
16789 2010-02-16  Richard Guenther  <rguenther@suse.de>
16790
16791         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
16792         (true_dependence): If memrefs_conflict_p computes must-alias
16793         trust it.  Move TBAA check after offset-based disambiguation.
16794         (canon_true_dependence): Likewise.
16795
16796 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
16797
16798         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
16799         * doc/invoke.texi: Document it.
16800         * var-tracking.c: Include toplev.h and params.h.
16801         (vt_find_locations): Return bool indicating success.  Compute
16802         hash sizes unconditionally.  Check new parameter, report.
16803         (variable_tracking_main_1): Check vt_find_locations results and
16804         retry.  Renamed from...
16805         (variable_tracking_main): ... this.  New wrapper to preserve
16806         flag_var_tracking_assignments.
16807         * Makefile.in (var-tracking.o): Adjust dependencies.
16808
16809 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
16810             Jakub Jelinek  <jakub@redhat.com>
16811
16812         PR target/42854
16813         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
16814         if weak_import attribute is present.
16815         * config/darwin.c (machopic_select_section): Likewise.
16816
16817 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
16818
16819         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
16820         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
16821         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
16822         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
16823
16824         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
16825         types.
16826
16827         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
16828         Fix argument types.
16829
16830         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
16831         Rewrite text to refer to the names.
16832
16833 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
16834
16835         * config/i386/i386-builtin-types.def
16836         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
16837         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
16838         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
16839         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
16840         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
16841         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
16842         IX86_BUILTIN_VPERMIL2PS256.
16843         (MULTI_ARG_4_DF2_DI_I): Defined.
16844         (MULTI_ARG_4_DF2_DI_I1): Defined.
16845         (MULTI_ARG_4_SF2_SI_I): Defined.
16846         (MULTI_ARG_4_SF2_SI_I1): Defined.
16847         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
16848         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
16849         __builtin_ia32_vpermil2ps256.
16850         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
16851         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
16852         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
16853         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
16854         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
16855         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
16856         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
16857         CODE_FOR_xop_vpermil2v8sf3.
16858         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
16859         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
16860         * config/i386/xopintrin.h (_mm_permute2_pd): New.
16861         (_mm256_permute2_pd): New.
16862         (_mm_permute2_ps): New.
16863         (_mm256_permute2_ps): New.
16864
16865 2010-02-15  Nick Clifton  <nickc@redhat.com>
16866
16867         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
16868         boolean parameters.  Use emit_jump_insn when emitting a pop
16869         instruction containing a return insn.
16870         (push): Use 'true' rather than '1' as second parameter to F.
16871         (h8300_expand_prologue): Likewise.
16872         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
16873         (h8300_expand_epilogue): Likewise.
16874
16875 2010-02-15  Richard Guenther  <rguenther@suse.de>
16876
16877         PR middle-end/43068
16878         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
16879         if that is zero.
16880
16881 2010-02-15  Nick Clifton  <nickc@redhat.com>
16882
16883         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
16884         delta.
16885
16886 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
16887
16888         * intl.c (fake_ngettext): New function.
16889         * intl.h (fake_ngettext): Declare.
16890         (ngettext): Define macro.
16891         * collect2.c (notice_translated): New function.
16892         (main): Use notice_translated and ngettext.
16893         * collect2.h (notice_translated): Declare.
16894
16895 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
16896
16897         * reorg.c (delete_computation): Comment fixes.
16898         * caller-save.c (setup_save_areas): Idem.
16899         * sel-sched-dump.c (dump_lv_set): Idem.
16900         * rtl.def: Idem.
16901
16902 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16903
16904         * config/s390/s390.c (s390_sched_init): New function.
16905         (TARGET_SCHED_INIT): Target hook defined.
16906
16907 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
16908             Jack Howarth  <howarth@bromo.med.uc.edu>
16909             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
16910
16911         PR target/42982
16912         Partial revert of unintended change in fix for PR41605.
16913         * config/darwin.h: Fix typo.
16914         * config/darwin9.h: Same.
16915
16916 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
16917
16918         * c-pch.c (pch_init): Clear v.
16919
16920 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
16921
16922         PR middle-end/42930
16923         * graphite-scop-detection.c (graphite_can_represent_scev): Call
16924         graphite_can_represent_init for MULT_EXPR.
16925
16926 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
16927
16928         PR middle-end/42914
16929         PR middle-end/42530
16930         * graphite-sese-to-poly.c (remove_phi): New.
16931         (translate_scalar_reduction_to_array): Call remove_phi.
16932
16933 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
16934
16935         PR middle-end/42771
16936         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
16937         * graphite-clast-to-gimple.h (gloog): Update declaration.
16938         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
16939         * graphite-poly.h (struct poly_bb): Add missing comments.
16940         (struct scop): Add poly_scop_p field.
16941         (POLY_SCOP_P): New.
16942         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
16943         * graphite.c (graphite_transform_loops): Build the polyhedral
16944         representation for each scop before code generation.
16945         * sese.c (rename_variables_in_operand): Removed.
16946         (rename_variables_in_expr): Return the renamed expression.
16947         (rename_sese_parameters): New.
16948         * sese.h (rename_sese_parameters): Declared.
16949
16950 2010-02-11  Richard Guenther  <rguenther@suse.de>
16951
16952         PR tree-optimization/42998
16953         * tree-ssa-pre.c (create_expression_by_pieces): Treat
16954         POINTER_PLUS_EXPR properly.
16955
16956 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
16957             Changpeng Fang  <changpeng.fang@amd.com>
16958
16959         PR middle-end/40886
16960         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
16961         the cost of an IV candidate when the IV is used in a test against zero.
16962
16963         * gcc.dg/tree-ssa/ivopts-3.c: New.
16964
16965 2010-02-11  Richard Guenther  <rguenther@suse.de>
16966
16967         PR lto/41664
16968         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
16969         pointer-vs-decl case by swapping refs.  Handle some cases
16970         of pointer-vs-decl disambiguations more conservatively.
16971         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
16972         to false after expanding.
16973
16974 2010-02-11  Richard Guenther  <rguenther@suse.de>
16975
16976         PR driver/43021
16977         * gcc.c (process_command): Handle LTO file@offset case more
16978         appropriately.
16979
16980 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
16981
16982         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
16983         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
16984         of DEBUG_INSNs.
16985         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
16986
16987         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
16988         if MEM's mode size isn't DWARF2_ADDR_SIZE.
16989         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
16990         Optimize eq/ne comparisons when both arguments are known to be
16991         zero-extended.
16992         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
16993         Don't mask operands unnecessarily if they are known to be already
16994         zero-extended.
16995
16996 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
16997
16998         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
16999         instead of loop.
17000
17001 2010-02-10  Richard Guenther  <rguenther@suse.de>
17002
17003         PR tree-optimization/43017
17004         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
17005         for wrapping signed arithmetic.
17006
17007 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
17008
17009         PR debug/43010
17010         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
17011         if no debug info should be emitted for it.
17012
17013 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
17014
17015         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
17016         note when flag_exceptions is set.
17017
17018 2010-02-10  Duncan Sands  <baldrick@free.fr>
17019
17020         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
17021
17022 2010-02-10  Richard Guenther  <rguenther@suse.de>
17023
17024         PR c/43007
17025         * tree.c (get_unwidened): Handle constants.
17026         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
17027
17028 2010-02-10  Martin Jambor  <mjambor@suse.cz>
17029
17030         PR lto/42985
17031         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
17032         check for variable argument counts independently.
17033
17034 2010-02-10  Christian Bruel  <christian.bruel@st.com>
17035
17036         PR target/42841
17037         * config/sh/sh.c (find_barrier): Increase length for non delayed
17038         conditional branches.
17039
17040 2010-02-10  Christian Bruel  <christian.bruel@st.com>
17041
17042         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
17043
17044 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
17045
17046         * builtins.c (set_builtin_user_assembler_name): Also handle
17047         ffs if int is smaller than word.
17048
17049 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
17050
17051         PR middle-end/42973
17052         * ira-conflicts.c (get_dup): Remove.
17053         (process_reg_shuffles): Add new parameter.  Use it as an
17054         additional guard for copy generation.
17055         (add_insn_allocno_copies): Rewrite.
17056
17057 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
17058
17059         * common.opt (fsched2-use-traces): Preserved for backward
17060         compatibility.
17061         * doc/invoke.texi: Remove the documentation about option
17062         -fsched2-use-traces.
17063         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
17064         flag_sched2_use_traces.
17065         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
17066         the backward compatibility flag section.
17067
17068 2010-02-09  Richard Guenther  <rguenther@suse.de>
17069
17070         PR tree-optimization/43008
17071         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
17072         make HEAP variables initialized from global memory if they
17073         are not known builtin functions.
17074         (find_func_aliases): Adjust.
17075
17076 2010-02-09  Richard Guenther  <rguenther@suse.de>
17077
17078         PR tree-optimization/43000
17079         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
17080         arithmetic manually.
17081
17082 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
17083
17084         PR tree-optimization/42931
17085         * tree-loop-linear.c (try_interchange_loops): Don't call
17086         double_int_mul if estimated_loop_iterations failed.
17087
17088 2010-02-08  Martin Jambor  <mjambor@suse.cz>
17089
17090         PR middle-end/42898
17091         * tree-sra.c (build_accesses_from_assign): Do not mark in
17092         should_scalarize_away_bitmap if stmt has volatile ops.
17093         (sra_modify_assign): Do not process assigns piecemeal if if stmt
17094         has volatile ops.
17095
17096 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
17097
17098         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
17099
17100 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
17101
17102         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
17103         before the pattern.
17104
17105 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
17106
17107         PR middle-end/42946
17108         * df-core.c (df_finish_pass): Change type of saved_flags to int.
17109
17110 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
17111
17112         PR middle-end/42988
17113         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
17114         to unknown_dependence.
17115         (graphite_legal_transform_dr): Handle the unknown_dependence.
17116         (graphite_carried_dependence_level_k): Same.
17117
17118 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
17119
17120         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
17121
17122 2010-02-07  Richard Guenther  <rguenther@suse.de>
17123
17124         PR middle-end/42991
17125         * expr.c (get_inner_reference): Always initialize *pbitsize.
17126
17127 2010-02-07  Richard Guenther  <rguenther@suse.de>
17128
17129         PR middle-end/42956
17130         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
17131         new ARRAY_REFs on variable size element or minimal index arrays.
17132         Complete.
17133         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
17134         gimple_fold_indirect_ref.
17135
17136 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
17137
17138         PR target/42957
17139         * arm.c (arm_override_options): Just return if the user has specified
17140         an invalid fpu name.
17141
17142 2010-02-03  Jason Merrill  <jason@redhat.com>
17143
17144         PR c++/42870
17145         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
17146         i386_pe_maybe_record_exported_symbol.
17147
17148 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
17149
17150         PR target/42924
17151         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
17152         (pa_delegitimize_address): New function.
17153
17154 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
17155
17156         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
17157         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
17158
17159 2010-02-05  Richard Guenther  <rguenther@suse.de>
17160
17161         PR lto/42762
17162         * lto-streamer-in.c (get_resolution): Deal with references
17163         to undefined functions.
17164
17165 2010-02-05  Richard Guenther  <rguenther@suse.de>
17166
17167         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
17168         (fold_const_aggregate_ref): Likewise.
17169         (ccp_fold_stmt): Substitute loads.
17170         (maybe_fold_reference): Verify types before substituting.
17171         Unshare properly.
17172         (fold_gimple_assign): Unshare properly.
17173         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
17174
17175 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
17176
17177         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
17178         for rs6000_gen_cell_microcode.
17179
17180 2010-02-04  Richard Guenther  <rguenther@suse.de>
17181
17182         PR rtl-optimization/42952
17183         * dse.c (const_or_frame_p): Remove MEM handling.
17184
17185 2010-02-04  Nick Clifton  <nickc@redhat.com>
17186
17187         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
17188         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
17189         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
17190         (mn10300_asm_output_mi_thunk): New function.
17191         (mn10300_can_output_mu_thunk): New function.
17192         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
17193         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
17194         (FUNCTION_ARG): Delete incorrect comment.
17195
17196 2010-02-03  Jason Merrill  <jason@redhat.com>
17197
17198         PR c++/40138
17199         * fold-const.c (operand_equal_p): Handle erroneous types.
17200
17201 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
17202
17203         * config/h8300/h8300.md (can_delay): Fix attibute condition.
17204
17205 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
17206
17207         PR rtl-optimization/42941
17208         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
17209         of xmalloc.
17210
17211 2010-02-03  Jason Merrill  <jason@redhat.com>
17212
17213         PR c++/35652
17214         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
17215
17216 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
17217
17218         PR debug/42896
17219         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
17220         (cselib_reset_table): Renamed from...
17221         (cselib_reset_table_with_next_value): ... this.
17222         (cselib_get_next_uid): Renamed from...
17223         (cselib_get_next_unknown_value): ... this.
17224         * cselib.c (next_uid): Renamed from...
17225         (next_unknown_value): ... this.
17226         (cselib_clear_table): Adjust.
17227         (cselib_reset_table): Adjust.  Renamed from...
17228         (cselib_reset_table_with_next_value): ... this.
17229         (cselib_get_next_uid): Adjust.  Renamed from...
17230         (cselib_get_next_unknown_value): ... this.
17231         (get_value_hash): Use hash.
17232         (cselib_hash_rtx): Likewise.
17233         (new_cselib_val): Adjust.  Set and dump uid.
17234         (cselib_lookup_mem): Pass next_uid as hash.
17235         (cselib_subst_to_values): Likewise.
17236         (cselib_log_lookup): Dump uid.
17237         (cselib_lookup): Pass next_uid as hash.  Adjust.
17238         (cselib_process_insn): Adjust.
17239         (cselib_init): Initialize next_uid.
17240         (cselib_finish): Adjust.
17241         (dump_cselib_table): Likewise.
17242         * dse.c (canon_address): Dump value uid.
17243         * print-rtl.c (print_rtx): Print value uid.
17244         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
17245         (dvuid): New type.
17246         (dv_uid): New function, sort of renamed from...
17247         (dv_htab_hash): ... this, reimplemented in terms of it and...
17248         (dv_uid2hash): ... this.  New.
17249         (variable_htab_eq): Drop excess assertions.
17250         (tie_break_pointers): Removed.
17251         (canon_value_cmp): Compare uids.
17252         (variable_post_merge_New_vals): Print uids.
17253         (vt_add_function_parameters): Adjust.
17254         (vt_initialize): Reset table.  Adjust.
17255
17256 2010-02-03  Richard Guenther  <rguenther@suse.de>
17257
17258         PR tree-optimization/42944
17259         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
17260         (call_may_clobber_ref_p_1): Likewise.  Properly handle
17261         malloc and calloc clobbering errno.
17262
17263 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
17264
17265         * doc/invoke.texi: Fix name of sched1 dump.
17266
17267         * opts.c (decode_options): Set flag_tree_switch_conversion
17268         only conditionally on optimize >= 2.
17269
17270         * gcse.c: Assorted comment fixes in pass description.
17271
17272 2010-02-03  Anthony Green  <green@moxielogic.com>
17273
17274         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
17275         nop padding in order to maintain alignment of storage location of
17276         target function address.
17277         (moxie_trampoline_init): Store target function address at newly
17278         aligned location.
17279         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
17280         to 32.
17281         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
17282
17283 2010-02-03  Richard Guenther  <rguenther@suse.de>
17284
17285         PR middle-end/42927
17286         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
17287
17288 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17289
17290         * config.gcc: Reenable check for obsolete targets.
17291         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
17292         mips-sgi-irix6.[0-4]*.
17293
17294 2010-02-02  Nick Clifton  <nickc@redhat.com>
17295
17296         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
17297         constant size of 4 as being the same as 0.
17298         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
17299         can take values in the range 0..4.
17300
17301 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
17302
17303         PR java/41991
17304         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
17305         as _darwin10_Unwind_FindEnclosingFunction().
17306         * libgcc-libsystem.ver: New.
17307
17308 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
17309
17310         PR target/41399
17311         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
17312         implicitly set registers.
17313
17314 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
17315
17316         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
17317         (arm_override_options): Allow automatic selection of the thread
17318         pointer register if thumb2.
17319         (legitimize_pic_address): Improve code sequences for Thumb2.
17320         (arm_call_tls_get_addr): Likewise.
17321         (legitimize_tls_address): Likewise.
17322         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
17323         (pic_load_addr_32bit): ... this.  New named pattern.
17324         * thumb2.md (pic_load_addr_thumb2): Delete.
17325         (pic_load_dot_plus_four): Delete.
17326         (tls_load_dot_plus_four): New named pattern.
17327
17328 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17329
17330         PR libgomp/29986
17331         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
17332         Document fix for TLS bug.
17333
17334 2010-01-31  Richard Guenther  <rguenther@suse.de>
17335
17336         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
17337         conservatively correct.
17338
17339 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17340
17341         PR target/42850
17342         Revert:
17343         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17344
17345         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
17346
17347 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17348
17349         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
17350
17351 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
17352
17353         * config.gcc: Adjust order of makefile fragments for mingw targets.
17354
17355 2010-01-31  Richard Guenther  <rguenther@suse.de>
17356
17357         PR middle-end/42898
17358         * gimplify.c (gimplify_init_constructor): For volatile LHS
17359         initialize a temporary.
17360
17361 2010-01-31  Matthias Klose  <doko@ubuntu.com>
17362
17363         * configure.ac: Fix __stack_chk_fail check for cross builds configured
17364         --with-headers
17365         * configure: Regenerate.
17366
17367 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
17368
17369         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
17370         the same alias set and their sizes different constantness.
17371         (aliasing_component_refs_p): Revert 2009-10-24 change.
17372
17373 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17374
17375         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
17376         unused.
17377
17378 2010-01-29  Richard Guenther  <rguenther@suse.de>
17379
17380         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
17381         Assert we successfully updated the call.
17382
17383 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
17384
17385         PR rtl-optimization/42889
17386         * df.h (df_set_bb_dirty_nonlr): New prototype.
17387         * df-core.c (df_set_bb_dirty_nonlr): New function.
17388         * df-scan.c (df_insn_rescan): Call it instead of
17389         df_set_bb_dirty for DEBUG_INSNs.
17390
17391 2010-01-29  Richard Guenther  <rguenther@suse.de>
17392
17393         PR middle-end/37448
17394         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
17395         quadratic behavior in most cases.
17396
17397 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
17398
17399         PR target/42891
17400         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
17401         in the call to gen_x86_movsicc_0_m1.
17402
17403 2010-01-28  Richard Guenther  <rguenther@suse.de>
17404
17405         PR tree-optimization/42871
17406         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
17407
17408 2010-01-28  Richard Guenther  <rguenther@suse.de>
17409
17410         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
17411         into call arguments.
17412
17413 2010-01-28  Richard Guenther  <rguenther@suse.de>
17414
17415         PR middle-end/42883
17416         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
17417         the forwarder if the destination is an EH landing pad.
17418
17419 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
17420
17421         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
17422         block list passed to gimple_duplicate_sese_tail.
17423         (parallelize_loops): Avoid parallelization when the function
17424         has_nonlocal_label.
17425         Avoid parallelization when the preheader is IRREDUCIBLE.
17426         Try to optimize when estimated_loop_iterations_int is unresolved.
17427         Add the loop's location to the dump file.
17428         * tree-cfg.c (add_phi_args_after_redirect): Remove.
17429         (gimple_duplicate_sese_tail): Remove the check for the latch.
17430         Redirect nexits to the exit block.
17431         Remove handling of the incoming edges to the latch.
17432         Redirect the backedge from the copied latch to the exit bb.
17433
17434 2010-01-28  Michael Matz  <matz@suse.de>
17435
17436         PR target/42881
17437         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
17438         Wrap force_reg into a sequence, emit it before user.
17439
17440 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
17441
17442         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
17443         (arm_rev): New.
17444         (arm_legacy_rev): Likewise.
17445         (thumb_legacy_rev): Likewise.
17446
17447 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
17448
17449         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
17450         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
17451         on MEM's address failed, try avoid_constant_pool_reference and
17452         recurse if it returned something different.
17453         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
17454         address, try avoid_constant_pool_reference and recurse if it
17455         returned something different.
17456         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
17457         address and avoid_constant_pool_reference returned something
17458         different, don't set have_address.
17459
17460 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
17461
17462         PR debug/42861
17463         * var-tracking.c (val_store): Add modified argument, obey it.
17464         Adjust callers.
17465         (count_uses): Move down logging of main.
17466         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
17467         don't need resolution.
17468         (emit_notes_in_bb): Likewise.
17469
17470 2010-01-27  Richard Guenther  <rguenther@suse.de>
17471
17472         PR middle-end/42878
17473         * tree-inline.c (remap_decl): Delay remapping of SSA name
17474         default definitions until we need them.
17475
17476 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
17477
17478         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
17479         (rs6000_delegitimize_address): New function.
17480
17481         * config/s390/s390.c (s390_delegitimize_address): Call
17482         delegitimize_mem_from_attrs.
17483
17484         PR middle-end/42874
17485         * tree-inline.c (cannot_copy_type_1): Removed.
17486         (copy_forbidden): Don't forbid copying of functions containing
17487         records/unions with variable length fields.
17488
17489 2010-01-27  Christian Bruel  <christian.bruel@st.com>
17490
17491         Revert:
17492         PR target/42841
17493         * config/sh/sh.c (find_barrier): Increase length for non delayed
17494         conditional branches.
17495
17496 2010-01-27  Matthias Klose  <doko@ubuntu.com>
17497
17498         * configure.ac (gnu-unique-object): Fix ldd version check.
17499         * configure: Regenerate.
17500
17501 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17502
17503         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
17504         HAVE_GNU_AS value.
17505         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
17506         Test for HAVE_GNU_AS value.
17507
17508 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17509
17510         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
17511         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
17512         INT64_TYPE): Define.
17513         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
17514         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
17515         INT_LEAST64_TYPE): Define.
17516         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
17517         UINT_LEAST64_TYPE): Define.
17518         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
17519         INT_FAST64_TYPE): Define.
17520         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
17521         UINT_FAST64_TYPE): Define.
17522         (INTMAX_TYPE, UINTMAX_TYPE): Define.
17523         (INTPTR_TYPE, UINTPTR_TYPE): Define.
17524         (SIG_ATOMIC_TYPE): Define.
17525
17526 2010-01-26  Richard Guenther  <rguenther@suse.de>
17527
17528         * df-scan.c (df_scan_set_bb_info): Remove assert.
17529         (df_insn_rescan_debug_internal): Merge asserts.
17530         (df_install_ref): Likewise.
17531         (df_mark_reg): Use bitmap_set_range.
17532         (df_hard_reg_used_p): Remove assert.
17533         (df_hard_reg_used_count): Likewise.
17534
17535 2010-01-26  Richard Guenther  <rguenther@suse.de>
17536
17537         PR rtl-optimization/42685
17538         * web.c (web_main): Ignore DEBUG_INSNs.
17539
17540 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
17541
17542         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
17543
17544         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
17545         Fix types of fndecl and arglist parameters.
17546
17547 2010-01-26  Richard Guenther  <rguenther@suse.de>
17548
17549         PR middle-end/42806
17550         * tree-eh.c (unsplit_eh): Skip debug insns.
17551
17552 2010-01-26  Richard Guenther  <rguenther@suse.de>
17553
17554         PR tree-optimization/42250
17555         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
17556
17557 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
17558
17559         PR fortran/42866
17560         * omp-low.c (expand_omp_sections): Only use single_pred if
17561         l2_bb is single_pred_p.
17562
17563 2010-01-25  Christian Bruel  <christian.bruel@st.com>
17564
17565         PR target/42841
17566         * config/sh/sh.c (find_barrier): Increase length for non delayed
17567         conditional branches.
17568         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
17569
17570 2010-01-24  David S. Miller  <davem@davemloft.net>
17571
17572         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
17573         define if not using GAS.
17574         * config/sparc/sparc.c (sparc_elf_asm_named_section):
17575         Likewise.  Delete SECTION_MERGE code, which is only applicable
17576         when using GAS.
17577
17578 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
17579
17580         PR c++/42748
17581         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
17582         mangling of va_list in system headers.
17583
17584 2010-01-23  Toon Moene  <toon@moene.org>
17585
17586         * tree-predcom.c (combine_chains): Return NULL, not false.
17587
17588 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
17589
17590         * tree-loop-distribution.c (distribute_loop): Fix declaration and
17591         initialization of variable res to agree with return type.
17592
17593 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
17594
17595         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
17596         * tree-sra.c: Add include of expr.h.
17597
17598 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
17599
17600         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
17601         insert the debug stmt on the single non-EH edge from the stmt.
17602
17603 2010-01-22  Richard Henderson  <rth@redhat.com>
17604
17605         PR tree-opt/42833
17606         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
17607         the RHS until after generate_subtree_copies has insertted its
17608         code before the current statement.
17609
17610 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
17611
17612         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
17613
17614         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
17615
17616 2010-01-21  Martin Jambor  <mjambor@suse.cz>
17617
17618         PR tree-optimization/42585
17619         * tree-sra.c (struct access): New field grp_total_scalarization.
17620         (dump_access): Dump the new field.
17621         (should_scalarize_away_bitmap): New variable.
17622         (cannot_scalarize_away_bitmap): Likewise.
17623         (sra_initialize): Allocate new bitmaps.
17624         (sra_deinitialize): Free new bitmaps.
17625         (create_access_1): New function.
17626         (create_access): Parts moved to create_access_1.
17627         (type_consists_of_records_p): New function.
17628         (completely_scalarize_record): Likewise.
17629         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
17630         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
17631         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
17632         access.
17633         (analyze_all_variable_accesses): Completely scalarize small eligible
17634         records.
17635
17636 2010-01-21  Martin Jambor  <mjambor@suse.cz>
17637
17638         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
17639
17640 2010-01-21  Andrew Haley  <aph@redhat.com>
17641
17642         * gcc.c (process_command): Move lang_specific_driver before
17643         setting cc_libexec_prefix.
17644
17645 2010-01-21  Richard Guenther  <rguenther@suse.de>
17646
17647         PR middle-end/19988
17648         * fold-const.c (negate_expr_p): Pretend only negative
17649         real constants are easily negatable.
17650
17651 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
17652             Jason Merrill  <jason@redhat.com>
17653
17654         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
17655         (TYPE_TRANSPARENT_AGGR): this, for union and record.
17656         * calls.c (initialize argument_information): Handle it.
17657         * c-common.c (handle_transparent_union_attribute): Use new name.
17658         * c-decl.c (finish_struct): Ditto.
17659         * c-typeck.c (type_lists_compatible_p): Ditto.
17660         (convert_for_assignment): Use new name and also handle record.
17661         * function.c (aggregate_value_p): Handle it.
17662         (pass_by_reference): Ditto.
17663         (assign_parm_data_types): Ditto.
17664         * print-tree.c (print_node): Ditto.
17665         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
17666         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
17667         * tree.c (first_field): New fn.
17668
17669 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
17670
17671         PR target/42818
17672         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
17673         even when linking statically, for now.
17674
17675 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
17676
17677         PR debug/42715
17678         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
17679         without a cselib val.
17680         (count_uses): Accept MO_VAL_SET with no val on stores.
17681         (add_stores): Likewise.
17682
17683 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
17684
17685         * var-tracking.c (check_value_val): Add a compile time assertion.
17686         (dv_is_decl_p): Simplify.
17687         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
17688         gcc_assert if ENABLE_CHECKING.
17689
17690 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
17691
17692         PR debug/42782
17693         * var-tracking.c: Include tree-flow.h.
17694         (mem_dies_at_call): New.
17695         (dataflow_set_preserve_mem_locs): Use it.
17696         (dataflow_set_remove_mem_locs): Likewise.
17697         (dump_var): Renamed from dump_variable.  Adjust all callers.
17698         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
17699         * Makefile.in (var-tracking.o): Adjust deps.
17700
17701 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
17702
17703         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
17704
17705 2010-01-20  Richard Guenther  <rguenther@suse.de>
17706
17707         PR tree-optimization/42717
17708         * tree-ssa-dce.c (get_live_post_dom): Remove.
17709         (forward_edge_to_pdom): Take an arbitrary edge to copy
17710         degenerate PHI args from.
17711         (remove_dead_stmt): Use the first post-dominator even if it
17712         does not contain live statements as redirection destination.
17713
17714 2010-01-20  Richard Guenther  <rguenther@suse.de>
17715
17716         * tree-inline.c (estimate_num_insns): Handle EH builtins.
17717
17718 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
17719
17720         * sel-sched.c (create_speculation_check): Remove set but not used
17721         variable twin.
17722         (try_transformation_cache): Remove set but not used variable ds.
17723         (calculate_privileged_insns): Remove set but not used variables
17724         cur_insn and min_spec_insn.
17725         (find_best_expr): Remove set but not used variable avail_n.
17726         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
17727         variable e.
17728         * cgraphunit.c (assemble_thunk): Remove set but not used variable
17729         false_label.
17730         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
17731         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
17732         new_scop_exit_edge.
17733
17734 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
17735
17736         PR bootstrap/42786
17737         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
17738         cpu types.  Add support for *-sse3 cpu types.
17739         (x86_64-*-*): Ditto.
17740
17741 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
17742
17743         PR middle-end/42803
17744         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
17745         argument, call initializer_constant_valid_p_1 instead of
17746         initializer_constant_valid_p, pass CACHE to it, return NULL
17747         immediately if first call returns NULL.
17748         (initializer_constant_valid_p_1): New function.
17749         (initializer_constant_valid_p): Use it.
17750
17751 2010-01-20  Thomas Quinot  <quinot@adacore.com>
17752
17753         * tree.def (PLACEHOLDER_EXPR): Fix comment.
17754
17755 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
17756
17757         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
17758         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
17759         (loc_list_from_tree): Don't handle unsigned division.  Handle
17760         signed modulo using DW_OP_{over,over,div,mul,minus}.
17761         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
17762         modulo instead of signed.
17763
17764 2010-01-20  DJ Delorie  <dj@redhat.com>
17765
17766         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
17767         (Fpa): Pass it
17768         (h8300_emit_stack_adjustment): Propogate it.
17769         (push): Pass it.
17770         (h8300_expand_prologue): Likewise.
17771         (h8300_expand_epilogue): Likewise.
17772
17773 2010-01-19  Michael Matz  <matz@suse.de>
17774
17775         PR tree-optimization/41783
17776         * tree-data-ref.c (toplevel): Include flags.h.
17777         (dump_data_dependence_relation):  Also dump the inputs if the
17778         result will be unknown.
17779         (split_constant_offset_1): Look through some conversions.
17780         * tree-predcom.c (determine_roots_comp): Restart a new chain if
17781         the offset from last element is too large.
17782         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
17783         (reassociate_to_the_same_stmt): Handle vector registers.
17784         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
17785         (e.g. conversions).
17786         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
17787         wide_prolog_niters argument, emit widening instructions.
17788         (vect_do_peeling_for_alignment): Adjust caller, use widened
17789         variant of the iteration cound.
17790         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
17791
17792 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17793
17794         PR target/38697
17795         * config/arm/neon-testgen.m (emit_automatics): New parameter
17796         features. Adjust for Fixed_return_reg feature.
17797         (test_intrinsic): Call emit_automatics with new feature.
17798         * config/arm/neon.ml: Update copyright years.
17799         (features): New Fixed_return_reg feature.
17800         (ops): Update feature for Vget_low.
17801
17802 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
17803
17804         PR tree-optimization/42719
17805         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
17806         stmt uses.
17807
17808         PR debug/42728
17809         * fwprop.c (all_uses_available_at): Return false if def_set dest
17810         is a REG that is used in def_insn.
17811
17812 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
17813
17814         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
17815
17816         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
17817         Add argument names.
17818
17819         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
17820
17821         * target.h (struct gcc_target) <secondary_reload>: Change type
17822         of last argument to secondary_reload_info *.
17823
17824 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
17825
17826         PR target/42774
17827         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
17828         memory references with unaligned offsets.  Remove CQImode handling.
17829         (unaligned_memory_operand): Return 1 for memory references with
17830         unaligned offsets.  Remove CQImode handling.
17831
17832 2010-01-18  Richard Guenther  <rguenther@suse.de>
17833
17834         PR middle-end/39954
17835         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
17836         builtin calls.
17837
17838 2010-01-18  Richard Guenther  <rguenther@suse.de>
17839
17840         PR tree-optimization/42781
17841         * tree-ssa-structalias.c (find_what_var_points_to): Skip
17842         restrict processing only if the original variable was artificial.
17843
17844 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
17845
17846         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
17847         find number of popped argument bytes.
17848
17849         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
17850         Fix the text that describes the return value for invalid insns.
17851
17852         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
17853
17854         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
17855         Clarify what 'cost of the -dependence' is.  Fix quoting.
17856
17857         * toplev.c (default_get_pch_validity): Rename argument to "sz".
17858         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
17859
17860 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
17861
17862         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
17863         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
17864
17865 2010-01-17  Richard Guenther  <rguenther@suse.de>
17866
17867         PR middle-end/42248
17868         * function.c (split_complex_args): Take a VEC to modify.
17869         (assign_parms_augmented_arg_list): Build a VEC instead of
17870         a chain of PARM_DECLs.
17871         (assign_parms_unsplit_complex): Take a VEC of arguments.
17872         Do not fixup unmodified parms.
17873         (assign_parms): Deal with the VEC.
17874         (gimplify_parameters): Likewise.
17875
17876 2010-01-17  Richard Guenther  <rguenther@suse.de>
17877
17878         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
17879         node existence check.
17880         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
17881         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
17882         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
17883         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
17884         (gimple_execute_on_growing_pred): Likewise.
17885
17886 2010-01-17  Richard Guenther  <rguenther@suse.de>
17887
17888         PR tree-optimization/42773
17889         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
17890         (compute_antic_aux): Likewise.
17891         (compute_partial_antic_aux): Likewise.
17892
17893 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
17894
17895         PR debug/42767
17896         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
17897         and US_TRUNCATE.
17898
17899 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
17900
17901         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
17902         appearance.
17903
17904         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
17905         Fix markup for strict argument.
17906
17907         (TARGET_SCHED_REORDER2): Fix argument types.
17908
17909         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
17910         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
17911
17912         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
17913         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
17914
17915         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
17916         Add argument name.
17917
17918         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
17919         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
17920         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
17921         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
17922         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
17923
17924         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
17925
17926         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
17927
17928         (TARGET_ASM_RELOC_RW_MASK): Add return type.
17929         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
17930
17931         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
17932
17933         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
17934         Use prototype.
17935
17936         (TARGET_ASM_NAMED_SECTION): Fix argument list.
17937
17938         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
17939         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
17940
17941         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
17942
17943         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
17944
17945         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
17946         referring to it.  Fix language.
17947
17948         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
17949
17950         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
17951
17952         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
17953
17954         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
17955
17956         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
17957         '@var{stream}.  Remove stray 'and'.
17958
17959         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
17960
17961         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
17962
17963         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
17964
17965         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
17966         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
17967
17968         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
17969         Fix description of return value.
17970         Rename argument "sz" to "len."
17971
17972         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
17973         Clarify meaning of 'true' return value.
17974
17975         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
17976
17977         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
17978         rep_mode versus mode_rep.
17979
17980         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
17981
17982         (TARGET_BUILTIN_DECL): Fix name.
17983
17984         (TARGET_COMMUTATIVE_P): Fix type of first argument.
17985
17986         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
17987
17988         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
17989
17990         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
17991
17992         (TARGET_RELAXED_ORDERING): Use @deftypevr.
17993
17994         (TARGET_GET_DRAP_RTX): Note that this is a hook.
17995         Clarify language.
17996
17997         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
17998         Rename argument tm_fn to md_fn.
17999
18000         (TARGET_OPTION_PRINT): Fix argument list.
18001
18002 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
18003
18004         PR target/42664
18005         * config/i386/i386.c (ix86_fixup_binary_operands):
18006         Revert FMA4 fixup of operands.
18007
18008 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18009
18010         PR gcc/42525
18011         * Makefile.in (write_entries_to_file, install-plugin):
18012         Use \012 instead of \n with tr.
18013
18014 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
18015
18016         * configure.ac (HAVE_AS_REF): New C macro.
18017         * configure: Regenerate.
18018         * config.in: Likewise.
18019         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
18020         if HAVE_AS_REF.
18021         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
18022         if HAVE_AS_REF.
18023
18024 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
18025
18026         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
18027
18028         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
18029
18030         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
18031
18032         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
18033
18034         (TARGET_IN_SMALL_DATA_P): Fix argument type.
18035
18036         (TARGET_BINDS_LOCAL_P): Fix argument type.
18037
18038         (TARGET_ASM_FILE_END): Use prototype.
18039
18040         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
18041
18042         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
18043
18044         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
18045
18046         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
18047
18048         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
18049         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
18050
18051         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
18052         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
18053
18054         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
18055         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
18056         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
18057         (TARGET_ADDR_SPACE_CONVERT): Likewise.
18058
18059         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
18060
18061         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
18062
18063         (TARGET_INIT_BUILTINS): Use prototype.
18064
18065         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
18066         Put 'const char *' in braces.  Fix parameter types.
18067         (TARGET_INVALID_CONVERSION): Fix parameter types.
18068         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
18069         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
18070
18071         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
18072         Fix argument type.
18073
18074         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
18075
18076         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
18077
18078 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
18079
18080         * doc/tm.texi (TARGET_HELP): Fix return type.
18081
18082         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
18083         in braces.  Fix argument types.
18084
18085         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
18086
18087         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
18088
18089         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
18090
18091         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
18092         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
18093
18094         (TARGET_MANGLE_TYPE): Fix argument types.
18095
18096         (TARGET_IRA_COVER_CLASSES): Use prototype.
18097
18098         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
18099
18100         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
18101
18102         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
18103
18104         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
18105
18106         (TARGET_CALLEE_COPIES): Fix argument types.
18107
18108         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
18109
18110         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
18111
18112         (TARGET_FUNCTION_VALUE): Fix argument types.
18113
18114         (TARGET_RETURN_IN_MSB): Fix argument type.
18115
18116         (TARGET_RETURN_IN_MEMORY): Fix argument types.
18117
18118         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
18119
18120         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
18121
18122         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
18123         agree with return type.
18124
18125         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
18126
18127 2010-01-15  Jing Yu  <jingyu@google.com>
18128
18129         PR rtl-optimization/42691
18130         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
18131         a pseudo to a constant and are merged, and adjust comments.
18132
18133 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
18134
18135         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
18136
18137 2010-01-15  Richard Guenther  <rguenther@suse.de>
18138
18139         PR middle-end/42739
18140         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
18141         labels of computed or non-local gotos to the destination.
18142         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
18143         landing pad label is the first label.
18144
18145 2010-01-15  Richard Guenther  <rguenther@suse.de>
18146
18147         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
18148
18149 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
18150
18151         PR target/42747
18152         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
18153         to allow generation of the xssqrtdp instruction on power7.
18154         (sqrtdf2_fpr): Ditto.
18155
18156 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
18157
18158         PR middle-end/42674
18159         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
18160         functions with noreturn attribute.
18161
18162         PR c++/42608
18163         * varasm.c (declare_weak): Add weak attribute to decl if it
18164         doesn't have one already.
18165         (assemble_external): Only add decls to weak_decls if they also
18166         have weak attribute.
18167
18168 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
18169
18170         * var-tracking.c (var_reg_delete): Don't delete the association
18171         between REGs and values or one-part variables if the register
18172         isn't clobbered.
18173
18174 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
18175
18176         PR debug/42657
18177         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
18178         because its first operand is a non-localized variable.
18179
18180 2010-01-14  Martin Jambor  <mjambor@suse.cz>
18181
18182         PR tree-optimization/42706
18183         * tree-sra.c (encountered_recursive_call): New variable.
18184         (encountered_unchangable_recursive_call): Likewise.
18185         (sra_initialize): Initialize both new variables.
18186         (callsite_has_enough_arguments_p): New function.
18187         (scan_function): Call decl and flags check only for IPA-SRA, check
18188         whether there is a recursive call and whether it has enough arguments.
18189         (all_callers_have_enough_arguments_p): New function.
18190         (convert_callers): Look for recursive calls only when
18191         encountered_recursive_call is set.
18192         (ipa_early_sra): Bail out either if
18193         !all_callers_have_enough_arguments_p or
18194         encountered_unchangable_recursive_call.
18195
18196 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
18197
18198         * sel-sched.c: Add 2010 to copyright years.
18199         * sel-sched-ir.c: Likewise.
18200         * sel-sched-ir.h: Likewise.
18201
18202 2010-01-14  Martin Jambor  <mjambor@suse.cz>
18203
18204         PR tree-optimization/42714
18205         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
18206         constructors specially.
18207
18208 2010-01-14  Andi Kleen  <ak@linux.intel.com>
18209
18210         * config/i386/drivers-i386.c (detect_caches_intel):
18211         Add l2sizekb parameter and fill in.
18212         (host_detect_local_cpu): Add l2sizekb, fill in.
18213         Add Atom small cache heuristic.
18214
18215 2010-01-14  Andi Kleen  <ak@linux.intel.com>
18216
18217         * config/i386/drivers-i386.c (detect_caches_cpuid4):
18218         Add level3 parameter and fill in.
18219         (detect_caches_intel): Handle level3 cache.
18220
18221 2010-01-14  Andi Kleen  <ak@linux.intel.com>
18222
18223         * config/i386/drivers-i386.c (host_detect_local_cpu):
18224         Fix core duo detection.
18225
18226 2010-01-14  Andi Kleen  <ak@linux.intel.com>
18227
18228         * config/i386/drivers-i386.c (host_detect_local_cpu):
18229         Fix Atom detection.
18230
18231 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
18232
18233         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
18234         (rs6000_variable_issue_1): this.  Use...
18235         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
18236
18237 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
18238
18239         * sel-sched-ir.c (sel_restore_other_notes): Rename to
18240         sel_restore_notes.  Update all callers.  Call reemit_notes
18241         for all insns.
18242
18243 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
18244
18245         PR rtl-optimization/42246
18246         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
18247         loops.
18248
18249 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
18250
18251         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
18252         all successors is the same as number of successors in current region.
18253
18254 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
18255
18256         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
18257         to rename is not separable.  Otherwise check that its LHS is not NULL.
18258
18259 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
18260
18261         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
18262
18263 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
18264
18265         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
18266         available registers when failed to discover LHS register class.
18267         Fix indentation.  Update comment.
18268
18269 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
18270             Alexander Monakov  <amonakov@ispras.ru>
18271
18272         PR rtl-optimization/42389
18273         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
18274         to can_issue_more.
18275         (advance_state_on_fence): Likewise.
18276         (sel_target_adjust_priority): Print debug output only when
18277         sched_verbose >= 4, not 2.
18278         (get_expr_cost): Do not issue all unique insns on the next cycle.
18279         (fill_insns): Initialize can_issue_more from the value saved
18280         with the fence.
18281         * sel-sched-ir.c (flist_add): New parameter issue_more.
18282         Init FENCE_ISSUE_MORE with it.
18283         (merge_fences): Likewise.
18284         (init_fences): Update call to flist_add.
18285         (add_to_fences, add_clean_fence_to_fences)
18286         (add_dirty_fence_to_fences): Likewise.
18287         (move_fence_to_fences): Update call to merge_fences.
18288         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
18289         sched groups.
18290         * sel-sched-ir.h (struct _fence): New field issue_more.
18291         (FENCE_ISSUE_MORE): New accessor macro.
18292
18293 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
18294
18295         PR rtl-optimization/42388
18296         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
18297         that have no predecessors nor successors.  Do not call move_bb_info
18298         for empty blocks outside of current region.
18299
18300 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
18301
18302         PR rtl-optimization/42294
18303         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
18304         * sel-sched.c (move_exprs_to_boundary): Transitively add all
18305         originators' originators.
18306
18307 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
18308
18309         PR rtl-optimization/39453
18310         PR rtl-optimization/42246
18311         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
18312         for pipelining_p.
18313         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
18314
18315 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
18316             Alexander Monakov  <amonakov@ispras.ru>
18317
18318         PR middle-end/42245
18319         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
18320         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
18321         argument.  Update all callers.
18322         (tidy_control_flow): ... and here.  Recompute topological order
18323         of basic blocks in region if necessary.
18324         (sel_redirect_edge_and_branch): Change return type.  Return true
18325         if topological order might have been invalidated.
18326         (purge_empty_blocks): Export and move from...
18327         * sel-sched.c (purge_empty_blocks): ... here.
18328         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
18329         (maybe_tidy_empty_bb): Delete prototype.
18330         (purge_empty_blocks): Declare.
18331
18332 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
18333
18334         PR rtl-optimization/42249
18335         * sel-sched.c (try_replace_dest_reg): When chosen register
18336         and original register is the same, do not bail out early, but
18337         still check all original insns for validity of replacing destination
18338         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
18339         in this case.
18340
18341 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
18342
18343         PR c/42721
18344         Port from no-undefined-overflow branch:
18345         2009-03-09  Richard Guenther  <rguenther@suse.de>
18346
18347         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
18348
18349 2010-01-14  Richard Guenther  <rguenther@suse.de>
18350
18351         PR lto/42665
18352         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
18353
18354 2010-01-14  Ira Rosen  <irar@il.ibm.com>
18355
18356         PR tree-optimization/42709
18357         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
18358         as scalar type in creation of constant vector operand.
18359
18360 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18361
18362         PR testsuite/42414
18363         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
18364         (check-parallel-%): Match `testsuite' directory component only
18365         at the end.
18366
18367 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
18368
18369         PR translation/39521
18370         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
18371         strings with _().
18372
18373 2010-01-13  Richard Guenther  <rguenther@suse.de>
18374
18375         PR tree-optimization/42730
18376         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
18377         offset zero.
18378
18379 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
18380
18381         PR target/pr42542
18382         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
18383         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
18384         them signed.
18385
18386 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
18387
18388         * config/bfin/libgcc-bfin.ver: Regenerate based on current
18389         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
18390         ___umulsi3_highpart.
18391
18392         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
18393         rather than schedule_insns if the pass is enabled.
18394
18395 2010-01-13  Martin Jambor  <mjambor@suse.cz>
18396
18397         PR tree-optimization/42704
18398         * tree-sra.c (sra_modify_assign): Do not delete assignments to
18399         SSA_NAMEs.
18400
18401 2010-01-13  Martin Jambor  <mjambor@suse.cz>
18402
18403         PR tree-optimization/42703
18404         * tree-sra.c (analyze_access_subtree): Check that we can build a
18405         reference to the original data within the aggregate.
18406
18407 2010-01-13  Richard Guenther  <rguenther@suse.de>
18408
18409         PR tree-optimization/42705
18410         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
18411
18412 2010-01-13  Richard Guenther  <rguenther@suse.de>
18413
18414         PR middle-end/42716
18415         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
18416
18417 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
18418
18419         PR debug/41371
18420         * var-tracking.c (values_to_unmark): New variable.
18421         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
18422         values_to_unmark vector.  Moved body to...
18423         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
18424         instead queue it into values_to_unmark vector.
18425         (vt_find_locations): Free values_to_unmark vector.
18426
18427 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
18428
18429         * config/s390/s390.c (override_options): Set
18430         default of max-pending-list-length to 256
18431
18432 2010-01-13  Richard Guenther  <rguenther@suse.de>
18433
18434         PR lto/42678
18435         * tree-pass.h (PROP_gimple_lcx): New.
18436         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
18437         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
18438         before the final cleanup_eh.
18439         (dump_properties): Dump PROP_gimple_lcx.
18440         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
18441         (tree_lower_complex_O0): Remove.
18442         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
18443         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
18444         tree_lower_complex, schedule TODO_update_ssa.
18445         * lto-streamer-out.c (output_function): Stream the functions
18446         properties.
18447         * lto-streamer-in.c (input_function): Likewise.
18448         (lto_read_body): Do not override them here.
18449
18450 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
18451
18452         PR c/42708
18453         * c-typeck.c (build_c_cast): Fold value cast to union type before
18454         wrapping it in a CONSTRUCTOR.
18455
18456 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
18457
18458         PR rtl-optimization/42699
18459         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
18460         involved.
18461
18462 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18463
18464         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
18465         SUBTARGET_WARN_UNUSED_SPEC): Move ...
18466         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
18467         SUBTARGET_WARN_UNUSED_SPEC): ... here
18468         * config/mips/iris5.h (LIBGCC_SPEC): Define.
18469
18470 2010-01-12  Julian Brown  <julian@codesourcery.com>
18471
18472         * config/arm/neon-schedgen.ml (Utils): Don't try to
18473         open missing module.
18474         (find_with_result): New.
18475
18476 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
18477
18478         PR debug/42662
18479         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
18480         sharing when canonicalizing ({lt,ge}u (plus a b) b).
18481
18482         PR tree-optimization/42645
18483         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
18484         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
18485         decl_map, set processing_debug_stmt to -1 and return name without
18486         any remapping.
18487
18488 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
18489
18490         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
18491         binutils version, and reword target configuration description.
18492
18493 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
18494
18495         * config/avr/avr.h (LINKER_NAME): Remove.
18496
18497 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
18498
18499         PR target/42416
18500         * config/rs6000/rs6000.c (rs6000_override_options): On targets
18501         that support VSX, warn for -mno-altivec if vsx is not disabled,
18502         and disable vsx.
18503
18504 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
18505             Shujing Zhao  <pearly.zhao@oracle.com>
18506
18507         PR translation/42469
18508         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
18509         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
18510         character between option name and help text.
18511         * c.opt (imultilib): Likewise.
18512
18513 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
18514
18515         * lto-streamer-out.c (output_unreferenced_globals): Output static
18516         variables.
18517
18518 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
18519
18520         PR rtl-optimization/42621
18521         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
18522         optimizing for size.
18523         (duplicate_computed_gotos): Remove now-redundant check.
18524
18525 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
18526
18527         PR target/37454
18528         * configure.ac: Save and restore LDFLAGS and LIBS
18529         * configure: Regenerate.
18530
18531 2010-01-10  Richard Guenther  <rguenther@suse.de>
18532
18533         PR middle-end/42667
18534         * builtins.c (fold_builtin_strlen): Add type argument and
18535         convert the resulting length to it.
18536         (fold_builtin_1): Adjust.
18537
18538 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
18539
18540         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
18541         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
18542         1 insn.
18543         (num_insns_constant_wide): Adjust for that change.
18544
18545 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
18546
18547         PR debug/42631
18548         * web.c (union_defs): Add used argument, to combine uses of
18549         uninitialized regs.
18550         (entry_register): Adjust type and tests of used argument.
18551         (web_main): Widen used for new use.  Pass it to union_defs.
18552         * df.h (union_defs): Adjust prototype.
18553
18554 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
18555
18556         PR debug/42630
18557         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
18558         uses in new incoming argument.  Free body.
18559         (reset_debug_uses_in_loop): New.
18560         (analyze_insn_to_expand_var): Call the latter if the former found
18561         anything.  Fix whitespace.  Reject invalid dest overlaps before
18562         going through all insns in the loop.
18563
18564 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
18565
18566         PR debug/42629
18567         * haifa-sched.c (dying_use_p): Debug insns don't count.
18568
18569 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
18570
18571         PR middle-end/42363
18572         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
18573         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
18574         (verify_gimple_call): Reject LHS in noreturn calls.
18575
18576 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
18577
18578         PR debug/42604
18579         PR debug/42395
18580         * tree-vect-loop-manip.c (adjust_info): New type.
18581         (adjust_vec): New pointer to vector.
18582         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
18583         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
18584         (slpeel_update_phis_for_duplicate_loop): Use them.
18585         (slpeel_update_phi_nodes_for_guard1): Likewise.
18586         (slpeel_update_phi_nodes_for_guard2): Likewise.
18587         (slpeel_tree_peel_loop_to_edge): Likewise.
18588         (vect_update_ivs_after_vectorizer): Likewise.
18589
18590 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
18591
18592         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
18593         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
18594
18595 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
18596
18597         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
18598         bogus uninitialized warning.
18599
18600 2010-01-09  Richard Guenther  <rguenther@suse.de>
18601
18602         PR middle-end/42512
18603         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
18604         the evolution is compatible with the initial condition.
18605
18606 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
18607
18608         * gcc.c (process_command): Update copyright notice dates.
18609         * gcov.c (print_version): Likewise.
18610         * gcov-dump.c (print_version): Likewise.
18611         * mips-tfile.c (main): Likewise.
18612         * mips-tdump.c (main): Likewise.
18613
18614 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
18615
18616         PR target/41885
18617         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
18618         (rotlhi3): Delete.
18619         (rotlhi3_8): Delete.
18620         (rotlsi3): Delete.
18621         (rotlsi3_8): Delete.
18622         (rotlsi3_16): Delete.
18623         (rotlsi3_24): Delete.
18624         (rotl<mode>3): New.
18625         (*rotw<mode>3): New.
18626         (*rotb<mode>3): New.
18627         * config/avr/avr.c (avr_rotate_bytes): New function.
18628         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
18629
18630 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
18631
18632         PR target/37454
18633         * configure.ac: Modify -rdynamic check.
18634         * configure: Regenerate.
18635
18636 2010-01-08  DJ Delorie  <dj@redhat.com>
18637
18638         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
18639         register popping order.
18640
18641 2010-01-08  Richard Guenther  <rguenther@suse.de>
18642
18643         PR lto/42528
18644         * c.opt (fsigned-char): Also let LTO handle this option.
18645         (funsigned-char): Likewise.
18646
18647 2010-01-07  Richard Guenther  <rguenther@suse.de>
18648
18649         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
18650         (gimple_op): Likewise.
18651         (gimple_op_ptr): Likewise.
18652         (gimple_assign_set_lhs): Remove gcc_assert.
18653         (gimple_assign_set_rhs1): Likewise.
18654         (gimple_assign_set_rhs2): Likewise.
18655         (gimple_call_set_lhs): Likewise.
18656         (gimple_call_set_fn): Likewise.
18657         (gimple_call_set_fndecl): Likewise.
18658         (gimple_call_fndecl): Likewise.
18659         (gimple_call_return_type): Likewise.
18660         (gimple_call_set_chain): Likewise.
18661         (gimple_call_num_args): Likewise.
18662         (gimple_call_set_arg): Likewise.
18663         (gimple_cond_set_code): Likewise.
18664         (gimple_cond_set_lhs): Likewise.
18665         (gimple_cond_set_rhs): Likewise.
18666         (gimple_cond_set_true_label): Likewise.
18667         (gimple_cond_set_false_label): Likewise.
18668         (gimple_label_set_label): Likewise.
18669         (gimple_goto_set_dest): Likewise.
18670         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
18671         (gimple_debug_bind_get_value): Likewise.
18672         (gimple_debug_bind_get_value_ptr): Likewise.
18673         (gimple_debug_bind_set_var): Likewise.
18674         (gimple_debug_bind_set_value): Likewise.
18675         (gimple_debug_bind_reset_value): Likewise.
18676         (gimple_debug_bind_has_value_p): Likewise.
18677         (gimple_return_retval_ptr): Remove gcc_assert.
18678         (gimple_return_retval): Likewise.
18679         (gimple_return_set_retval): Likewise.
18680         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
18681         (safe_referenced_var_iterator): Remove.
18682         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
18683         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
18684         (fill_referenced_var_vec): Remove.
18685         (first_readonly_imm_use): Remove redundant gcc_assert.
18686         (phi_arg_index_from_use): Combine gcc_asserts.
18687         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
18688         (first_imm_use_stmt): Remove redundant gcc_assert.
18689         * tree-cfg.c (verify_gimple_call): Verify function and chain
18690         operands.  Verify arguments.
18691         (verify_types_in_gimple_stmt): Verify condition code and labels.
18692
18693 2010-01-07  Richard Guenther  <rguenther@suse.de>
18694
18695         PR tree-optimization/42641
18696         * sese.c (rename_map_elt_info): Use the SSA name version, do
18697         not hash pointers.
18698
18699 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
18700
18701         PR tree-optimization/42625
18702         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
18703         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
18704
18705 2010-01-07  Duncan Sands  <baldrick@free.fr>
18706
18707         * Makefile.in (PLUGIN_HEADERS): Add version.h.
18708
18709 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
18710
18711         PR target/42511
18712         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
18713         note itself is not function_invariant_p.
18714
18715 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
18716
18717         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
18718         Do not add the DF_NOTE problem.
18719         * store-motion.c (execute_rtl_store_motion): Likewise.
18720
18721 2010-01-07  Martin Jambor  <mjambor@suse.cz>
18722
18723         PR tree-optimization/42157
18724         * tree-sra.c (compare_access_positions): Stabilize sort if both
18725         accesses have integer types, return zero immediately if they are the
18726         same.
18727
18728 2010-01-06  Richard Henderson  <rth@redhat.com>
18729
18730         PR middle-end/41883
18731         * haifa-sched.c (add_to_note_list): Merge into ...
18732         (concat_note_lists): ... here, and ...
18733         (unlink_other_notes, rm_other_notes): Merge into...
18734         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
18735         NOTE_INSN_EPILOGUE_BEG.
18736
18737 2010-01-06  Richard Guenther  <rguenther@suse.de>
18738
18739         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
18740         not inline regular functions into always-inline functions.
18741
18742 2010-01-06  Nick Clifton  <nickc@redhat.com>
18743
18744         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
18745         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
18746         used together.
18747         (OVERRIDE_OPTIONS): Delete.
18748         (OPTIMIZATION_OPTIONS): Define.
18749         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
18750         * config/rx/rx.c (rx_handle_option): Issue an error message if
18751         -mcpu=rx200 and -fpu are used together.
18752         (rx_set_optimization_options): New function.  Issue an error
18753         message if an optimization attribute attempts to reset the FPU/
18754         math optimization pairing.
18755         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
18756         * config/rx/rx.opt: Set the default to 32-bit doubles.
18757         * config/rx/t-rx: Add multilibs for -nofpu option.
18758         * doc/invoke.texi: Update documentation of RX options.
18759
18760 2010-01-06  Richard Guenther  <rguenther@suse.de>
18761
18762         * tree-ssa-pre.c (name_to_id): New global.
18763         (alloc_expression_id): Simplify SSA name handling.
18764         (lookup_expression_id): Likewise.
18765         (init_pre): Zero name_to_id.
18766         (fini_pre): Free it.
18767
18768 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
18769
18770         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
18771
18772 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
18773
18774         PR target/42542
18775         * config/i386/sse.md (smaxv2di3): New.
18776         (umaxv2di3): Likewise.
18777         (sminv2di3): Likewise.
18778         (uminv2di3): Likewise.
18779
18780 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
18781
18782         PR target/42564
18783         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
18784         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
18785         (legitimize_tls_address): Likewise.
18786         (sparc_tls_referenced_p): Likewise.
18787         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
18788         and adjust calls to legitimize_pic_address.
18789         (legitimate_constant_p) Use sparc_tls_referenced_p.
18790         (legitimate_pic_operand_p): Likewise.
18791         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
18792         (sparc_tls_symbol_ref_1): Delete.
18793         (sparc_tls_referenced_p): Make static, recognize specific patterns.
18794         (legitimize_tls_address): Make static, handle CONST patterns.
18795         (legitimize_pic_address): Make static, remove unused parameter and
18796         adjust recursive calls.
18797         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
18798         and adjust call to legitimize_pic_address.
18799         (sparc_output_mi_thunk): Likewise.
18800
18801 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
18802             H.J. Lu  <hongjiu.lu@intel.com>
18803
18804         PR target/42542
18805         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
18806         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
18807         operands to make them signed.
18808
18809         Revert:
18810         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
18811
18812         PR target/42542
18813         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
18814         GTU to GT for V4SI and V2DI.
18815
18816         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
18817         (umin<mode>3): Removed.
18818         (uminv8hi3): New.
18819         (uminv4si3): Likewise.
18820
18821 2010-01-05  Martin Jambor  <mjambor@suse.cz>
18822
18823         PR tree-optimization/42462
18824         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
18825         current_function_decl to helper functions and macros.
18826
18827 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18828
18829         PR bootstrap/41771
18830         * flags.h: Don't include real.h.
18831         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
18832         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
18833         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
18834         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
18835         * dominance.c: Update copyright.
18836         * gimple.c (walk_gimple_op): Remove inline.
18837         * tree-ssa-reassoc.c: Include real.h.
18838         * Makefile.in (FLAGS_H): Remove $(REAL_H).
18839         (tree-ssa-reassoc.o): Depend on $(REAL_H).
18840
18841 2010-01-05  Nick Clifton  <nickc@redhat.com>
18842
18843         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
18844         register to push into the stack frame when the accumulator has to
18845         be saved during interrupts.
18846
18847 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
18848
18849         * doc/invoke.texi: Remove the documentation about option
18850         -Wunreachable-code.
18851         * common.opt (Wunreachable-code):  Preserved for backward
18852         compatibility.
18853         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
18854         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
18855         the backward compatibility flag section.
18856
18857 2010-01-05  Richard Guenther  <rguenther@suse.de>
18858
18859         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
18860
18861 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
18862
18863         PR other/42611
18864         * cfgexpand.c (expand_one_var): Diagnose too large variables.
18865
18866         PR tree-optimization/42508
18867         * tree-sra.c (convert_callers): Check for recursive call
18868         by comparing cgraph nodes instead of decls.
18869         (modify_function): Call ipa_modify_formal_parameters also
18870         on all same_body aliases.
18871
18872         * cgraphunit.c (cgraph_materialize_all_clones): Compare
18873         cgraph nodes when checking for same_body aliases.
18874
18875 2010-01-05  Richard Guenther  <rguenther@suse.de>
18876
18877         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
18878         allocation and lookup.
18879         (get_or_alloc_expr_for_constant): Likewise.
18880         (phi_translate): Sink allocation.
18881
18882 2010-01-04  Richard Guenther  <rguenther@suse.de>
18883
18884         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
18885         a new entry only if needed.
18886         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
18887         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
18888         hashtable lookup.
18889         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
18890         the result array.
18891         (phi_translate): Handle CONSTANTs early.
18892
18893 2010-01-04  Martin Jambor  <mjambor@suse.cz>
18894
18895         PR tree-optimization/42398
18896         * tree-sra.c (struct access): Removed flag grp_different_types.
18897         (dump_access): Do not dump the removed flag.
18898         (sort_and_splice_var_accesses): Do not set the removed flag.
18899         (sra_modify_expr): Check for type compatibility directly.
18900
18901 2010-01-04  Martin Jambor  <mjambor@suse.cz>
18902
18903         PR tree-optimization/42366
18904         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
18905         edges with variable number of parameters.
18906         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
18907         flag instead of asserting it.
18908         (ipa_read_node_info): Read uses_analysis_done flag.
18909
18910 2010-01-04  Richard Guenther  <rguenther@suse.de>
18911
18912         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
18913         iterative_hash_* as intended.
18914         (vn_reference_compute_hash): Likewise.  Simplify hashing
18915         SSA names.
18916         (vn_reference_lookup_2): Likewise.
18917         (vn_nary_op_compute_hash): Likewise.
18918         (vn_phi_compute_hash): Likewise.
18919         (expressions_equal_p): Remove strange code.
18920         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
18921         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
18922         (bitmap_insert_into_set_1): Take value-id as parameter.
18923         (add_to_value): Pass it.
18924         (bitmap_insert_into_set): Likewise.
18925         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
18926
18927 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
18928
18929         PR driver/42442
18930         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
18931         (do_self_spec): For switches with SWITCH_IGNORE set set also
18932         SWITCH_IGNORE_PERMANENTLY.
18933         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
18934         of SWITCH_IGNORE.
18935
18936 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
18937
18938         * lto-streamer-out.c (output_unreferenced_globals): Output the full
18939         tree of an unreferenced global var.
18940
18941 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
18942
18943         PR target/42542
18944         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
18945         GTU to GT for V4SI and V2DI.
18946
18947         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
18948         (umin<mode>3): Removed.
18949         (uminv8hi3): New.
18950         (uminv4si3): Likewise.
18951
18952 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
18953
18954         PR lto/42581
18955         * collect2.c (main): Turn on trace in collect2 if -v is passed
18956         to gcc with LTO.
18957
18958 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
18959
18960         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
18961         description of expression operand.
18962
18963 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
18964
18965         * configure.ac: Add install-html to target_list for Make-hooks.
18966         * configure: Regenerate.
18967         * fortran/Make-lang.in (F95_HTMLFILES): New.
18968         (fortran.html): Use it.
18969         (fortran.install-html): New.
18970         * Makefile.in (install-html): Add lang.install-html.
18971         * java/Make-lang.in (JAVA_HTMLFILES): New.
18972         (java.html): Use it.
18973         (java.install-html): New.
18974         * objc/Make-lang.in (objc.install-html): New.
18975         * objcp/Make-lang.in (obj-c++.install-html): New.
18976         * cp/Make-lang.in (c++.install-html): New.
18977         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
18978         * lto/Make-lang.in (lto.install-html): New.
18979
18980 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
18981
18982         PR lto/42520
18983         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
18984
18985 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
18986
18987         PR rtl-optimization/41862
18988         * store-motion.c (store_killed_in_insn, compute_store_table,
18989         remove_reachable_equiv_notes, replace_store_insn,
18990         build_store_vectors): Ignore all DEBUG_INSNs.
18991
18992 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
18993
18994         PR lto/41564
18995         * common.opt: Add dumpdir.
18996
18997         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
18998         isn't specified.
18999         (option_map): Add --dumpdir.
19000
19001         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
19002
19003         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
19004
19005         * opts.c (decode_options): Try dump_dir_name first if
19006         dump_base_name isn't an absolute path.
19007         (common_handle_option): Handle OPT_dumpdir.
19008
19009         * toplev.c (dump_dir_name): New.
19010         (print_switch_values): Also ignore -dumpdir.
19011
19012         * toplev.h (dump_dir_name): New.
19013
19014 2010-01-03  Richard Guenther  <rguenther@suse.de>
19015
19016         PR tree-optimization/42589
19017         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
19018         double-word expansion of bswap32.
19019
19020 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
19021
19022         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
19023         with BLOCK_FOR_INSN.
19024         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
19025         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
19026         noce_process_if_block): Likewise.
19027         * gcse.c (compute_local_properties, insert_expr_in_table,
19028         insert_set_in_table, canon_list_insert, find_avail_set,
19029         pre_insert_copy_insn): Likewise.
19030
19031         * basic-block.h (BLOCK_NUM): Move from here...
19032         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
19033
19034 2010-01-03  Richard Guenther  <rguenther@suse.de>
19035
19036         PR tree-optimization/42438
19037         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
19038         contains_may_not_return_call flag.
19039         (BB_MAY_NOTRETURN): New.
19040         (valid_in_sets): Trapping nary operations are not valid
19041         in blocks that may not return.
19042         (insert_into_preds_of_block): Remove check for trapping expressions.
19043         (compute_avail): Compute also BB_MAY_NOTRETURN.
19044
19045 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
19046
19047         * doc/invoke.texi: Add 2010 to copyright years.
19048
19049 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
19050
19051         * config/sparc/sparc.c: Fix formatting nits.
19052
19053 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
19054             Alexander Monakov  <amonakov@ispras.ru>
19055
19056         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
19057
19058 2010-01-02  Richard Guenther  <rguenther@suse.de>
19059
19060         PR middle-end/42577
19061         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
19062         (simplify_switch_using_ranges): Mark to be removed edges
19063         as non-executable.
19064
19065 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19066
19067         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
19068
19069         * collect2.c (scan_libraries): Add missing argument in call to
19070         scan_prog_file.
19071
19072 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
19073
19074         PR target/42448
19075         * config/alpha/predicates.md (aligned_memory_operand): Return false
19076         for CQImode.
19077         (unaligned_memory_operand): Return true for CQImode.
19078         * config/alpha/alpha.c (get_aligned_mem): Assert that location
19079         doesn not cross aligned SImode word boundary.
19080
19081 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
19082
19083         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
19084         Remove.
19085         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
19086         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
19087
19088 2010-01-02  Richard Guenther  <rguenther@suse.de>
19089
19090         PR lto/41597
19091         * toplev.c (compile_file): Emit LTO marker properly.  Change
19092         it to __gnu_lto_v1.
19093         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
19094
19095 2010-01-01  Richard Guenther  <rguenther@suse.de>
19096
19097         PR debug/42455
19098         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
19099
19100 2010-01-01  Richard Guenther  <rguenther@suse.de>
19101
19102         PR c/42570
19103         * c-decl.c (grokdeclarator): For zero-size arrays force
19104         structural equality checks as layout_type does.
19105
19106 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
19107
19108         * builtins.c: Update copyright to 2010.
19109
19110 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
19111
19112         PR lto/42531
19113         * lto-streamer-out.c (produce_asm): Revert the last change.
19114         (copy_function): Likewise.
19115
19116         * lto-streamer.c (lto_get_section_name): Skip any leading
19117         asterisk in name.
19118
19119 2010-01-01  Richard Guenther  <rguenther@suse.de>
19120
19121         PR middle-end/42559
19122         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
19123         for LABEL_DECLs.
19124
19125 \f
19126 Copyright (C) 2010 Free Software Foundation, Inc.
19127
19128 Copying and distribution of this file, with or without modification,
19129 are permitted in any medium without royalty provided the copyright
19130 notice and this notice are preserved.