20df6bb94b21877cde2dc737532570ef0f467efc
[platform/upstream/linaro-gcc.git] / gcc / ChangeLog
1 2010-10-07  Richard Guenther  <rguenther@suse.de>
2
3         * target.def (units_per_simd_word): Rename to ...
4         (preferred_simd_mode): ... this.  Return mode instead of size.
5         * targhooks.c (default_units_per_simd_word): Rename to ...
6         (default_preferred_simd_mode): ... this.  Return word_mode.
7         * targhooks.h (default_preferred_simd_mode): Declare.
8         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
9         (arm_preferred_simd_mode): ... this.  Re-implement.
10         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
11         (ix86_preferred_simd_mode): ... this.  Re-implement.
12         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
13         (sparc_preferred_simd_mode): ... this.  Re-implement.
14         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
15         (mips_preferred_simd_mode): ... this.  Re-implement.
16         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
17         (rs6000_preferred_simd_mode): ... this.  Re-implement.
18         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
19         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
20         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
21         * doc/tm.texi: Update.
22
23 2010-10-07  Richard Guenther  <rguenther@suse.de>
24
25         PR middle-end/45869
26         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
27         of pointers.
28
29 2010-10-07  Alan Modra  <amodra@gmail.com>
30
31         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
32         rather than sign extension by hand.
33
34 2010-10-07  Jan Hubicka  <jh@suse.cz>
35
36         PR middle-end/45926
37         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
38
39 2010-10-07  Richard Guenther  <rguenther@suse.de>
40
41         PR bootstrap/45914
42         * configure.ac: Fix typo.
43         * configure: Regenerated.
44
45 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
46
47         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
48         define_builtin_std where it's unnecessary.
49         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
50
51 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
52
53         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
54         * doc/tm.texi.in: Regenerate.
55         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
56         * targhooks.c (default_class_likely_spilled_p): Don't use the
57         CLASS_LIKELY_SPILLED_P macro.
58
59         * config/arm/arm.md: Update comment.
60
61 2010-10-06  Jan Hubicka  <jh@suse.cz>
62
63         * ipa.c (cgraph_remove_unreachable_nodes): External references can
64         always be removed.
65         (cgraph_externally_visible_p): We can not bring local comdats that
66         are known to linker; fix handling of internal visibility.
67         (function_and_variable_visibility): Likewise.
68
69 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
70
71         PR rtl-optimization/45394
72         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
73         (struct rtx_subst_pair): Remove AFTER field.
74         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
75         (propagate_for_debug): Remove MOVE parameter and adjust.
76         (try_combine): In the special case where I2 is a PARALLEL, combine only
77         destinations of SETs and set I2SRC to the I2 source.
78         Adjust calls to propagate_for_debug throughout.
79         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
80         insns.
81
82 2010-10-06  Olivier Hainque  <hainque@adacore.com>
83
84         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
85         switch on insn codes as sequence of ifs.
86
87 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
88
89         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
90         be UI_NONE for picochip.
91         (picochip_option_override): Do not disable exception flags.
92         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
93         Declare.
94
95 2010-10-06  Richard Guenther  <rguenther@suse.de>
96
97         * Makefile.in (regmove.o): Depend on $(TARGET_H).
98
99 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
100
101         Implemented fast enumeration for Objective-C.
102         * c-parser.c (objc_could_be_foreach_context): New.
103         (c_lex_one_token): Recognize RID_IN keyword in a potential
104         Objective-C foreach context.
105         (c_parser_declaration_or_fndef): Added parameter.  Accept
106         Objective-C RID_IN keyword as terminating a declaration; in that
107         case, return the declaration in the new parameter.
108         (c_parser_extenral_declaration): Updated calls to
109         c_parser_declaration_or_fndef.
110         (c_parser_declaration_or_fndef): Same change.
111         (c_parser_compound_statement_nostart): Same change.
112         (c_parser_label): Same change.
113         (c_parser_objc_methodprotolist): Same change.
114         (c_parser_omp_for_loop): Same change.
115         (c_parser_for_statement): Detect and parse Objective-C foreach
116         statements.
117         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
118         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
119         fast enumeration parsing code to turn off the c99 error but still
120         perform checks on the loop declarations.
121         * c-tree.h (check_for_loop_decls): Updated declaration.
122         * doc/objc.texi: Document fast enumeration.
123
124 2010-10-06  Nick Clifton  <nickc@redhat.com>
125
126         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by
127         one.
128         (MDR_REGNUM): Define.
129         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed
130         register.
131         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
132         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
133         (REGISTER_NAMES): Add MDR.
134         (DWARF2_DEBUGGING_INFO): Define to 1.
135         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
136         (F): New function.  Sets RTX_FRAME_RELATED_P.
137         (mn10300_gen_multiple_store): Use F.
138         (expand_prologue): Use F.  Use gen_movsf() to push floating
139         point registers.
140         (expand_epilogue): Use gen_movsf() to pop floating point
141         registers.
142         (mn10300_option_override): Disable combine stack adjust pass.
143
144 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
145
146         PR target/45901
147         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
148         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
149
150 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
151
152         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
153         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
154         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
155         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
156         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
157         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
158         BUILT_IN_TOUPPER): Mark as leaf.
159
160         PR middle-end/45838
161         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
162         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
163         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
164         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
165         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
166         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
167         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
168
169 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
170
171         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
172         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
173         (m68hc11_class_likely_spilled_p): New function.
174
175 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
176
177         * c-parser.c (c_parser_objc_method_definition): Updated comment.
178
179 2010-10-05  Jan Hubicka  <jh@suse.cz>
180
181         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
182         Document.
183         * opts.c (decode_options): Handle lto partitions.
184         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
185         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
186
187 2010-10-05  Jan Hubicka  <jh@suse.cz>
188
189         * cgraphunit.c (assemble_function): Output thunks and aliases before
190         the function itself.
191
192 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
193
194         * config/picochip/picochip.c (picochip_option_override): Disable
195         exception flags for picochip.
196
197 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
198
199         * opts-common.c (handle_option, handle_generated_option,
200         read_cmdline_option, set_option): Add diagnostic_context
201         parameter.  Update calls among these functions.
202         (set_option): Don't use global_dc.
203         * opts.c (read_cmdline_options): Pass global_dc to
204         read_cmdline_option.
205         (decode_options): Pass global_dc to enable_warning_as_error.
206         (common_handle_option): Pass global_dc to enable_warning_as_error.
207         (enable_warning_as_error): Add diagnostic_context parameter.
208         Document parameters.  Don't use global_dc.  Pass
209         diagnostic_context parameter to handle_generated_option.
210         * opts.h (set_option, handle_option, handle_generated_option,
211         read_cmdline_option, enable_warning_as_error): Add
212         diagnostic_context parameter.
213         * Makefile.in (lto-opts.o): Update dependencies.
214         * coretypes.h (struct diagnostic_context, diagnostic_context):
215         Declare here.
216         * diagnostic.h (diagnostic_context): Don't declare typedef here.
217         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
218         * langhooks-def.h (struct diagnostic_context): Don't declare here.
219         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
220         using diagnostic_context typedef.
221         * langhooks.c (lhd_initialize_diagnostics): Declare using
222         diagnostic_context typedef.
223         * langhooks.h (struct diagnostic_context): Don't declare here.
224         (initialize_diagnostics, print_error_function): Declare using
225         diagnostic_context typedef.
226         * lto-opts.c: Include diagnostic.h.
227         (lto_reissue_options): Pass global_dc to set_option.  Pass
228         DK_UNSPECIFIED not 0.
229         * plugin.c (plugins_internal_error_function): Declare using
230         diagnostic_context typedef.
231         * plugin.h (struct diagnostic_context): Don't declare here.
232         (plugins_internal_error_function): Declare using
233         diagnostic_context typedef.
234
235 2010-10-05  Olivier Hainque  <hainque@adacore.com>
236             Nicolas Roche  <roche@adacore.com>
237
238         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
239         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
240
241 2010-10-05  Ira Rosen  <irar@il.ibm.com>
242
243         PR tree-optimization/45752
244         * tree-vect-slp.c (vect_get_mask_element): Remove static
245         variables, make them function arguments.
246         (vect_transform_slp_perm_load): Pass new arguments to
247         vect_get_mask_element.
248
249 2010-10-05  Richard Guenther  <rguenther@suse.de>
250
251         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
252         (gimple_mod_pow2): Likewise.
253         (gimple_mod_subtract): Likewise.
254         (gimple_ic): Likewise.
255         (gimple_stringop_fixed_value): Likewise.
256         * tree-profile.c (tree_init_edge_profiler): Mark profile
257         functions nothrow and leaf.
258         (add_abnormal_goto_call_edges): Remove.
259         (tree_gen_edge_profiler): Work on SSA form.
260         (tree_gen_ic_profiler): Likewise.  Simplify.
261         (do_tree_profiling): Update SSA form.
262         (pass_tree_profile): Remove.
263         (do_tree_profiling): Likewise.
264         (gate_tree_profile_ipa): New function.
265         (pass_ipa_tree_profile): New.
266         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
267         state of instrumented functions.
268         * passes.c (init_optimization_passes): Remove early non-SSA
269         inlining.  Move profiling after early optimizations.
270         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
271         (pass_ipa_early_inline): Likewise.
272         * tree-pass.h (pass_ipa_early_inline): Remove.
273         (pass_tree_profile): Likewise.
274         (pass_ipa_tree_profile): Declare.
275
276 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
277             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
278
279         * gcc/config/s390/s390.c (z196_cost): New.
280         (s390_handle_arch_option): Add -march=z196.
281         (s390_option_override): Use the new cost function and use the z10
282         defaults also for z196.
283         (legitimate_reload_constant_p): Adjust comment.
284         (legitimate_reload_fp_constant_p): New function.
285         (s390_preferred_reload_class): Distingiush between FP and Int constants.
286         (preferred_la_operand_p): Avoid la with index on z196.
287         (s390_adjust_priority): Trigger also for z196.
288         (s390_issue_rate): Issue rate for z196 is 3.
289         (s390_z10_fix_long_loop_prediction): Rename to ...
290         (s390_fix_long_loop_prediction): ... this.
291         (s390_reorg): Apply the z10 adjustments also for z196.
292         (s390_loop_unroll_adjust): Do this also for z196.
293         * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
294         (enum processor_flags): Add PF_Z196.
295         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
296         (TARGET_CPU_Z196, TARGET_Z196): New macros.
297         * gcc/config.gcc: Enable z196 for --with-arch.
298         * gcc/config/s390/2817.md: New file.
299         * gcc/config/s390/2084.md: New type for multiply and add.
300         * gcc/config/s390/2097.md: Likewise.
301         * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
302         (UNSPECV_ATOMIC_OP): New constants.
303         (fmadddf, fmaddsf): New values for type attribute.
304         (z196prop): New insn attribute.
305         (cpu, cpu_facility): Add z196.
306         (ATOMIC_Z196): New code iterator.
307         (noxa): New code attribute.
308         (gk): New mode attribute.
309         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
310         Support load zero for fp constants.
311         (fixuns_truncdddi2, fixuns_trunctddi2)
312         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
313         for z196.
314         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
315         (popcounthi2, popcountqi2): New expander.
316         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
317         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
318         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
319         insn definition.
320         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
321         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
322         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc, *sub<mode>3)
323         (*sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly, *sub<mode>3_cc)
324         (*sub<mode>3_cc2, *sub<mode>3_cconly, *sub<mode>3_cconly2)
325         (*anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc, *andsi3_cconly)
326         (*andsi3_zarch, *andsi3_esa, *andhi3_zarch, *andqi3_zarch, *iordi3_cc)
327         (*iordi3_cconly, *iordi3, *iorsi3_cc, *iorsi3_cconly, *iorsi3_zarch)
328         (*iorhi3_zarch, *iorqi3_zarch, *xordi3_cc, *xordi3_cconly, *xordi3)
329         (*xorsi3_cc, *xorsi3_cconly, *xorsi3, *xorhi3, *xorqi3, *<shift><mode>3)
330         (*<shift><mode>3_and, *ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
331         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
332         Support new z196 instructions.
333
334 2010-10-05  Richard Guenther  <rguenther@suse.de>
335
336         PR middle-end/45877
337         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
338         case where gimplification optimizes away the stmt.
339
340 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
341
342         PR debug/45849
343         * var-tracking.c (strip_pointer_flags): New function.
344         (emit_note_insn_var_location): If rtx_equal_p check failed,
345         retry on locations simplified with simplify_replace_fn_rtx
346         and strip_pointer_flags as its callback.
347
348 2010-10-04  Jan Hubicka  <jh@suse.cz>
349
350         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
351         (can_refer_decl_in_current_unit_p): ... this one; reverse return
352         value; handle comdats too.
353         (canonicalize_constructor_val): Use it; handle function_decls
354         correctly.
355         (gimple_fold_obj_type_ref_known_binfo): Likewise.
356         * gimple.c (get_base_address): Accept all kinds of decls.
357
358 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
359
360         * flags.h (g_switch_value, g_switch_set): Remove.
361         * opts.c (g_switch_value, g_switch_set): Remove.
362         * config/g.opt (G): Add Var(g_switch_value).
363         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G
364         here.
365         (alpha_option_override): Check global_options_set.x_g_switch_value
366         instead of g_switch_set.
367         (alpha_in_small_data_p): Remove cast in comparison with
368         g_switch_value.
369         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
370         g_switch_value to unsigned HOST_WIDE_INT.
371         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
372         with g_switch_value.
373         (frv_handle_option): Don't handle -G here.
374         (frv_option_override): Check global_options_set.x_g_switch_value
375         instead of g_switch_set.  Don't modify g_switch_set.
376         (frv_in_small_data_p): Remove cast in comparison with
377         g_switch_value.
378         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
379         g_switch_value to unsigned HOST_WIDE_INT.
380         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
381         (ia64_option_override): Check global_options_set.x_g_switch_value
382         instead of g_switch_set.
383         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
384         Remove.
385         (lm32_in_small_data_p): Remove cast in comparison with
386         g_switch_value.
387         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
388         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
389         HOST_WIDE_INT.
390         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
391         (m32r_init): Check global_options_set.x_g_switch_value instead of
392         g_switch_set.
393         (m32r_in_small_data_p): Remove cast in comparison with
394         g_switch_value.
395         (m32r_file_start): Format g_switch_value with %d.
396         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
397         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned
398         HOST_WIDE_INT.
399         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
400         handle -G here.
401         (microblaze_option_override): Check
402         global_options_set.x_g_switch_value instead of g_switch_set.
403         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
404         (mips_option_override): Check global_options_set.x_g_switch_value
405         instead of g_switch_set.
406         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G
407         here.
408         (rs6000_file_start): Format g_switch_value with %d.
409         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
410         comparisons with g_switch_value.
411         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
412         global_options_set.x_g_switch_value instead of g_switch_set.
413         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
414         global_options_set.x_g_switch_value instead of g_switch_set.
415         * config/score/score.c (score_handle_option): Don't handle -G
416         here.
417         * config/score/score3.c (score3_option_override): Check
418         global_options_set.x_g_switch_value instead of g_switch_set.
419         * config/score/score7.c (score7_option_override): Check
420         global_options_set.x_g_switch_value instead of g_switch_set.
421
422 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
423
424         * common.opt (fira-coalesce): Remove.
425
426         * doc/invoke.texi (flag_ira_coalesce): Remove.
427
428         * ira-color.c (allocno_coalesced_p): Move before
429         copy_freq_compare_func.
430         processed_coalesced_allocno_bitmap): Ditto.
431         (update_conflict_hard_regno_costs): Don't use
432         ALLOCNO_FIRST_COALESCED_ALLOCNO.
433         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
434         (assign_hard_reg): Assume no coalesced allocnos.
435         (get_coalesced_allocnos_attributes): Remove.
436         (bucket_allocno_compare_func): Assume no coalesced allocnos.
437         (push_allocno_to_stack): Ditto.
438         (remove_allocno_from_bucket_and_push): Use
439         ira_print_expanded_allocno instead of print_coalesced_allocno.
440         (push_allocnos_to_stack): Assume uncoalesced allocnos.
441         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
442         all_conflicting_hard_regs.
443         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
444         (setup_allocno_left_conflicts_size): Ditto.
445         (put_allocno_into_bucket): Ditto.
446         (copy_freq_compare_func): Remove.
447         (copy_freq_compare_func, merge_allocnos): Move before
448         coalesced_pseudo_reg_freq_compare.
449         coalesced_allocno_conflict_p): Ditto.
450         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
451         parameter.  Assume it true.
452         (color_allocnos): Assume uncoalesced allocnos.  Use
453         ira_print_expanded_allocno instead of print_coalesced_allocno.
454         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
455         parameter.
456
457         * ira.c: Remove comment about coalescing.
458
459 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
460
461         * config/mips/mips.h (target_flags_explicit): Declare for
462         GENERATOR_FILE.
463
464 2010-10-04  Andi Kleen <ak@linux.intel.com>
465
466         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
467         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
468
469 2010-10-04  Matthias Klose  <doko@ubuntu.com>
470
471         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
472         multilib osdirname if it exists.
473         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
474
475 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
476
477         PR middle-end/45876
478         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
479         arg0's type or its unsigned counterpart as utype.  Convert
480         arg1 to utype unconditionally.
481
482 2010-10-04  Julian Brown  <julian@codesourcery.com>
483
484         * expr.c (expand_assignment): Add assertion to prevent emitting
485         null rtx for movmisalign pattern.
486         (expand_expr_real_1): Likewise.
487         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
488         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
489         (arm_vector_alignment_reachable): New.
490         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
491         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
492         (arm_print_operand): Include alignment qualifier in %A.
493         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
494         (movmisalign<mode>): New expander.
495         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
496         insn patterns.
497
498 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
499
500         * optc-gen.awk: Define global_options_set.  Don't define
501         target_flags_explicit.
502         * opth-gen.awk: Declare global_options_set.  Define
503         target_flags_explicit as macro.
504         * opts-common.c (handle_option): Take opts_set and generated_p
505         parameters.
506         (handle_generated_option, read_cmdline_option, set_option): Take
507         opts_set parameter.
508         (set_option): Use opts_set instead of hardcoding target_flags and
509         target_flags_explicit.
510         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
511         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
512         flag_value_profile_transformations_set, flag_peel_loops_set,
513         flag_branch_probabilities_set, flag_inline_functions_set,
514         flag_ipa_cp_set, flag_ipa_cp_clone_set,
515         flag_predictive_commoning_set, flag_unswitch_loops_set,
516         flag_gcse_after_reload_set): Remove.
517         (common_handle_option, lang_handle_option, target_handle_option):
518         Take opts_set parameter.  Assert that it is &global_options_set.
519         (common_handle_option): Don't set _set variables.  Check opts_set
520         instead of such variables.
521         (enable_warning_as_error): Pass &global_options_set to
522         handle_generated_option.
523         * opts.h (cl_option_handler_func.handler, set_option,
524         handle_option, handle_generated_option, read_cmdline_option): Add
525         opts_set parameters.
526         (handle_option): Add generated_p parameter.
527         * config/i386/i386.c (ix86_function_specific_save,
528         ix86_function_specific_restore): Updat for renaming of
529         target_flags_explicit field.
530         * config/i386/i386.opt (target_flags_explicit): Rename to
531         ix86_target_flags_explicit.
532         * config/ia64/ia64.c (ia64_override_options_after_change): Check
533         global_options_set.x_flag_selective_scheduling and
534         global_options_set.x_flag_selective_scheduling2, not
535         sel_sched_switch_set.
536         * flags.h (sel_sched_switch_set,
537         flag_speculative_prefetching_set): Remove.
538         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
539         that it is &global_options_set.
540         (process_command): Pass &global_options_set to
541         read_cmdline_option.
542         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
543         set_option.
544         * toplev.c (target_flags_explicit): Remove.
545
546 2010-10-04  Jan Hubicka  <jh@suse.cz>
547
548         PR middle-end/45871
549         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
550         use get_ref_base_and_offset to handle references.
551         (fold_const_aggregate_ref): Update.
552
553 2010-10-04  Martin Jambor  <mjambor@suse.cz>
554
555         PR tree-optimization/45572
556         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
557         ipa_check_create_node_params.
558         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
559
560 2010-10-04  Yao Qi  <yao@codesourcery.com>
561
562         * doc/passes.texi: Clean up.
563
564 2010-10-03  Ian Lance Taylor  <iant@google.com>
565
566         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
567         referring to a field using a typedef name.
568         (find_anonymous_field_with_type): New static function.
569         (convert_to_anonymous_field): New static function.
570         (convert_for_assignment): If -fplan9-extensions, permit converting
571         pointer to struct to pointer to anonymous field.
572         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous
573         fields.
574         (is_duplicate_field): New static function.
575         (detect_field_duplicates_hash): If -fplan9-extensions, check for
576         typedef names duplicating field names.
577         (detect_field_duplicates): Likewise.
578         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
579         (C Dialect Options): Document -fplan9-extensions.
580         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
581
582 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
583
584         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
585         revision 164914.
586         (vect_create_data_ref_ptr): Likewise.
587         * tree-vect-stmts.c (vectorizable_store): Likewise.
588         (perm_mask_for_reverse): Likewise.
589         (reverse_vec_elements): Likewise.
590         (vectorizable_load): Likewise.
591
592 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
593
594         * cppbuiltin.c: New file.
595         * cppbuiltin.h: New file.
596         * Makefile.in: Take into account cppbuiltin.{h,c}.
597
598 2010-10-03  Andi Kleen <ak@linux.intel.com>
599
600         * lto-cgraph.c (input_cgraph): Check for missing sections.
601
602 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
603
604         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 preticate
605         to nonimmediate_operand.  Force operand 2 to register when allowed.
606         (*<shiftrt_insn><mode>3_mask): Ditto.
607         (*<rotate_insn><mode>3_mask): Ditto.
608
609 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
610
611         PR tree-optimization/45720
612         PR tree-optimization/45764
613         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
614         Don't accept backwards consecutive accesses.
615         (vect_create_data_ref_ptr): Disallow negative steps.
616
617         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
618         (perm_mask_for_reverse): Removed.
619         (reverse_vec_elements): Likewise.
620         (vectorizable_load): Don't handle negative steps.
621
622 2010-10-02  Jan Hubicka  <jh@suse.cz>
623
624         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
625         call destination is known.
626
627 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
628
629         PR target/45820
630         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
631         earlier.
632
633 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
634
635         * doc/install.texi (Configuration): Document build_configargs,
636         host_configargs, target_configargs.
637
638 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
639
640         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
641         (*<shiftrt_insn><mode>3_mask): Ditto.
642         (*<rotate_insn><mode>3_mask): Ditto.
643
644 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
645
646         PR tree-optimization/44716
647         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
648         (HOT_TEXT_SECTION_NAME): Define.
649
650 2010-10-01  Nick Clifton  <nickc@redhat.com>
651
652         * common.opt: Add -fcombine-stack-adjustments.
653         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
654         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
655         flag_combine_stack_adjustments.
656         * doc/invoke.texi: Document the new option.
657
658 2010-10-01  Richard Guenther  <rguenther@suse.de>
659
660         PR tree-optimization/45854
661         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
662
663 2010-10-01  Anthony Green  <green@moxielogic.com>
664
665         * config.gcc: Fix moxie-*-rtems* configuration.
666
667 2010-10-01  Richard Guenther  <rguenther@suse.de>
668
669         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
670         (gen_decl_die): Likewise.
671
672 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
673
674         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
675         to the function code for SPU MD builtins.
676         (spu_expand_builtin): Update.
677         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
678
679 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
680
681         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
682         sjlj_except_unwind_info.
683
684 2010-10-01  Tristan Gingold  <gingold@adacore.com>
685
686         * configure.ac: Define the nop insn for avr*-*-*
687         * configure: Regenerate.
688
689 2010-10-01  Alan Modra  <amodra@gmail.com>
690
691         PR target/45807
692         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
693         extend toc_restore_insn.
694
695 2010-09-30  Richard Guenther  <rguenther@suse.de>
696
697         PR tree-optimization/43959
698         * function.c (gimplify_parameters): Use create_tmp_reg instead of
699         create_tmp_var.
700
701 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
702
703         * config/sh/sh.c (sh_expand_prologue): Set
704         current_function_static_stack_size.
705
706 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
707
708         * configure.ac: Check for Solaris 8 ld with .hidden support.
709         * configure: Regenerate.
710
711 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
712
713         PR middle-end/45758
714         * graphite.c (graphite_initialize): Call scev_reset.
715
716 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
717
718         * sese.h (scev_analyzable_p): Return false for real or floating
719         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
720
721 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
722
723         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
724         and ps.
725         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
726         domain.
727         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
728         Do not allocate ub_expr, it is passed in initialized.
729
730 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
731
732         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
733         (build_cloog_prog): Dump CLooG input file when
734         flag_graphite_dump_cloog is set.  This is disabled on trunk.
735         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
736
737 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
738
739         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
740         verify_dominators for CDI_POST_DOMINATORS.
741         * sese.h: Remove comment about CDI_POST_DOMINATORS.
742         (recompute_all_dominators): Remove call to free_dominance_info
743         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
744         for CDI_POST_DOMINATORS.
745
746 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
747
748         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
749         over pbb_dim_iter_domain.
750
751 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
752
753         * graphite-flattening.c: Fix comments.
754
755 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
756
757         * Makefile.in (OBJS-common): Add graphite-flattening.o.
758         (graphite-flattening.o): New rule.
759         * common.opt (floop-flatten): New flag.
760         * doc/invoke.texi (-floop-flatten): Documented.
761         * graphite-flattening.c: New.
762         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
763         * graphite-poly.h (flatten_all_loops): Declared.
764         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
765         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
766         is set, also set flag_graphite.
767
768 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
769
770         * graphite-poly.c (cloog_checksum): New.
771         * graphite-poly.h (cloog_checksum): Declared.
772
773 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
774
775         * graphite-poly.c (pbb_number_of_iterations): Removed.
776         (pbb_number_of_iterations_at_time): Correctly compute the number
777         of iterations in the transformed loop.
778         * graphite-poly.h (pbb_number_of_iterations): Removed.
779
780 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
781
782         * graphite-poly.h (lst_update_scattering_seq): Removed.
783         (lst_update_scattering): Correctly handle outermost loop dewey
784         renumbering.
785
786 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
787
788         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
789         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
790         * graphite-poly.h (lst_niter_for_loop): New.
791
792 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
793
794         * graphite-poly.c (apply_poly_transforms): Do not abort when the
795         transform read from disk is not legal.  Call fatal_error instead.
796
797 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
798
799         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
800         (print_scop_header): Removed.  Inlined in the only call place...
801         (print_scop): ... here.
802
803 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
804
805         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
806
807 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
808
809         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
810
811 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
812
813         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
814         (dot_deps_stmt): Same.
815         * graphite-poly.c (dot_lst): Same.
816
817 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
818
819         * graphite-blocking.c (scop_do_strip_mine): Do not call
820         graphite_legal_transform.
821         (scop_do_block): Same.
822
823 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
824
825         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
826         description.
827
828 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
829
830         * tree-scalar-evolution.c (instantiate_array_ref): New.
831         (instantiate_scev_r): Also handle ARRAY_REFs.
832
833 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
834
835         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
836         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
837         RESULT_DECL, and FIELD_DECL.  Return false for an
838         SSA_NAME_IS_DEFAULT_DEF.
839         (compute_scalar_evolution_in_loop): Do not further analyze the
840         scalar evolution when no_evolution_in_loop_p returns true.
841
842 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
843
844         * tree-chrec.h (evolution_function_is_affine_p): Do not check
845         whether CHREC_LEFT is invariant.  A function is affine when
846         CHREC_RIGHT is invariant.
847
848 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
849
850         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
851         is_gimple_reg.
852         (rewrite_degenerate_phi): Same.
853         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
854
855 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
856
857         * graphite-scop-detection.c (graphite_can_represent_scev,
858         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
859         graphite_can_represent_loop): Remove outermost_loop.
860
861 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
862
863         PR middle-end/45229
864         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
865         handle GIMPLE_CALLs with no LHS.
866
867 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
868
869         * graphite-poly.c (init_graphite_out_file): New.
870         (init_graphite_in_file): New.
871         (apply_poly_transforms): Updated to enable reading and writing of
872         multiple scop files.
873
874 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
875
876         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
877         redundant checks.
878
879 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
880
881         * graphite-clast-to-gimple.c (precision_for_value): Adjust
882         computation of precision by 1.
883
884 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
885
886         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
887         (openscop_read_polyhedron_matrix): New.
888         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
889         (openscop_read_N_int): Same.
890         * graphite-poly.c (openscop_read_N_int): New.
891         (openscop_read_one_int): New.
892         (openscop_read_N_string): New.
893         (openscop_read_one_string): New.
894         (openscop_read_powerset_matrix): New.
895         (graphite_read_transforms): Remove.
896         (graphite_read_scatt): New.
897         (graphite_read_scop_file): New.
898         (apply_poly_transforms): Updated to call graphite_read_scop_file.
899
900 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
901
902         * graphite-poly.c: Change include order.
903
904 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
905
906         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
907         (cloog_matrix_nrows): New.
908
909 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
910
911         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
912         from matrix lines.
913         * graphite-poly.c (openscop_print_scattering_function_1): Same.
914         (print_scattering_function_1): Same.
915         (openscop_print_pbb_domain): Same.
916         (openscop_print_scop_context): Same.
917         (print_scop_context): Same.
918
919 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
920
921         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
922         (openscop_print_pdr_polyhedron): Print pph.
923
924 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
925
926         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
927         priority signed types.
928
929 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
930
931         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
932         the call to lang_hooks.types.type_for_size.  Call
933         build_nonstandard_integer_type.
934
935 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
936
937         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
938         (openscop_print_polyhedron_matrix): New.
939         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
940         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
941         (openscop_print_pdr_powerset): New.
942         (openscop_print_powerset_matrix): New.
943         (openscop_print_scattering_function_1): New.
944         (print_scattering_function): Add support for scattering names and
945         OpenScop format.
946         (graphite_write_transforms): Remove.
947         (print_pdr_access_layout): Updated to support OpenScop format.
948         (print_pdr): Same.
949         (openscop_print_pbb_domain): New.
950         (print_pbb_body): Added a parameter to allow indicating that pbb_body
951         is not provided.
952         (print_pbb): Updated to call the new print_pbb_body.
953         (openscop_print_scop_context): New.
954         (print_scop_header): New.
955         (print_scop): Updated to call print_scop_header.
956         * graphite-poly.h: Document OpenScop format.
957
958 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
959
960         * config/cris/m32c.c (cris_memory_move_cost): New.
961         (cris_register_move_cost): Make static. Change arguments type from
962         enum reg_class to reg_class_t.
963         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
964         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
965         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
966
967 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
968
969         PR target/45843
970         * config/i386/i386.c (ix86_gimplify_va_arg): Use
971         INTVAL (XEXP (slot, 1)) as prev_size.
972
973 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
974
975         PR target/45837
976         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
977         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
978         defined.
979         * config/rs6000/option-defaults.h (toplevel): Change #if
980         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
981         global option changes.
982
983 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
984
985         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
986
987         PR tree-optimization/31261
988         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
989         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
990
991 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
992
993         PR bootstrap/45796
994         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
995         special-casing for generators and turn into ...
996         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
997         rule, for better error messages in case of toplevel dependency errors.
998         (genprog): Add hooks, rename to ...
999         (genprogerr): ... this, and let genprog also contain check,
1000         checksum, condmd.
1001         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
1002         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
1003         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
1004
1005 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
1006             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1007
1008         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
1009         for GMP, MPFR and MPC.
1010
1011 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1012
1013         * config/sparc/sparc.opt (mimpure-text): Move ...
1014         * config/sol2.opt: ... here.  Correct description.
1015         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
1016         * doc/invoke.texi (Option Summary, SPARC Options): Move
1017         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
1018         (Option Summary, Solaris 2 Options): ... here.
1019         (Submodel Options, Solaris 2 Options): New menu entry.
1020         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
1021         (Solaris 2 Options): ... here.
1022
1023 2010-09-30  Michael Eager  <eager@eagercon.com>
1024
1025         * extend.texi (interrupt_handler): Add MicroBlaze to list.
1026         (save_volatiles): Describe option for MicroBlaze.
1027         * invoke.texi: Add MicroBlaze Options.
1028         * contrib.texi: Add acknowledgment.
1029         * md.texi: Add MicroBlaze d and z constraints.
1030         * install.texi: Add microblaze-*-elf.
1031         * configure.ac: Add microblaze-*-* to target list.
1032         * configure: Regenerate.
1033         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
1034         * config/microblaze/microblaze-protos.h: New.
1035         * config/microblaze/crti.s: New.
1036         * config/microblaze/predicates.md: New.
1037         * config/microblaze/linux.h: New.
1038         * config/microblaze/microblaze.md: New.
1039         * config/microblaze/constraints.md: New.
1040         * config/microblaze/crtn.s: New.
1041         * config/microblaze/microblaze.opt: New.
1042         * config/microblaze/microblaze-c.c: New.
1043         * config/microblaze/t-microblaze: New.
1044         * config/microblaze/microblaze.c: New.
1045         * config/microblaze/microblaze.h: New.
1046
1047 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
1048
1049         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
1050         parse @optional/@required and set the flags as appropriate.
1051
1052 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
1053
1054         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
1055
1056 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
1057
1058         * opt-functions.awk (static_var): Update comment.
1059         (var_ref): Return offsetof expression or -1, not variable address.
1060         * optc-gen.awk: Generate structure field initializers instead of
1061         static variables.  Expect -1 for missing variables instead of null
1062         pointer.  Add gcc_options parameters to generated functions.
1063         * opth-gen.awk: Generate structure fields for static variables.
1064         Add gcc_options parameters to generated functions.
1065         * common.opt (optimize, optimize_size): Add variables.
1066         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
1067         &global_options to cl_target_option_restore.
1068         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
1069         &global_options to cl_optimization_restore, cl_target_option_save
1070         and cl_target_option_restore.
1071         (ix86_set_current_function): Pass &global_options to
1072         cl_target_option_restore.
1073         * config/pdp11/pdp11.h (optimize): Remove.
1074         * config/rs6000/rs6000.h (optimize): Remove.
1075         * config/sh/sh.h (optimize): Remove.
1076         * config/xtensa/xtensa.h (optimize): Remove.
1077         * coretypes.h (struct gcc_options): Declare.
1078         * diagnostic.c (diagnostic_initialize): Initialize
1079         context->option_state.
1080         (diagnostic_report_diagnostic): Pass option_state to
1081         option_enabled hook.
1082         * diagnostic.h (diagnostic_context.option_enabled): Add void *
1083         parameter.
1084         (diagnostic_context.option_state): New field.
1085         * final.c (final_start_function, final, final_scan_insn): Rename
1086         optimize parameter to optimize_p.
1087         * flags.h (optimize, optimize_size): Remove.
1088         * function.c (invoke_set_current_function_hook): Pass
1089         &global_options to cl_optimization_restore.
1090         * gcc.c (driver_handle_option): Take gcc_options parameter.
1091         Assert that it is &global_options.
1092         (process_command): Pass &global_options to read_cmdline_option.
1093         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
1094         option_enabled.
1095         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
1096         &global_options to set_option.
1097         * opts-common.c (handle_option, handle_generated_option,
1098         read_cmdline_option, set_option): Take explicit gcc_options
1099         parameters.  Use option_flag_var.
1100         (option_flag_var): New.
1101         * opts.c (common_handle_option, lang_handle_option,
1102         target_handle_option): Take gcc_options parameter.  Assert that it
1103         is &global_options.
1104         (read_cmdline_options): Pass &global_options to read_cmdline_option.
1105         (print_filtered_help): Use option_flag_var.  Pass &global_options
1106         to option_enabled.
1107         (common_handle_option): Use option_flag_var.
1108         (option_enabled): Take opts parameter.  Use option_flag_var.
1109         (get_option_state): Take gcc_options parameter.  Use
1110         option_flag_var.  Pass gcc_options parameter to option_enabled.
1111         (enable_warning_as_error): Pass &global_options to
1112         handle_generated_option.
1113         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
1114         (cl_option_handler_func.handler): Take gcc_options parameter.
1115         (option_enabled, get_option_state, set_option, handle_option,
1116         handle_generated_option, read_cmdline_option): Take gcc_options
1117         parameters.
1118         * toplev.c (optimize, optimize_size): Remove.
1119         (print_switch_values): Pass &global_options to option_enabled.
1120         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
1121         to get_option_state.
1122         (general_init): Initialize global_dc->option_state.
1123         * tree.c (build_optimization_node): Pass &global_options to
1124         cl_optimization_save.
1125         (build_target_option_node): Pass &global_options to
1126         cl_target_option_save.
1127
1128 2010-09-30  Martin Jambor  <mjambor@suse.cz>
1129
1130         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
1131         zero sized bit-fields.
1132
1133 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1134
1135         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
1136         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
1137         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
1138         (c_parser_objc_class_declaration): Same change.
1139         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
1140         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
1141         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
1142         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
1143         and RID_AT_PUBLIC instead of RID_PUBLIC.
1144         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
1145         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
1146
1147 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
1148
1149         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
1150         Add links to current providers of packages for Solaris and IRIX.
1151
1152 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1153
1154         Merge from 'apple/trunk' branch on FSF servers.
1155         * c-parser.c: Applied change originally in c-parse.in.
1156
1157         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
1158
1159         Radar 4281748
1160         * c-decl.c (start_decl): Check for redeclaration of class name.
1161         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
1162
1163 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
1164
1165         * config/ia64/ia64.c (ia64_builtin_decl): New.
1166         (TARGET_BUILTIN_DECL): Define.
1167         (ia64_builtins): New.
1168         (ia64_init_builtins): Save decls in ia64_builtins.
1169
1170 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
1171
1172         PR target/40457
1173         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
1174         (move2add_use_add3_insn): Likewise.
1175         (reload_cse_move2add): Likewise.
1176         * rtlanal.c (get_full_rtx_cost): New function.
1177         * rtl.h (struct full_rtx_costs): New.
1178         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
1179         costs_add_n_insns): New inline functions.
1180         (get_full_rtx_cost): Declare.
1181
1182         PR c/45054
1183         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
1184         invariants.  Check for reg_equiv_invariant.
1185         (reload): Assert that spilled_pseudos is empty when returning.
1186
1187 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
1188
1189         * config/i386/mingw32.h (TARGET_64BIT): replaced by
1190         TARGET_64BIT_DEFAULT in #if check.
1191
1192 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
1193
1194         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
1195
1196 2010-09-29  Mike Stump  <mikestump@comcast.net>
1197
1198         * config/darwin.h (flag_mkernel): Remove.
1199         (flag_apple_kext): Likewise.
1200
1201 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
1202             Jack Howarth <howarth@bromo.med.uc.edu>
1203
1204         * config/darwin.opt (undefined): Add.
1205
1206 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
1207
1208         PR testsuite/45664
1209         * configure.ac: Add --enable-indirect-function option.
1210         * config.gcc: Add default_gnu_indirect_function.
1211         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
1212         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
1213         * varasm.c (do_assemble_alias): Adjust for macro name change.
1214         * configure: Rebuilt.
1215         * doc/install.texi: Document --enable-indirect-function.
1216
1217 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
1218
1219         * doc/options.texi (Variable, Var, Init): Update documentation
1220         without reference to VarExists.
1221         (VarExists): Remove.
1222         * common.opt, config/i386/i386.opt, config/linux.opt,
1223         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
1224         Don't use VarExists.
1225
1226 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
1227
1228         * optc-gen.awk: Generate global_options initializer instead of
1229         individual variables.  Add x_ prefix to names of structure members.
1230         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
1231         names of structure members.
1232         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1233         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
1234         * doc/tm.texi: Regenerate.
1235         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1236         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
1237         * c-parser.c (disable_extension_diagnostics,
1238         restore_extension_diagnostics): Update names of cpp_options members.
1239         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1240         * common.opt (fcompare-debug-second): Don't use Var.
1241         * config/alpha/alpha.h (target_flags): Remove.
1242         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1243         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
1244         * config/bfin/bfin.h (target_flags): Remove.
1245         * config/cris/cris.h (target_flags): Remove.
1246         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
1247         cl_target_option members.
1248         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
1249         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
1250         ix86_can_inline_p): Update names of cl_target_option members.
1251         * config/i386/i386.h (ix86_isa_flags): Remove.
1252         * config/lm32/lm32.h (target_flags): Remove.
1253         * config/mcore/mcore.h (mcore_stack_increment): Remove.
1254         * config/mcore/mcore.md (addsi3): Remove extern declaration of
1255         flag_omit_frame_pointer.
1256         * config/mep/mep.h (target_flags): Remove.
1257         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1258         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
1259         * config/mmix/mmix.h (target_flags): Remove.
1260         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
1261         flag_expensive_optimizations): Remove.
1262         * config/s390/s390.h (flag_pic): Remove.
1263         * config/score/score-conv.h (target_flags): Remove.
1264         * config/sh/sh.h (sh_fixed_range_str): Remove.
1265         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
1266         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
1267         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1268         * diagnostic.c (diagnostic_initialize): Update names of
1269         diagnostic_context members.
1270         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
1271         warn_system_headers.
1272         (diagnostic_report_warnings_p): Update for new names.
1273         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
1274         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
1275         HARD_FRAME_POINTER_IS_ARG_POINTER.
1276         * flags.h (flag_compare_debug): Declare.
1277         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1278         * opts.c (flag_compare_debug): Define.
1279         (common_handle_option): Update names of diagnostic_context
1280         members.  Handle -fcompare-debug-second.
1281         (fast_math_flags_struct_set_p): Update names of cl_optimization
1282         members.
1283         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1284         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1285         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1286         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1287         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1288         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1289         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
1290         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1291         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
1292
1293 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
1294
1295         * config/picochip/picochip.c (picochip_output_internal_label):
1296         This function can now be called for debug CFI labels, which can come
1297         in the middle of a vliw instruction.  Postpone until end of vliw.
1298
1299 2010-09-29  Richard Guenther  <rguenther@suse.de>
1300
1301         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
1302         (DECL_FILE_SCOPE_P): Use it.
1303         (TYPE_FILE_SCOPE_P): New macro.
1304
1305 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1306
1307         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
1308         a CPP_NAME which is a reserved word, clearly separate cases for
1309         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
1310
1311 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1312
1313         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
1314         token->value with the canonical spelling.  Do exactly like C and
1315         C++ and leave it as it is.
1316
1317 2010-09-28  Richard Henderson  <rth@redhat.com>
1318
1319         * config/alpha/alpha.c (alpha_builtins): New.
1320         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
1321         (alpha_builtin_function): New.
1322         (alpha_add_builtins, alpha_init_builtins): Use it.
1323
1324 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1325
1326         * doc/standards.texi (Standards): Expanded the section on
1327         Objective-C and Objective-C++.
1328
1329 2010-09-28  DJ Delorie  <dj@redhat.com>
1330
1331         PR target/45800
1332         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
1333         volatile MEMs.
1334
1335 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1336
1337         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
1338         attributes on methods.
1339          (c_parser_objc_method_definition): Handle attributes.
1340         (c_parser_objc_methodproto): Likewise.
1341         (c_parser_objc_maybe_method_attributes): New.
1342         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
1343         missing definition, similar to that in ObjC++.
1344
1345 2010-09-28  Richard Henderson  <rth@redhat.com>
1346
1347         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
1348         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1349         (CONFIG_SJLJ_EXCEPTIONS): Remove.
1350         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
1351         (STACK_CHECK_PROTECT): Likewise.
1352         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
1353         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
1354         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
1355         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
1356         (dwarf2out_assembly_start): Likewise.
1357         * except.c (init_eh): Use targetm.except_unwind_info.
1358         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
1359         (output_one_function_exception_table): Likewise.
1360         * final.c: Unconditionally include dwarf2out.h.
1361         (final_start_function): Unconditionally call dwarf2out routines.
1362         (final_end_function, final_scan_insn): Likewise.
1363         * function.c (expand_function_end): Use targetm.except_unwind_info.
1364         * opts.c (decode_options): Use targetm.except_unwind_info.
1365         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
1366         * target.def (debug_unwind_info, except_unwind_info): New.
1367         * target.h (enum unwind_info_type): New.
1368         * targhooks.c (default_debug_unwind_info): New.
1369         (default_except_unwind_info): New.
1370         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
1371         * targhooks.h: Declare them.
1372         * tree-tailcall.c: Include "target.h"
1373         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
1374         * Makefile.in (tree-tailcall.o): Update.
1375         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
1376         (lhd_gcc_personality): Likewise.
1377
1378         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
1379         (TARGET_EXCEPT_UNWIND_INFO): New.
1380         (DWARF2_UNWIND_INFO): Update.
1381         (TARGET_DEBUG_UNWIND_INFO): New.
1382         * doc/tm.texi: Rebuild.
1383
1384         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
1385         targetm.except_unwind_info.
1386
1387         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
1388         (arm_except_unwind_info): New.
1389         (arm_compute_func_type): Use it.
1390         (arm_expand_prologue, thumb_pushpop): Likewise.
1391         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
1392         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
1393         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
1394         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
1395         (DWARF2_UNWIND_INFO): Remove.
1396         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1397         (ARM_EABI_UNWIND_TABLES): Remove.
1398
1399         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
1400         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
1401         (ia64_except_unwind_info): New.
1402         (ia64_output_function_prologue): Use it.
1403         (ia64_add_bundle_selector_before): Likewise.
1404         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
1405         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
1406         (TARGET_UNWIND_INFO): Remove.
1407
1408         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
1409
1410 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1411
1412         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
1413         (c_parser_objc_protocol_definition): Likewise.
1414         (c_parser_external_declaration): Provide dummy attribute arguments.
1415         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
1416         (c_parser_objc_class_definition): Handle attributes.
1417         (c_parser_objc_protocol_definition): Likewise.
1418
1419 2010-09-28  Tobias Burnus  <burnus@net-b.de>
1420
1421         PR fortran/40569
1422         PR fortran/40568
1423         * toplev.h (save_decoded_options, save_decoded_options_count):
1424         New global variables.
1425         * toplev.c (save_decoded_options, save_decoded_options_count):
1426         Export variables.
1427
1428 2010-09-28  Ian Lance Taylor  <iant@google.com>
1429
1430         * config/i386/i386.c (ix86_supports_split_stack): Test
1431         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
1432
1433 2010-09-28  Ian Lance Taylor  <iant@google.com>
1434
1435         PR target/45815
1436         * opts.c (decode_options): Don't test whether the target supports
1437         split stack if flag_split_stack == 0.
1438
1439 2010-09-28  Jan Hubicka  <jh@suse.cz>
1440
1441         * builtin-attrs.def (ATTR_LEAF): New attribute.
1442         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
1443         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
1444         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
1445         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
1446         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
1447         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
1448         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
1449         * sync-builtins.def: Annotate all builtins by leaf.
1450         * omp-builtins.def: Annotate all builtins by leaf.
1451         * builtins.def: Annotate relevant builtins with leaf attribute.
1452         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
1453         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
1454         leaf.
1455
1456 2010-09-28  Jan Hubicka  <jh@suse.cz>
1457
1458         * tree-ssa-ccp.c (fold_ctor_reference): New function.
1459         (fold_const_aggregate_ref): Use it.
1460         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
1461         into external static.
1462
1463 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1464
1465         PR target/44452
1466         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
1467         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
1468         (ix86_solaris_return_in_memory): Remove.
1469         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
1470         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
1471         (TARGET_SUBTARGET_DEFAULT): Redefine.
1472         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
1473         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
1474         (TARGET_SUBTARGET_DEFAULT): Redefine.
1475         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
1476         -mvect8-ret-in-mem.
1477         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
1478
1479 2010-09-29  Alan Modra  <amodra@gmail.com>
1480
1481         PR target/45807
1482         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
1483         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
1484         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
1485         Delete.
1486         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
1487         (rs6000_emit_prologue): Don't just create frame save info for r2,
1488         actually save r2.
1489
1490 2010-09-28  Richard Henderson  <rth@redhat.com>
1491
1492         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
1493         when 8 bytes are requested.
1494
1495 2010-09-28  Tristan Gingold  <gingold@adacore.com>
1496
1497         * config/avr/avr.c (expand_prologue): Set
1498         current_function_static_stack_size.
1499
1500 2010-09-28  Tristan Gingold  <gingold@adacore.com>
1501
1502         * config/alpha/alpha.md: Change the initial condition of the
1503         probing loop.
1504
1505 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
1506
1507         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
1508         Split from *avx_<maxmin:code><mode>3.
1509         (*avx_<smaxmin:code><mode>3): Ditto.
1510         * config/i386/i386.md (maxmin): Remove code iterator.
1511
1512 2010-09-27  Ian Lance Taylor  <iant@google.com>
1513
1514         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
1515         requires assembler support for CFI directives.
1516
1517 2010-09-27  Richard Henderson  <rth@redhat.com>
1518
1519         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
1520
1521 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
1522
1523         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
1524         that AFTER is not in the range FROM..TO, inclusive.
1525
1526 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
1527             Bernd Schmidt  <bernds@codesourcery.com>
1528
1529         PR rtl-optimization/45792
1530         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
1531         If not all insns are to be merged, for each edge, stash the
1532         next candidate after the to-be-merged insns before doing the
1533         merge, and use them for the retry at the new insertion point.
1534         Handle CC0 targets when retrying.
1535
1536 2010-09-27  Ian Lance Taylor  <iant@google.com>
1537
1538         * common.opt (fsplit-stack): New option.
1539         * opts.c (decode_options): Set flag_split_stack to final value.
1540         * target.def (supports_split_stack): New hook.
1541         * gcc.c (STACK_SPLIT_SPEC): Define.
1542         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
1543         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
1544         (Code Gen Options): Document -fsplit-stack.
1545         * doc/extend.texi (Function Attributes): Mention no_split_stack.
1546         (Function Attributes): Document no_split_stack.
1547         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
1548         TARGET_SUPPORTS_SPLIT_STACK.
1549         * doc/tm.texi: Rebuild.
1550         * function.c (thread_prologue_and_epilogue_insns): If
1551         flag_split_stack, add split stack prologue.
1552         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
1553         * varasm.c (saw_no_split_stack): New static variable.
1554         (assemble_start_function): Set saw_no_split_stack if the function
1555         has the no_split_stack attribute.
1556         (file_end_indicate_split_stack): New function.
1557         * output.h (file_end_indicate_split_stack): Declare.
1558         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
1559         and function.
1560         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
1561         routines.
1562         * config/i386/i386.c (ix86_option_override_internal): Don't set
1563         expand_builtin_va_start to NULL if -fsplit-stack.
1564         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
1565         -fsplit-stack.
1566         (ix86_va_start): If -fsplit-stack, get overflow pointer from
1567         scratch register set by prologue.
1568         (ix86_code_end): If -fsplit-stack, call
1569         file_end_indicate_split_stack.
1570         (ix86_supports_split_stack): New static function.
1571         (SPLIT_STACK_AVAILABLE): Define.
1572         (split_stack_prologue_scratch_regno): New static function.
1573         (split_stack_fn): New static variable.
1574         (ix86_expand_split_stack_prologue): New function.
1575         (ix86_live_on_entry): New static function.
1576         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
1577         (output_pic_addr_const): Likewise.
1578         (i386_asm_output_addr_const_extra): Likewise.
1579         (ix86_expand_call): Change return type to rtx.  Return the new
1580         call instruction.
1581         (TARGET_SUPPORTS_SPLIT_STACK): Define.
1582         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1583         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
1584         (split_stack_prologue, split_stack_return): New insns.
1585         (split_stack_space_check): New insn.
1586         * config/i386/i386.h (struct machine_function): Add
1587         split_stack_varargs_pointer field.
1588         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
1589         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1590         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
1591         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1592         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
1593         Declare.
1594         (ix86_expand_call): Update declaration.
1595
1596 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1597
1598         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
1599         code.  Added byref, which was missing in the list of codes.
1600         Explain that enumeration values are encoded as the integer type
1601         that the compiler uses to store them.  Explain and make examples
1602         of how 'const' interacts with pointers, and the complication of
1603         the encoding of 'const char *'.
1604         (Legacy type encoding): New subsection, explaining that GCC emits
1605         incorrect type encodings for the NeXT runtime for compatibility
1606         reasons.
1607         (@@encode): New subsection, explaining @encode and particularly
1608         that protocol qualifiers are not recognized inside an @encode()
1609         expression.
1610         (Method signatures): New subsection, explaining how method
1611         signatures are encoded.
1612
1613 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1614
1615         Merge from 'apple/trunk' branch on FSF servers.  Removed small
1616         change in build_conditional_expr that had been added when fixing
1617         PR objc/27377 and which did the same check in a less complete way.
1618
1619         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
1620
1621         Radar 4229905
1622         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
1623         looking for objective-c common pointer types.
1624
1625         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
1626
1627         Radar 4154928
1628         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
1629         use their ObjC common type.
1630
1631 2010-09-27  Richard Guenther  <rguenther@suse.de>
1632
1633         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
1634
1635 2010-09-27  Jie Zhang  <jie@codesourcery.com>
1636
1637         * print-tree.c (print_node): Print in-constant-pool.
1638
1639 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
1640
1641         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
1642         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
1643         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
1644         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
1645
1646 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
1647
1648         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
1649         from pro_epilogue_adjust_stack_<mode>_{1,2}.
1650         (pro_epilogue_adjust_stack_<mode>_add): Rename from
1651         pro_epilogue_adjust_stack_<mode>_3.
1652         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
1653         renamed pro_epilogue_adjust_stack_{si,di}_add.
1654         (ix86_expand_prologue): Use indirect functions.  Update for renamed
1655         pro_epilogue_adjust_stack_{si,di}_sub.
1656
1657 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
1658
1659         * config/i386/i386.md (movmsk_df): New insn.
1660         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
1661         sequence for TARGET_SSE_MATH.
1662
1663 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
1664
1665         * config/mips/mips.c (mips_builtin_decls): Declare.
1666         (mips_init_builtins): Store function declarations in
1667         mips_builtin_decls.
1668         (mips_builtin_decl): New function.
1669         (TARGET_BUILTIN_DECL): Define.
1670
1671 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
1672             Richard Henderson  <rth@redhat.com>
1673
1674         * config/i386/cygwin.asm: Include auto-host.h.
1675         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
1676         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
1677         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
1678         alignment code from the 64-bit path.  Use gas local labels.
1679         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
1680         from _di_2.  Remove the useless constant integer argument.
1681         (pro_epilogue_adjust_stack_<mode>_3): New.
1682         (allocate_stack_worker_probe_<mode>): Macroize from
1683         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
1684         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
1685         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
1686         (__chkstk_ms): New function.
1687         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
1688         * gcc/config/i386/t-interix: Likewise.
1689         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
1690         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1691         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
1692         * configure, config.in: Rebuild.
1693
1694 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1695
1696         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
1697         statements because of the return slot optimization.
1698
1699 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
1700
1701         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
1702         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
1703         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1704         (class_likely_spilled_p): Rename to...
1705         (avr_class_likely_spilled_p): ...this. Make static. Change argument
1706         type to reg_class_t.
1707
1708 2010-09-24  Jan Hubicka  <jh@suse.cz>
1709
1710         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
1711         (lto_symtab_resolve_symbols): Set it.
1712         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
1713         store resolution field in cgraph/varpool.
1714         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
1715         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
1716         (cgraph_dump_node): Drop used_from_object_file.
1717         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
1718         (cgraph_function_body_availability): Use decl_replaceable_p.
1719         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
1720         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
1721         cgraph_used_from_object_file_p.
1722         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
1723         cgraph_used_from_object_file_p.
1724         (resolution_used_from_other_file_p): New functoin.
1725         (cgraph_used_from_object_file_p): New predicate.
1726         * cgraph.h: Include plugin-api.h
1727         (struct cgraph_local_info): Remove used_from_object_file.
1728         (struct cgraph_node): Add resolution field.
1729         (struct varpool_node): Likewise; remove used_from_object_file;
1730         reove const_value_known.
1731         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
1732         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
1733         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1734         varpool_used_from_object_file_p): Declare.
1735         (varpool_get_node, varpool_extra_name_alias): Update prototype.
1736         * tree.h (DECL_REPLACEABLE_P): Remove.
1737         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
1738         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
1739         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
1740         input_overwrite_node, input_node, input_varpool_node): Stream
1741         resolution.
1742         * expr.c (expand_expr_real_1): Use const_value_known_p
1743         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
1744         const_value_known.
1745         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
1746         (function_and_variable_visibility): Set resolution for local vars
1747         and functions; use varpool_used_from_object_file_p.
1748         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
1749         static functions.
1750         (default_binds_local_p_1): Use resolutoin info.
1751         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
1752         * varpool.c (varpool_get_node): Constify.
1753         (const_value_known_p): Do not use vnode->const_value_known;
1754         use decl_replaceable_p.
1755         (varpool_finalize_decl): Do not set const_value_known.
1756         (cgraph_variable_initializer_availability): Use decl_replaceable_p
1757         (varpool_extra_name_alias): Return new node.
1758         (varpool_used_from_object_file_p): New function.
1759
1760 2010-09-24  Richard Henderson  <rth@redhat.com>
1761
1762         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
1763         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
1764         (do_spill): Use REG_CFA_OFFSET.
1765         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
1766         as appropriate.
1767         (ia64_expand_epilogue): Likewise.
1768         (process_set): Split into ...
1769         (process_cfa_adjust_cfa): this,
1770         (process_cfa_register): this,
1771         (process_cfa_offset): and this new function.
1772         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
1773         instead of REG_FRAME_RELATED_EXPR.
1774
1775 2010-09-24  Olivier Hainque  <hainque@adacore.com>
1776
1777         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
1778
1779 2010-09-24  Jan Hubicka  <jh@suse.cz>
1780
1781         * doc/extend.texi: (attribute leaf): Document.
1782         * tree.c (local_define_builtin): Handle ECF_LEAF.
1783         (build_common_builtin_nodes): Set ECF_LEAF where needed.
1784         * tree.h (ECF_LEAF): New.
1785         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
1786         overwrittable and unavailable functions.
1787         (ipa_init): Put all_module_statics into optimization_summary_obstack.
1788         (copy_global_bitmap): Do not copy all_module_statics.
1789         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
1790         (propagate): Handle overwritable and unavailable leaf functions;
1791         initialize global info for overwritable and unavailable leaf functions;
1792         do not free all module statics.
1793         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
1794         local statics.
1795         * calls.c (flags_from_decl_or_type): Handle leaf.
1796         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
1797         abnormal gotos.
1798
1799 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
1800
1801         * gengtype.c: Reindented.
1802         * gengtype.h: Reindented.
1803         * gengtype-parse.c: Reindented.
1804
1805 2010-09-24  Jan Hubicka  <jh@suse.cz>
1806
1807         PR tree-optimization/45738
1808         PR tree-optimization/45741
1809         * expr.c (string_constant): Allow CONST_DECL too;
1810         check that DECL_INITIAL is set.
1811         * varpool.c (const_value_known_p): Only look into VAR_DECL
1812         and CONST_DECL.
1813
1814 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
1815
1816         * common.opt (undef): New.
1817
1818 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
1819
1820         PR middle-end/45234
1821         * rtl.h (enum global_rtl_index): Add
1822         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
1823         (LAST_VIRTUAL_POINTER_REGISTER): Define.
1824         (virtual_preferred_stack_boundary_rtx,
1825         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
1826         (LAST_VIRTUAL_REGISTER): Increase by one.
1827         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
1828         instead of LAST_VIRTUAL_REGISTER.
1829         * function.c (instantiate_new_reg): Handle
1830         virtual_preferred_stack_boundary_rtx.
1831         * emit-rtl.c (init_virtual_regs): Handle
1832         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1833         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
1834         * explow.c (round_push): If crtl->preferred_stack_boundary
1835         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
1836         virtual_preferred_stack_boundary_rtx alignment instead of
1837         crtl->preferred_stack_boundary alignment.
1838         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
1839         macros.  Never decrease crtl->preferred_stack_boundary,
1840         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
1841         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
1842         stack_pointer_delta in dynamic allocation, even when size
1843         is constant.
1844         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
1845         macro.
1846         * print-rtl.c (print_rtx): Handle
1847         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1848         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
1849         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
1850         * config/frv/frv.c (frv_emit_movsi): Likewise.
1851         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
1852         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
1853         Likewise.
1854
1855         Revert:
1856         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1857
1858         PR middle-end/45234
1859         * calls.c (expand_call): Make sure that all variable sized
1860         adjustments are multiple of preferred stack boundary after
1861         stack alignment.
1862
1863 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
1864             Dominique Dhumieres  <dominiq@lps.ens.fr>
1865
1866         PR bootstrap/45751
1867         * gcc/config/darwin-driver.c (darwin_default_min_version):
1868         Adjust size passed to memcpy in two places.
1869
1870 2010-09-24  Richard Guenther  <rguenther@suse.de>
1871
1872         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
1873         Make sure to not call set_type_context with error_mark_node.
1874         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
1875
1876 2010-09-24  Richard Guenther  <rguenther@suse.de>
1877
1878         * Makefile.in (OBJS-onestep): Remove.
1879         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
1880         (libbackend.a): Remove onestep support.
1881         (libbackend.o): Remove.
1882         * configure.ac (--enable-intermodule): Remove.
1883         * configure: Regenerate.
1884
1885 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
1886
1887         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
1888         reaching the end of a block if it occurs at a DEBUG_INSN.
1889
1890 2010-09-09  Tristan Gingold  <gingold@adacore.com>
1891
1892         PR target/44242
1893         * config/vms/vms-crt0-64.c: Removed.
1894         * config/vms/vms-crt0.c: Removed.
1895         * config/vms/vms-psxcrt0-64.c: Removed.
1896         * config/vms/vms-psxcrt0.c: Removed.
1897         * config/vms/vms-ucrt0.c: New file.
1898         * config/vms/t-vms64: Removed.
1899         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
1900         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
1901         * config.gcc (alpha-dec-vms): Use t-vms.
1902
1903 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1904
1905         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
1906         underfull hbox in DVI output.
1907         (-fobjc-class-cxx-cdtors): Same change.
1908         (-fobjc-exceptions): Tidied up documentation.  Explain what the
1909         option does, but moved the (lenghty) description of the exception
1910         syntax into objc.texi.
1911         (-fobjc-gc): Explain that the option is not useful with the GNU
1912         runtime.
1913         (-fzero-link): Explain that the GNU runtime always works in
1914         "zero-link" mode.
1915         * doc/objc.texi: All sections: simplified @node declarations
1916         removing specification of next, previous, up node.
1917         (Objective-C): Updated introduction.
1918         (Garbage Collection): Updated.  The bohem-gc library is now
1919         included in gcc itself.  Mention that this section only applies to
1920         the GNU Objective-C runtime.
1921         (compatibility_alias): Small tidy up.
1922         (Exceptions): New section mostly containing text previously in the
1923         description of the -fobjc-exception command-line option.
1924         (Synchronization): Same.
1925
1926 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
1927
1928         * config/i386/i386.md (ix86_code_end): Move the initialization of
1929         xops array near the consumer.  Use AX_REG and SP_REG instead of
1930         numerical constants.
1931
1932 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1933
1934         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
1935         method [methodname]' for an Objective-C method instead of the less
1936         satisfactory 'too many arguments to function' (with no method name).
1937
1938 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1939
1940         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
1941         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
1942         (execute_update_addresses_taken): Remove parameter.  Execute the
1943         optimization unconditionally.
1944         * passes.c (execute_function_todo): Call execute_update_addresses_taken
1945         unconditionally if TODO_rebuild_alias is set, else only when optimizing
1946         if TODO_update_address_taken is set.
1947
1948 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
1949
1950         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1951         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
1952         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1953         (arm_output_addr_const_extra): Make static.
1954
1955 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
1956
1957         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
1958         define as unspec_volatile.
1959         ("nops"): Define as unspec_volatile. Use fputs to write to
1960         asm_out_file directly.  Output NOPs on separate lines using while loop.
1961         * config/i386/i386.c (ix86_code_end): Use fputs to write to
1962         asm_out_file directly.  Output NOPs on separate lines using while loop.
1963
1964 2010-09-23  Richard Guenther  <rguenther@suse.de>
1965
1966         PR tree-optimization/45565
1967         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1968         Make sure to adjust the fndecl before replacing the stmt.
1969
1970 2010-09-23  Richard Guenther  <rguenther@suse.de>
1971
1972         PR middle-end/45750
1973         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
1974         gimplifying MEM_REF.
1975
1976 2010-09-23  Alan Modra  <amodra@gmail.com>
1977
1978         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
1979         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
1980
1981 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
1982
1983         PR rtl-optimization/44374
1984         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
1985         * df-core.c (df_set_bb_dirty): Set it.
1986         * ifcvt.c (find_memory): Remove function.
1987         (dead_or_predicable): Use can_move_insns_across.
1988         * df.h (can_move_insns_across): Declare function.
1989         * cfgcleanup.c (block_was_dirty): New static variable.
1990         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
1991         than df_get_bb_dirty.
1992         (try_head_merge_bb): New static function.
1993         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
1994         is set.
1995         * df-problems.c: Include "target.h"
1996         (df_simulate_find_uses): New static function.
1997         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
1998         (find_memory, find_memory_store): New static functions.
1999         (can_move_insns_across): New function.
2000         * Makefile.in (df-problems.o): Update dependencies.
2001
2002 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
2003
2004         PR java/44095
2005         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
2006         is specified and the suffix of the file isn't ".c".
2007         * config/sparc/linux64.h (ASM_SPEC): Likewise.
2008
2009 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2010
2011         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
2012         * doc/cppopts.texi: Fix markup of index entry.
2013         * doc/extend.texi (Constructing Calls): Fix markup of
2014         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
2015         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
2016         (Vague Linkage, C++ Attributes): Fix markup of index entries and
2017         keywords.
2018         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
2019         avoid long lines.
2020         (C Dialect Options, C++ Dialect Options, Warning Options)
2021         (Debugging Options, Spec Files, Darwin Options)
2022         (i386 and x86-64 Options, MIPS Options)
2023         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
2024         index entries, avoid abbreviations, allow URLs to wrap, avoid
2025         long lines, avoid overlong pages from long @itemx lists.
2026         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
2027         * doc/standards.texi (Standards): Likewise.
2028         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
2029
2030 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
2031
2032         * opts-common.c (prune_options): Make static.  Work with decoded
2033         options.
2034         (decode_cmdline_options_to_array): Call prune_options.  Don't
2035         resize option array here.
2036         * opts.h (prune_options): Remove prototype.
2037         * gcc.c (process_command): Take decoded options; don't call
2038         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
2039         (main): Call decode_cmdline_options_to_array here instead of
2040         prune_options.  Update call to process_command.
2041         * config/darwin-driver.c: Include opts.h.
2042         (darwin_default_min_version): Work with decoded options.  Don't
2043         handle -b or -V here.
2044         * config/darwin.h (darwin_default_min_version): Update prototype.
2045         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
2046         darwin_default_min_version.
2047         * config/i386/cygwin.h (mingw_scan): Update prototype.
2048         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
2049         * config/i386/cygwin1.c: Include opts.h.
2050         (mingw_scan): Work with decoded options.
2051         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
2052         * config/t-darwin (darwin-driver.o): Update dependencies.
2053
2054 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
2055
2056         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
2057         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
2058         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
2059         -force-link, -force-link=, -language, -language=,
2060         -library-directory, -library-directory=, -no-canonical-prefixes,
2061         -no-standard-libraries, -no-warnings, -optimize, -output,
2062         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
2063         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
2064         -print-file-name=, -print-libgcc-file-name,
2065         -print-multi-directory, -print-multi-lib,
2066         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
2067         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
2068         -profile, -save-temps, -shared, -specs, -specs=, -static,
2069         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
2070         symbolic): New.
2071         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
2072         * gcc.c (A Short Introduction to Adding a Command-Line Option):
2073         Remove comment.
2074         (cc1_options): Correct specs for passing down --help,
2075         --target-help and --help=*.  Add spec for passing down --version.
2076         (struct option_map, option_map, target_option_translations,
2077         translate_options): Remove.
2078         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
2079         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
2080         OPT_fhelp_ and OPT_ftarget_help.
2081         (process_command): Don't call translate_options.  Call
2082         decode_cmdline_options_to_array before checking for
2083         -no-canonical-prefixes using decoded options.
2084         * opts-common.c (tm.h): Update comment on #include.
2085         (find_opt): Allow abbreviations of long options.
2086         (struct option_map, option_map): New.
2087         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
2088         and -mno handling.
2089         (target_option_translations): New.
2090         (decode_cmdline_options_to_array): Handle
2091         TARGET_OPTION_TRANSLATE_TABLE in driver.
2092         * opts.c (common_handle_option): Don't handle OPT_fhelp,
2093         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
2094
2095 2010-09-22  Richard Guenther  <rguenther@suse.de>
2096
2097         * tree-inline.c (optimize_inline_calls): Schedule cleanups
2098         only if we inlined something.  Block compaction and conditional
2099         folding are done by cfg cleanup.  Schedule update-address-taken.
2100         (tree_function_versioning): Remove redundant call to number_blocks.
2101         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
2102         folding is done by cfg cleanup.
2103         * passes.c (init_optimization_passes): Remove update-address-taken
2104         pass after IPA inlining.
2105
2106 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
2107
2108         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
2109         to update conditions. Fix reg_mode[] check.
2110
2111 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
2112
2113         * config/picochip/picochip.md (movhicc): Use expand to check whether
2114         movhicc is available and split it after reload.
2115
2116 2010-09-22  Richard Guenther  <rguenther@suse.de>
2117
2118         * tree-ssanames.c (release_dead_ssa_names): Do not remove
2119         callee edges here.
2120         * passes.c (init_optimization_passes): Remove early CFG cleanup.
2121         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
2122         (pass_cleanup_cfg): Likewise.
2123         (execute_fixup_cfg): Cleanup.
2124         * tree-pass.h (pass_cleanup_cfg): Remove.
2125
2126 2010-09-22  Martin Jambor  <mjambor@suse.cz>
2127
2128         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
2129         builtins if it is true.
2130         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
2131         parameter.
2132
2133 2010-09-22  Martin Jambor  <mjambor@suse.cz>
2134
2135         * tree-sra.c (struct access): New field grp_no_warning.
2136         (create_access_replacement): Set TREE_NO_WARNING according to
2137          grp_no_warning.
2138         (create_artificial_child_access): Use build_ref_for_model and set
2139         grp_no_warning if build_user_friendly_ref_for_offset fails.
2140         (propagate_subaccesses_across_link): Likewise.
2141
2142 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
2143
2144         PR target/35664
2145         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
2146         ('f'): Likewise.
2147
2148 2010-09-22  Tristan Gingold  <gingold@adacore.com>
2149
2150         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
2151
2152 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
2153
2154         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
2155         * config/i386/i386.c (decide_alg): Update for rename.
2156
2157 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
2158
2159         PR rtl-optimization/45739
2160         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
2161         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
2162
2163 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
2164
2165         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
2166         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
2167         Remove.
2168         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
2169         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2170
2171 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2172
2173         PR objc/23710
2174         * c-parser.c (c_parser_objc_method_definition): Check the return
2175         value of objc_start_method_definition and if false is returned,
2176         parse the method definition but emit no code.
2177
2178 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2179
2180         PR objc/25965
2181         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
2182         call objc_get_interface_ivars ().
2183
2184 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
2185
2186         PR target/45694
2187         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
2188         static chain-register is used for 64-bit.
2189
2190 2010-09-21  Richard Guenther  <rguenther@suse.de>
2191
2192         * dwarf2out.c (is_cu_die): New function.
2193         (add_pubtype): Use it.
2194         (gen_subprogram_die): Likewise.
2195         (gen_struct_or_union_type_die): Likewise.
2196         (dwarf2out_finish): Likewise.
2197         (comp_unit_die): Rename to ...
2198         (single_comp_unit_die): ... this.
2199         (comp_unit_die): New function lazily constructing and
2200         returning single_comp_unit_die.
2201         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
2202         base_type_die, subrange_type_die, modified_type_die,
2203         lower_bound_default, add_bound_info, add_prototyped_attribute,
2204         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
2205         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
2206         force_decl_die, gen_namespace_die, dwarf2out_decl,
2207         dwarf2out_start_source_file, dwarf2out_end_source_file,
2208         prune_unused_types, dwarf2out_finish): Use it.
2209         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
2210         the global list of translation-unit decls.
2211         (dwarf2out_init): Do not create single_comp_unit_die here.
2212         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
2213
2214 2010-09-21  Richard Guenther  <rguenther@suse.de>
2215
2216         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
2217         for bool for C++.
2218
2219 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
2220
2221         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
2222         (qhs_extenddi_cstr): Likewise.
2223         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
2224         them for the source operand.
2225
2226 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
2227
2228         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
2229         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
2230         (ix86_split_ashr): Ditto.
2231         (ix86_split_lshr): Ditto.
2232
2233 2010-09-21  Richard Guenther  <rguenther@suse.de>
2234
2235         PR tree-optimization/45580
2236         * tree-ssa-propagate.c (substitute_and_fold): Always replace
2237         regular uses.
2238         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
2239         virtuals fold the call into a regular indirect one.
2240
2241 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2242
2243         PR rtl-optimization/42775
2244         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
2245         scheduling is enabled.
2246
2247 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
2248
2249         PR rtl-optimization/45728
2250         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
2251         gen_lowpart_common first and if that fails, force_reg first
2252         before calling gen_lowpart.
2253
2254         PR middle-end/45678
2255         * cfgexpand.c (expand_one_stack_var_at): Use
2256         crtl->max_used_stack_slot_alignment as max_align, instead
2257         of maximum of that and PREFERRED_STACK_BOUNDARY.
2258         Don't call update_stack_alignment.
2259
2260 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2261
2262         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
2263         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
2264         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
2265         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
2266         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
2267         (build_nonstandard_integer_type): Likewise.
2268         (build_range_type_1): New function, built from...
2269         (build_range_type): ...this.  Call build_range_type_1.
2270         (build_nonshared_range_type): New function.
2271         (build_array_type_1): New function, built from...
2272         (build_array_type: ...this.  Call build_array_type_1.
2273         (build_nonshared_array_type): New function.
2274         * tree.h (build_nonshared_range_type): Declare.
2275         (build_nonshared_array_type): Likewise.
2276
2277 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
2278
2279         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
2280         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2281         (arm_class_likely_spilled_p): New function.
2282
2283 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
2284
2285         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
2286         indirect functions.
2287         (ix86_split_ashl): Ditto.
2288         (ix86_split_ashr): Ditto.
2289         (ix86_split_lshr): Ditto.
2290         (ix86_adjust_counter): Ditto.
2291
2292 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
2293
2294         * c-family/c-common.h (constant_string_class): Documented with
2295         comment identical to the one already in c-common.c.
2296
2297 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
2298
2299         * dwarf2out.c (any_cfis_emitted): New static variable.
2300         (add_fde_cfi): Set it.
2301         (dwarf2out_frame_debug): Clear it before processing,
2302         if it is set afterwards, flush any queued reg saves.
2303
2304         PR debug/45124
2305         * dwarf2out.c (add_accessibility_attribute): Assume
2306         DW_ACCESS_private as the default for dwarf_version > 2
2307         and DW_TAG_class_type parent.
2308         (gen_inheritance_die): Assume DW_ACCESS_public as the default
2309         for dwarf_version > 2 and parent other than DW_TAG_class_type.
2310
2311 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
2312
2313         PR target/45726
2314         * arm.md (arm_movt): Only enable on machines with MOVT.
2315
2316 2010-09-20  Jie Zhang  <jie@codesourcery.com>
2317
2318         * config/arm/arm.c (arm_address_offset_is_imm): New.
2319         (arm_early_store_addr_dep): New.
2320         (arm_early_load_addr_dep): New.
2321         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
2322         (arm_early_load_addr_dep): Declare.
2323         (arm_address_offset_is_imm): Declare.
2324         * config/arm/cortex-m4.md: New file.
2325         * config/arm/cortex-m4-fpu.md: New file.
2326         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
2327         (attr generic_sched): Exclude cortexm4.
2328         (attr generic_vfp): Exclude cortexm4.
2329
2330 2010-09-20  Richard Guenther  <rguenther@suse.de>
2331
2332         PR middle-end/45704
2333         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
2334
2335 2010-09-20  Jan Hubicka  <jh@suse.cz>
2336
2337         PR tree-optimize/45605
2338         * cgraph.h (const_value_known_p): Declare.
2339         (varpool_decide_const_value_known): Remove.
2340         * tree-ssa-ccp.c (get_base_constructor): Use it.
2341         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
2342         * expr.c (string_constant): Likewise.
2343         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
2344         * ipa.c (ipa_discover_readonly_nonaddressable_var,
2345         function_and_variable_visibility): Likewise.
2346         * gimplify.c (gimplify_call_expr): Likewise.
2347         * gimple-fold.c (get_symbol_constant_value): Likewise.
2348         * varpool.c (varpool_decide_const_value_known): Replace by...
2349         (const_value_known_p): ... this one; handle other kinds of DECLs
2350         too and work for automatic vars.
2351         (varpool_finalize_decl): Use const_value_known_p.
2352
2353 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
2354
2355         PR target/45726
2356         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
2357
2358 2010-09-20  Richard Guenther  <rguenther@suse.de>
2359
2360         PR tree-optimization/45705
2361         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
2362
2363 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
2364
2365         PR rtl-optimization/45695
2366         * combine.c (try_combine): When splitting a two set pattern,
2367         make sure the pattern which will be put into i2 doesn't use REGs
2368         or MEMs set by insns in between i2 and i3.
2369
2370 2010-09-19  Jan Hubicka  <jh@suse.cz>
2371
2372         PR lto/44246
2373         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
2374         processing same node twice.
2375
2376 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
2377
2378         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
2379         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2380         (bfin_class_likely_spilled_p): New function
2381
2382 2010-09-19  Ira Rosen  <irar@il.ibm.com>
2383
2384         PR tree-optimization/45714
2385         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
2386         created in vectorizable_call instead of the original statement in
2387         def stmt updates.
2388
2389 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
2390
2391         * config/i386/i386-protos.h (split_double_mode): New prototype.
2392         (split_di, split_ti): Remove prototypes.
2393         * config/i386/i386.c (split_double_mode): New function.
2394         (split_di, split_ti): Remove.
2395         (ix86_expand_branch): Use split_double_mode.
2396         (ix86_split_to_parts): Ditto.
2397         (ix86_split_ashl): Ditto.
2398         (ix86_split_ashr): Ditto.
2399         (ix86_split_lshr): Ditto.
2400         (ix86_force_to_memory): Ditto.
2401         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
2402
2403 2010-09-18  Jan Hubicka  <jh@suse.cz>
2404
2405         PR tree-optimization/45453
2406         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
2407         virtual functions are reachable.
2408         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
2409         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
2410         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
2411         when modifying function.
2412
2413 2010-09-18  Jan Hubicka  <jh@suse.cz>
2414
2415         PR tree-optimization/45605
2416         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
2417         * gimple-fold.c (static_object_in_other_unit_p): New function.
2418         (canonicalize_constructor_val): Use it.
2419         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
2420         returning NULL.
2421         (gimple_fold_obj_type_ref_known_binfo): Use
2422         static_object_in_other_unit_p.
2423
2424 2010-09-18  Richard Guenther  <rguenther@suse.de>
2425
2426         PR tree-optimization/45709
2427         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
2428         insertions until after all PHI nodes of the block are processed.
2429
2430 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
2431
2432         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
2433
2434 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
2435
2436         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
2437
2438 2010-09-18  Richard Guenther  <rguenther@suse.de>
2439
2440         PR tree-optimization/45709
2441         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
2442
2443 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
2444
2445         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
2446         (dot_deps_stmt): Same.
2447         * graphite-poly.c (dot_lst): Same.
2448         * graphite-scop-detection.c (dot_all_scops): Same.
2449         (dot_scop): Same.
2450
2451 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
2452
2453         Revert:
2454         2009-12-16  Ben Elliston  <bje@au.ibm.com>
2455
2456         * tree-data-ref.c (dot_rdg_1): Added back.
2457         (dot_rdg): Same.  Added "#if 0" around system call.
2458
2459 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2460             Richard Henderson  <rth@redhat.com>
2461
2462         * config/i386/i386.c (initial_ix86_tune_features): Add
2463         X86_TUNE_PAD_SHORT_FUNCTION.
2464         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
2465         (ix86_count_insn): New.
2466         (ix86_pad_short_function): Likewise.
2467         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
2468
2469         * config/i386/i386.h (ix86_tune_indices): Add
2470         X86_TUNE_PAD_SHORT_FUNCTION.
2471         (TARGET_PAD_SHORT_FUNCTION): New.
2472
2473         * config/i386/i386.md (UNSPEC_NOPS): New.
2474         (nops): Likewise.
2475
2476 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2477
2478         PR middle-end/45234
2479         * calls.c (expand_call): Make sure that all variable sized
2480         adjustments are multiple of preferred stack boundary after
2481         stack alignment.
2482
2483 2010-09-17  DJ Delorie  <dj@redhat.com>
2484
2485         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
2486         passed an invalid value, print an error instead of ICEing.
2487         (valid_psw_flag): New.
2488         (rx_expand_builtin): Call it for setpsw/clrpsw.
2489         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
2490
2491         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
2492         (bitclr_in_memory): Likewise.
2493         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
2494
2495 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2496
2497         PR middle-end/45678
2498         * cfgexpand.c (update_stack_alignment): New.
2499         (get_decl_align_unit): Use it.
2500         (expand_one_stack_var_at): Call update_stack_alignment.
2501
2502 2010-09-17  Richard Guenther  <rguenther@suse.de>
2503
2504         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
2505         Properly copy the read string.
2506
2507 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
2508
2509         * doc/options.texi (Variable): Document.
2510         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
2511         generate target_flags declarations explicitly.  Don't define
2512         VarExists variables for the driver.
2513         * common.opt (target_flags): New Variable record.
2514         (flag_dump_unnumbered, flag_dump_unnumbered_links,
2515         flag_var_tracking, flag_var_tracking_assignments,
2516         flag_var_tracking_assignments_toggle): Don't mark variables with
2517         VarExists.
2518         * config/i386/i386.c (ix86_isa_flags): Don't define here.
2519         * config/i386/i386.opt (ix86_isa_flags): Define here.
2520         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
2521         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
2522         VarExists.
2523         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
2524         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
2525         Only define for generator programs.
2526         * rtlanal.c (target_flags): Remove.
2527         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
2528         flag_var_tracking_assignments_toggle): Remove.
2529
2530 2010-09-17  Michael Matz  <matz@suse.de>
2531
2532         PR tree-optimization/43432
2533         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
2534         Accept backwards consecutive accesses.
2535         (vect_create_data_ref_ptr): If step is negative generate
2536         decreasing IVs.
2537         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
2538         (perm_mask_for_reverse, reverse_vec_elements): New functions.
2539         (vectorizable_load): Handle loads with negative steps when easily
2540         possible.
2541
2542 2010-09-03  Jan Hubicka  <jh@suse.cz>
2543
2544         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
2545
2546 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
2547
2548         * config/v850/v850.c (v850_function_value_regno_p): Make static.
2549         Adjust comments. Declare.
2550         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2551         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
2552
2553 2010-09-17  Richard Guenther  <rguenther@suse.de>
2554
2555         * common.opt (combine): Remove.
2556         * gcc.c (default_compilers): Remove specs testing combine.
2557         The C compilers no longer can combine.
2558         (option_map): Remove -combine.
2559         (display_help): Remove -combine.
2560         (driver_handle_option): Remove OPT_combine handling.
2561         (compile_input_file_p): Remove.
2562         (do_spec): Remove code concerning combine.
2563         (main): Likewise.
2564         * doc/invoke.texi: Remove traces of -combine.
2565         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
2566
2567 2010-09-17  Richard Guenther  <rguenther@suse.de>
2568
2569         PR middle-end/45678
2570         * builtins.c (fold_builtin_memory_op): Always properly adjust
2571         alignment of memory accesses.
2572
2573 2010-09-16  Jan Hubicka  <jh@suse.cz>
2574
2575         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
2576         processing clone.
2577
2578 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
2579
2580         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
2581
2582         * config/i386/i386.c (predict_jump): Add prototype.
2583         (flag_opts): Add -m8bit-idiv.
2584         (ix86_split_idivmod): New.
2585
2586         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
2587         Add 2 splitters for SI/DI mode divide.
2588         (divmod<mode>4_1): New pattern.
2589         (udivmod<mode>4_1): Likewise.
2590         (testdi_ccno_1): Likewise.
2591
2592         * config/i386/i386.opt (m8bit-idiv): New.
2593
2594         * doc/invoke.texi: Document -m8bit-idiv.
2595
2596 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
2597
2598         PR bootstrap/45680
2599         * config/i386/i386.c (min_insn_size): Moved out of the
2600         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
2601
2602 2010-09-16  Jan Hubicka  <jh@suse.cz>
2603
2604         * lto-cgraph.c (lto_output_node): Fix handling of clones.
2605         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
2606         unreachable clones with reachable clones.
2607         * tree-inline.c (copy_bb): Fix sanity checking when producing
2608         unreachable clone.
2609
2610 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
2611
2612         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
2613         (TARGET_MEMORY_MOVE_COST): Define.
2614         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
2615
2616 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
2617
2618         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
2619         maybe_tidy_empty_bb.
2620
2621         Revert:
2622         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
2623         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
2624
2625 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
2626
2627         * target.def (target_option.optimization): New hook.
2628         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
2629         TARGET_OPTION_OPTIMIZATION hook.
2630         * doc/tm.texi: Regenerate.
2631         * hooks.c (hook_void_int_int): New.
2632         * hooks.h (hook_void_int_int): Declare.
2633         * opts.c: Don't include tm_p.h.
2634         (decode_options): Use targetm.target_option.optimization instead
2635         of OPTIMIZATION_OPTIONS.
2636         * system.h (OPTIMIZATION_OPTIONS): Poison.
2637         * config/arm/arm-protos.h (arm_optimization_options): Remove.
2638         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
2639         (arm_optimization_options): Rename to arm_option_optimization.
2640         Make static.
2641         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
2642         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
2643         (cris_option_optimization): New.
2644         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
2645         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
2646         (crx_option_optimization): New.
2647         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
2648         * config/frv/frv-protos.h (frv_optimization_options): Remove.
2649         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
2650         (frv_optimization_options): Rename to frv_option_optimization.
2651         Make static.
2652         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
2653         * config/h8300/h8300.c (h8300_option_optimization): New.
2654         (TARGET_OPTION_OPTIMIZATION): Define.
2655         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
2656         * config/i386/i386-protos.h (optimization_options): Remove.
2657         * config/i386/i386.c (optimization_options): Rename to
2658         ix86_option_optimization.  Make static.
2659         (TARGET_OPTION_OPTIMIZATION): Define.
2660         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
2661         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
2662         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
2663         (ia64_optimization_options): Rename to ia64_option_optimization.
2664         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
2665         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
2666         commented-out definition.
2667         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
2668         instead of OPTIMIZATION_OPTIONS.
2669         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
2670         (m32r_option_optimization): New.
2671         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
2672         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
2673         Remove.
2674         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
2675         (mcore_option_optimization): New.
2676         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
2677         * config/mep/mep-protos.h (mep_optimization_options): Remove.
2678         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
2679         (mep_optimization_options): Rename to mep_option_optimization.
2680         Make static.  Take unused level and size parameters.
2681         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
2682         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
2683         (mmix_option_optimization): New.
2684         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
2685         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
2686         (pdp11_option_optimization): New.
2687         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
2688         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
2689         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
2690         (optimization_options): Rename to rs6000_option_optimization.
2691         Make static.
2692         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
2693         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
2694         * config/rx/rx.c (rx_set_optimization_options): Rename to
2695         rx_option_optimization.  Make static.  Take unused level and size
2696         parameters.
2697         (TARGET_OPTION_OPTIMIZATION): Define.
2698         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
2699         * config/s390/s390-protos.h (optimization_options): Remove.
2700         * config/s390/s390.c (optimization_options): Rename to
2701         s390_option_optimization.  Make static.  Don't mark size parameter
2702         unused.
2703         (TARGET_OPTION_OPTIMIZATION): Define.
2704         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
2705         * config/sh/sh-protos.h (sh_optimization_options): Remove.
2706         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
2707         (sh_optimization_options): Rename to sh_option_optimization.  Make
2708         static.  Don't mark parameters unused.
2709         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
2710         * config/spu/spu-protos.h (spu_optimization_options): Remove.
2711         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
2712         (spu_optimization_options): Rename to spu_option_optimization.
2713         Make static.
2714         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
2715         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
2716         (v850_option_optimization): New.
2717         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
2718         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
2719         (xtensa_option_optimization): New.
2720         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
2721
2722 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
2723
2724         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
2725         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
2726         * doc/tm.texi: Regenerate.
2727         * system.h (OVERRIDE_OPTIONS): Poison.
2728         * target.def (override): Default to hook_void_void.
2729         * targhooks.c (default_target_option_override): Remove.
2730         * genmodes.c, machmode.def: Update comments mentioning
2731         OVERRIDE_OPTIONS.
2732         * config/alpha/alpha-modes.def: Update comment mentioning
2733         alpha_override_options.
2734         * config/alpha/alpha-protos.h (override_options): Remove.
2735         * config/alpha/alpha.c (override_options): Rename to
2736         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
2737         (TARGET_OPTION_OVERRIDE): Define.
2738         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
2739         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
2740         of OVERRIDE_OPTIONS.
2741         * config/arc/arc-protos.h (arc_init): Remove.
2742         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
2743         (arc_init): Rename to arc_option_override.  Make static.
2744         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
2745         (OVERRIDE_OPTIONS): Remove.
2746         * config/arm/arm-protos.h (arm_override_options): Remove.
2747         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
2748         (arm_override_options): Rename to arm_option_override.  Make
2749         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
2750         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
2751         * config/arm/arm.md: Update comment referring to arm_override_options.
2752         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2753         instead of OVERRIDE_OPTIONS.
2754         * config/avr/avr-protos.h (avr_override_options): Remove.
2755         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
2756         (avr_override_options): Rename to avr_option_override.  Make static.
2757         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
2758         * config/bfin/bfin-protos.h (override_options): Remove (twice).
2759         * config/bfin/bfin.c (override_options): Rename to
2760         bfin_option_override.  Make static.
2761         (TARGET_OPTION_OVERRIDE): Define.
2762         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
2763         * config/cris/cris-protos.h (cris_override_options): Remove.
2764         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
2765         (cris_override_options): Rename to cris_option_override.  Make static.
2766         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
2767         * config/frv/frv-protos.h (frv_override_options): Remove.
2768         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
2769         (frv_override_options): Rename to frv_option_override.  Make static.
2770         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
2771         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
2772         * config/h8300/h8300.c (h8300_init_once): Rename to
2773         h8300_option_override.  Make static.
2774         (TARGET_OPTION_OVERRIDE): Define.
2775         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
2776         * config/i386/i386-protos.h (override_options): Remove.
2777         * config/i386/i386.c (override_options): Rename to
2778         ix86_option_override_internal.  Make static.  Comments referring
2779         to this function and callers changed.
2780         (ix86_option_override): New.
2781         (TARGET_OPTION_OVERRIDE): Define.
2782         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
2783         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
2784         * config/ia64/ia64.c (ia64_file_start): Update comment referring
2785         to ia64_override_options.
2786         * config/iq2000/iq2000-protos.h (override_options): Remove.
2787         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
2788         (override_options): Rename to iq2000_option_override.  Make static.
2789         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
2790         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
2791         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
2792         (lm32_override_options): Rename to lm32_option_override.  Make static.
2793         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
2794         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
2795         (m32r_option_override): New.
2796         (m32r_init): Update comment.
2797         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
2798         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
2799         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
2800         (m68hc11_override_options): Rename to m68hc11_option_override.
2801         Make static.  Return void.
2802         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
2803         * config/m68k/m68k-protos.h (override_options): Remove.
2804         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
2805         (override_options): Rename to m68k_option_override.  Make static.
2806         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
2807         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
2808         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
2809         (mcore_override_options): Rename to mcore_option_override.  Make
2810         static.
2811         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
2812         * config/mep/mep-protos.h (mep_override_options): Remove.
2813         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
2814         (mep_override_options): Rename to mep_option_override.  Make static.
2815         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
2816         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
2817         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
2818         (mmix_override_options): Rename to mmix_option_override.  Make static.
2819         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
2820         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
2821         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
2822         (mn10300_override_options): Rename to mn10300_option_override.
2823         Make static.
2824         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
2825         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
2826         * config/moxie/moxie.c (moxie_override_options): Rename to
2827         moxie_option_override.  Make static.
2828         (TARGET_OPTION_OVERRIDE): Define.
2829         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
2830         * config/picochip/picochip-protos.h (picochip_override_options):
2831         Remove.  Update comment referring to picochip_override_options.
2832         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
2833         (picochip_override_options): Rename to picochip_option_override.
2834         Make static.  Update comment and definition of
2835         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
2836         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
2837         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2838         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2839         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2840         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2841         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2842         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
2843         instead of OVERRIDE_OPTIONS.
2844         * config/rs6000/rs6000-modes.def: Update comment referring to
2845         rs6000_override_options.
2846         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
2847         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
2848         (rs6000_override_options): Rename to
2849         rs6000_option_override_internal.  Make static.  Commented
2850         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
2851         (rs6000_option_override): New.
2852         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
2853         instead of OVERRIDE_OPTIONS.
2854         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2855         * config/s390/s390-protos.h (override_options): Remove.
2856         * config/s390/s390.c (override_options): Rename to
2857         s390_option_override.  Make static.
2858         (TARGET_OPTION_OVERRIDE): Define.
2859         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
2860         * config/score/score-protos.h (score_override_options): Remove.
2861         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
2862         (score_override_options): Rename to score_option_override.  Make
2863         static.
2864         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
2865         Update comment referring to override_options.
2866         * config/score/score3.c (score3_override_options): Rename to
2867         score3_option_override.
2868         * config/score/score3.h (score3_override_options): Rename to
2869         score3_option_override.
2870         * config/score/score7.c (score7_override_options): Rename to
2871         score7_option_override.
2872         * config/score/score7.h (score7_override_options): Rename to
2873         score7_option_override.
2874         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
2875         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
2876         (sparc_override_options): Rename to sparc_option_override.  Make
2877         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
2878         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
2879         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2880         instead of OVERRIDE_OPTIONS.
2881         * config/spu/spu-protos.h (spu_override_options): Remove.
2882         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
2883         (spu_override_options): Rename to spu_option_override.  Make
2884         static.
2885         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
2886         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
2887         OVERRIDE_OPTIONS.
2888         * config/vax/vax-protos.h (override_options): Remove.
2889         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
2890         (override_options): Rename to vax_option_override.  Make static.
2891         Call SUBTARGET_OVERRIDE_OPTIONS.
2892         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
2893         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
2894         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
2895         * config/xtensa/xtensa-protos.h (override_options): Remove.
2896         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
2897         (override_options): Rename to xtensa_option_override.  Make static.
2898         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
2899
2900 2010-09-16  Richard Guenther  <rguenther@suse.de>
2901
2902         PR tree-optimization/45623
2903         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
2904         (get_constraint_for_component_ref): If computing a constraint
2905         for the rhs handle type punning through unions.
2906         (get_constraint_for_address_of): Adjust.
2907         (get_constraint_for_1): Likewise.
2908         (get_constraint_for): Likewise.
2909         (get_constraint_for_rhs): New function.
2910         (do_structure_copy): Adjust.
2911         (make_constraint_to): Likewise.
2912         (handle_const_call): Likewise.
2913         (find_func_aliases): Likewise.
2914         (process_ipa_clobber): Likewise.
2915         (create_variable_info_for): Likewise.
2916
2917 2010-09-16  Ira Rosen  <irar@il.ibm.com>
2918
2919         * tree-vectorizer.c: Fix documentation.
2920         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
2921         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
2922         is_pattern_stmt_p, is_loop_header_bb_p,
2923         stmt_vinfo_set_inside_of_loop_cost,
2924         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
2925         known_alignment_for_access_p): Likewise.
2926         * tree-vect-loop.c: Fix documentation.
2927         (vect_get_cost): Start function name from new line.
2928         * tree-vect-data-refs.c: Fix documentation.
2929         * tree-vect_stmts.c: Likewise.
2930         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
2931         (vectorizable_store): Free vec_oprnds if allocated.
2932         (vectorizable_condition): Initialize several variables to avoid
2933         warnings.
2934         * tree-vect-slp.c: Fix documentation.
2935
2936 2010-09-16  Richard Guenther  <rguenther@suse.de>
2937
2938         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
2939         is TS_TRANSLATION_UNIT_DECL.
2940         (initialize_tree_contains_struct): Adjust.
2941         (all_translation_units): New global vector.
2942         (build_translation_unit_decl): New function.
2943         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
2944         (struct tree_translation_unit_decl): New.
2945         (all_translation_units): Declare.
2946         (union tree_node): Add translation_unit_decl member.
2947         (build_translation_unit_decl): Declare.
2948         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
2949         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
2950         New function.
2951         (pack_value_fields): Call it.
2952         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
2953         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
2954         (lto_output_tree_pointers): Call it.
2955         * lto-streamer-in.c (lto_input_tree_ref): Handle references
2956         to TRANSLATION_UNIT_DECL.
2957         (unpack_ts_translation_unit_decl_value_fields): New function.
2958         (unpack_value_fields): Call it.
2959         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
2960         (lto_input_tree_pointers): Call it.
2961         * lto-streamer.c (check_handled_ts_structures): Adjust.
2962         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
2963         * c-decl.c (all_translation_units): Remove.
2964         (pop_scope): Use build_translation_unit_decl.
2965         (collect_all_refs): Adjust.
2966         (for_each_global_decl): Likewise.
2967         (c_write_global_declarations): Likewise.
2968
2969 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
2970
2971         PR bootstrap/45686
2972         * fold-const.c (fold_checksum_tree): Change slot from const void **
2973         to void **, use CONST_CAST_TREE to store into *slot.
2974
2975 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2976
2977         * config/i386/i386.md: Remove unneeded empty conditions and
2978         preparation statements from expanders.
2979         * config/i386/mmx.md: Ditto.
2980         * config/i386/sse.md: Ditto.
2981
2982 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2983
2984         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
2985
2986 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2987
2988         PR rtl-optimization/45593
2989         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
2990         insns that were in delay slots as stand-alone insns.
2991
2992 2010-09-15  Ian Lance Taylor  <iant@google.com>
2993
2994         * incpath.c (remove_duplicates): If name is not a directory, issue
2995         a warning rather than an error.
2996
2997 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2998
2999         PR middle-end/45644
3000         * tree-sra.c (create_access): Check for bit-fields directly.
3001
3002 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
3003
3004         PR tree-optimization/45633
3005         * tree-cfg.c (verify_gimple_assign_binary): Allow
3006         MINUS_EXPR with lhs and rhs1 pointer vector and
3007         rhs2 sizetype vector.
3008         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
3009         or vector pointer use TER to optimize pointer subtraction.
3010
3011 2010-09-15  Jie Zhang  <jie@codesourcery.com>
3012
3013         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
3014         fcmpd to fcmps.
3015
3016 2010-09-15  Ian Lance Taylor  <iant@google.com>
3017
3018         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
3019
3020 2010-09-15  Ian Lance Taylor  <iant@google.com>
3021
3022         * function.c (get_arg_pointer_save_area): Set
3023         arg_pointer_save_area_init to true.
3024
3025 2010-09-15  Martin Jambor  <mjambor@suse.cz>
3026
3027         * tree-sra.c (generate_subtree_copies): Updated comment.
3028         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
3029         obtained from the statement iterator instead.
3030         (load_assign_lhs_subreplacements): Removed parameters lhs and
3031         right_offset, which is obtained from top_racc instead.  Parameter lacc
3032         is now expected to be the root of the processed tree rather than root's
3033         first child.  Updated all callers.
3034
3035 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
3036
3037         * config/pdp11/pdp11.c (register_move_cost): Rename to
3038         pdp11_register_move_cost.
3039         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
3040         pdp11_register_move_cost.
3041         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
3042         pdp11_register_move_cost instead of register_move_cost.
3043
3044 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
3045
3046         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
3047         pattern for vmovn. Expansion in case of non
3048         -mvectorize-with-neon-quad.
3049         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
3050         non- -mvectorize-with-neon-quad case.
3051         (move_lo_quad_<mode>): New expansion to vmov into low part.
3052         (move_hi_quad_<mode>): New expansion to vmov into high part.
3053         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
3054         (move_lo_quad_v4sf): Likewise.
3055         (move_lo_quad_v8hi): Likewise.
3056         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
3057         low part.
3058         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
3059         high part.
3060         * config/arm/iterators.md (ANY128): New mode iterator.
3061         (V_narrow_pack): New mode attribute.
3062         (V_HALF): Add attribute.
3063         (V_DOUBLE): Add attribute.
3064         (V_mode_nunits): Add attribute.
3065
3066 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
3067
3068         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
3069         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
3070
3071 2010-09-15  Olivier Hainque  <hainque@adacore.com>
3072             Jose Ruiz  <ruiz@adacore.com>
3073
3074         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
3075         * config/alpha/osf5-unwind.h: New file.
3076
3077 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3078
3079         PR bootstrap/45672
3080         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
3081         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
3082         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
3083
3084 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3085
3086         * c-lang.h (struct lang_type): Add variable_size GTY option.
3087
3088 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3089
3090         PR bootstrap/45672
3091         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
3092
3093 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3094
3095         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
3096         result isn't used in memory address.
3097
3098 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3099
3100         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
3101         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
3102         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3103         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3104         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3105         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3106
3107         * target.def: Add units_per_simd_word to vectorize.
3108
3109         * targhooks.c (default_units_per_simd_word): New.
3110         * targhooks.h (default_units_per_simd_word): Likewise.
3111         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
3112         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
3113         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
3114         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
3115         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
3116         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
3117         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
3118         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
3119
3120         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
3121         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
3122
3123         * tree-vect-stmts.c: Don't include "tm_p.h".
3124         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
3125         with targetm.vectorize.units_per_simd_word.
3126
3127         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
3128
3129         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
3130
3131         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
3132         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
3133
3134         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
3135         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
3136
3137         * doc/tm.texi: Regenerated.
3138
3139 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3140
3141         * tree-vect-stmts.c: Include "tm_p.h".
3142
3143         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
3144         out of RTX_CODE.
3145
3146 2010-09-14  Martin Jambor  <mjambor@suse.cz>
3147
3148         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
3149         location of generated statement.  Changed all callers.
3150         (build_ref_for_model): New parameter loc which used to set location of
3151         all generated expressions.  Changed all callers.
3152         (generate_subtree_copies): Likewise.
3153         (init_subtree_with_zero): Likewise.
3154         (sra_modify_expr): Set locations of all generated statements and
3155         expressions to the location the original statement.
3156         (handle_unscalarized_data_in_subtree): Likewise.
3157         (load_assign_lhs_subreplacements): Likewise.
3158         (sra_modify_constructor_assign): Likewise.
3159         (sra_modify_assign): Likewise.
3160
3161 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
3162
3163         PR target/45277
3164         PR target/45363
3165         PR target/45407
3166         * doc/install.texi (sparc*-*-*): New section.
3167         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
3168
3169 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
3170
3171         PR middle-end/45567
3172         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
3173         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
3174         (expand_builtin): Adjust caller.
3175         (expand_builtin_unop): Only use subtarget if it has the right mode.
3176
3177 2010-09-14  Tristan Gingold  <gingold@adacore.com>
3178
3179         * configure.ac (plugins): Fix typos.
3180         * configure: Regenerate.
3181
3182 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
3183
3184         PR debug/45660
3185         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
3186         gen_type_die for function/method return type.
3187
3188 2010-09-14  Ira Rosen  <irar@il.ibm.com>
3189
3190         PR tree-optimization/45470
3191         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
3192         can throw an exception.
3193         * tree-vect-stmts.c (vectorizable_call): Likewise.
3194
3195 2010-09-14  DJ Delorie  <dj@redhat.com>
3196
3197         PR target/44749
3198         * config/mep/mep-protos.h (mep_save_register_info,
3199         mep_reinit_regs, mep_init_regs): Declare.
3200
3201         * config/mep/mep.c: Move all target definitions to the end of the
3202         file to avoid the need for duplicate declarations.
3203         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
3204         (mep_reorg_erepeat): Remove unused variables.
3205         (mep_expand_builtin): Likewise.
3206
3207         * config/mep/mep-pragma.c: Don't include rtl.h.
3208         (INVALID_REGNUM): New.
3209         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
3210         functions.
3211         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
3212         Avoid enum/integer math.
3213
3214 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
3215
3216         PR target/44749
3217         * config/mep/t-mep (GTM_H): Add insn-constants.h.
3218         * config/mep/mep.c (mep_conditional_register_usage): Take no
3219         parameters.
3220         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
3221         prototype.
3222         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
3223         call to mep_conditional_register_usage.
3224
3225 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
3226
3227         PR debug/43937
3228         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
3229         the DECL as well.
3230
3231 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
3232
3233         PR rtl-optimization/45617
3234         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
3235         even if low N bits of X aren't known to be zero.
3236
3237 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
3238
3239         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
3240
3241         * config/i386/i386.c (initial_ix86_tune_features): Add
3242         X86_TUNE_VECTORIZE_DOUBLE.
3243         (ix86_units_per_simd_word): New.
3244
3245         * config/i386/i386.h (ix86_tune_indices): Add
3246         X86_TUNE_VECTORIZE_DOUBLE.
3247         (TARGET_VECTORIZE_DOUBLE): New.
3248         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
3249
3250 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
3251
3252         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
3253         (new_temp_expr_table): Allocate call_cnt vector.
3254         (free_temp_expr_table): Free it.
3255         (process_replaceable): Add call_cnt parm and set in vector.
3256         (find_replaceable_in_bb): Skip replacement if def/use span a call.
3257         (debug_ter): Dump call_cnt value, remove stderr uses.
3258
3259 2010-09-13  Jan Hubicka  <jh@suse.cz>
3260
3261         * tree.c (build_zero_cst): New.
3262         * tree.h (build_zero_cst): Declare.
3263         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
3264         (get_base_constructor): Break out from ...
3265         (fold_const_aggregate_ref): Here; handle empty constructors.
3266
3267 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3268
3269         * config/arm/arm.md: (define_attr "conds"): Update comment.
3270         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
3271         conds attribute to clob.
3272         (arm_sync_compare_and_swapsi): Likewise.
3273         (arm_sync_compare_and_swap<mode>): Likewise.
3274         (arm_sync_lock_test_and_setsi): Likewise.
3275         (arm_sync_lock_test_and_set<mode>): Likewise.
3276         (arm_sync_new_<sync_optab>si): Likewise.
3277         (arm_sync_new_nandsi): Likewise.
3278         (arm_sync_new_<sync_optab><mode>): Likewise.
3279         (arm_sync_new_nand<mode>): Likewise.
3280         (arm_sync_old_<sync_optab>si): Likewise.
3281         (arm_sync_old_nandsi): Likewise.
3282         (arm_sync_old_<sync_optab><mode>): Likewise.
3283         (arm_sync_old_nand<mode>): Likewise.
3284
3285 2010-09-13  Olivier Hainque  <hainque@adacore.com>
3286
3287         * fwprop.c (forward_propagate_and_simplify): Only attach a
3288         REG_EQUAL note to an insn if the destination is a register.
3289         * gcse.c (try_replace_reg): Likewise.
3290
3291 2010-09-13  Richard Guenther  <rguenther@suse.de>
3292
3293         PR tree-optimization/45611
3294         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
3295         (copy_ref_info): Likewise.
3296
3297 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
3298
3299         PR debug/45604
3300         PR debug/45419
3301         PR debug/45408
3302         * tree-pretty-print.c (dump_generic_node): Disregard top-level
3303         types of MEM_REF pointer types to the same type.
3304
3305 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
3306
3307         PR rtl-optimization/41087
3308         * ifcvt.c (noce_get_condition): Don't allow conditions with
3309         side-effects.
3310
3311 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
3312
3313         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3314         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
3315         * config/frv/frv.c (frv_register_move_cost): Make static. Change
3316         arguments type to reg_class_t. Add mode argument.
3317         (frv_memory_move_cost): New.
3318         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
3319
3320 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
3321
3322         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
3323         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
3324
3325 2010-09-10  Jan Hubicka  <jh@suse.cz>
3326
3327         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
3328
3329 2010-09-10  Richard Guenther  <rguenther@suse.de>
3330
3331         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
3332         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
3333         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
3334         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
3335         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
3336
3337 2010-09-10  Richard Guenther  <rguenther@suse.de>
3338
3339         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
3340         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
3341         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
3342         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
3343
3344 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
3345
3346         PR middle-end/45634
3347         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
3348         of string folding is of integral type.
3349
3350 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
3351
3352         * doc/invoke.texi (-x): Fix typo.
3353
3354 2010-09-10  Richard Guenther  <rguenther@suse.de>
3355
3356         PR debug/44115
3357         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
3358         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3359         Output DECL_DEBUG_EXPR.
3360         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
3361         Input DECL_DEBUG_EXPR.
3362
3363 2010-09-10  Richard Guenther  <rguenther@suse.de>
3364
3365         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
3366         (build_index_type): Implement in terms of build_range_type.
3367         (build_range_type): Do not allow NULL_TREE type, improve
3368         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
3369         if we didn't hash.
3370         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
3371         create a distinct copy of the type.
3372
3373 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
3374
3375         * configure: Regenerated.
3376         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
3377
3378 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3379
3380         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
3381         * config/arm/cortex-a9-neon.md: New and partially generated.
3382         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
3383
3384 2010-09-10  Richard Guenther  <rguenther@suse.de>
3385
3386         * tree.h (build_index_2_type): Remove.
3387         * tree.c (build_index_2_type): Remove.
3388
3389 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
3390
3391         PR bootstrap/45630
3392         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
3393         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
3394         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
3395
3396 2010-09-10  Martin Jambor  <mjambor@suse.cz>
3397
3398         PR tree-optimization/44972
3399         * tree-sra.c: Include toplev.h.
3400         (build_ref_for_offset): Entirely reimplemented.
3401         (build_ref_for_model): New function.
3402         (build_user_friendly_ref_for_offset): New function.
3403         (analyze_access_subtree): Removed build_ref_for_offset check.
3404         (propagate_subaccesses_across_link): Likewise.
3405         (create_artificial_child_access): Use
3406         build_user_friendly_ref_for_offset.
3407         (propagate_subaccesses_across_link): Likewise.
3408         (ref_expr_for_all_replacements_p): Removed.
3409         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
3410         (sra_modify_expr): Use build_ref_for_model.
3411         (load_assign_lhs_subreplacements): Likewise.
3412         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
3413         checks for return values of build_ref_for_offset.
3414         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
3415         build_ref_for_offset.
3416         * ipa-prop.h: Include gimple.h
3417         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
3418         (ipa_analyze_indirect_call_uses): Update comment.
3419         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
3420         (IPA_PROP_H): Likewise.
3421
3422 2010-09-10  Martin Jambor  <mjambor@suse.cz>
3423
3424         PR tree-optimization/44972
3425         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
3426         calling build_ref_for_offset.
3427
3428 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3429
3430         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
3431         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
3432         * config/arm/arm-tune.md: Regenerate.
3433         * doc/invoke.texi (ARM Options): Document it.
3434
3435 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
3436
3437         * config/i386/i386.c: Include sched-int.h.
3438         (TARGET_SCHED_DISPATCH): Defined.
3439         (TARGET_SCHED_DISPATCH_DO): Defined.
3440         (DISPATCH_WINDOW_SIZE): Defined.
3441         (MAX_DISPATCH_WINDOWS): Defined.
3442         (MAX_INSN): Defined.
3443         (MAX_IMM): Defined.
3444         (MAX_IMM_SIZE): Defined.
3445         (MAX_IMM_32): Defined.
3446         (MAX_IMM_64): Defined.
3447         (MAX_LOAD): Defined.
3448         (MAX_STORE): Defined.
3449         (BIG): Defined.
3450         (dispatch_group): New.
3451         (num_allowable_groups): New.
3452         (group_name): New.
3453         (sched_insn_info_s): New.
3454         (dispatch_windows_s): New.
3455         (imm_info_s): New.
3456         (dispatch_window_list): New.
3457         (dispatch_window_list1): New.
3458         (get_mem_group): New.
3459         (is_cmp): New.
3460         (dispatch_violation): New.
3461         (is_branch): New.
3462         (is_prefetch): New.
3463         (init_window): New.
3464         (allocate_window): New.
3465         (init_dispatch_sched): New.
3466         (is_end_basic_block): New.
3467         (process_end_window): New.
3468         (allocate_next_window): New.
3469         (find_constant_1): New.
3470         (find_constant): New.
3471         (get_num_immediates): New.
3472         (has_immediate): New.
3473         (get_insn_path): New.
3474         (get_insn_group): New.
3475         (count_num_restricted): New.
3476         (fits_dispatch_window): New.
3477         (add_insn_window): New.
3478         (add_to_dispatch_window): New.
3479         (debug_dispatch_window_file): New.
3480         (debug_dispatch_window): New.
3481         (debug_insn_dispatch_info_file): New.
3482         (debug_ready_dispatch): New.
3483         (do_dispatch): New.
3484         (has_dispatch): New.
3485         * config/i386/i386.h (debug_ready_dispatch): Declared.
3486         (debug_dispatch_window): Declared.
3487         * config/i386/i386.opt (mdispatch-scheduler): New flag.
3488         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
3489         (TARGET_SCHED_DISPATCH_DO): New.
3490         * doc/tm.texi: Regererated.
3491         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
3492         ready_remove_first_dispatch
3493         (schedule_block): Call targetm.sched.dispatch and
3494         targetm.sched.dispatch_do.
3495         (sched_init): Call targetm.sched.dispatch and
3496         targetm.sched.dispatch_do.
3497         (ready_remove_first_dispatch): New.
3498         (number_in_ready): New.
3499         (get_ready_element): New.
3500         * hooks.c (hook_bool_rtx_int_false): New.
3501         (hook_void_rtx_int): New.
3502         * hooks.h (hook_bool_rtx_int_false): Declared.
3503         (hook_void_rtx_int): Declared.
3504         * sched-int.h (IS_DISPATCH_ON): Defined.
3505         (IS_CMP): Defined.
3506         (DISPATCH_VIOLATION): Defined.
3507         (FITS_DISPATCH_WINDOW): Defined.
3508         (DISPATCH_INIT): Defined.
3509         (ADD_TO_DISPATCH_WINDOW): Defined.
3510         (get_ready_element): Declared.
3511         (number_in_ready): Declared.
3512         * target.def (dispatch): Defined.
3513         (dispatch_do): Defined.
3514
3515 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3516
3517         PR middle-end/45312
3518         * reload1.c (merge_assigned_reloads): Remove.
3519         (reload_as_needed): Don't call it.
3520
3521 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
3522
3523         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
3524         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3525         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3526
3527 2010-09-09  Matthias Klose  <doko@ubuntu.com>
3528
3529         PR bootstrap/43847
3530         * configure.ac (--enable-plugin): Enhance for cross builds.
3531         * configure: Regenerate.
3532
3533 2010-09-09  Jan Hubicka  <jh@suse.cz>
3534
3535         PR tree-optimization/45598
3536         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
3537         string folding is of integral type.
3538
3539 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
3540
3541         * configure.ac (gnu_indirect_function): New test.
3542         * configure: Rebuilt.
3543         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
3544         * defaults.h (IFUNC_ASM_TYPE): Provide default.
3545
3546         * doc/extend.texi (Function Attributes): Document ifunc.
3547         * varasm.c (do_assemble_alias): Deal with ifuncs too.
3548
3549 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3550
3551         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
3552         epilogue instruction move.
3553
3554 2010-09-09  Jan Hubicka  <jh@suse.cz>
3555
3556         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
3557         command line to allow more partitions than input files.
3558
3559 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3560
3561         PR middle-end/44554
3562         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
3563
3564 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3565
3566         PR middle-end/40386
3567         * ira.c (pseudo_for_reload_consideration_p): Don't use
3568         flag_ira_share_spill_slots.
3569
3570 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3571
3572         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
3573         point zero operands that fit into a single GPR.
3574         (s390_preferred_reload_class): Ensure we only return general-purpose
3575         register classes.
3576         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
3577         floating-point zero operands into GPRs.
3578         ("*mov<mode>_64"): Likewise.
3579         ("mov<mode>"): Likewise using lhi.
3580
3581 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3582
3583         * config/s390/s390.c (s390_symref_operand_p): Return false for
3584         literal pool references.
3585         (s390_check_qrst_address): Update caller.
3586
3587 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
3588
3589         * config/i386/predicates.md (ext_register_operand): Check that
3590         SUBREG_REG is really a register before looking for REGNO.
3591         (reg_not_xmm0_operand): Handle SUBREGs correctly.
3592         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
3593
3594 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
3595
3596         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
3597         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
3598         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
3599         * print-rtl.c (print_rtx): Likewise.
3600         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
3601         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
3602         for ADDR_EXPR with non-addressable object.
3603         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
3604         (struct dw_val_struct): Add v.val_decl_ref.
3605         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
3606         Handle DW_OP_GNU_implicit_pointer.
3607         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
3608         (get_ref_die_offset_label): New function.
3609         (implicit_ptr_descriptor): New function.
3610         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
3611         (loc_descriptor): Likewise.
3612         (gen_variable_die): Put even definitions into decl_die_table.
3613         (resolve_addr_in_expr): Resolve still unresolved
3614         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
3615         return false.
3616         (dwarf2out_finish): Call output_location_lists after outputting
3617         .debug_info and .debug_abbrev instead of before.
3618
3619 2010-09-09  Roland McGrath  <roland@redhat.com>
3620
3621         * dwarf2out.c (DWARF_REF_SIZE): Define.
3622         (size_of_loc_descr): Use it for DW_OP_call_ref.
3623
3624 2010-09-09  Alan Modra  <amodra@gmail.com>
3625
3626         * doc/invoke.text: Reinstate mcmodel=medium.
3627         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3628         CMODEL_MEDIUM as default.
3629         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
3630         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
3631         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
3632         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
3633
3634 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3635
3636         PR target/45250
3637         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
3638         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
3639         (builtin_longjmp): Likewise.
3640         (allocate_stack): Use hard_frame_pointer_rtx instead of
3641         frame_pointer_rtx.
3642         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
3643         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
3644         (pa_can_eliminate): Likewise.
3645         (TARGET_INTERNAL_ARG_POINTER): Define.
3646         (TARGET_CAN_ELIMINATE): Define.
3647         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
3648         pointer.
3649         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
3650         (pa_internal_arg_pointer, pa_can_eliminate,
3651         pa_initial_elimination_offset): New.
3652         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
3653         (HARD_FRAME_POINTER_REGNUM): Set to register three.
3654         (INITIAL_FRAME_POINTER_OFFSET): Delete.
3655         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
3656         Define.
3657         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
3658         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
3659         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
3660         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
3661         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
3662         new soft frame pointer.
3663         * config/pa/pa64-regs.h: Likewise.
3664
3665 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
3666
3667         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
3668         numerical constant.
3669         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
3670
3671 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
3672
3673         PR debug/45531
3674         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
3675
3676 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
3677
3678         PR debug/45419
3679         PR debug/45408
3680         * tree-pretty-print.c (dump_generic_node): Disregard top-level
3681         qualifiers in otherwise equal MEM_REF pointer types.
3682         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
3683         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
3684
3685 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3686
3687         PR target/44392
3688         * config/arm/arm.md (bswapsi2): Handle condition correctly
3689         for armv6 and optimize_size.
3690
3691 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3692
3693         PR other/18555
3694         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
3695
3696 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
3697
3698         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
3699         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
3700         ix86_expand_strlen, legitimate_pic_address_disp_p,
3701         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
3702         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
3703         ix86_check_movabs, ix86_secondary_memory_needed): Change function
3704         prototype to bool.
3705         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
3706         return_in_memory_ms_64, ix86_check_movabs,
3707         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
3708         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
3709         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
3710         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
3711         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
3712         ix86_secondary_memory_needed): Change to bool.  Return
3713         "true" and "false" values.
3714         * config/i386/i386.md: Return "true" and "false" values.
3715
3716 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3717
3718         * doc/sourcebuild.texi (Effective-Target Keywords): Document
3719         run_expensive_tests.
3720
3721 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3722
3723         * toplev.c (output_stack_usage): Use lbasename instead of basename.
3724
3725 2010-09-08  Martin Jambor  <mjambor@suse.cz>
3726
3727         PR other/45443
3728         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
3729         at -O3.
3730
3731 2010-09-08  Richard Guenther  <rguenther@suse.de>
3732
3733         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
3734         (visit): Adjust.
3735         (iterative_hash_gimple_type): Likewise.
3736         (gimple_type_hash): Likewise.
3737         (gimple_register_type): Likewise.
3738         (print_gimple_types_stats): Likewise.
3739         (free_gimple_type_tables): Likewise.
3740
3741 2010-09-08  Michael Matz  <matz@suse.de>
3742
3743         PR tree-optimization/43430
3744         * tree-vect-stmts.c (vectorizable_condition): Support multiple
3745         copies for conditional statements if it's not part of a reduction.
3746
3747 2010-09-08  Michael Matz  <matz@suse.de>
3748
3749         PR tree-optimization/33244
3750         * tree-ssa-sink.c (statement_sink_location): Don't sink into
3751         empty loop latches.
3752
3753 2010-09-08  Richard Guenther  <rguenther@suse.de>
3754
3755         PR tree-optimization/45578
3756         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
3757         Be more careful when transfering alignment information to
3758         the new induction variable.
3759         (copy_ref_info): Likewise.
3760
3761 2010-09-08  Richard Guenther  <rguenther@suse.de>
3762
3763         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
3764         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
3765
3766 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
3767
3768         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
3769         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
3770
3771 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3772
3773         PR doc/45587
3774         * doc/md.texi: Fixed modes on several standard pattern names.
3775
3776 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
3777
3778         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
3779         (ashl<mode>3): ...this.
3780         (loongson_psra<V_suffix>): Rename to...
3781         (ashr<mode>3): ...this.
3782         (loongson_psrl<V_suffix>): Rename to...
3783         (lshr<mode>3): ...this.
3784         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
3785         (CODE_FOR_loongson_psllw): Define.
3786         (CODE_FOR_loongson_psrlh): Define.
3787         (CODE_FOR_loongson_psrlw): Define.
3788         (CODE_FOR_loongson_psrah): Define.
3789         (CODE_FOR_loongson_psraw): Define.
3790
3791 2010-09-07  Richard Henderson  <rth@redhat.com>
3792
3793         * tree-vect-data-refs.c: Include tm_p.h.
3794         * Makefile.in (tree-vect-data-refs.o): Update deps.
3795         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
3796         Move delarations outside #ifdef RTX_CODE.
3797
3798 2010-09-07  Richard Henderson  <rth@redhat.com>
3799
3800         * final.c (rest_of_handle_final): Unconditionally do
3801         output_function_exception_table before assemble_end_function.
3802
3803 2010-09-07  Jan Hubicka  <jh@suse.cz>
3804
3805         * tree-inline.c (tree_inlinable_function_p): Do not test
3806         DECL_REPLACEABLE_P.
3807         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
3808         update_callee_keys, cgraph_decide_inlining): Test function availability.
3809         * cif-code.def (OVERWRITABLE): New code.
3810
3811 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
3812             Jack Howarth  <howarth@bromo.med.uc.edu>
3813
3814         PR target/36502
3815         PR target/42313
3816         PR target/44651
3817         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
3818         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
3819         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
3820         MAX macro.
3821
3822 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3823
3824         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
3825         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
3826
3827 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3828
3829         * config.gcc: Don't append t-android for Android targets.
3830
3831         * config/t-android: Removed.
3832
3833 2010-09-07  Richard Henderson  <rth@redhat.com>
3834
3835         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
3836         * doc/tm.texi.in: Add doc marker.
3837         * doc/tm.texi: Rebuild.
3838         * except.c (switch_to_exception_section): Always build.
3839         (output_one_function_exception_table): Move section switch,
3840         personality output, and label output ...
3841         (output_function_exception_table): ... here.  Use the new
3842         personality hook.
3843
3844         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
3845         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
3846         TARGET_ASM_INIT_SECTIONS): New.
3847         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
3848         make static.
3849         (TARGET_ASM_UNWIND_EMIT): Update to match.
3850         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
3851
3852         * config/arm/arm.c (arm_asm_emit_except_personality): New.
3853         (arm_asm_init_sections): New.
3854         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
3855
3856 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3857
3858         * config/arm/arm.md: Remove unused variable.
3859
3860 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
3861
3862         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3863         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
3864         (m32r_memory_move_cost): New function.
3865
3866 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3867
3868         * config.gcc: Append t-android for Android targets.
3869
3870         * config/t-android: New.
3871
3872 2010-09-07  Richard Henderson  <rth@redhat.com>
3873
3874         * target.def (unwind_emit_before_insn): New hook.
3875         * doc/tm.texi.in: Add @hook marker for it.
3876         * doc/tm.texi: Rebuild.
3877         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
3878
3879 2010-09-07  Martin Jambor  <mjambor@suse.cz>
3880
3881         PR fortran/43665
3882         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
3883         are any type attributes.
3884
3885 2010-09-07  Jan Hubicka  <jh@suse.cz>
3886
3887         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
3888         array_ref_low_bound in string access folding.
3889
3890 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
3891
3892         PR target/45206
3893         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
3894         eh_return fixup sequence.
3895
3896 2010-09-07  Jan Hubicka  <jh@suse.cz>
3897
3898         * gimple-fold.c (maybe_fold_reference): Verify that operand is
3899         gimple_min_invariant.
3900
3901 2010-09-07  Richard Guenther  <rguenther@suse.de>
3902
3903         PR middle-end/45569
3904         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
3905         nor CONSTRUCTOR can trap.
3906         * tree-complex.c (update_complex_assignment): Update EH info.
3907
3908 2010-09-07  Richard Guenther  <rguenther@suse.de>
3909
3910         PR middle-end/45569
3911         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
3912         * passes.c (execute_function_todo): Do not verify anything if
3913         we saw errors.
3914
3915 2010-09-07  Richard Guenther  <rguenther@suse.de>
3916
3917         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
3918
3919 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
3920
3921         PR target/43137
3922         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
3923         New define_mode_attrs.
3924         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
3925         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
3926         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
3927         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
3928         Remove pool_range attribute.
3929         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
3930         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
3931         pool_range and neg_pool_range attributes.
3932         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
3933         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
3934         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
3935
3936 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
3937
3938         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
3939         check glibc.
3940
3941 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
3942
3943         PR target/22152
3944         * config/i386/mmx.md (*mov<mode>_internal_rex64,
3945         *mov<mode>_internal_avx, *mov<mode>_internal,
3946         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
3947         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
3948
3949 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
3950
3951         * c-typeck.c (do_warn_double_promotion): Remove.
3952         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
3953         Objective-C++ too.
3954
3955 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
3956
3957         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
3958         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
3959         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
3960         argument type to reg_class_t. Change result type to bool.
3961         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3962
3963 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
3964
3965         PR libobjc/19850
3966         * gthr-posix.h (__gthread_objc_thread_detach): Use
3967         _objc_thread_attribs when detaching a thread.
3968         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
3969
3970 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
3971
3972         PR target/45524
3973         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
3974         * configure: Regenerated.
3975
3976 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3977
3978         * combine.c (try_combine): Set subst_low_luid to i0.
3979
3980 2010-09-06  Richard Guenther  <rguenther@suse.de>
3981
3982         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
3983         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
3984         (build_aligned_type): Declare.
3985         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
3986         (check_aligned_type): New function.
3987         (build_aligned_type): Likewise.
3988         * expr.c (expand_assignment): Handle misaligned stores via
3989         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
3990         (expand_expr_real_1): Likewise.
3991         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
3992         * tree-vect-stmts.c (vectorizable_store): Do not build
3993         MISALIGNED_INDIRECT_REF but initialize alignment information.
3994         (vectorizable_load): Likewise.
3995         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
3996         handling.
3997         * cfgexpand.c (expand_debug_expr): Likewise.
3998         * dwarf2out.c (loc_list_from_tree): Likewise.
3999         * fold-const.c (maybe_lvalue_p): Likewise.
4000         (operand_equal_p): Likewise.
4001         (build_fold_addr_expr_with_type_loc): Likewise.
4002         * gimplify.c (gimplify_addr_expr): Likewise.
4003         (gimplify_expr): Likewise.
4004         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
4005         (verify_gimple_assign_single): Likewise.
4006         * tree-dump.c (dequeue_and_dump): Likewise.
4007         (tree_could_trap_p): Likewise.
4008         * tree-predcom.c (ref_at_iteration): Likewise.
4009         * tree-pretty-print.c (dump_generic_node): Likewise.
4010         (op_code_prio): Likewise.
4011         (op_symbol_code): Likewise.
4012         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
4013         * tree-ssa-loop-im.c (for_each_index): Likewise.
4014         (gen_lsm_tmp_name): Likewise.
4015         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
4016         (find_interesting_uses_address): Likewise.
4017         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
4018         * tree-ssa-operands.c (get_expr_operands): Likewise.
4019         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
4020         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4021         (ao_ref_init_from_vn_reference): Likewise.
4022         * tree.c (staticp): Likewise.
4023         (build1_stat): Likewise.
4024         (reference_alias_ptr_type): Likewise.
4025         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4026         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
4027         MISALIGNED_INDIRECT_REF handling.
4028
4029 2010-09-06  Richard Guenther  <rguenther@suse.de>
4030
4031         PR tree-optimization/45534
4032         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
4033         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
4034         on the target.
4035         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
4036         valid on the target.
4037
4038 2010-09-06  Andreas Schwab  <schwab@redhat.com>
4039
4040         * configure.ac: Quote argument of AC_MSG_WARN.
4041         * configure: Regenerate.
4042
4043 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
4044
4045         * sel-sched.c (move_cond_jump): Correct arguments to
4046         maybe_tidy_empty_bb.
4047         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
4048
4049 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
4050
4051         PR rtl-optimization/44919
4052         * sel-sched.c (move_cond_jump): Remove assert, check that
4053         the several blocks case can only happen with mutually exclusive
4054         insns instead.  Rewrite the movement code to support moving through
4055         several basic blocks.
4056
4057 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
4058
4059         * config/i386/i386.md (iptrsize): New mode attribute.
4060         (tp_seg): Ditto.
4061         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
4062         mode iterator.
4063         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
4064         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
4065         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
4066         (stack_tls_protect_set_<mode>): Ditto from
4067         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
4068         of thread base pointer load.
4069         (stack_tls_protect_test_<mode>): Ditto from
4070         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
4071         of thread base pointer load.
4072         (stack_protect_set): Rewrite using indirect functions.
4073         (stack_protect_test): Ditto.
4074         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
4075         (ix86_print_operand): Handle '@'.
4076
4077 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
4078
4079         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
4080         MINUS_EXPR.
4081
4082 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
4083
4084         * doc/invoke.texi: Document -Wdouble-promotion.
4085         * c-typeck.c (convert_arguments): Check for implicit conversions
4086         from float to double.
4087         (do_warn_double_promotion): New function.
4088         (build_conditional_expr): Use it.
4089         (build_binary_op): Likewise.
4090
4091 2010-09-05  Richard Guenther  <rguenther@suse.de>
4092
4093         PR tree-optimization/45535
4094         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
4095         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
4096         dereferencing it.
4097         (indirect_refs_may_alias_p): Likewise.
4098
4099 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
4100
4101         * config/sh/sh.c (sh_option_override): Make static.
4102         Adjust comments.  Declare.
4103         (sh_function_value_regno_p): Likewise.
4104         (sh_register_move_cost): Modify the arguments, make static.
4105         Adjust comments.  Declare.
4106         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
4107         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4108         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
4109         REGISTER_MOVE_COST): Delete.
4110         * config/sh/sh-protos.h (sh_override_options): Delete.
4111         (sh_register_move_cost): Delete.
4112         (sh_function_value_regno_p): Delete.
4113
4114 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
4115
4116         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
4117         m32r_function_value_regno_p): New functions.
4118         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4119         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
4120         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
4121         FUNCTION_VALUE_REGNO_P): Remove.
4122
4123 2010-09-04  Jan Hubicka  <jh@suse.cz>
4124
4125         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
4126         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
4127         fold_read_from_constant_string.
4128
4129         * gimple.h (canonicalize_constructor_val): Declare.
4130         * gimple-fold.c (canonicalize_constructor_val): New function.
4131         (get_symbol_constant_value):Use it.
4132         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
4133
4134 2010-09-04  Jan Hubicka  <jh@suse.cz>
4135
4136         * tree-switch-conversion.c (build_one_array): Set constructor to be
4137         static.
4138         * varpool.c (varpool_finalize_decl): Compute const_value_known.
4139
4140 2010-09-04  Richard Guenther  <rguenther@suse.de>
4141
4142         PR bootstrap/45519
4143         * tree-flow.h (force_gimple_operand_1): Declare.
4144         (force_gimple_operand_gsi_1): Likewise.
4145         * gimplify.c (force_gimple_operand_1): New worker taking a
4146         gimple predicate for ...
4147         (force_gimple_operand): ... which now wraps it.
4148         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
4149         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
4150         last change.
4151         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
4152         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
4153         (create_mem_ref): Likewise.
4154
4155 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
4156
4157         * config/i386/predicates.md (sse_reg_operand): New predicate.
4158         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
4159         predicate for operand 1.
4160         (XFmode push splitter): Use fp_register_operand predicate
4161         for operand 1.
4162         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
4163         (SF-DF float_extend push splitter): Add reload_completed insn
4164         predicate.
4165         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
4166         MODEF mode macro.  Add reload_completed insn predicate.
4167
4168 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
4169
4170         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
4171         (struct df_extract_ref): Remove.
4172         (union df_ref_d): Remove extract_ref member.
4173         (df_ref_create): Remove last three arguments.
4174         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
4175         * df-scan.c (df_ref_record): Remove last three arguments, do not
4176         pass them to df_ref_create_structure.
4177         (df_uses_record): Remove first and last three arguments.  Replace
4178         first argument with DF_REF_REGULAR, adjust calls to remove the
4179         width, offset and mode.  Always call recursively on the second
4180         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
4181         (df_ref_create_structure): Remove first argument.
4182         (struct df_scan_problem_data): Remove ref_extract_pool.
4183         (df_scan_free_internal): Do not free it.
4184         (df_scan_alloc): Do not allocate it.
4185         (df_ref_create): Remove last three arguments, do not pass them to
4186         df_ref_create_structure.
4187         (df_free_ref): Remove DF_REF_EXTRACT case.
4188         (df_notes_rescan): Adjust call to df_uses_record.
4189         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
4190         Remove DF_REF_EXTRACT case.
4191         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
4192         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
4193         and SUBREG definitions.
4194         (df_get_conditional_uses): Remove references to width/offset/mode,
4195         adjust call to df_ref_create_structure.
4196         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
4197         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
4198         calls to df_uses_record and df_ref_record.
4199         * fwprop.c (update_df): Remove references to width/offset/mode,
4200         adjust call to df_ref_create.
4201
4202 2010-09-03  Jan Hubicka  <jh@suse.cz>
4203
4204         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
4205         (build_cdtor_fns): Update use of build_cdtor.
4206
4207 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
4208
4209         * doc/options.texi (SeparateAlias): Document.
4210         * opt-functions.awk (switch_flags): Handle SeparateAlias.
4211         * opth-gen.awk: Generate enumeration names for options marked
4212         SeparateAlias, but not for those marked Ignore.
4213         * opts-common.c (generate_canonical_option): Don't output separate
4214         argument for options marked CL_SEPARATE_ALIAS.
4215         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
4216         * opts.h (CL_SEPARATE_ALIAS): New.
4217         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4218         CL_COMMON): Adjust definitions.
4219         * config/i386/darwin.opt, config/mips/sde.opt: New.
4220         * common.opt (fdump-final-insns): New.
4221         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
4222         i386/darwin.opt.
4223         (mips*-sde-elf*): Add mips/sde.opt.
4224         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
4225         -mno-data-in-code and -mcode-xonly here.
4226         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
4227         * gcc.c (option_map): Add "j" to --dump entry.
4228         (translate_options): Don't translate -d to -foutput-class-dir= here.
4229
4230 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
4231
4232         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
4233         DR_IS_WRITE.
4234         (compute_all_dependences): Same.
4235         (create_rdg_edge_for_ddr): Same.
4236         * tree-data-ref.h (DR_IS_WRITE): New.
4237         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
4238         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
4239         (write_memrefs_written_at_least_once): Same.
4240         * tree-predcom.c (suitable_component_p): Same.
4241         (determine_roots_comp): Same.
4242         (execute_load_motion): Same.
4243         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
4244         (vect_enhance_data_refs_alignment): Same.
4245         (vect_analyze_group_access): Same.
4246
4247 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4248
4249         PR testsuite/42843
4250         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
4251         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
4252
4253 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
4254
4255         * dwarf2out.c (file scope): Remove #if0'd code.
4256         (gen_subprogram_die): Same.
4257
4258 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
4259
4260         PR middle-end/45484
4261         * dwarf2out.c (flush_queued_reg_saves): Rename to...
4262         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
4263         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
4264         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
4265         * config/i386/i386.c (output_set_got): Call it.
4266
4267 2010-09-03  Michael Matz  <matz@suse.de>
4268
4269         PR middle-end/45415
4270         * tree-sra.c (sra_modify_assign): If we modify the statement,
4271         say so.
4272
4273         * tree-ssa.c (verify_ssa): Check number of operands and links
4274         per statement to agree.
4275
4276 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
4277             Iain Sandoe  <iains@gcc.gnu.org>
4278
4279         PR target/45476
4280         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
4281         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
4282         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
4283
4284 2010-09-03  Richard Guenther  <rguenther@suse.de>
4285
4286         * lto-streamer-out.c (output_function): Output function
4287         start and end loci.
4288         * lto-streamer-in.c (input_function): Input function start
4289         and end loci.
4290
4291 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4292
4293         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
4294         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
4295         * configure: Regenerate.
4296         * aclocal.m4: Regenerate.
4297
4298 2010-09-03  Jan Hubicka  <jh@suse.cz>
4299
4300         PR lto/44812
4301         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
4302         on functions/variables in other partition.
4303
4304 2010-09-03  Jan Hubicka  <jh@suse.cz>
4305
4306         * cgraph.h (struct varpool_node): Add const_value_known.
4307         (varpool_decide_const_value_known): Declare.
4308         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
4309         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
4310         (input_varpool_node): Restore const_value_known.
4311         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
4312         initializer folding.
4313         * ipa.c (ipa_discover_readonly_nonaddressable_var,
4314         function_and_variable_visibility): Compute const_value_known.
4315         * gimple-fold.c (get_symbol_constant_value): Use varpool for
4316         initializer folding.
4317         * varpool.c (varpool_decide_const_value_known): New function.
4318
4319 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
4320
4321         * config/i386/i386.md: Remove empty preparation statements
4322         from splitters.
4323
4324 2010-09-03  Jan Hubicka  <jh@suse.cz>
4325
4326         * passes.c (rest_of_decl_compilation): Do not add local vars into
4327         varpool.
4328         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
4329         static or extern vars are in varpool.
4330         (varpool_finalize_decl): Sanity check that only static vars are
4331         finalized.
4332
4333 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
4334
4335         PR debug/45500
4336         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
4337         not just generic vectors with BLKmode.
4338
4339 2010-09-03  Richard Guenther  <rguenther@suse.de>
4340
4341         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
4342         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
4343         * tree.h (TMR_SYMBOL): Remove.
4344         (TMR_BASE, TMR_OFFSET): Adjust.
4345         (TMR_INDEX2): New.
4346         * alias.c (ao_ref_from_mem): Use TMR_BASE.
4347         * builtins.c (get_object_alignment): Merge TMR_BASE and
4348         TMR_SYMBOL handling.
4349         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
4350         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
4351         handling.  Also allow TARGET_MEM_REF as base address.
4352         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
4353         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
4354         base.  Gimplify TMR_INDEX2.
4355         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
4356         * tree-dfa.c (get_ref_base_and_extent): Likewise.
4357         (get_addr_base_and_unit_offset): Likewise.
4358         * tree-eh.c (tree_could_trap_p): Likewise.
4359         * tree-pretty-print.c (dump_generic_node): Likewise.
4360         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
4361         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
4362         base to index2.
4363         (get_address_description): Reconstruct addres description
4364         from merged TMR_BASE and TMR_INDEX2.
4365         (maybe_fold_tmr): Fold propagated addresses.
4366         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
4367         MEM_REF and TARGET_MEM_REF paths.
4368         (indirect_refs_may_alias_p): Likewise.
4369         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
4370         instead of TMR_SYMBOL.
4371         * tree-ssa-operands.c (get_tmr_operands): Simplify.
4372         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
4373         according to changes ...
4374         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
4375         Split TARGET_MEM_REF into two fields plus the base.
4376         * tree.c (mem_ref_offset): Simplify.
4377         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
4378         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
4379         Strip NOPs when folding MEM_REF addresses.
4380         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
4381         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
4382         (fold_gimple_assign): ... not here.
4383
4384 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
4385
4386         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
4387         * config/mips/mips.c (mips_shift_truncation_mask): New function.
4388         (TARGET_SHIFT_TRUNCATION_MASK): Define.
4389
4390 2010-09-02  Richard Henderson  <rth@redhat.com>
4391
4392         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
4393         instead of readelf in the test.
4394         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
4395         in the .debug_frame section for coff targets.
4396         * configure: Rebuild.
4397
4398 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
4399
4400         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
4401         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
4402         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4403         (m32c_class_likely_spilled_p): Make static. Change argument type to
4404         reg_class_t. Change result type to bool.
4405
4406 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4407
4408         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
4409         to convert (double)(long) into a single FRIZ instruction or not
4410         when -ffast-math is used.
4411
4412         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
4413         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
4414         or FRIZ instruction if -ffast-math.
4415         * config/rs6000/rs6000.md (friz): Ditto.
4416
4417         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
4418
4419 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
4420
4421         * opth-gen.awk (quote, comma): Remove unused variables.
4422
4423 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
4424
4425         * arm.c (arm_override_options): Correct fall-back code to use
4426         SUBTARGET_CPU_DEFAULT.
4427
4428 2010-09-02  Julian Brown  <julian@codesourcery.com>
4429
4430         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
4431         unspecs.
4432         (vcond<mode>, vcondu<mode>): New expanders.
4433         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
4434         comparisons with zero.
4435         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
4436         * config/arm/constraints.md (Dz): New constraint.
4437
4438 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
4439
4440         * target.def (class_likely_spilled_p): New hook.
4441         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
4442         * doc/tm.texi: Regenerate.
4443         * targhooks.c (default_class_likely_spilled_p): New function.
4444         * targhooks.h (default_class_likely_spilled_p): Declare.
4445         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
4446         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
4447         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
4448         Use fixed_reg_set instead of fixed_regs.
4449         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
4450         * calls.c (avoid_likely_spilled_reg): Ditto.
4451         * ira-conflicts.c (ira_build_conflicts): Ditto.
4452         * ira.c (update_equiv_regs): Ditto.
4453         * mode-switching.c (create_pre_exit): Ditto.
4454         * regmove.c (find_matches): Ditto.
4455         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
4456         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
4457         (small_register_class_p): New inline function.
4458         (push_secondary_reload, find_reusable_reload, find_reloads): Use
4459         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
4460
4461         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
4462         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
4463         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4464
4465 2010-09-02  Richard Guenther  <rguenther@suse.de>
4466
4467         PR tree-optimization/44937
4468         PR tree-optimization/45412
4469         * ipa-split.c (split_function): Properly remove PHI nodes.
4470
4471 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
4472
4473         * opts.h (struct cl_option): Add warn_message field.
4474         (struct cl_decoded_option): Add warn_message field.
4475         * doc/options.texi (Ignore, Warn): Document.
4476         * opt-functions.awk (needs_state_p): Don't consider aliases or
4477         ignored options to need state saved.
4478         * optc-gen.awk: Handle Warn and Ignore.
4479         * opth-gen.awk: Output OPT_SPECIAL_ignore.
4480         * opts-common.c (decode_cmdline_option): Set warn_message field.
4481         Handle ignored options.
4482         (decode_cmdline_options_to_array, generate_option,
4483         generate_option_input_file): Set warn_message field.
4484         (read_cmdline_option): Generate warnings from warn_message field.
4485         Handle ignored options.
4486         * common.opt (Wunreachable-code, fargument-alias,
4487         fargument-noalias, fargument-noalias-global,
4488         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
4489         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
4490         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
4491         ftree-salias): Mark Ignore.
4492         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
4493         -mintel-syntax and -mno-intel-syntax here.
4494         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
4495         using Warn.
4496         * opts.c (common_handle_option): Don't handle options marked as
4497         ignored.
4498         (enable_warning_as_error): Handle ignored options.
4499
4500 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
4501
4502         PR driver/44076
4503         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
4504         alias_target fields.
4505         * opt-functions.awk (opt_sanitized_name): Don't handle
4506         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
4507         * optc-gen.awk: Generate alias fields.
4508         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
4509         Don't generate such constants for aliases.
4510         * opts-common.c (generate_canonical_option): New.
4511         (decode_cmdline_option): Handle aliases.  Use
4512         generate_canonical_option for known options instead of copying the
4513         input option text.
4514         * doc/options.texi (Alias): Document.
4515         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
4516         fstack-check, specs): Mark as aliases.
4517         * gcc.c (driver_handle_option): Canonicalize -L options to joined
4518         arguments.
4519         (driver_handle_option): Don't handle OPT_specs.
4520         * opts.c (common_handle_option): Don't handle options marked as
4521         aliases.
4522         (enable_warning_as_error): Handle aliases.
4523         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
4524         OPT_Wlarger_than_eq.
4525         * tree-optimize.c (tree_rest_of_compilation): Use
4526         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
4527
4528 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
4529
4530         * config/i386/i386.md (nonmemory_operand): New mode attribute.
4531         (push memory peephole2): Macroize peepholes using SWI mode iterator.
4532         (move immediate to memory peephole2): Macroize peepholes using
4533         SWI124 mode iterator.
4534         (non-pairable NOT peephole2): Macroize peepholes using SWI124
4535         mode iterator.
4536         (simple lea add peephole2): Macroize peepholes using SWI48
4537         mode iterator.
4538         (simple lea mult peephole2): Ditto.
4539         (imul by 3,5,9 to lea peephole2): Ditto.
4540         (mov $-1, reg peephole2): Macroize peepholes using SWI248
4541         mode iterator.
4542         (imul $32bit_imm,mem,reg peephole2): Ditto.
4543         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
4544
4545 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
4546
4547         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
4548
4549 2010-09-02  Olivier Hainque  <hainque@adacore.com>
4550
4551         PR middle-end/44763
4552         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
4553         (allocno_priority_compare_func): Use it instead of a straight
4554         difference computation over priorities.
4555
4556 2010-09-02  Andi Kleen  <ak@linux.intel.com>
4557
4558         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
4559
4560 2010-09-02  Ira Rosen  <irar@il.ibm.com>
4561
4562         * tree-vectorizer.h (get_later_stmt): New function.
4563         (vect_analyze_data_ref_dependences): Add argument.
4564         * tree-vect-loop.c (vect_analyze_loop): Update call to
4565         vect_analyze_data_ref_dependences.
4566         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
4567         New function.
4568         (vect_analyze_data_ref_dependence): Add argument for basic block
4569         dependencies. Check dependencies in basic block vectorization.
4570         (vect_analyze_data_ref_dependences): Add argument and update call to
4571         vect_analyze_data_ref_dependences.
4572         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
4573         (vect_bb_vectorizable_with_dependencies): New.
4574         (vect_slp_analyze_bb): Check dependencies in basic block.
4575         (vect_schedule_slp_instance): Insert stores before the last store in
4576         SLP instance.
4577
4578 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
4579
4580         PR target/45476
4581         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
4582         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
4583
4584 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
4585
4586         PR middle-end/45458
4587         * bb-reorder.c (add_labels_and_missing_jumps): Treat
4588         bbs ending with throwing insns like blocks ending with a call.
4589         (fix_up_fall_thru_edges): Likewise.
4590
4591 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
4592
4593         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
4594         (m32c_function_arg_advance): Delete.
4595         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4596         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
4597         comments.  Take a const_tree and a bool.  Declare.
4598         (m32c_function_arg_advance): Likewise.
4599         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4600
4601 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
4602
4603         PR target/45476
4604         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
4605         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
4606         * config/i386/mingw32.h: ... here.
4607
4608 2010-09-01  Andi Kleen  <ak@linux.intel.com>
4609
4610         PR lto/45475
4611         * lto-streamer-in.c (lto_input_ts_target_option): Add.
4612         (lto_input_tree_pointers): Call lto_input_ts_target_option.
4613         * lto-streamer-out (lto_output_ts_target_option): Add.
4614         (lto_output_tree_pointers): Call lto_output_ts_target_option.
4615
4616 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
4617
4618         PR/target 45452
4619         * config/i386/cygwin.h: Change order of specified import libraries.
4620         * config/i386/mingw32.h: Likewise.
4621         * config/i386/t-cygwin: Likewise.
4622         * config/i386/t-mingw32: Likewise.
4623         * config/i386/t-mingw-w32: Likewise.
4624         * config/i386/t-mingw-w64: Likewise.
4625
4626 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4627
4628         * config/arm/neon-schedgen.ml (core): New type.
4629         (allCores): List of supported cores.
4630         (availability_table): Add supported cores.
4631         (collate_bypasses): Accept core as a parameter.
4632         (worst_case_latencies_and_bypasses): Accept core as a parameter.
4633         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
4634         and coreStr to get tune attribute and prefix for functional units.
4635         (emit_bypasses): Accept core name and use it.
4636         (calculate_per_core_availability_table): New.
4637         (filter_core): New.
4638         (calculate_core_availability_table): New.
4639         (main): Use calculate_core_availablity_table.
4640         * config/arm/cortex-a8-neon.md: Update copyright year.
4641         Regenerated from ml file and merged in.
4642         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
4643         cortex_a8_neon_mrc.
4644
4645 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
4646
4647         * Makefile.in (tree-switch-conversion.o): Update dependencies.
4648
4649 2010-09-01  Richard Guenther  <rguenther@suse.de>
4650
4651         * alias.c (ao_ref_from_mem): Adjust.
4652         * builtins.c (get_object_alignment): Likewise.
4653         * cfgexpand.c (expand_debug_expr): Likewise.
4654         * gimple.c (get_base_address): Likewise.
4655         * tree-dfa.c (get_ref_base_and_extent): Likewise.
4656         (get_addr_base_and_unit_offset): Likewise.  Fix for
4657         both TMR_SYMBOL and TMR_BASE being set.
4658         * tree-eh.c (tree_could_trap_p): Likewise.
4659         * gimplify.c (gimplify_expr): Do not attempt to gimplify
4660         TMR_SYMBOL.  Always gimplify TMR_BASE.
4661         * tree-cfg.c (verify_types_in_gimple_reference): Verify
4662         TMR_BASE if there is a TMR_SYMBOL.
4663         * tree-pretty-print.c (dump_generic_node): Adjust.
4664         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
4665         (tree_mem_ref_addr): Likewise.
4666         (create_mem_ref_raw): Likewise.
4667         (move_fixed_address_to_symbol): Likewise.
4668         (create_mem_ref): Likewise.
4669         (dump_mem_address): Likewise.
4670         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
4671         Fix for both TMR_SYMBOL and TMR_BASE being set.
4672         (indirect_refs_may_alias_p): Likewise.
4673         * tree-ssa-operands.c (get_tmr_operands): Adjust.
4674         * tree.def (TARGET_MEM_REF): Adjust documentation.
4675
4676 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
4677
4678         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
4679         Rename from X86_TUNE_ADD_ESP_4.
4680         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
4681         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
4682         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
4683         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
4684         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
4685         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
4686         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
4687         * config/i386/i386.c (initial_ix86_tune_features)
4688         <X86_TUNE_SINGLE_POP>: Invert members.
4689         <X86_TUNE_DOUBLE_POP>: Ditto.
4690         <X86_TUNE_SINGLE_PUSH>: Ditto.
4691         <X86_TUNE_DOUBLE_PUSH>: Ditto.
4692         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
4693         No longer exported.
4694         (push peephole2 patterns): Macroize peepholes using P mode iterator.
4695         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
4696         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
4697         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
4698
4699 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
4700
4701         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
4702         a volatile LHS if the constructor has only one element.
4703
4704 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
4705
4706         PR bootstrap/45321
4707         * tree.c (stdarg_p): Make fntype parameter const.
4708         * tree.h (stdarg_p): Likewise.
4709         (function_args_iterator): Remove unused fntype field.
4710         (function_args_iter_init): Do not initialize fntype
4711         field.  Make fntype parameter const.
4712
4713 2010-09-01  Richard Guenther  <rguenther@suse.de>
4714
4715         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
4716         estimate.
4717         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
4718         (execute_vrp): Compute number of iteration estimates.
4719         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
4720         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
4721         * tree-data-ref.c (estimated_loop_iterations): Adjust.
4722         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
4723         Infer loop bounds from undefined behavior based on a new parameter.
4724         (estimate_numbers_of_iterations): Likewise.
4725         (scev_probably_wraps_p): Adjust.
4726         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
4727
4728 2010-09-01  Nick Clifton  <nickc@redhat.com>
4729
4730         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
4731         where appropriate.
4732         (xstormy16_legitimate_address_p): Use true and false instead of 1
4733         and 0.
4734         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
4735         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
4736         magic constant 2.
4737         (xstormy16_expand_call): Fix comment at start of function.
4738
4739 2010-09-01  Nick Clifton  <nickc@redhat.com>
4740
4741         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
4742         when pushing accumulator register.
4743         (rx_get_stack_layout): Always save call clobbered registers inside
4744         interrupt handlers.
4745         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
4746
4747 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
4748
4749         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
4750         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
4751
4752         * libgcc-std.ver (GCC_4.6.0): Define version.
4753
4754 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
4755
4756         * tree-nested.c (convert_all_function_calls): Iterate until after the
4757         sum of static chains in the nest doesn't change.
4758
4759 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
4760
4761         * config/m32c/m32c.c (classes_intersect): Remove.
4762         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
4763         reg_classes_intersect_p instead of classes_intersect.
4764         (class_can_hold_mode): Change arguments type from enum reg_class to
4765         reg_class_t.  Use reg_class_contents instead of class_contents.
4766         (m32c_register_move_cost): Make static. Change arguments type from
4767         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
4768         classes_intersect. Use reg_class_contents instead of class_contents.
4769         (m32c_memory_move_cost): Make static. Change arguments type from
4770         enum reg_class to reg_class_t.
4771         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4772         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4773         * config/m32c/m32c-protos.h (m32c_register_move_cost,
4774         m32c_memory_move_cost): Remove.
4775
4776 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4777
4778         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
4779         (arm_function_arg): Delete.
4780         (arm_needs_doubleword_align): Take a const_tree.
4781         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4782         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
4783         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
4784         (arm_function_arg): Make static.  Take a const_tree and a bool.
4785         (arm_function_arg_advance): Likewise.
4786         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4787
4788 2010-08-31  Andi Kleen  <ak@linux.intel.com>
4789
4790         * common.opt (fwhopr=): Update for -fwhopr=jobserver
4791         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
4792         * lto-wrapper.c (run_gcc): Add jobserver mode.
4793         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
4794         argument.
4795
4796 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
4797
4798         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
4799         (popsi1): Ditto.
4800         (*popdi1_epilogue): Ditto.
4801         (*popsi1_epilogue): Ditto.
4802         (popsi, popdi peephole2 patterns): Update peepholes for changed
4803         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
4804
4805         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
4806         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
4807
4808         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
4809         (override_options): Do not initialize removed ix86_gen_pop1.
4810         (gen_pop): New static function.
4811         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
4812         (release_scratch_register_on_entry): Ditto.
4813         (ix86_restore_reg_using_pop): Ditto.
4814         (ix86_expand_epilogue): Ditto.
4815
4816 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
4817
4818         PR middle-end/45461
4819         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
4820
4821 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4822
4823         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
4824         semicolons.
4825
4826 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4827
4828         * doc/extend.texi: Fix documentation of the return value of
4829         __builtin_choose_expr.
4830
4831 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4832
4833         * config/v850/v850-protos.h (function_arg): Delete.
4834         * config/v850/v850.h (FUNCTION_ARG): Delete.
4835         (FUNCTION_ARG_ADVANCE): Move code to...
4836         * config/v850/v850.c (v850_function_arg_advance): ...here.
4837         (v850_function_arg): Make static.  Take a const_tree and a bool.
4838         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4839
4840 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4841
4842         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
4843         these...
4844         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
4845         ...and these...
4846         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
4847         ..to here..
4848         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
4849         ...and here.
4850         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4851
4852 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
4853
4854         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
4855         Delete.
4856         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4857         * config/rx/rx.c (rx_function_arg_size): Make static.
4858         (rx_function_arg): Likewise.
4859         (rx_function_arg_advance): New function.
4860         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4861
4862 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
4863
4864         * config/arm/arm.c (arm_override_options): Remove superfluous test.
4865         Fix indentation.
4866
4867 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
4868
4869         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
4870         (dwarf2out_decl) <CONST_DECL>: Likewise.
4871
4872 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
4873
4874         Stack usage support
4875         * common.opt (-fstack-usage): New option.
4876         * doc/invoke.texi (Debugging options): Document it.
4877         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
4878         allocate_dynamic_stack_space.
4879         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
4880         and propagate it to allocate_dynamic_stack_space.
4881         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
4882         * calls.c (initialize_argument_information): Pass TRUE as 4th
4883         argument to allocate_dynamic_stack_space.
4884         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
4885         to 1 when pushing a variable-sized argument onto the stack.  Pass
4886         TRUE as 4th argument to allocate_dynamic_stack_space.
4887         Update current_function_pushed_stack_size.
4888         (emit_library_call_value_1): Likewise.
4889         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
4890         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
4891         attempt to find an upper bound.  Remove redundant code for the
4892         SETJMP_VIA_SAVE_AREA case.
4893         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
4894         * function.h (struct stack_usage): New structure.
4895         (current_function_static_stack_size): New macro.
4896         (current_function_dynamic_stack_size): Likewise.
4897         (current_function_pushed_stack_size): Likewise.
4898         (current_function_dynamic_alloc_count): Likewise.
4899         (current_function_has_unbounded_dynamic_stack_size): Likewise.
4900         (current_function_allocates_dynamic_stack_space): Likewise.
4901         (struct function): Add new field 'su'.
4902         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
4903         add the value of the dynamic offset to the dynamic stack usage.
4904         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
4905         for variable-sized objects.
4906         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
4907         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
4908         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
4909         BUILT_IN_ALLOCA for variable-sized objects.
4910         * output.h (output_stack_usage): Declare.
4911         * toplev.c (stack_usage_file): New file pointer.
4912         (output_stack_usage): New function.
4913         (open_auxiliary_file): Likewise.
4914         (lang_dependent_init): Open file if flag_stack_usage is set.
4915         (finalize): Close file if stack_usage_file is not null.
4916         * tree.h (ALLOCA_FOR_VAR_P): New macro.
4917         * config/alpha/alpha.c (compute_frame_size): New function.
4918         (alpha_expand_prologue): Use it.
4919         (alpha_start_function): Likewise.
4920         (alpha_expand_epilogue): Likewise.  Set stack usage info.
4921         * config/i386/i386.c (ix86_expand_prologue): Likewise.
4922         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4923         * config/mips/mips.c (mips_expand_prologue): Likewise.
4924         * config/pa/pa.c (hppa_expand_prologue): Likewise.
4925         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4926         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4927
4928 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
4929
4930         PR tree-optimization/45427
4931         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
4932         Handle the case that the exit is never taken correctly.
4933         (number_of_iterations_ne): Pass exit_must_be_taken to
4934         number_of_iterations_ne_max.
4935
4936 2010-08-30  Catherine Moore  <clm@codesourcery.com>
4937
4938         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
4939         Infer -mdspr2 for the the 74K.
4940
4941 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
4942
4943         PR debug/45419
4944         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
4945
4946         PR middle-end/45423
4947         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
4948         and TRUTH_{AND,OR,XOR}_EXPR.
4949         * c-parser.c (c_parser_omp_atomic): Handle boolean
4950         {PRE,POST}_{INC,DEC}REMENT.
4951
4952 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
4953
4954         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
4955         (function_arg): Delete.
4956         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4957         (FUNCTION_INCOMING_ARG): Delete.
4958         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
4959         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
4960         and a bool.
4961         (function_arg): Rename to...
4962         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
4963         a bool.
4964         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
4965         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4966         (TARGET_FUNCTION_INCOMING_ARG): Define.
4967
4968 2010-08-30  Richard Guenther  <rguenther@suse.de>
4969
4970         PR tree-optimization/21602
4971         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
4972         using points-to information.
4973
4974 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
4975
4976         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
4977
4978 2010-08-30  Richard Guenther  <rguenther@suse.de>
4979
4980         PR tree-optimization/45449
4981         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
4982         variables.
4983
4984 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
4985
4986         * opts.h (CL_ERR_NEGATIVE): Define.
4987         * opts.c (unknown_option_callback): Don't postpone warnings for
4988         options marked with CL_ERR_NEGATIVE.
4989         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
4990         for negative versions of CL_REJECT_NEGATIVE options.
4991
4992 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
4993
4994         * config/i386/i386.md (zero_extendsidi2_1): Rename from
4995         zero_extendsidi2_32.
4996         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
4997         using SWI12 mode iterator.
4998         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
4999         to define_insn_and_split pattern.
5000         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
5001         using SWI24 mode iterator.
5002         (*zero_extendqi<mode>2_and): Macroize insn from
5003         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
5004         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
5005         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
5006         SWI24 mode iterator.
5007         (*zero_extendqi<mode>2_movzbl): Ditto from
5008         *zero_extendqi{hi,si}2_movzbl.
5009         (extendsidi2_1): Rename from extendsidi2_32.
5010         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
5011         SWI12 mode iterator.
5012
5013 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
5014
5015         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
5016         general purpose registers.
5017         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
5018         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
5019         with general purpose registers and memory operands.  Add associated
5020         CCImode post-reload splitter.
5021         * config/ia64/div.md: Change BImode to CCImode throughout.
5022
5023 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
5024
5025         * config/ia64/ia64.md (cstorebi4): Fix thinko.
5026
5027 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
5028
5029         * config/picochip/picochip.c (reorder_var_tracking_notes): This
5030         function was dropping debug insns which caused PR45299.
5031
5032 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
5033
5034         * config/i386/sse.md (extsuffix): New code attribute.
5035         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
5036         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
5037         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
5038         and sse4_1_zero_extendv4qiv4si2.
5039         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
5040         and sse4_1_zero_extendv2qiv2di2.
5041         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
5042         and sse4_1_zero_extendv4hiv4si2.
5043         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
5044         and sse4_1_zero_extendv2hiv2di2.
5045         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
5046         and sse4_1_zero_extendv2siv2di2
5047
5048         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
5049         using any_extend code iterator.
5050         (*avx_<s>mulv8hi3_highpart): Macroize insn from
5051         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
5052         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
5053
5054         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
5055         gen_sse4_1_sign_extend* functions.
5056         (struct builtin_description bdesc_args): Ditto.
5057
5058 2010-08-27  Xinliang David Li  <davidxl@google.com>
5059
5060         PR/45422
5061         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
5062         (iv_ca_set_no_cp): Update used inv expr count.
5063         (iv_ca_set_cp): Ditto.
5064         (iv_ca_new): Initialize new member.
5065         (iv_ca_free): Free memory.
5066
5067 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
5068
5069         * config/sh/sh-protos.h (sh_function_arg): Delete.
5070         (sh_function_arg_advance): Delete.
5071         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5072         (PASS_IN_REG_P): Eliminate cast.
5073         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
5074         const_tree and a bool.
5075         (sh_function_arg): Likewise.
5076         (sh_output_mi_thunk): Call sh_function_arg_advance) and
5077         sh_function_arg.
5078         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5079
5080 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
5081             Kaz Kojima  <kkojima@gcc.gnu.org>
5082
5083         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
5084         when possible.
5085         (sh_expand_epilogue): Likewise.
5086         * config/sh/sh.md (movml_push_banked): New insn.
5087         (movml_pop_banked): Likewise.
5088
5089 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
5090
5091         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
5092         gen_regexp_oneof, gen_regexp_sequence): Use the string found
5093         in vector element 0 rather than the original string when there's
5094         only one element.
5095         (gen_regexp): Remove extra semicolon.
5096
5097         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
5098         thumb2_movsf_vfp): Set attribute "insn".
5099         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
5100         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
5101         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
5102         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
5103         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
5104         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
5105         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
5106         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
5107         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
5108         if_not_arith, if_arith_not, cond_move_not): Likewise.
5109
5110 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5111
5112         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
5113         New declaration.
5114         (rs6000_allocate_stack_temp): Ditto.
5115         (rs6000_expand_convert_si_to_sfdf): Ditto.
5116
5117         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
5118         line.  Update the options set if power6 or power7 server/embedded
5119         type options are used.  If we give a warning for no vsx under
5120         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
5121         (rs6000_allocate_stack_temp): New function to allocate a stack
5122         tempoary and adjust the address so it meets either REG+OFFSET or
5123         REG+REG addressing requirements.
5124         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
5125         that they can be used with the LFIWAX/LFIWZX instrucitons.
5126         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
5127         converting signed/unsigned SImode to either SFmode/DFmode.
5128
5129         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
5130         whether certain instructions can be generated.
5131         (TARGET_FCTIDZ): Ditto.
5132         (TARGET_STFIWX): Ditto.
5133         (TARGET_LFIWAX): Ditto.
5134         (TARGET_LFIWZX): Ditto.
5135         (TARGET_FCFIDS): Ditto.
5136         (TARGET_FCFIDU): Ditto.
5137         (TARGET_FCFIDUS): Ditto.
5138         (TARGET_FCTIDUZ): Ditto.
5139         (TARGET_FCTIWUZ): Ditto.
5140
5141         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
5142         (UNSPEC_FCTID): Ditto.
5143         (UNSPEC_LFIWAX): Ditto.
5144         (UNSPEC_LFIWZX): Ditto.
5145         (UNSPEC_FCTIWUZ): Ditto.
5146         (rreg): Use correct constraints.
5147         (SI_CONVERT_FP): New mode attribute for floating point conversion
5148         tests.
5149         (E500_CONVERT): Ditto.
5150         (lfiwax): New insns for converting from integer to floating point
5151         utilizing newer instructions.  Attempt to optimize conversions
5152         that come from memory so that we don't load the value into a GPR,
5153         spill it to the stack and reload it into a FPR.
5154         (floatsi<mode>2_lfiwax): Ditto.
5155         (floatsi<mode>2_lfiwax_mem): Ditto.
5156         (floatsi<mode>2_lfiwax_mem2): Ditto.
5157         (lfiwzx): Ditto.
5158         (floatunssi<mode>2_lfiwzx): Ditto.
5159         (floatunssi<mode>2_lfiwzx_mem): Ditto.
5160         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
5161         (floatdidf2_mem): Ditto.
5162         (floatunsdidf2_fcfidu): Ditto.
5163         (floatunsdidf2_mem): Ditto.
5164         (floatunsdisf2): Ditto.
5165         (floatunsdisf2_fcfidus): Ditto.
5166         (floatunsdisf2_mem): Ditto.
5167         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
5168         Use FCFID on 32-bit hosts that support it.
5169         (floatsidf2_internal): Ditto.
5170         (floatunssisf2): Ditto.
5171         (floatunssidf2): Ditto.
5172         (floatunssidf2_internal): Ditto.
5173         (floatsisf2): Ditto.
5174         (floatdidf2): Ditto.
5175         (floatdidf2_fpr): Ditto.
5176         (floatunsdidf2): Ditto.
5177         (floatdisf2): Ditto.
5178         (floatdisf2_fcfids): Ditto.
5179         (floatdisf2_internal1): Ditto.
5180         (fixuns_truncsfsi2): Delete, merge into common pattern for both
5181         SF/DF.  Add power7 support.
5182         (fix_truncsfsi2): Ditto.
5183         (fixuns_truncdfsi2): Ditto.
5184         (fixuns_truncdfdi2): Ditto.
5185         (fix_truncdfsi2): Ditto.
5186         (fix_truncdfsi2_internal): Ditto.
5187         (fix_truncdfsi2_internal_gfxopt): Ditto.
5188         (fix_truncdfsi2_mfpgpr): Ditto.
5189         (fctiwz): Ditto.
5190         (btruncdf2): Ditto.
5191         (btruncdf2_fpr): Ditto.
5192         (btructsf2): Ditto.
5193         (ceildf2): Ditto.
5194         (ceildf2_fpr): Ditto.
5195         (ceilsf2): Ditto.
5196         (floordf2): Ditto.
5197         (floordf2_fpr): Ditto.
5198         (floorsf2): Ditto.
5199         (rounddf2): Ditto.
5200         (rounddf2_fpr): Ditto.
5201         (roundsf2): Ditto.
5202         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
5203         (fix_trunc<mode>di2): Ditto.
5204         (fixuns_trunc<mode>si2): Ditto.
5205         (fixuns_trunc<mode>di2): Ditto.
5206         (fctiwz_<mode>): Ditto.
5207         (btrunc<mode>2): Ditto.
5208         (btrunc<mode>2_fpr): Ditto.
5209         (ceil<mode>2): Ditto.
5210         (ceil<mode>2_fpr): Ditto.
5211         (floor<mode>2): Ditto.
5212         (float<mode>2_fpr): Ditto.
5213         (round<mode>2): Ditto.
5214         (round<mode>2_fpr): Ditto.
5215         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
5216         (fixuns_trunc<mode>si2_stfiwx): Ditto.
5217         (fix_truncdfsi2_internal): Ditto.
5218         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
5219         converted value on stack, loaded into GPR, and then stored into
5220         the final destination.
5221         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
5222         FCTIDZ.
5223         (lrint<mode>di2): New insn, provide the lrint builtin functions.
5224         (ftruncdf2): Delete, unused.
5225         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
5226
5227         * config/rs6000/vsx.md (toplevel): Update copyright year.
5228         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
5229         (VSr3): Ditto.
5230
5231 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
5232             Jeremie Salvucci  <jeremie.salvucci@free.fr>
5233
5234         * gengtype.c (output_type_enum): Test the right union member.
5235
5236 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
5237
5238         PR target/41484
5239         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
5240         operands for operand 1.
5241         (sse4_1_extendv4qiv4si2): Ditto.
5242         (sse4_1_extendv2qiv2di2): Ditto.
5243         (sse4_1_extendv4hiv4si2): Ditto.
5244         (sse4_1_extendv2hiv2di2): Ditto.
5245         (sse4_1_extendv2siv2di2): Ditto.
5246         (sse4_1_zero_extendv8qiv8hi2): Ditto.
5247         (sse4_1_zero_extendv4qiv4si2): Ditto.
5248         (sse4_1_zero_extendv2qiv2di2): Ditto.
5249         (sse4_1_zero_extendv4hiv4si2): Ditto.
5250         (sse4_1_zero_extendv2hiv2di2): Ditto.
5251         (sse4_1_zero_extendv2siv2di2): Ditto.
5252         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
5253         (*sse4_1_extendv4qiv4si2): Ditto.
5254         (*sse4_1_extendv2qiv2di2): Ditto.
5255         (*sse4_1_extendv4hiv4si2): Ditto.
5256         (*sse4_1_extendv2hiv2di2): Ditto.
5257         (*sse4_1_extendv2siv2di2): Ditto.
5258         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
5259         (*sse4_1_zero_extendv4qiv4si2): Ditto.
5260         (*sse4_1_zero_extendv2qiv2di2): Ditto.
5261         (*sse4_1_zero_extendv4hiv4si2): Ditto.
5262         (*sse4_1_zero_extendv2hiv2di2): Ditto.
5263         (*sse4_1_zero_extendv2siv2di2): Ditto.
5264
5265 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
5266
5267         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
5268         (mips_function_arg): Delete.
5269         (mips_function_arg_boundary): Take a const_tree.
5270         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
5271         (mips_arg_info): Likewise.
5272         (mips_setup_incoming_varargs): Call mips_function_arg_advance
5273         instead of FUNCTION_ARG_ADVANCE.
5274         (mips_function_arg_advance): Adjust prototype.  Make static.
5275         (mips_function_arg): Likewise.
5276         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5277         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
5278
5279 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
5280
5281         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5282         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
5283         (function_arg): Delete.
5284         (function_arg_boundary): Take a const_tree.
5285         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
5286         (rs6000_spe_function_arg): Likewise.
5287         (rs6000_parm_start): Likewise.
5288         (rs6000_arg_size): Likewise.
5289         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
5290         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
5291         (rs6000_mixed_function_arg): Likewise.
5292         (function_arg): Rename to...
5293         (rs6000_function_arg): ...this.
5294         (function_arg_advance): Rename to...
5295         (rs6000_function_arg_advance_1): ...this
5296         (rs6000_function_arg_advance): New function.  Call it.
5297         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
5298         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
5299         (rs6000_function_value): Likewise.
5300         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5301
5302 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5303
5304         * config/arm/arm.md (enabled): Test the value of arch_enabled
5305         rather than just using it.
5306
5307 2010-08-27  Olivier Hainque  <hainque@adacore.com>
5308             Eric Botcazou  <ebotcazou@adacore.com>
5309
5310         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
5311         cover all the possible offsets from this base.
5312         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
5313
5314 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
5315
5316         PR tree-optimization/44485
5317         * calls.c (flags_from_decl_or_type): For const or pure
5318         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
5319         together with ECF_CONST resp. ECF_PURE.
5320         * builtins.c (expand_builtin): Use flags_from_decl_or_type
5321         instead of querying flags directly.
5322         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
5323         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
5324
5325 2010-08-26  Richard Guenther  <rguenther@suse.de>
5326
5327         PR tree-optimization/45255
5328         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
5329         and externals are also invariant.
5330
5331 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
5332
5333         PR rtl-optimization/44858
5334         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
5335         newi2pat, make sure they don't affect newpat.
5336
5337         PR rtl-optimization/45400
5338         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
5339         SUBREG_REG if both modes are of MODE_INT class.
5340
5341 2010-08-25  Julian Brown  <julian@codesourcery.com>
5342
5343         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
5344         * config/arm/arm.md (generic_sched): No for Cortex-A5.
5345         (generic_vfp): Likewise.
5346         (cortex-a5.md): Include.
5347         * config/arm/cortex-a5.md: New.
5348
5349 2010-08-25  Richard Guenther  <rguenther@suse.de>
5350
5351         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
5352         * gimple.c (gimple_get_alias_set): Remove special handling
5353         for pointers.
5354
5355 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
5356
5357         PR middle-end/45355
5358         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
5359         dead_or_set_p when computing i0_feeds_i2_n.
5360
5361         * combine.c (find_split_point): Undo canonicalization of multiply-add
5362         to (minus x (mult)) when it seems likely that this will increase the
5363         chances of a split.
5364
5365 2010-08-25  Richard Guenther  <rguenther@suse.de>
5366
5367         PR lto/44562
5368         * lto-streamer.c (lto_record_common_node): Do not mess with
5369         TYPE_CANONICAL when not in lto.
5370         * gimple.c (gimple_register_type): Likewise.
5371
5372 2010-08-25  Richard Guenther  <rguenther@suse.de>
5373
5374         PR tree-optimization/45316
5375         * tree-ssa-pre.c (eliminate): Properly clean EH info.
5376
5377 2010-08-25  Richard Guenther  <rguenther@suse.de>
5378
5379         PR tree-optimization/45393
5380         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
5381         and clean EH info.  Avoid SSA update.
5382         (execute_cse_sincos): Cleanup the CFG if it has changed.
5383
5384 2010-08-25  Richard Guenther  <rguenther@suse.de>
5385
5386         PR middle-end/45379
5387         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
5388         TARGET_MEM_REF in alignment computation.
5389
5390 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
5391
5392         PR tree-optimization/45059
5393         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
5394         type conversions from newop{1,2}.  Assert t is a comparison and
5395         newop{1,2} after the stripping are gimple vals.
5396
5397 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
5398
5399         * config/arm/iterators.md (VU, SE, V_widen_l): New.
5400         (V_unpack, US): New.
5401         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
5402         (vec_unpack<US>_lo_<mode>): Likewise.
5403         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
5404         (neon_vec_unpack<US>_lo_<mode>): Likewise.
5405         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
5406         (vec_widen_<US>mult_hi_<mode>): Likewise.
5407         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
5408         (neon_vec_<US>mult_hi_<mode>"): Likewise.
5409         (neon_unpack<US>_<mode>): Widening move intermediate step for
5410         vectorizing without -mvectorize-with-neon-quad.
5411         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
5412         for vectorizing without -mvectorize-with-neon-quad.
5413         * config/arm/predicates.md (vect_par_constant_high): Check for
5414         high-half lanes of a vector.
5415         (vect_par_constant_low): Check for low-half lanes of a vector.
5416
5417 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
5418
5419         * tree-if-conv.c (struct ifc_dr): New.
5420         (IFC_DR): New.
5421         (DR_WRITTEN_AT_LEAST_ONCE): New.
5422         (DR_RW_UNCONDITIONALLY): New.
5423         (memref_read_or_written_unconditionally): Use the cached values
5424         when possible.
5425         (write_memref_written_at_least_once): Same.
5426         (if_convertible_loop_p): Initialize and free DR->aux fields.
5427
5428 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
5429
5430         * gimple.c (gimple_could_trap_p_1): Not static anymore.
5431         Pass an extra bool parameter include_mem.
5432         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
5433         (gimple_assign_rhs_could_trap_p): Same.
5434         * gimple.h (gimple_could_trap_p_1): Declared.
5435         * tree-data-ref.h (same_data_refs_base_objects): New.
5436         (same_data_refs): New.
5437         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
5438         (write_memrefs_written_at_least_once): New.
5439         (ifcvt_memrefs_wont_trap): New.
5440         (operations_could_trap): New.
5441         (ifcvt_could_trap_p): New.
5442         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
5443         Gets a vector of data refs.
5444         (if_convertible_stmt_p): Same.
5445         (if_convertible_loop_p_1): New.
5446         (if_convertible_loop_p): Call if_convertible_loop_p_1.
5447
5448 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
5449
5450         * common.opt (ftree-loop-if-convert-stores): New flag.
5451         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
5452         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
5453         the created statement before GSI.
5454         (if_convertible_phi_p): Allow virtual phi nodes when
5455         flag_loop_if_convert_stores is set.
5456         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
5457         Do not handle types that do not match is_gimple_reg_type.
5458         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
5459         when flag_loop_if_convert_stores is set, as LHS can contain
5460         memory refs.
5461         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
5462         to if_convertible_gimple_assign_stmt_p.
5463         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
5464         (replace_phi_with_cond_gimple_assign_stmt): Renamed
5465         predicate_scalar_phi.  Do not handle virtual phi nodes.
5466         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
5467         Call predicate_scalar_phi.
5468         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
5469         just after the labels for flag_loop_if_convert_stores, otherwise
5470         insert the predicate in the end of the BB.
5471         (predicate_mem_writes): New.
5472         (combine_blocks): Call predicate_all_scalar_phis.  When
5473         flag_loop_if_convert_stores is set, call predicate_mem_writes.
5474         (tree_if_conversion): Call mark_sym_for_renaming when
5475         flag_loop_if_convert_stores is set.
5476         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
5477         flag_loop_if_convert_stores is set.
5478
5479 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
5480
5481         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
5482         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
5483         (pa_function_value): Make static.
5484         (override_options): Rename to...
5485         (pa_option_override): ...this. Make static.
5486         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
5487         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
5488         TARGET_OPTION_OVERRIDE): Define.
5489         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
5490         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
5491         Remove.
5492         * config/pa/pa-protos.h (override_options): Remove.
5493
5494 2010-08-24  Richard Guenther  <rguenther@suse.de>
5495
5496         PR middle-end/45379
5497         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
5498         if addr->index is NULL or zero.
5499         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
5500         TARGET_MEM_REF more properly.
5501         (indirect_ref_may_alias_decl_p): Likewise.
5502         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
5503         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
5504
5505 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
5506
5507         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
5508         (m32c_override_options): Rename to...
5509         (m32c_option_override): ...this. Make static.
5510         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
5511         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
5512         Remove.
5513         * config/m32c/m32c-protos.h (m32c_override_options,
5514         m32c_function_value_regno_p): Remove.
5515
5516 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
5517
5518         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
5519         Fix a typo in a previous commit.
5520
5521 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
5522
5523         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
5524         Pre-initialize innerloop_iters to one.
5525
5526 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
5527
5528         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
5529         existing static function global.
5530
5531         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
5532         is changed to global.
5533
5534         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
5535         may_be_nonaddressable_p on base, and don't collect this reference
5536         if the address of the base could not be taken.
5537
5538 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5539
5540         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
5541         enable the compiler to autovectorize mathmetical functions for
5542         power7 using the Mathematical Acceleration Subsystem library.
5543
5544         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
5545         handle which vector math library we have.
5546         (rs6000_override_options): Add -mveclibabi=mass support.
5547         (rs6000_builtin_vectorized_libmass): New function to handle auto
5548         vectorizing math functions that are in the MASS library.
5549         (rs6000_builtin_vectorized_function): Call it.
5550
5551         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5552         -mveclibabi=mass.
5553
5554 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5555
5556         PR boehm-gc/34544
5557         * gthr-posix.h (__gthread_active_init): Delete.
5558         (__gthread_active_p): Do activity check here.
5559         Don't include errno.h on hppa-hpux.  Update comment.
5560         * gthr-posix95.h (__gthread_active_init): Delete.
5561         (__gthread_active_p): Do activity check here.
5562         Don't include errno.h on hppa-hpux.  Update comment.
5563         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
5564         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
5565         add -lpthread when -mt or -pthread is specified.
5566         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
5567         (LINK_GCC_C_SEQUENCE_SPEC): Define.
5568         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
5569         (stublib.c, pthread_default_stacksize_np-stub.o,
5570         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
5571         $(T)libgcc_stub.a): Add methods.
5572         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
5573         (stublib.c, pthread_default_stacksize_np-stub.o,
5574         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
5575         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
5576         pthread_mutex_unlock): New stubs.
5577
5578 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
5579
5580         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
5581         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
5582         options.
5583         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
5584         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
5585         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
5586         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
5587         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
5588         "-l".
5589         * cppspec.c: Include opts.h.
5590         (lang_specific_driver): Use cl_decoded_option structures.
5591         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
5592         * doc/tm.texi: Regenerate.
5593         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
5594         (driver_handle_option): Allow driver options needing no special
5595         processing.
5596         (process_command): Decode options before call to
5597         lang_specific_driver.  Pass decoded options to
5598         lang_specific_driver.
5599         * gcc.h (lang_specific_driver): Update prototype.
5600         * gccspec.c: Include opts.h.
5601         (lang_specific_driver): Use cl_decoded_option structures.
5602         * opts-common.c (option_ok_for_language, generate_option,
5603         generate_option_input_file): New.
5604         (decode_cmdline_option): Use option_ok_for_language.
5605         (decode_cmdline_options_to_array): Use generate_option_input_file.
5606         (handle_generated_option): Use generate_option.
5607         * opts.h (generate_option, generate_option_input_file): Declare.
5608
5609 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
5610
5611         * config/mips/mips.c (mips_override_options): Rename to...
5612         (mips_option_override): ...this. Make static.
5613         (TARGET_OPTION_OVERRIDE): Define.
5614         (mips_in_small_data_p): Update comment.
5615         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
5616         (FIXED_REGISTERS): Update comment.
5617         * config/mips/mips-protos.h (mips_override_options): Remove.
5618
5619 2010-08-21  Olivier Hainque  <hainque@adacore.com>
5620
5621         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
5622
5623 2010-08-21  Olivier Hainque  <hainque@adacore.com>
5624
5625         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
5626         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
5627
5628 2010-08-20  Jan Hubicka  <jh@suse.cz>
5629
5630         * tree-pass.h (pass_ipa_cdtor_merge): New function.
5631         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
5632         heap allocated.
5633         (record_cdtor_fn): Move to ipa.c; do not test for
5634         have_ctors_dtors.
5635         (build_cdtor): Move to ipa.c; add code avoiding construction
5636         when target have ctors/dtors and there is only one ctor/dtor at given
5637         priority.
5638         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
5639         sort; reverse order of constructors.
5640         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
5641         (cgraph_finalize_function): Do not call record_cdtor_fn.
5642         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
5643         (cgraph_build_static_cdtor): Move to ipa.c.
5644         * ipa.c: Include target.h and tree-iterator.h.
5645         (cgraph_build_static_cdtor, static_ctors, static_dtors,
5646         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
5647         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
5648         pass_ipa_cdtor_merge): New.
5649         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
5650         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
5651         bounds access.
5652
5653 2010-08-20  Jan Hubicka  <jh@suse.cz>
5654
5655         PR c++/45307
5656         PR c++/17736
5657         * cgraph.h (cgraph_only_called_directly_p,
5658         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
5659         static cdtors.
5660         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
5661         are not needed.
5662         (cgraph_finalize_function): Static cdtors are reachable.
5663         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
5664
5665 2010-08-20  Jan Hubicka  <jh@suse.cz>
5666
5667         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
5668         flag_wpa.
5669         * lto-streamer-out.c (lto_output): Likewise.
5670         * passes.c (ipa_write_optimization_summaries): Initialize statement
5671         uids.
5672
5673 2010-08-20  Olivier Hainque  <hainque@adacore.com>
5674
5675         * tree.h (alias_diag_flags): New enum.
5676         (alias_pair): Add an 'emitted_diags' field.
5677         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
5678         (assemble_alias): Initialize emitted_diags of new pairs.
5679
5680 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
5681
5682         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
5683         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5684         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5685         (STACK_CHECK_PROTECT): Define.
5686         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
5687         (output_probe_stack_range): Likewise.
5688         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
5689         builtin stack checking is enabled.
5690         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
5691         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
5692         (probe_stack_range): New insn.
5693
5694 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
5695
5696         PR target/45336
5697         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
5698         short first.
5699
5700         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
5701         char first.
5702
5703 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5704
5705         PR target/45336
5706         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
5707         to cover zero extension into 64-bit register.
5708         (*sse2_pextrw): Likewise.
5709         (*sse4_1_pextrd_zext): New insn.
5710
5711 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
5712
5713         revert r163410, partially revert r163267.
5714         * config/rs6000/darwin.h (LIB_SPEC): Remove.
5715         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
5716         Darwin versions.
5717
5718 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5719
5720         PR middle-end/44974
5721         * builtins.c (expand_builtin): Don't optimize away
5722         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
5723
5724 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
5725
5726         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
5727         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
5728         alternative 1 of operand 2.
5729
5730 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5731             Paolo Bonzini  <bonzini@gnu.org>
5732
5733         * simplify-rtx.c (simplify_unary_operation_1): Optimize
5734         (sign_extend (zero_extend (...)) and
5735         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
5736
5737 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5738
5739         PR rtl-optimization/45353
5740         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
5741         after bb_note is a BARRIER.
5742
5743 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
5744
5745         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
5746         linking libgcc.a.
5747
5748 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
5749             Michael Matz  <matz@suse.de>
5750
5751         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
5752
5753 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
5754
5755         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
5756         (ggc_mark_roots): ...here.
5757
5758 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
5759
5760         * vec.h (FOR_EACH_VEC_ELT): Define.
5761         * c-decl.c: Use it.
5762         * cfgloop.c: Likewise.
5763         * cfgloopmanip.c: Likewise.
5764         * cgraph.c: Likewise.
5765         * cgraphunit.c: Likewise.
5766         * combine.c: Likewise.
5767         * config/bfin/bfin.c: Likewise.
5768         * config/mips/mips.c: Likewise.
5769         * config/rs6000/rs6000.c: Likewise.
5770         * dbxout.c: Likewise.
5771         * df-scan.c: Likewise.
5772         * dominance.c: Likewise.
5773         * dse.c: Likewise.
5774         * dwarf2out.c: Likewise.
5775         * except.c: Likewise.
5776         * expr.c: Likewise.
5777         * function.c: Likewise.
5778         * gcse.c: Likewise.
5779         * genattr.c: Likewise.
5780         * ggc-common.c: Likewise.
5781         * gimplify.c: Likewise.
5782         * graphite-blocking.c: Likewise.
5783         * graphite-clast-to-gimple.c: Likewise.
5784         * graphite-dependences.c: Likewise.
5785         * graphite-interchange.c: Likewise.
5786         * graphite-poly.c: Likewise.
5787         * graphite-scop-detection.c: Likewise.
5788         * graphite-sese-to-poly.c: Likewise.
5789         * graphite.c: Likewise.
5790         * haifa-sched.c: Likewise.
5791         * ifcvt.c: Likewise.
5792         * implicit-zee.c: Likewise.
5793         * ipa-prop.c: Likewise.
5794         * ipa-struct-reorg.c: Likewise.
5795         * ipa.c: Likewise.
5796         * ira-build.c: Likewise.
5797         * ira-color.c: Likewise.
5798         * ira-emit.c: Likewise.
5799         * lambda-code.c: Likewise.
5800         * loop-invariant.c: Likewise.
5801         * loop-unroll.c: Likewise.
5802         * lower-subreg.c: Likewise.
5803         * lto-cgraph.c: Likewise.
5804         * lto-opts.c: Likewise.
5805         * lto-streamer-in.c: Likewise.
5806         * lto-streamer-out.c: Likewise.
5807         * lto-streamer.c: Likewise.
5808         * lto-symtab.c: Likewise.
5809         * matrix-reorg.c: Likewise.
5810         * opts.c: Likewise.
5811         * predict.c: Likewise.
5812         * print-tree.c: Likewise.
5813         * sdbout.c: Likewise.
5814         * sel-sched-dump.c: Likewise.
5815         * sel-sched-ir.c: Likewise.
5816         * sel-sched.c: Likewise.
5817         * sese.c: Likewise.
5818         * stor-layout.c: Likewise.
5819         * tree-cfg.c: Likewise.
5820         * tree-cfgcleanup.c: Likewise.
5821         * tree-chrec.c: Likewise.
5822         * tree-data-ref.c: Likewise.
5823         * tree-emutls.c: Likewise.
5824         * tree-inline.c: Likewise.
5825         * tree-into-ssa.c: Likewise.
5826         * tree-loop-distribution.c: Likewise.
5827         * tree-loop-linear.c: Likewise.
5828         * tree-mudflap.c: Likewise.
5829         * tree-outof-ssa.c: Likewise.
5830         * tree-parloops.c: Likewise.
5831         * tree-predcom.c: Likewise.
5832         * tree-pretty-print.c: Likewise.
5833         * tree-scalar-evolution.c: Likewise.
5834         * tree-ssa-live.c: Likewise.
5835         * tree-ssa-loop-im.c: Likewise.
5836         * tree-ssa-loop-ivcanon.c: Likewise.
5837         * tree-ssa-loop-ivopts.c: Likewise.
5838         * tree-ssa-loop-manip.c: Likewise.
5839         * tree-ssa-loop-niter.c: Likewise.
5840         * tree-ssa-loop-prefetch.c: Likewise.
5841         * tree-ssa-phiprop.c: Likewise.
5842         * tree-ssa-pre.c: Likewise.
5843         * tree-ssa-reassoc.c: Likewise.
5844         * tree-ssa-sccvn.c: Likewise.
5845         * tree-ssa-structalias.c: Likewise.
5846         * tree-ssa.c: Likewise.
5847         * tree-vect-data-refs.c: Likewise.
5848         * tree-vect-loop-manip.c: Likewise.
5849         * tree-vect-loop.c: Likewise.
5850         * tree-vect-patterns.c: Likewise.
5851         * tree-vect-slp.c: Likewise.
5852         * tree-vect-stmts.c: Likewise.
5853         * tree-vrp.c: Likewise.
5854         * tree.c: Likewise.
5855         * value-prof.c: Likewise.
5856         * var-tracking.c: Likewise.
5857         * varasm.c: Likewise.
5858         * vmsdbgout.c: Likewise.
5859
5860 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
5861             Richard Guenther  <richard.guenther@gmail.com>
5862
5863         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
5864         copy the src value and return a copy.
5865         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
5866         (C++ Volatiles): Adjust to describe C++ semantics only.
5867
5868 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
5869
5870         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
5871         be zero or nonzero.
5872         * doc/tm.texi: Regenerate.
5873         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
5874         * df-scan.c (df_get_exit_block_use_set), reginfo.c
5875         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
5876         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
5877         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
5878         to 1.
5879
5880 2010-08-20  Olivier Hainque  <hainque@adacore.com>
5881
5882         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
5883         an extra nop past a sibling call at the very end.
5884
5885 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
5886
5887         PR bootstrap/45350
5888         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
5889         a comment.
5890
5891 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
5892
5893         * target.def (function_arg, function_incoming_arg): Remove const
5894         qualifier on CUMULATIVE_ARGS parameter.
5895         * targhooks.h (default_function_arg, default_function_incoming_arg):
5896         Likewise.
5897         * targhooks.c (default_function_arg, default_function_incoming_arg):
5898         Likewise.
5899         * config/i386/i386.c (ix86_function_arg): Likewise.
5900
5901 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
5902
5903         PR target/45336
5904         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
5905         SIGN_EXTENDs or ZERO_EXTENDs.
5906
5907 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
5908
5909         PR target/42172
5910         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
5911         Take its cost into account if nonnull.
5912         (insn_a_feeds_b): New static function.
5913         (combine_instructions): Look for four-insn combinations.
5914         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
5915         them into account when computing all_adjacent and looking for other
5916         uses.
5917         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
5918         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
5919         (try_combine): New arg I0.  Handle four-insn combinations.
5920         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
5921         like ELIM_I1.
5922
5923 2010-08-19  Jason Merrill  <jason@redhat.com>
5924
5925         PR c++/45307
5926         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
5927         if ctor is empty.
5928         (gimplify_modify_expr_rhs): Adjust.
5929
5930 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
5931
5932         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
5933         bitmap_bit_p.
5934         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
5935         * dominance.c (iterate_fix_dominators): Likewise.
5936         * dse.c (set_usage_bits): Likewise.
5937         (set_position_unneeded, record_store): Likewise.
5938         * gimple-fold.c (get_maxval_strlen): Likewise.
5939         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
5940         * ipa-inline.c (update_caller_keys): Likewise.
5941         * ipa-split.c (verify_non_ssa_vars): Likewise.
5942         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
5943         (close_type_exposed_parameter, close_type_full_escape): Likewise.
5944         (close_addressof_down): Likewise.
5945         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
5946         (setup_allocno_left_conflicts_size): Likewise.
5947         (ira_reassign_conflict_allocnos): Likewise.
5948         (ira_reassign_pseudos): Likewise.
5949         * ira-emit.c (change_loop): Likewise.
5950         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
5951         * lto-streamer-out.c (write_symbol): Likewise.
5952         * predict.c (expr_expected_value_1): Likewise.
5953         * regstat.c (regstat_bb_compute_ri): Likewise.
5954         * sel-sched.c (create_block_for_bookkeeping): Likewise.
5955         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
5956         * stmt.c (expand_case): Likewise.
5957         * tree-eh.c (emit_eh_dispatch): Likewise.
5958         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
5959         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
5960         Likewise.
5961         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
5962         (rdg_build_components): Likewise.
5963         * tree-object-size.c (collect_object_sizes_for): Likewise.
5964         * tree-sra.c (convert_callers): Likewise.
5965         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
5966         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
5967         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
5968
5969 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
5970
5971         * config/i386/i386.md (*lea_1): Use P mode iterator.
5972         (lea add splitter): Also handle DImode operands.
5973         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
5974         predicate.  Do not use ix86_lea_for_add_ok.
5975         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
5976         (lea ashift splitter): Also handle DImode operands.
5977         (DImode lea ashift splitter): Remove splitter.
5978
5979 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
5980
5981         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
5982         ix86_binary_operator_ok.
5983
5984 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
5985
5986         PR rtl-optimization/44691
5987         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
5988         is not a register.
5989
5990 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
5991
5992         PR target/45070
5993         * config/arm/arm.c (arm_output_epilogue): Ensure that return
5994          value of size 1-3 is handled correctly.
5995
5996 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
5997
5998         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
5999         type for the conditional has wide enough range.
6000
6001 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
6002
6003         PR target/45327
6004         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
6005         ix86_binary_operator_ok.
6006
6007 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
6008
6009         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
6010         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
6011         code to output insn mnemonic.  Fix comment.
6012         (*addsi_1_zext): Add r-r-0 alternative 1.
6013         <TYPE_LEA>: Split insn to lea.
6014         <default>: Handle alternative 1.
6015         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
6016         multi-level if_then_else RTX to set "type" attribute.
6017         <default>: Handle alternative 2.
6018         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
6019         Use cond RTX instead of multi-level if_then_else RTX to set
6020         "type" attribute.
6021         <default>: Handle alternatives 2 and 4.
6022         (lea splitters): Update calls to ix86_lea_for_add_ok.
6023
6024         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
6025         argument.
6026         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
6027
6028 2010-08-18  Richard Guenther  <rguenther@suse.de>
6029
6030         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
6031         use operand helpers.
6032
6033 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
6034
6035         PR middle-end/45292
6036         * optabs.c (expand_bool_compare_and_swap): Expand pending
6037         pops before trying the optab.
6038
6039 2010-08-18  Yao Qi  <yao@codesourcery.com>
6040
6041         PR target/45094
6042         * config/arm/arm.c (output_move_double): Fix typo generating
6043         instructions ('ldr'->'str').
6044
6045 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6046
6047         PR rtl-optimization/42575
6048         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
6049         live ranges.
6050
6051 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6052
6053         * config/arm/arm-protos.h (arm_expand_sync): New.
6054         (arm_output_memory_barrier, arm_output_sync_insn): New.
6055         (arm_sync_loop_insns): New.
6056         * config/arm/arm.c (FL_ARCH7): New.
6057         (FL_FOR_ARCH7): Include FL_ARCH7.
6058         (arm_arch7): New.
6059         (arm_print_operand): Support %C markup.
6060         (arm_legitimize_sync_memory): New.
6061         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
6062         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
6063         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
6064         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
6065         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
6066         (arm_process_output_sync_insn, arm_output_sync_insn): New.
6067         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
6068         * config/arm/arm.h (struct arm_sync_generator): New.
6069         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
6070         (TARGET_HAVE_MEMORY_BARRIER): New.
6071         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
6072         * config/arm/arm.md: Include sync.md.
6073         (UNSPEC_MEMORY_BARRIER): New.
6074         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
6075         (VUNSPEC_SYNC_OP):New.
6076         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
6077         (sync_result, sync_memory, sync_required_value): New attributes.
6078         (sync_new_value, sync_t1, sync_t2): Likewise.
6079         (sync_release_barrier, sync_op): Likewise.
6080         (length): Add logic to length attribute defintion to call
6081         arm_sync_loop_insns when appropriate.
6082         * config/arm/sync.md: New file.
6083
6084 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
6085
6086         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
6087         ENABLE_TREE_CHECKING.
6088         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
6089         and GCC >= 4.3.
6090
6091 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
6092
6093         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
6094         or optimizing for size, always avoid lea if possible.
6095
6096         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
6097
6098 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
6099
6100         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
6101         Dunmmy function with NULL return unless the target is
6102         OSX >= 10.6 (Darwin10).
6103
6104 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
6105
6106         * gcc.c (spec_function): Add remove-outfile.
6107         (remove_outfile_spec_function): New function.
6108         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
6109         * invoke.texi (replace-outfile): Document.
6110
6111 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
6112
6113         PR target/45296
6114         * reginfo.c (globalize_reg): Reject stack registers.
6115
6116 2010-08-17  Richard Guenther  <rguenther@suse.de>
6117
6118         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
6119         list of conditional equivalences.
6120         (free_all_edge_infos): Adjust.
6121         (record_equivalences_from_incoming_edge): Likewise.
6122         (record_cond): Likewise.
6123         (build_and_record_new_cond): Likewise.
6124         (record_conditions): Likewise.
6125         (dom_opt_leave_block): Likewise.
6126
6127 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
6128
6129         * doc/invoke.texi (ms-extension): Add documentation.
6130
6131 2010-08-17  Richard Guenther  <rguenther@suse.de>
6132
6133         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
6134
6135 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
6136
6137         PR c/40563
6138         * c-decl.c (diagnose_uninitialized_cst_member): New function.
6139         (finish_decl): Use it to issue a -Wc++-compat warning about
6140         uninitialized const field in struct or union.
6141
6142         (finish_struct): Use strip_array_types.
6143
6144 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
6145
6146         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
6147         functions.
6148         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
6149         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
6150         call block_nreverse here.
6151         (blocks_nreverse): Rename decl temporary to block.
6152
6153 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
6154
6155         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
6156         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
6157         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
6158         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
6159         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
6160         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
6161         thumb2_iorsi3): Delete.
6162         (orsi_notsi_si): No longer a named pattern.
6163         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
6164         * config/arm/predicates.md (shift_amount_operand): New.
6165         (mult_operator): New.
6166         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
6167         attr enabled): New.
6168         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
6169         arch matches t2.
6170         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
6171         (not_shiftsi_compare0): Likewise, renamed from
6172         arm_notsi_shiftsi_compare0.
6173         (not_shiftsi_compare0_scratch): Likweise, renamed from
6174         arm_notsi_shiftsi_compare0_scratch.
6175         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
6176         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
6177         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
6178         so that the register alternative is disabled when the shift_operator
6179         is MULT.  Use "M" as the constraint for constants.
6180         (arith_shiftsi splitter): Enable for TARGET_32BIT.
6181         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
6182         constraint for constants.
6183         (arith_shiftsi_compare0_scratch): Likewise.
6184         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
6185         Handle Thumb2 alternative.
6186
6187 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
6188
6189         * doc/options.texi (NoDriverArg): Document.
6190         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
6191         -MDX and -MMDX.
6192         * opt-functions.awk (switch_flags): Handle NoDriverArg.
6193         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
6194         marking for CL_NO_DRIVER_ARG options when in the driver.
6195         * opts.h (CL_NO_DRIVER_ARG): Define.
6196         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
6197         CL_COMMON): Update values.
6198
6199 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
6200
6201         * common.opt: Add driver options.
6202         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
6203         * doc/options.texi (Driver, RejectDriver): Document.
6204         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
6205         print_prog_name, print_multi_directory, print_sysroot,
6206         print_multi_os_directory, print_multi_lib,
6207         print_sysroot_headers_suffix, report_times, combine_flag,
6208         use_pipes, wrapper_string): Remove.
6209         (save_switch, driver_unknown_option_callback,
6210         driver_wrong_lang_callback, driver_post_handling_callback,
6211         driver_handle_option): New.
6212         (spec_lang, last_language_n_infiles): Make file-scope static
6213         instead of local to process_command.
6214         (process_command): Use decode_cmdline_options_to_array and
6215         read_cmdline_option for option processing.  Compute have_c in
6216         prescan of decoded options.
6217         * opt-functions.awk (switch_flags): Handle Driver and
6218         RejectDriver.
6219         (var_type, var_type_struct): Handle Separate options as generating
6220         const char * variables.
6221         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
6222         CL_TARGET to be passed by caller if required.
6223         (decode_cmdline_options_to_array): Update comment.
6224         * opts.c (complain_wrong_lang): Handle options only valid for the
6225         driver.
6226         (decode_options): Update call to decode_cmdline_options_to_array.
6227         (print_filtered_help): Ignore driver-only options.
6228         (print_specific_help): Ignore CL_DRIVER.
6229         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
6230         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
6231         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
6232         Update values.
6233
6234 2010-08-16  Richard Guenther  <rguenther@suse.de>
6235
6236         * tree-cfg.c (verify_types_in_gimple_reference): Verify
6237         TARGET_MEM_REF a bit.
6238         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
6239         (create_mem_ref_raw): Always create TMR_OFFSET, store the
6240         alias pointer type via it.
6241         (copy_mem_ref_info): Adjust.
6242         (maybe_fold_tmr): Likewise.
6243         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
6244         (reference_alias_ptr_type): Likewise.
6245         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
6246         adjust documentation of TMR_OFFSET operand.
6247         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
6248         use the alias pointer type.
6249         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
6250         initialize mem attrs but the TMR itself.
6251         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
6252         similar to MEM_REF.
6253         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
6254         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
6255         (unshare_and_remove_ssa_names): Likewise.
6256         (copy_ref_info): Adjust.
6257         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
6258         TARGET_MEM_REF case.
6259         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
6260         at TMR_ORIGINAL.
6261         * tree.h (TMR_ORIGINAL): Remove.
6262         * gimple.c (get_base_address): For TARGET_MEM_REF with a
6263         symbol return that.
6264         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
6265         with a symbol.
6266         (get_addr_base_and_unit_offset): Likewise.
6267         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
6268         TARGET_MEM_REFs.
6269         (indirect_ref_may_alias_decl_p): Likewise.
6270         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
6271
6272 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
6273
6274         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
6275         with GCC version 4.6, the default setting (when not optimizing
6276         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
6277         been changed to -fomit-frame-pointer.
6278
6279 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
6280
6281         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
6282         Darwin10.  Do not link libgcc.a for Darwin >= 9.
6283
6284 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
6285
6286         * doc/invoke.texi (Warning Options): Fix terminology and markup
6287         in the description of how unknown warning options are handled.
6288
6289 2010-08-15  Ira Rosen  <irar@il.ibm.com>
6290
6291         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
6292         in basic blocks.
6293         (vect_supportable_dr_alignment): Check alignment for basic blocks.
6294         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
6295         data references.
6296         (vect_bb_vectorization_profitable_p): New function.
6297         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
6298         check if it's worthwhile to vectorize the basic block.
6299
6300 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
6301
6302         * reload.h (register_move_cost, memory_move_secondary_cost,
6303         secondary_reload_class): Adjust prototype.
6304         * rtl.h (reg_class_subset_p): Adjust prototype.
6305         * reload.c (secondary_reload_class): Change arguments type from
6306         enum reg_class to reg_class_t. Change result type to reg_class_t.
6307         * reginfo.c (register_move_cost, reg_class_subset_p): Change
6308         arguments type from enum reg_class to reg_class_t.
6309         (memory_move_secondary_cost): Change arguments type from
6310         enum reg_class to reg_class_t. Change type of saved_flags to
6311         reg_class_t.
6312
6313         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6314         Remove macros.
6315         (mips_cost): Remove.
6316         (struct mips_rtx_cost_data): Moved to mips.c.
6317         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
6318         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
6319         (mips_cost): Make static.
6320         (mips_canonicalize_move_class): Change argument type to reg_class_t.
6321         Change result type to reg_class_t.
6322         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
6323         type from enum reg_class to reg_class_t.
6324         (mips_register_move_cost): Make static. Change arguments
6325         type from enum reg_class to reg_class_t.
6326         (mips_memory_move_cost): New function.
6327         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
6328
6329 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
6330
6331         PR rtl-optimization/43358
6332         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
6333         of a single hard register, using simplify_subreg_regno to decide
6334         what that register should be.
6335
6336 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
6337
6338         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
6339         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
6340         (loongson_pmull<V_suffix>): Rename to...
6341         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
6342
6343 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
6344
6345         * configure.ac: Enable -fomit-frame-pointer on darwin
6346         which support dwarf2.
6347         * config/i386/i386.c (override_options): Same.
6348
6349 2010-08-13  Jie Zhang  <jie@codesourcery.com>
6350
6351         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
6352
6353 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
6354
6355         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
6356         -MMD.
6357
6358 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
6359
6360         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
6361         up dot_prod pattern searching if a stmt is outside the loop.
6362
6363 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
6364             Uros Bizjak  <ubizjak@gmail.com>
6365
6366         * config.gcc: Handle --enable-frame-pointer.
6367
6368         * configure.ac: Add --enable-frame-pointer.
6369         * configure: Regenerated.
6370
6371         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
6372         (override_options): If not configured with --enable-frame-pointer,
6373         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
6374         optimizing for size), -fasynchronous-unwind-tables and
6375         -maccumulate-outgoing-args by default.
6376
6377 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
6378
6379         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
6380
6381         PR middle-end/45262
6382         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
6383         -a overflows.  Normalize the range.
6384
6385 2010-08-12  Richard Guenther  <rguenther@suse.de>
6386
6387         PR tree-optimization/45232
6388         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
6389         for types with undefined overflow.
6390         (reassociate_bb): Allow re-associating of bit and min/max
6391         operations for types with undefined overflow.
6392         * tree-ssa-forwprop.c (associate_plusminus): New function.
6393         (tree_ssa_forward_propagate_single_use_vars): Call it.
6394
6395 2010-08-12  Richard Guenther  <rguenther@suse.de>
6396
6397         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
6398         * tree-ssa-alias.c (get_ptr_info): Move ...
6399         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
6400         align and misalign fields conservatively.
6401         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
6402         derive alignment information.
6403         (evaluate_stmt): Derive alignment information from memory
6404         allocation functions.
6405         * tree.h (get_pointer_alignment): Make unsigned.
6406         * builtins.c (get_object_alignment): Use alignment information we
6407         have computed for pointers.
6408         (get_pointer_alignment): Likewise.  Make conservative, return
6409         and unsigned value.
6410         (expand_builtin_strlen): Adjust.
6411         (expand_builtin_memcmp): Likewise.
6412         (expand_builtin_strcmp): Likewise.
6413         (expand_builtin_strncmp): Likewise.
6414         (get_builtin_sync_mem): Use at least mode alignment.
6415         (fold_builtin_memset): Adjust.
6416         (fold_builtin_memory_op): Likewise.
6417         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
6418         information also dump pointer alignment knowledge.
6419         (dump_gimple_stmt): Likewise.
6420
6421 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
6422
6423         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
6424         (EMPTY_FIELD_BOUNDARY): Remove.
6425         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
6426
6427 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
6428
6429         PR debug/45259
6430         * caller-save.c (save_call_clobbered_regs): Only swap notes with
6431         DEBUG_INSNs if n_regs_saved.
6432
6433 2010-08-12  Wei Guozhi  <carrot@google.com>
6434
6435         PR target/44999
6436         * config/arm/arm.md (andsi3): Change to zero extension if possible.
6437         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
6438
6439 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
6440
6441         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
6442
6443         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
6444
6445 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6446
6447         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
6448         the case removed in the previous patch, when the only phi argument
6449         is defined in the same loop as the phi node itself.  Handle it
6450         separately from the invariant case by both propagating it outside
6451         the region and replacing the phi node with an assign.
6452
6453 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6454
6455         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
6456         constant phi nodes with one argument are is_gimple_min_invariant
6457         and SSA_NAME_IS_DEFAULT_DEF.
6458
6459 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6460
6461         * graphite-cloog-util.c (oppose_constraint):
6462         Extend loop counter's value range (CLOOG_ORG).
6463         (cloog_matrix_to_ppl_constraint): Same.
6464         (new_Constraint_System_from_Cloog_matrix): Same.
6465         * graphite-cloog-compat.h (matrix_num_type): New.
6466
6467 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6468
6469         * graphite.c (graphite_initialize): Do not initialize
6470         CLooG and initialize the Parma Polyhedra Library
6471         manually when using CLOOG_ORG.
6472         (graphite_finalize): Do not finalize CLooG and finalize
6473         the Parma Polyhedra Library manually when using CLOOG_ORG.
6474         * graphite-cloog-compat.h (cloog_initialize): Hide function
6475         when using CLOOG_ORG.
6476         (cloog_finalize): Same.
6477
6478 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6479
6480         * graphite-clast-to-gimple.c (free_scattering): Change
6481         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
6482         (CLOOG_ORG).
6483         (build_cloog_prog): Same.
6484         * graphite-cloog-compat.h (cloog_domain): Removed.
6485         (cloog_scattering): New.
6486         (cloog_set_domain): Removed.
6487         (cloog_set_scattering): New.
6488         (cloog_next_domain): Removed.
6489         (cloog_next_scattering): New.
6490         (cloog_set_next_domain): Removed.
6491         (cloog_set_next_scattering): New.
6492         (CloogScatteringList): New.
6493         (CloogScattering): New.
6494         (cloog_scattering_free): New.
6495         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
6496         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
6497         New.
6498
6499 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6500
6501         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
6502         CloogState.
6503         (set_cloog_options): Same.
6504         (print_clast_stmt): Same.
6505         (scop_to_clast): Same.
6506         (print_generated_program): Same.
6507         (gloog): Same.
6508         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
6509         (scop_to_clast): Extend with CloogState.
6510         * graphite-cloog-util.c: Include graphite-cloog-compat.h
6511         (new_Cloog_Domain_from_ppl_Polyhedron):
6512         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
6513         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
6514         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6515         * graphite-cloog-util.h (build_cloog_prog): Same.
6516         * graphite-cloog-copat.h (build_cloog_prog): New.
6517         (CloogState): New.
6518         (cloog_state_malloc): New.
6519         (cloog_state_free): New.
6520         (cloog_loop_malloc): New.
6521         (cloog_options_malloc): New.
6522         (cloog_statement_alloc): New.
6523         (cloog_domain_from_cloog_matrix): New.
6524         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
6525         (new_Cloog_Domain_from_ppl_Polyhedron): New.
6526
6527 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6528
6529         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
6530         type of NAME now depends on used CLooG version.
6531         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
6532         (gcc_type_for_clast_expr): Same.
6533         (print_clast_stmt): Replace pprint with clast_pprint.
6534         * graphite-cloog-compat.h: Provide compatibility macros for
6535         CLooG Legacy.
6536         (clast_name_p): New.
6537         (clast_expr_term): New.
6538         (clast_expr_red): New.
6539         (clast_expr_bin): New.
6540         (clast_pprint): New.
6541
6542 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6543
6544         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
6545         compatible to newer CLooG releases (CLOOG_ORG).
6546         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
6547         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
6548         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
6549         (build_cloog_prog) : New.
6550         (cloog_program_extract_scalars): New.
6551         (cloog_program_scatter): New.
6552
6553 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6554
6555         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
6556         conditionally (CLOOG_ORG).
6557         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
6558         (cloog_statement_usr): New.
6559         (cloog_domain): Same.
6560         (cloog_set_domain): Same.
6561         (cloog_next_domain): Same.
6562         (cloog_set_next_domain): Same.
6563         (cloog_program_nb_scattdims): Same.
6564         (cloog_program_set_nb_scattdims): Same.
6565         (cloog_program_names): Same.
6566         (cloog_program_set_names): Same.
6567         (cloog_program_set_context): Same.
6568         (cloog_program_set_loop): Same.
6569         (cloog_program_blocklist): Same.
6570         (cloog_program_set_blocklist): Same.
6571         (cloog_program_scaldims): Same.
6572         (cloog_program_set_scaldims): Same.
6573         (cloog_names_nb_parameters): Same.
6574         (cloog_names_set_nb_parameters): Same.
6575         (cloog_names_parameters): Same.
6576         (cloog_names_set_parameters): Same.
6577         (cloog_names_set_nb_iterators): Same.
6578         (cloog_names_set_iterators): Same.
6579         (cloog_names_set_nb_scattering): Same.
6580         (cloog_names_set_scattering): Same.
6581         (cloog_statement_set_usr): Same.
6582         (cloog_loop_set_next): Same.
6583         (cloog_loop_set_domain): Same.
6584         (cloog_loop_set_block): Same.
6585         (cloog_block_list_next): Same.
6586         (cloog_block_list_set_next):
6587         (cloog_block_list_set_block): Same.
6588
6589 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6590
6591         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
6592         a bool.
6593         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
6594         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
6595         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
6596         when something has been changed.
6597         (rewrite_commutative_reductions_out_of_ssa): Same.
6598
6599 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6600
6601         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
6602         handle the case when def is in the sese region.
6603         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
6604         for invariant expressions.
6605         (rewrite_cross_bb_phi_deps): Removed.
6606         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
6607         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
6608         rewrite_cross_bb_phi_deps.
6609
6610 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6611
6612         * graphite-sese-to-poly.c
6613         (rewrite_commutative_reductions_out_of_ssa_loop): Call
6614         scev_analyzable_p only on is_gimple_reg
6615
6616 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6617
6618         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
6619         (rewrite_close_phi_out_of_ssa): Propagate constant values or
6620         parametric expressions outside the scop region.
6621         (rewrite_cross_bb_scalar_deps): Same.
6622         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
6623
6624 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6625
6626         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
6627         SSA_NAME_DEF_STMT only on SSA_NAMEs.
6628
6629 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6630
6631         * tree-scalar-evolution.c (instantiate_scev_name): Do not
6632         instantiate default definitions.
6633
6634 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
6635             Sebastian Pop  <sebastian.pop@amd.com>
6636
6637         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
6638         (loop_exits_from_bb_p): New.
6639         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
6640         (loop_exits_from_bb_p): Declared.
6641         * graphite-scop-detection.c (scopdet_basic_block_info): Call
6642         loop_exits_to_bb_p.
6643
6644 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6645
6646         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
6647         extra parameter for the region.  Call scev_analyzable_p.
6648         (rewrite_reductions_out_of_ssa): Update call to
6649         rewrite_close_phi_out_of_ssa.
6650         (rewrite_cross_bb_phi_deps): Same.
6651         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
6652         parameter for the region.  Call scev_analyzable_p.
6653         (rewrite_commutative_reductions_out_of_ssa): Update call to
6654         rewrite_commutative_reductions_out_of_ssa_loop.
6655
6656 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6657
6658         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
6659
6660 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6661
6662         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
6663         SSA scalar phi nodes that can be scev_analyzable_p.
6664
6665 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6666
6667         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
6668         handle SSA_NAME_IS_DEFAULT_DEF.
6669
6670 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6671
6672         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
6673
6674 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6675
6676         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
6677         case non close-phi nodes with one argument.
6678
6679 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6680
6681         * sese.h (scev_analyzable_p): Scevs could be expressions without
6682         chrecs and still be scev_analyzable_p.
6683
6684 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6685
6686         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6687
6688 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6689
6690         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
6691         * cfgloop.h (struct loop): Remove single_iv field.
6692         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
6693         (scop_canonicalize_loops): Removed.
6694         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
6695         over all the loop phi nodes in loop->header.
6696         (build_poly_scop): Remove use of scop_canonicalize_loops.
6697
6698 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6699
6700         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
6701         handle GIMPLE_CALL.
6702
6703 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6704
6705         * tree-chrec.c (chrec_apply): Should only apply to the specified
6706         variable.  Also handle multivariate chains of recurrences that
6707         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
6708
6709 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6710
6711         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
6712         (debug_clast_name_indexes_1): Removed.
6713         (debug_clast_name_indexes): Removed.
6714         (pbb_to_depth_to_oldiv): Removed.
6715         (build_iv_mapping): Replace the use of rename_map with iv_map.
6716         (translate_clast_user): Remove uses of rename_map.  Allocate and
6717         free iv_map.
6718         (translate_clast_for_loop): Remove uses of rename_map.
6719         (translate_clast_for): Same.
6720         (translate_clast_guard): Same.
6721         (translate_clast): Same.
6722         (gloog): Same.
6723         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
6724         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
6725         * sese.c (set_rename): Now static.
6726         (rename_variables_in_stmt): Removed.
6727         (rename_uses): New.
6728         (is_parameter): Removed.
6729         (is_iv): Removed.
6730         (expand_scalar_variables_call): Removed.
6731         (expand_scalar_variables_ssa_name): Removed.
6732         (expand_scalar_variables_expr): Removed.
6733         (expand_scalar_variables_stmt): Removed.
6734         (expand_scalar_variables): Removed.
6735         (rename_variables): Removed.
6736         (remove_condition): Removed.
6737         (get_true_edge_from_guard_bb): Removed.
6738         (get_false_edge_from_guard_bb): Removed.
6739         (struct igp): Removed.
6740         (default_before_guard): Removed.
6741         (convert_for_phi_arg): Removed.
6742         (add_guard_exit_phis): Removed.
6743         (insert_guard_phis): Removed.
6744         (graphite_copy_stmts_from_block): Now also uses iv_map and a
6745         region.  Do not copy conditions.  Do not copy induction variables.
6746         Call rename_uses.
6747         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
6748         the translated statement.  Use the iv_map for the induction
6749         variable renaming.
6750         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
6751         (set_rename): Removed declaration.
6752         (scev_analyzable_p): ...here.
6753         * tree-chrec.c (chrec_apply_map): New.
6754         * tree-chrec.h (chrec_apply_map): Declared.
6755
6756 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6757
6758         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
6759         insert_loop_close_phis.
6760         * sese.c (name_defined_in_loop_p): Removed.
6761         (expr_defined_in_loop_p): Removed.
6762         (alive_after_loop): Removed.
6763         (close_phi_not_yet_inserted_p): Removed.
6764         (struct alep): Removed.
6765         (add_loop_exit_phis): Removed.
6766         (insert_loop_close_phis): Removed.
6767
6768 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6769
6770         * graphite-cloog-util.c
6771         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
6772         * graphite-poly.c
6773         (psct_scattering_dim_for_loop_depth): Same.
6774
6775 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6776
6777         * graphite-cloog-util.h: Added cloog.h.
6778         * graphite-blocking.c: Removed cloog.h.
6779         * graphite-dependences.c: Same.
6780         * graphite-interchange.c: Same.
6781         * graphite-poly.c: Same.
6782         * graphite-ppl.c: Same.
6783         * graphite-scop-detection.c: Same.
6784         * graphite-sese-to-poly.c:
6785         Removed cloog.h.
6786         Removed graphite-clast-to-gimple.h.
6787         (check_poly_representation): Removed (unused).
6788         * graphite-sese-to-poly.h
6789         (check_poly_representation): Removed (unused).
6790
6791 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6792
6793         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
6794         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
6795         (graphite-cloog-util.o): New.
6796         (graphite-ppl.o): Added graphite-cloog-util.h.
6797         * graphite-clast-to-gimple.c:
6798         Added graphite-cloog-util.h to include statements.
6799         * graphite-cloog-util.c: New.
6800         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
6801         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6802         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6803         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6804         (insert_constraint_into_matrix): Same.
6805         (ppl_Constrain_System_number_of_constraints): Same.
6806         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
6807         (oppose_constraint): Same.
6808         (cloog_matrix_to_ppl_constraint): Same.
6809         (new_Constraint_System_from_Cloog_Matrix): Same.
6810         * graphite-cloog-util.h: New.
6811         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
6812         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6813         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6814         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6815         (insert_constraint_into_matrix): Same.
6816         * graphite-ppl.c:
6817         Added graphite-cloog-util.h to include statements.
6818         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
6819         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6820         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6821         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6822         (insert_constraint_into_matrix): Same.
6823         (ppl_Constrain_System_number_of_constraints): Same.
6824         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
6825         (oppose_constraint): Same.
6826         (cloog_matrix_to_ppl_constraint): Same.
6827         (new_Constraint_System_from_Cloog_Matrix): Same.
6828         * graphite-ppl.h:
6829         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
6830         graphite-cloog-util.h.
6831         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
6832         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6833         (new_C_Polyhedron_from_Cloog_Matrix): Same.
6834         (insert_constraint_into_matrix): Same.
6835
6836 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6837
6838         * graphite-clast-to-gimple.c
6839         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
6840         (precision_for_interval): Same.
6841         (gcc_type_for_interval): Same.
6842         (compute_type_for_level): Same.
6843         * graphite-interchange.c
6844         (lst_interchange_profitable_p): Same.
6845         * graphite-poly.c
6846         (psct_scattering_dim_for_loop_depth): Same.
6847         * graphite-ppl.c
6848         (ppl_max_for_le_pointset): Same.
6849         (ppl_min_for_le_pointset): Same.
6850
6851 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6852
6853         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
6854         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
6855
6856 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6857
6858         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
6859         rewrite_close_phi_out_of_ssa.
6860
6861 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6862
6863         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
6864
6865 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6866
6867         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
6868         rename_map.
6869         * sese.c (debug_rename_map): Same.
6870         (get_rename): Same.
6871         (set_rename): Same.
6872         (rename_variables_in_stmt): Same.
6873         (expand_scalar_variables_call): Same.
6874         (expand_scalar_variables_ssa_name): Same.
6875         (expand_scalar_variables_expr): Same.
6876         (expand_scalar_variables_stmt): Same.
6877         (expand_scalar_variables): Same.
6878         (rename_variables): Same.
6879         (graphite_copy_stmts_from_block): Same.
6880         (copy_bb_and_scalar_dependences): Same.
6881
6882 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6883
6884         * graphite-clast-to-gimple.c (copy_renames): Removed.
6885         (translate_clast_for): Do not call copy_renames.
6886         (translate_clast_guard): Same.
6887
6888 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6889
6890         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
6891         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
6892         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
6893         before rewrite_cross_bb_scalar_deps.
6894
6895 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6896
6897         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
6898         Early return in when flag_associative_math is not set.
6899
6900 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6901
6902         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
6903         of SSA copies on edges except for loop->latch.
6904
6905 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6906
6907         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
6908         Split out of rewrite_reductions_out_of_ssa.
6909         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
6910         Declared.
6911         * graphite.c (graphite_transform_loops): Call it.
6912
6913 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6914
6915         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
6916
6917 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
6918
6919         * dbgcnt.def (graphite_scop): New counter.
6920         * graphite.c: Include dbgcnt.h.
6921         (graphite_transform_loops): Use new counter to limit transformations.
6922         * Makefile.in (graphite.o): Depend on DBGCNT_H.
6923
6924 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6925
6926         * passes.c (init_optimization_passes): Add pass_graphite.
6927         Schedule a pass_copy_prop before pass_graphite_transforms.
6928         * timevar.def (TV_GRAPHITE): Declared.
6929         * tree-pass.h (pass_graphite): Declared.
6930         * tree-ssa-loop.c (pass_graphite): New.
6931
6932 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6933
6934         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
6935         Remove calls to rename_nb_iterations and rename_sese_parameters.
6936         * graphite-clast-to-gimple.h (gloog): Update declaration.
6937         * graphite.c (graphite_transform_loops): Update call to gloog.
6938         * sese.c (rename_variables_in_expr): Removed.
6939         (rename_nb_iterations): Removed.
6940         (rename_sese_parameters): Removed.
6941         * sese.h (rename_nb_iterations): Removed.
6942         (rename_sese_parameters): Removed.
6943
6944 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6945
6946         * graphite-clast-to-gimple.c (gloog): Remove call to
6947         sese_adjust_liveout_phis.
6948         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
6949         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
6950         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
6951         rewrite_phi_out_of_ssa.
6952         * sese.c (get_vdef_before_sese): Removed.
6953         (sese_adjust_vphi): Removed.
6954         (sese_adjust_liveout_phis): Removed.
6955         * sese.h (sese_adjust_liveout_phis): Removed.
6956
6957 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6958
6959         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
6960         argument for the place after which to insert the out of SSA copy.
6961         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
6962         (rewrite_phi_out_of_ssa): Same.
6963         (rewrite_cross_bb_scalar_deps): Same.
6964         (insert_copyout): Removed.
6965         (insert_copyin): Removed.
6966         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
6967         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
6968         insert_copyin.
6969
6970 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6971
6972         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
6973         (rewrite_reductions_out_of_ssa): Same.
6974         (rewrite_commutative_reductions_out_of_ssa): Same.
6975         (build_poly_scop): Do not call these functions.
6976         * graphite-sese-to-poly.h (build_poly_scop): Declared.
6977         (rewrite_reductions_out_of_ssa): Declared.
6978         (rewrite_commutative_reductions_out_of_ssa): Declared.
6979         * graphite.c (graphite_transform_loops): Call on every scop
6980         rewrite_commutative_reductions_out_of_ssa before calling
6981         rewrite_reductions_out_of_ssa and build_scop_bbs.
6982
6983 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6984
6985         * graphite-dependences.c (dot_deps): Make system call to dotty run
6986         in background.
6987         (dot_deps_stmt): Same.
6988         * graphite-poly.c (dot_lst): Same.
6989
6990 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6991
6992         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
6993         phi_arg_in_outermost_loop.
6994         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
6995         (remove_invariant_phi): Same.
6996
6997 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
6998
6999         * target.def (output_addr_const_extra): New hook.
7000         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
7001         * doc/tm.texi: Regenerate.
7002         * targhooks.c (default_asm_output_addr_const_extra): New function.
7003         * targhooks.h (default_asm_output_addr_const_extra): Declare.
7004         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
7005         target hook.
7006
7007         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7008         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
7009         * config/i386/i386.h (output_addr_const_extra): Rename to...
7010         (i386_asm_output_addr_const_extra): ...this. Make static.
7011         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7012
7013 2010-08-11  Richard Henderson  <rth@redhat.com>
7014
7015         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
7016
7017 2010-08-11  Nick Clifton  <nickc@redhat.com>
7018
7019         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
7020         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
7021         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
7022         stormy16-lib2-cmpsi.c.
7023
7024         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
7025         -O2.
7026
7027 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
7028
7029         * opts.h (struct cl_option_handler_func): Make handler take
7030         cl_decoded_option structure as parameter, not individual elements.
7031         (struct cl_option_handlers): Make callbacks take cl_decoded_option
7032         structure as parameter, not individual elements.
7033         (handle_option): Take cl_decoded_option structure as parameter,
7034         not individual elements.
7035         (handle_generated_option): Declare.
7036         * opts-common.c (handle_option): Take cl_decoded_option structure
7037         as parameter, not individual elements.  Update calls to callback
7038         and handler functions.
7039         (handle_generated_option): New.
7040         (read_cmdline_option): Update calls to callback functions and
7041         handle_option.
7042         * opts.c (common_handle_option, complain_wrong_lang,
7043         unknown_option_callback, post_handling_callback,
7044         lang_handle_option, target_handle_option): Take cl_decoded_option
7045         structure as parameter, not individual elements.
7046         (lang_handle_option, target_handle_option, common_handle_option):
7047         Assert option has at most one argument.
7048         (enable_warning_as_error): Call handle_generated_option instead of
7049         handle_option.  Do not pass -Werror argument as argument of
7050         generated option.
7051
7052 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7053
7054         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
7055         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
7056         (SUBWORD_BOOL_CAS): Likewise.
7057         (SUBWORD_SYNC_OP): Likewise.
7058         (SUBWORD_TEST_AND_SET): Likewise.
7059         (FETCH_AND_OP_WORD): Parenthesise INF_OP
7060         (SUBWORD_SYNC_OP): Likewise.
7061         (OP_AND_FETCH_WORD): Likewise.
7062
7063 2010-08-10  Xinliang David Li  <davidxl@google.com>
7064
7065         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
7066         compute max/min offset in address.
7067
7068 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
7069
7070         * ira-live.c: Include sbitmap.h.
7071         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
7072         Compress live ranges even more.
7073
7074 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
7075
7076         * coverage.c (ctr_labels): Delete.
7077
7078 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
7079
7080         PR bootstrap/45177
7081         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
7082         test here from arm_gen_load_multiple_1.
7083         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
7084         multiple_operation_profitable_p.
7085
7086 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
7087
7088         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
7089         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
7090
7091 2010-08-10  Richard Henderson  <rth@redhat.com>
7092
7093         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
7094         after saving registers.  Assert that SSE registers are only saved
7095         with a sufficiently aligned frame.
7096         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
7097         remove stack_realign_fp handling.
7098         (ix86_expand_prologue): Save int registers before stack_realign_fp,
7099         and do not mark the stack alignment as frame related.
7100         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
7101
7102         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
7103         saves when re-aligning the stack.
7104
7105 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
7106
7107         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
7108         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
7109         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
7110
7111 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
7112
7113         * dwarf2out.c (struct die_struct): Move die_tag to the end.
7114
7115 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
7116
7117         * config/arm/iterators.md: New file.
7118         * config/arm/arm.md: Include iterators.md.
7119         (QHSI): Move to new file.
7120         (LTUGEU, cnb, optab, ior_xor): Likewise.
7121         * config/arm/iwmmxt.md (VMMX): Move to new file.
7122         (VSHFT, MMX_char): Likewise.
7123         * config/arm/neon.md (VD): Move to new file.
7124         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
7125         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
7126         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
7127         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
7128         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
7129         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
7130         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
7131         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
7132         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
7133         (Is_d_reg, V_mode_nunits): Likewise.
7134         * config/arm/vec-common.md (VALL): Move to new file.
7135         (VALLW, VINT, VINTW): Likewise.
7136
7137 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
7138
7139         PR middle-end/45182
7140         * combine.c (make_compound_operation): Don't try to convert
7141         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
7142
7143 2010-08-10  Richard Guenther  <rguenther@suse.de>
7144
7145         * tree.h (get_object_alignment): Adjust prototype.
7146         * builtins.c (get_object_alignment): Return unsigned int,
7147         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
7148         and TARGET_MEM_REF properly.
7149         (get_pointer_alignment): Adjust.
7150         * emit-rtl.c (get_mem_align_offset): Adjust comment.
7151         (set_mem_attributes_minus_bitpos): Adjust.
7152         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
7153
7154 2010-08-10  Richard Guenther  <rguenther@suse.de>
7155
7156         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
7157         (copy_prop_visit_assignment): Simplify.
7158         (copy_prop_visit_stmt): Also visit assignments from
7159         constants.
7160         (copy_prop_visit_phi_node): Use operand_equal_p.
7161
7162 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
7163
7164         * ipa-split.c (find_split_points): Free stack.
7165
7166 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
7167
7168         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
7169         * tree.c (tree_node_kind): Delete corresponding entries.
7170
7171 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
7172
7173         * alias.c (may_alias_p): Remove unused ret.
7174
7175 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
7176
7177         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
7178         alias_sets_conflict_p.
7179         (walk_mems_1): Moved from alias.c.
7180         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
7181         in alias.c.
7182         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
7183         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
7184         * alias.c (walk_mems_2): Moved to ddg.c.
7185         (walk_mems_1): Ditto.
7186         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
7187         to ddg.c.
7188         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
7189         disambiguation.
7190         *(may_alias_p): New function to check whether two memory expression
7191         may alias or not. Currently used in buidling inter-iteration memory
7192         dependence.
7193         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
7194         (insn_alias_sets_conflict_p): Removed
7195         *rtl.h (may_alias_p): New function prototype.
7196
7197 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
7198
7199         * tree.c (nreverse): Assert that we don't have a BLOCK.
7200
7201 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
7202
7203         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
7204         * config/arm/arm.c (arm_get_pcs_model): Likewise.
7205         * config/avr/avr.c (init_cumulative_args): Likewise.
7206         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
7207         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
7208         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
7209         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
7210         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
7211         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7212         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
7213         * dwarf2out.c (gen_subprogram_die): Likewise.
7214         * function.c (allocate_struct_function): Likewise.
7215         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
7216         (deserves_ellipsis): Delete.
7217
7218 2010-08-09  Richard Guenther  <rguenther@suse.de>
7219
7220         * tree-ssa-copy.c (cached_last_copy_of): Remove.
7221         (valueize_val): New function.
7222         (get_last_copy_of): Remove.
7223         (set_copy_of_val): Simplify.
7224         (dump_copy_of): Likewise.
7225         (copy_prop_visit_cond_stmt): Use valueize_val.
7226         (copy_prop_visit_phi_node): Properly handle unvisited names.
7227         Drop code managing copy-of chains.
7228         (init_copy_prop): Adjust.
7229         (fini_copy_prop): Likewise.
7230         (execute_copy_prop): Remove obsolete comment.
7231
7232 2010-08-09  Richard Guenther  <rguenther@suse.de>
7233
7234         PR middle-end/44632
7235         * function.c (gimplify_parameters): Do not clear addressable
7236         bit of the original parameter.
7237
7238 2010-08-09  Richard Guenther  <rguenther@suse.de>
7239
7240         PR middle-end/45212
7241         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
7242         alignment from MEM_REF offset only if we took it from the
7243         base object.
7244
7245 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
7246
7247         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
7248
7249 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
7250
7251         * c-tree.h (build_arg_info): Declare.
7252         * c-decl.c (build_arg_info): Define.
7253         (get_parm_info): Call it.  Delete initialization code.
7254         * c-parser.c (c_parser_parms_declarator): Likewise.
7255         (c_parser_parms_list_declaractor): Likewise.
7256
7257 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
7258
7259         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
7260         (struct c_arg_info): Change type of tags field.
7261         * c-decl.c (grokdeclarator): Update for changed type of tags field.
7262         (get_parm_info): Likewise.
7263         (store_parm_decls_newstyle): Likewise.
7264
7265 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
7266
7267         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
7268         (branch_island_list): Delete.
7269         (branch_islands): Declare.
7270         (add_compiler_branch_island): Adjust for branch_islands instead of
7271         branch_island_list.
7272         (macho_branch_islands): Likewise.
7273         (no_previous_def): Likewise.
7274         (get_prev_label): Likewise.
7275
7276 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7277
7278         PR boehm-gc/34544
7279         * gthr-posix.h (__gthread_start): Delete.
7280         (__gthread_active_init): Use pthread_default_stacksize_np instead of
7281         pthread_create to determine if hpux pthreads are active.
7282         * gthr-posix95.h (__gthread_start): Delete.
7283         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
7284
7285 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
7286
7287         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
7288         _WIN64 not expanded.
7289
7290 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
7291             H.J. Lu  <hongjiu.lu@intel.com>
7292
7293         PR target/45213
7294         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
7295         to output 32bit SFmode immediate as 8 byte sign extended value.
7296
7297 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7298
7299         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
7300         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
7301         (SUBWORD_BOOL_CAS): Likewise.
7302         (SUBWORD_SYNC_OP): Likewise.
7303         (SUBWORD_TEST_AND_SET): Likewise.
7304         (FETCH_AND_OP_WORD): Parenthesise INF_OP
7305         (SUBWORD_SYNC_OP): Likewise.
7306         (OP_AND_FETCH_WORD): Likewise.
7307
7308 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7309
7310         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
7311         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
7312         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
7313         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
7314         generic part.
7315         (cortex_a9_sched_adjust_cost): New function.
7316         (xscale_sched_adjust_cost): New function.
7317         * config/arm/arm-protos.h (struct tune_params): New field
7318         sched_adjust_cost.
7319         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
7320
7321 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
7322
7323         PR target/44942
7324         * config/sparc/sparc.c (function_arg_advance): Always take into account
7325         the padding, if any.
7326
7327 2010-08-06  Richard Guenther  <rguenther@suse.de>
7328
7329         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
7330         (dump_lattice_value): Dump it.
7331         (get_default_value): Adjust.
7332         (get_constant_value): Likewise.
7333         (set_value_varying): Likewise.
7334         (set_lattice_value): Make sure to not go up the lattice
7335         with bitwise constant values.
7336         (get_value_for_expr): Handle ADDR_EXPRs.
7337         (value_to_double_int): New function.
7338         (get_value_from_alignment): Likewise.
7339         (do_dbg_cnt): Adjust.
7340         (ccp_lattice_meet): Handle partially constant values.
7341         (bit_value_unop_1): New function.
7342         (bit_value_binop_1): Likewise.
7343         (bit_value_unop): Likewise.
7344         (bit_value_binop): Likewise.
7345         (evaluate_stmt): Track partially constant values if
7346         flag_tree_bit_ccp is set.
7347         (ccp_fold_stmt): Dump if we folded a predicate.
7348         (ccp_visit_stmt): Adjust.
7349         * common.opt (ftree-bit-ccp): New flag.
7350         * doc/invoke.texi (ftree-bit-ccp): Document.
7351         * opts.c (decode_options): Enable bit-CCP at -O1.
7352
7353 2010-08-06  Alan Modra  <amodra@gmail.com>
7354
7355         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
7356         and -mrelocatable-lib description.
7357
7358 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
7359
7360         From Martin Thuresson  <martint@google.com>
7361         * postreload.c (reload_cse_simplify_operands): Use
7362         SET_REGNO_RAW instead of SET_REGNO.
7363         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
7364         SET_REGNO.
7365         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
7366         instead of SET_REGNO.
7367         * rtl.h (SET_REGNO_RAW): New macro.
7368
7369 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
7370
7371         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
7372         computations.  Fix formatting issues.
7373         (num_sign_bit_copies1): Likewise.
7374         (canonicalize_condition): Likewise.
7375
7376 2010-08-05  Richard Henderson  <rth@redhat.com>
7377
7378         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
7379         (floor_log2): Use clz_hwi.
7380         (exact_log2): Use ctz_hwi.
7381         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
7382         * builtins.c (fold_builtin_bitop): Use them.
7383         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
7384         * combine.c (get_pos_from_mask): Use ctz_hwi.
7385         * double-int.c (double_int_ctz): Likewise.
7386         * explow.c (force_reg): Likewise.
7387         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
7388
7389 2010-08-05  Richard Henderson  <rth@redhat.com>
7390
7391         PR target/45189
7392         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
7393         the alignment constant is properly sign-extended.
7394
7395 2010-08-05  Richard Guenther  <rguenther@suse.de>
7396
7397         * expr.c (store_expr): Use emit_block_move only if both
7398         source and target are MEMs.  Use store_bit_field if only
7399         the target is a MEM.
7400
7401 2010-08-05  Richard Henderson  <rth@redhat.com>
7402
7403         PR debug/45188
7404         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
7405         (INCOMING_RETURN_ADDR_RTX): Likewise.
7406         (dwarf2out_do_frame): Remove conditional compilation.
7407         (dwarf2out_frame_init): Likewise.
7408
7409 2010-08-05  Nicolas Setton  <setton@adacore.com>
7410
7411         * gcov.c (flag_display_progress): New static variable.
7412         (main): Display progress info on standard output if requested.
7413         (options): Add -d/--display-progress.
7414         (print_usage): Print them.
7415         (process_args): Handle them.
7416         * doc/gcov.texi: Document them.
7417
7418 2010-08-05  Martin Jambor  <mjambor@suse.cz>
7419
7420         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
7421         (ipcp_insert_stage): Redirect only edges not flagged with
7422         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
7423         discovered constants.
7424
7425 2010-08-05  Martin Jambor  <mjambor@suse.cz>
7426
7427         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
7428         (struct ipa_param_descriptor): New fields types and
7429         cannot_devirtualize.
7430         (ipa_param_cannot_devirtualize_p): New function.
7431         (ipa_param_types_vec_empty): Likewise.
7432         (ipa_make_edge_direct_to_target): Declare.
7433         * ipa-cp.c: Fixed first stage driver name in initial comment,
7434         described devirtualization there too.
7435         (ipcp_analyze_node): Call ipa_analyze_params_uses.
7436         (ipcp_print_all_lattices): Print devirtualization info.
7437         (ipa_set_param_cannot_devirtualize): New function.
7438         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
7439         lattice to BOTTOM.
7440         (ipcp_init_stage): Merged into...
7441         (ipcp_generate_summary): ...its caller.
7442         (ipcp_change_tops_to_bottom): Also process type lists.
7443         (ipcp_add_param_type): New function.
7444         (ipcp_copy_types): Likewise.
7445         (ipcp_propagate_types): Likewise.
7446         (ipcp_propagate_stage): Also propagate types.
7447         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
7448         Also return true if propagated types require it.
7449         (ipcp_update_callgraph): Dump redirection info.
7450         (ipcp_process_devirtualization_opportunities): New function.
7451         (ipcp_const_param_count): Include known type information.
7452         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
7453         on new node.  Fixed formatting.
7454         * ipa-prop.c (make_edge_direct_to_target): Renamed to
7455         ipa_make_edge_direct_to_target and changed all callers.  Made
7456         externally visible.
7457         (ipa_node_duplication_hook): Duplicate types vector.
7458         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
7459         redirect outgoing calls for which we can't get a decl from the
7460         statement.  Check that we can get a decl from the call statement.
7461         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
7462         ipa_analyze_params_uses only when ipa-cp is disabled.
7463         * tree-inline.c (get_indirect_callee_fndecl): Removed.
7464         (expand_call_inline): Do not call get_indirect_callee_fndecl.
7465         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
7466         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
7467
7468 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
7469
7470         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
7471         temporary. Emit move from temporary to accum, so REG_EQUAL note will
7472         be attached to this insn in correct mode.
7473
7474 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
7475
7476         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
7477         using REGNO of base_reg directly.
7478
7479 2010-08-05  Jie Zhang  <jie@codesourcery.com>
7480
7481         PR tree-optimization/45144
7482         * tree-sra.c (type_consists_of_records_p): Return false
7483         if the record contains bit-field.
7484
7485 2010-08-04  Richard Henderson  <rth@redhat.com>
7486
7487         * config/i386/i386.c (struct ix86_frame): Remove padding and
7488         to_allocate members.
7489         (ix86_compute_frame_layout): Don't store them.
7490         (ix86_can_use_return_insn_p): Use a more direct and more obviously
7491         correct condition for the position of the stack pointer.
7492         (ix86_expand_prologue): Compute remaining stack allocation based
7493         on the ultimate stack pointer offset.
7494         (ix86_expand_epilogue): Use more obvious expressions testing for
7495         the stack pointer already pointing to the saved registers.
7496
7497         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
7498         duplication deconstructing the frame pointer.  Simplify
7499         deallocation of the local stack frame.
7500
7501         * reg-notes.def (CFA_EXPRESSION): New.
7502         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
7503         (dwarf2out_frame_debug_cfa_expression): New.
7504         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
7505
7506         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
7507         * config/i386/i386.c (ix86_expand_prologue): Set it.
7508         (ix86_expand_epilogue): Clear it.
7509         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
7510         context, add REG_CFA_EXPRESSION notes.
7511
7512         * config/i386/i386.h (struct machine_frame_state): Rename from
7513         machine_cfa_state.  Add members tracking SP and FP regardless
7514         of the current CFA register.
7515         (ix86_cfa_state): Remove.
7516         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
7517         and sse_reg_save_offset members.
7518         (ix86_compute_frame_layout): Set them.
7519         (gen_push): Increment sp_offset too.
7520         (choose_baseaddr_len, choose_baseaddr): New.
7521         (ix86_emit_save_reg_using_mov): New.
7522         (ix86_emit_save_regs_using_mov): Use it.
7523         (ix86_emit_save_sse_regs_using_mov): Likewise.
7524         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
7525         compare vs the saved red_zone_offset.
7526         (pro_epilogue_adjust_stack): Adjust sp_offset.
7527         (ix86_adjust_stack_and_probe): Likewise.
7528         (ix86_expand_prologue): Set up, use, and validate the new
7529         frame_state_info members.  Use gen_frame_mem.
7530         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
7531         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
7532         new frame_state_info members.
7533         (ix86_emit_leave): Likewise.
7534         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
7535         out-of-range stack pointer offsets here.
7536         (ix86_emit_restore_sse_regs_using_mov): Likewise.
7537         (ix86_expand_epilogue): Use and validate the new frame_state_info
7538         members.  Break up and simplify the logic selecting the
7539         restore_regs_via_mov code path.  Ensure that there will be no
7540         out-of-range stack pointer offsets.
7541
7542         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
7543
7544         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
7545         argument name to reflect the expected tree; fix indentation.
7546         (ix86_asm_output_function_label): Output the entire 32-bit
7547         ms_hook here as bytes ...
7548         (ix86_expand_prologue): ... not here as insns.  Attach the
7549         unwind info for the ms_hook to a blockage insn.
7550         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
7551         (ix86_ms_bitfield_layout_p): Fix indentation.
7552         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
7553
7554         * config/i386/i386.c (ix86_using_red_zone): New.
7555         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
7556         ix86_expand_prologue, ix86_force_to_memory): Use it.
7557
7558         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
7559         saving the int registers.
7560
7561         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
7562         and DWARF2_UNWIND_INFO conditional compilation.
7563
7564 2010-08-04  Richard Henderson  <rth@redhat.com>
7565
7566         PR debug/45171
7567         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
7568         an is_naming_typedef_decl.
7569
7570 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
7571
7572         PR rtl-optimization/45162
7573         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
7574         * dce.c (word_dce_process_block): Likewise.
7575
7576 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
7577
7578         PR target/44583
7579         * config/ia64/constraints.md (Z): New.
7580         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
7581         (xfreg_or_signed_fp01_operand): New.
7582         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
7583         with fr_reg_or_signed_fp01_operand and constraint G with Z.
7584         (subsf3): Ditto.
7585         (*maddsf4): Ditto.
7586         (*msubsf4): Ditto.
7587         (adddf3): Ditto.
7588         (adddf3_trunc): Ditto.
7589         (subdf3): Ditto.
7590         (*subdf3_trunc): Ditto.
7591         (*madddf4): Ditto.
7592         (*madddf4_trunc): Ditto.
7593         (*msubdf4): Ditto.
7594         (*msubdf4_trunc): Ditto.
7595         (addxf3): Replace xfreg_or_fp01_operand with
7596         xfreg_or_signed_fp01_operand and constraint G with Z.
7597         (*addxf3_truncsf): Ditto.
7598         (*addxf3_truncdf): Ditto.
7599         (subxf3): Ditto.
7600         (*subxf3_truncsf): Ditto.
7601         (*subxf3_truncdf): Ditto.
7602         (*maddxf4): Ditto.
7603         (*maddxf4_truncsf): Ditto.
7604         (*maddxf4_truncdf): Ditto.
7605         (*msubxf4): Ditto.
7606         (*msubxf4_truncsf): Ditto.
7607         (*msubxf4_truncdf): Ditto.
7608
7609 2010-08-04  Richard Guenther  <rguenther@suse.de>
7610
7611         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
7612         if either alias-set is zero.
7613
7614 2010-08-04  Richard Guenther  <rguenther@suse.de>
7615
7616         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
7617         * tree-ssa-ccp.c: ... here.
7618         * tree-ssa-copy.c: ... and here.
7619         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
7620         value_range_t): Move ...
7621         * tree-vrp.c: ... here.
7622         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
7623         (substitute_and_fold): Adjust prototype.
7624         * tree-ssa-propagate.c (replace_uses_in): Adjust.
7625         (replace_phi_args_in): Likewise.
7626         (substitute_and_fold): Take callback to query lattice instead
7627         of pointer to lattice.  Replace SSA name defs with lattice
7628         values first.
7629         * tree-ssa-ccp.c (ccp_finalize): Adjust.
7630         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
7631         (get_value): New function.
7632         (fini_copy_prop): Adjust.
7633         * tree-vrp.c (vrp_finalize): Adjust.
7634
7635 2010-08-04  Richard Guenther  <rguenther@suse.de>
7636
7637         PR middle-end/45176
7638         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
7639         points-to set for original MEM_REF.
7640
7641 2010-08-04  Richard Guenther  <rguenther@suse.de>
7642
7643         * tree-ssa-ccp.c (get_constant_value): New function.
7644         (get_rhs_assign_op_for_ccp): Remove.
7645         (valueize_op): New function.
7646         (ccp_fold): Use get_constant_value and valueize_op.
7647         (fold_const_aggregate_ref): Likewise.
7648         (ccp_fold_stmt): Likewise.
7649         (visit_assignment): Simplify.
7650
7651 2010-08-04  Richard Guenther  <rguenther@suse.de>
7652
7653         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
7654         * double-int.h (double_int_ctz): Declare.
7655         * double-int.c (double_int_ctz): New function.
7656
7657 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
7658
7659         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
7660         Define.
7661         picochip_expand_movmemhi : Expand movmem pattern.
7662         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
7663         Declare.
7664         * config/picochip/picochip.md (movmemhi) : New pattern.
7665
7666 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
7667
7668         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
7669
7670 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
7671
7672         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
7673         NEG as operand of a MULT by merging it with the other operand.
7674         * combine.c (make_compound_operation): Use trunc_int_for_mode when
7675         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
7676         MULT.
7677         * config/arm/constraints.md (M): Examine only 32 bits of a
7678         HOST_WIDE_INT.
7679         * config/arm/predicates.md (power_of_two_operand): Likewise.
7680
7681 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7682
7683         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
7684         non-NOTE insns.
7685
7686 2010-08-03  Jan Hubicka  <jh@suse.cz>
7687
7688         * ipa-split.c (struct split_point): Add split_part_set_retval.
7689         (find_retval): Forward declare.
7690         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
7691         (consider_split): Compute current->split_part_set_retval.
7692         (visit_bb): Do not look into return value.
7693         (split_function): Handle !split_part_set_retval
7694
7695 2010-08-03  Martin Jambor  <mjambor@suse.cz>
7696
7697         * tree-sra.c (completely_scalarize_record): New parameter REF, create
7698         its own access->expr intead of using build_ref_for_offset.
7699
7700 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
7701
7702         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
7703         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
7704         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
7705         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
7706         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
7707         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
7708         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
7709         DEFAULT_SWITCH_TAKES_ARG.
7710         * config/rx/rx.opt (-patch=): Remove option.
7711         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
7712         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
7713         * doc/invoke.texi (RX Options): Remove -patch=.
7714         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
7715         (option_map): Remove --profile-blocks, --quiet and --silent.
7716
7717 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
7718
7719         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
7720         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
7721         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
7722         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
7723         Update calls to ix86_expand_compare and ix86_expand_branch.
7724         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
7725         ix86_expand_compare.
7726         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
7727         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
7728         Make static.
7729         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
7730         and ix86_compare_op1.  Update calls to ix86_expand_compare.
7731         (ix86_expand_int_movcc): Ditto.
7732         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
7733         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
7734         (ix86_expand_setcc): Ditto.
7735         (ix86_expand_compare): Remove prototype.
7736         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
7737         ix86_compare_op0 and ix86_compare_op1.  Update calls
7738         to ix86_expand_branch to directly pass operands[1] and operands[2].
7739         (cbranchxf4): Ditto.
7740         (cbranch<MODEF:mode>4): Ditto.
7741         (cbranchcc4): Ditto.
7742         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
7743         Update calls to ix86_expand_setcc to directly pass operands[2] and
7744         operands[3].
7745         (cstorexf4): Ditto.
7746         (cstore<MODEF:mode>4): Ditto.
7747         (cstorecc4): Ditto.
7748
7749 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
7750
7751         PR target/45063
7752         * caller-save.c (save_call_clobbered_regs): Remove regs from
7753         hard_regs_saved when they are set.
7754
7755 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
7756
7757         PR target/41089
7758         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
7759         as volatile.
7760
7761 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
7762
7763         * common.opt (ftree-loop-distribute-patterns): New.
7764         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
7765         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
7766         at -O3.
7767         * tree-data-ref.c (stores_zero_from_loop): New.
7768         * tree-data-ref.h (stores_zero_from_loop): Declared.
7769         * tree-loop-distribution.c (tree_loop_distribution): Call
7770         stores_zero_from_loop.
7771         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
7772
7773 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
7774
7775         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
7776         into account.
7777
7778         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
7779         * config/arm/arm.c (thumb1_code): New variable.
7780         (arm_override_options): Set it.
7781         (thumb1_final_prescan_insn): Keep track of condition code status.
7782         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
7783         jumps that depend on them.
7784         * config/arm/arm.h (thumb1_code): Declare variable.
7785         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
7786         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
7787         thumb1_cc_mode.
7788         (CC_STATUS_INIT): New macro.
7789         * config/arm/constraints.md (Pd): New constraint.
7790         * config/arm/predicates.md (noov_comparison_operator): New predicate.
7791         * config/arm/arm.md (is_thumb1): New define_attr.
7792         (conds): Set default to "clob" when generating Thumb1 code.
7793         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
7794         code are set.  Use two-operand assembly syntax.
7795         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
7796         pattern.
7797         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
7798         codes are set.  Use two-operand assembly syntax.
7799         (zero_extendhisi splitter): Remove constraints.
7800         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
7801         thumb1_movsf_insn): Set conds attribute as appropriate.
7802         (cbranchsi4_insn): Use condition code status from struct
7803         machine_function to determine whether the comparison can be eliminated.
7804         Discourage the alternative using high registers.
7805         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
7806         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
7807         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
7808         subsi3_cbranch): Delete.
7809         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
7810         one subtract and one cbranch insn.
7811
7812         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
7813         thumb2_movdf_soft_insn): Delete patterns.
7814         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
7815         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
7816         (pool_range, neg_pool_range): Use them to define defaults.
7817         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
7818         and allow for TARGET_32BIT.
7819
7820         PR target/40457
7821         * config/arm/arm.h (arm_regs_in_sequence): Declare.
7822         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
7823         load_multiple_sequence, store_multiple_sequence): Delete
7824         declarations.
7825         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
7826         declarations.
7827         * config/arm/ldmstm.md: New file.
7828         * config/arm/arm.c (arm_regs_in_sequence): New array.
7829         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
7830         CHECK_REGS.  All callers changed.
7831         If SAVED_ORDER is nonnull, copy the computed order into it.
7832         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
7833         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
7834         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
7835         If SAVED_ORDER is nonnull, copy the computed order into it.
7836         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
7837         like REGS.  Handle Thumb mode.
7838         (arm_gen_load_multiple_1): New function, broken out of
7839         arm_gen_load_multiple.
7840         (arm_gen_store_multiple_1): New function, broken out of
7841         arm_gen_store_multiple.
7842         (arm_gen_multiple_op): New function, with code from
7843         arm_gen_load_multiple and arm_gen_store_multiple moved here.
7844         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
7845         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
7846         changed.
7847         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
7848         * config/arm/predicates.md (commutative_binary_operator): New.
7849         (load_multiple_operation, store_multiple_operation): Handle more
7850         variants of these patterns with different starting offsets.  Handle
7851         Thumb-1.
7852         * config/arm/arm.md: Include "ldmstm.md".
7853         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
7854         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
7855         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
7856         peepholes): Delete.
7857         * config/arm/ldmstm.md: New file.
7858         * config/arm/arm-ldmstm.ml: New file.
7859
7860         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
7861         if statement which adds extra costs to frame-related expressions.
7862
7863 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7864
7865         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
7866
7867 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
7868
7869         PR target/45142
7870         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
7871         alternative 2.
7872         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
7873         split V4SI operands.
7874
7875 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
7876
7877         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7878         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
7879         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
7880         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
7881
7882 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
7883
7884         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
7885         LOCAL_INCLUDE_DIR.
7886
7887 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
7888
7889         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
7890         used in the call to optab_for_tree_code.  Fix the second
7891         is_widening_mult_p call.  Check that both unwidened operands
7892         have the same sign.
7893
7894 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
7895
7896         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
7897
7898 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
7899
7900         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7901
7902 2010-07-30  DJ Delorie  <dj@redhat.com>
7903
7904         * config/rx/predicates.md (rx_constshift_operand): New.
7905         * config/rx/rx.md (zs_cond): New.
7906         (cbranchsi4): Remove mode.
7907         (*cbranchsi4_<code>): Likewise.
7908         (*tstbranchsi4_<code>): New.
7909         (*tstbranchsi4r_<code>): New.
7910         (*tstbranchsi4m_eq): New.
7911         (*tstbranchsi4m_ne): New.
7912         (cbranchsf4): Remove mode.
7913         (*cbranchsf4_<code>): Likewise.
7914
7915 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
7916
7917         * rtlanal.c (simplify_subreg_regno): Don't treat
7918         HARD_FRAME_POINTER_REGNUM specially.
7919
7920 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
7921
7922         * common.opt (-G): Don't define option here.
7923         * config/g.opt: New.
7924         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
7925         rs6000/powerpc and score targets.
7926         * opts.c (common_handle_option): Don't handle -G here.
7927         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
7928         * config/frv/frv.c (frv_handle_option): Handle -G.
7929         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
7930         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
7931         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
7932         * config/mips/mips.c (mips_handle_option): Handle -G.
7933         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
7934         * config/score/score.c (score_handle_option): Handle -G.
7935
7936 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
7937
7938         * config/mmix/mmix.c: Include basic-block.h.
7939
7940 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
7941
7942         PR debug/45055
7943         PR rtl-optimization/45137
7944         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
7945         prototypes.
7946         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
7947         New functions.
7948         * combine.c (next_nonnote_nondebug_insn): Removed.
7949         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
7950         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
7951         * sched-deps.c (sched_analyze_insn): Likewise.
7952         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
7953         * rtlanal.c (canonicalize_condition): Likewise.
7954         * postreload.c (reload_combine_recognize_pattern): Likewise.
7955         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
7956
7957 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
7958
7959         * config/i386/i386.md (int_cond): Remove code iterator.
7960         (fp_cond): Ditto.
7961         (cbranch<mode>4): Use ordered_comparison_operator predicate
7962         for operator0.
7963         (cstore<mode>4): Ditto for operator1.
7964         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
7965         (add<mode>cc): ditto.
7966
7967 2010-07-30  Richard Guenther  <rguenther@suse.de>
7968
7969         PR middle-end/45141
7970         * expr.c (expand_expr_real_1): Check for not handled base address.
7971
7972 2010-07-30  Richard Guenther  <rguenther@suse.de>
7973
7974         * ipa-prop.c (ipa_modify_formal_parameters): Use
7975         build_distinct_type_copy.
7976
7977 2010-07-30  Anthony Green  <green@moxielogic.com>
7978
7979         * config/moxie/rtems.h: New file.
7980         * config.gcc: Add moxie-rtems support.
7981
7982 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7983
7984         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
7985         df flags as in run_fast_df_dce.
7986
7987 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
7988
7989         Revert:
7990         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7991
7992         * rtl.def (NOTE): Swap operands 4 and 5.
7993         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
7994         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
7995         Adjust accordingly.
7996         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
7997
7998 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
7999
8000         PR debug/45110
8001         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
8002         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
8003         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
8004         formal parameters.
8005         (gen_decl_die): Change return type to dw_die_ref, return what
8006         gen_formal_parameter_die returned.
8007
8008 2010-07-29  Martin Jambor  <mjambor@suse.cz>
8009
8010         * dbgcnt.def (eipa_sra): New counter.
8011         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
8012
8013 2010-07-29  Xinliang David Li  <davidxl@google.com>
8014
8015         PR bootstrap/45119
8016         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
8017         in revision 162652.
8018
8019 2010-07-29  Richard Guenther  <rguenther@suse.de>
8020
8021         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
8022         (TV_TREE_STORE_CCP): Likewise.
8023         (TV_TREE_REDPHI): Likewise.
8024
8025 2010-07-29  Richard Guenther  <rguenther@suse.de>
8026
8027         * double-int.h (double_int_and_not): New function.
8028         * combine.c (try_combine): Use it.
8029         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
8030
8031 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
8032
8033         PR rtl-optimization/42575
8034         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
8035         Argument AU removed.  All callers changed.  Ignore artificial refs.
8036         Use return value of df_word_lr_simulate_defs to decide whether an insn
8037         is necessary.
8038         (fast_dce): Rename arg to WORD_LEVEL.
8039         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
8040         static.
8041         (pass_fast_rtl_byte_dce): Delete.
8042         * dce.h (run_word_dce): Declare.
8043         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
8044         All callers changed.  Simplify code to only deal with two-word regs.
8045         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
8046         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
8047         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
8048         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
8049         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
8050         (df_word_lr_mark_ref): Declare.
8051         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
8052         df_word_lr_simulate_uses): Declare or rename from byte variants.
8053         (df_byte_lr_simulate_artificial_refs_at_top,
8054         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
8055         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
8056         declarations.
8057         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
8058         (enum df_mm): Delete.
8059         * df-byte-scan.c: Delete file.
8060         * df-problems.c (df_word_lr_problem_data): Renamed from
8061         df_byte_lr_problem_data, all members deleted except for
8062         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
8063         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
8064         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
8065         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
8066         df_byte_lr_confluence_0): Delete functions.
8067         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
8068         callers changed.
8069         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
8070         Don't initialize members that were deleted, don't try to discover data
8071         about registers.  Ignore hard regs.
8072         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
8073         (df_word_lr_mark_ref): New function.
8074         (df_word_lr_bb_local_compute): Renamed from
8075         df_byte_bb_lr_local_compute; all callers changed.  Use
8076         df_word_lr_mark_ref.  Assert that artificial refs don't include
8077         pseudos.  Ignore hard registers.
8078         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
8079         Assert that exit block uses don't contain pseudos.
8080         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
8081         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
8082         callers changed.  Ignore hard regs.
8083         (df_word_lr_transfer_function): Renamed from
8084         df_byte_lr_transfer_function; all callers changed.
8085         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
8086         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
8087         changed.
8088         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
8089         callers changed.
8090         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
8091         confluence operator 0 set to NULL.
8092         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
8093         callers changed.
8094         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
8095         Return bool, true if bitmap changed or insn otherwise necessary.
8096         All callers changed.  Simplify using df_word_lr_mark_ref.
8097         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
8098         all callers changed.  Simplify using df_word_lr_mark_ref.
8099         * lower-subreg.c: Include "dce.h"
8100         (decompose_multiword_subregs): Call run_word_dce if df available.
8101         * Makefile.in (lower-subreg.o): Adjust dependencies.
8102         (df-byte-scan.o): Delete.
8103         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
8104
8105 2010-07-29  Richard Guenther  <rguenther@suse.de>
8106
8107         * tree.c (build_vector): Assert that the vector constant
8108         has enough elements.
8109         (build_vector_from_ctor): Pad with trailing zeros.
8110
8111 2010-07-29  Richard Guenther  <rguenther@suse.de>
8112
8113         PR tree-optimization/45120
8114         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8115         Handle offset in DEREFs properly.
8116         (get_constraint_for_1): Handle MEM_REF offset properly.
8117
8118 2010-07-29  Richard Guenther  <rguenther@suse.de>
8119
8120         PR middle-end/45034
8121         * convert.c (convert_to_integer): Always use an unsigned
8122         type for narrowed negate and bitwise not.
8123
8124 2010-07-29  Ira Rosen  <irar@il.ibm.com>
8125
8126         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
8127         to outer loop when creating reduction epilogue for double reduction,
8128         and switch back to the inner loop when updating the phi nodes.
8129         Update uses of outer loop exit phi nodes in double reduction (instead
8130         of uses of reduction).
8131
8132 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
8133
8134         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
8135         popcount on power7 and parity on power6 systems.
8136         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
8137         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
8138         instructions.
8139
8140         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
8141         (UNSPEC_PARITY): Ditto.
8142         (SFDF): New iterator for SF/DF.
8143         (rreg2): New mode attribute for floating register constraint.
8144         (TARGET_FLOAT): New mode attribute for whether single/double float
8145         is supported.
8146         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
8147         pattern.
8148         (parity<mode>2_cmpb): New insn for parity on power6 and newer
8149         machines.
8150         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
8151         pattern.  Add support for fcpsgn instruction added in power6.
8152         (copysignsf3): Delete.
8153         (copysigndf3): Delete.
8154         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
8155         instead of if_then_else in RTL to avoid problems with -0.
8156
8157         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
8158         of if_then_else to mirror scalar code.
8159         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
8160         rs6000.md.
8161
8162         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
8163         instead of if_then_else.
8164
8165 2010-07-28  Xinliang David Li  <davidxl@google.com>
8166
8167         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
8168         (dump_cand): Dump var_before/after.
8169         (htab_inv_expr_eq): New function.
8170         (htab_inv_expr_hash): New function.
8171         (tree_ssa_iv_optimize_init): Support pseudo invariants.
8172         (add_candidate_1): consider base type precision.
8173         (set_use_iv_cost): New parameter.
8174         (adjust_setup_cost): Use profile information.
8175         (get_address_cost): Do not hard code width in computing address
8176         offset limits.
8177         (compare_aff_trees): New function.
8178         (get_loop_invariant_expr_id): New function.
8179         (get_computation_cost_at): New parameter and use profile information.
8180         (get_computation_cost): New parameter.
8181         (determine_use_iv_cost_generic): Pass new parameter.
8182         (determine_use_iv_cost_address): Ditto.
8183         (determine_use_iv_cost_condition): Ditto.
8184         (autoinc_possible_for_pair): Ditto.
8185         (determine_use_iv_costs): More dumps.
8186         (iv_ca_get_num_inv_exprs): New function.
8187         (iv_ca_recount_cost): Consider loop invariants in register pressure
8188         cost.
8189         (iv_ca_add_use): New parameter.
8190         (iv_ca_dump): Better dumping.
8191         (iv_ca_extend): New parameter.
8192         (try_add_cand_for): Attempt to get better partial solution.
8193         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
8194         (create_new-ivs): More dumps.
8195         (rewrite_use_compare): Ditto.
8196         (free_loop_data): More cleanup.
8197         (treee_ssa_iv_optimize_finalize): Ditto.
8198
8199 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
8200
8201         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
8202         * config/i386/i386.c (ix86_profile_before_prologue): New.
8203         (override_options): Add special handling for -mfentry.
8204         (ix86_function_regparm): Likewise.
8205         (ix86_function_sseregparm): Likewise.
8206         (ix86_frame_pointer_required): Likewise.
8207         (ix86_expand_prologue): Check for ms_hook_prologue.
8208         (x86_function_profiler): Adjust mcount output.
8209         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
8210         * config/i386/i386.opt (mfentry): New.
8211         * doc/invoke.texi (mfentry): Add documentation.
8212         * doc/tm.texi: Regenerated..
8213         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
8214         * final.c (final_start_function): Replace macro
8215         PROFILE_BEFORE_PROLOGUE by target hook.
8216         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8217         * target.def (profile_before_prologue): New hook.
8218         * targhooks.c (default_profile_before_prologue): New.
8219         * targhooks.h (default_profile_before_prologue): New.
8220
8221 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
8222
8223         PR debug/45105
8224         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
8225
8226         PR debug/45103
8227         * dwarf2out.c (dwarf2out_var_location): Always consider
8228         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
8229
8230 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
8231
8232         PR rtl-optimization/45107
8233         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
8234
8235 2010-07-28  Richard Guenther  <rguenther@suse.de>
8236
8237         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
8238         (set_lattice_value): Do not query an old default value.
8239         (get_value_for_expr): New function.  Properly canonicalize
8240         float values.
8241         (ccp_visit_phi_node): Use it.
8242
8243 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
8244
8245         * config/arm/arm.c (arm_pcs_default): Remove static.
8246         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
8247         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
8248         (arm_pcs_default): Declare.
8249
8250 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
8251
8252         * config/rs6000/rs6000.c (rs6000_override_options):
8253         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
8254         ... to darwin_rs6000_override_options.
8255         (rs6000_return_in_memory): Update preceding comment for darwin
8256         64 bit ABI.  Use TARGET_MACHO inline.
8257         (rs6000_darwin64_struct_check_p): New.
8258         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
8259         (function_arg): Likewise.
8260         (rs6000_arg_partial_bytes): Likewise.
8261         (rs6000_function_value): Likewise.
8262
8263 2010-07-28  Andi Kleen  <ak@linux.intel.com>
8264
8265         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
8266
8267 2010-07-28  Richard Guenther  <rguenther@suse.de>
8268
8269         PR middle-end/44903
8270         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
8271         targets try harder to not generate unaligned accesses.
8272
8273 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
8274
8275         PR rtl-optimization/45101
8276         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
8277         for gcse-las.
8278
8279 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
8280
8281         PR tree-optimization/44885
8282         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
8283         with non-aliased component.
8284
8285 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
8286
8287         * config/darwin-driver.c (SWITCH_TAKES_ARG,
8288         WORD_SWITCH_TAKES_ARG): Remove.
8289         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
8290         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
8291         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
8292         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
8293         definitions from gcc.c.
8294         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
8295         defaults.h.
8296         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
8297         Move to defaults.h.
8298         * opts-common.c: Include tm.h.
8299         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
8300         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
8301         Handle more than one argument.  Set canonical_option_num_elements.
8302         (decode_cmdline_options_to_array): Set
8303         canonical_option_num_elements and trailing elements of
8304         canonical_option.
8305         * opts.h (struct cl_decoded_option): Allow four elements in
8306         canonical_option.  Add field canonical_option_num_elements.
8307         * Makefile.in (opts-common.o): Update dependencies.
8308
8309 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
8310
8311         PR middle-end/44790
8312         PR middle-end/44993
8313         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
8314         sure the base has address_mode before adding the offset.
8315
8316 2010-07-27  Xinliang David Li  <davidxl@google.com>
8317
8318         * tree-flow.h (create_mem_ref): Add one new parameter.
8319         * tree-ssa-address.c (create_mem_ref): New parameter.
8320         (addr_to_parts): Ditto.
8321         (move_variant_to_index): New function.
8322         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
8323
8324 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
8325
8326         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
8327         4 and 5.
8328         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
8329         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
8330         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
8331         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
8332         CODE_LABELs and NOTEs.
8333         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
8334         * combine.c (try_combine): Likewise.
8335         * ira.c (setup_prohibited_mode_move_regs): Likewise.
8336         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
8337
8338 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
8339
8340         * coretypes.h (struct cl_option_handlers): Declare.
8341         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
8342         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
8343         * langhooks-def.h (lhd_handle_option): Declare.
8344         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
8345         * langhooks.c (lhd_handle_option): New.
8346         * langhooks.h (struct lang_hooks): Update prototype and return
8347         value type of handle_option hook.
8348         * optc-gen.awk: Generate target_flags_explicit definition for the
8349         driver.
8350         * opts-common.c: Include diagnostic.h.
8351         (handle_option): Move from opts.c.  Update prototype and return
8352         value type.  Use handlers structure.
8353         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
8354         handlers structure.
8355         (set_option): Move from opts.c.
8356         * opts.c (common_handle_option): Update prototype and return value
8357         type.  Update calls to handle_option and enable_warning_as_error.
8358         (unknown_option_callback, post_handling_callback,
8359         lang_handle_option, target_handle_option): New.
8360         (handle_option, read_cmdline_option): Move to opts-common.c.
8361         (read_cmdline_options): Update prototype.  Update call to
8362         read_cmdline_option.
8363         (decode_options): Initialize and use handlers structure.
8364         (set_option): Move to opts-common.c.
8365         (enable_warning_as_error): Update prototype.  Update call to
8366         handle_option.
8367         * opts.h (struct cl_option_handler_func, struct
8368         cl_option_handlers): New.
8369         (handle_option, enable_warning_as_error): Update prototypes.
8370         (read_cmdline_option): Declare.
8371         * Makefile.in (opts-common.o): Update dependencies.
8372
8373 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8374
8375         * config/arm/arm.c (params.h): Include.
8376         (arm_override_options): Tune gcse-unrestricted-cost.
8377         * config/arm/t-arm (arm.o): Define dependencies.
8378
8379 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8380
8381         PR target/42495
8382         PR middle-end/42574
8383         * basic-block.h (get_dominated_to_depth): Declare.
8384         * dominance.c (get_dominated_to_depth): New function, use
8385         get_all_dominated_blocks as a base.
8386         (get_all_dominated_blocks): Use get_dominated_to_depth.
8387
8388         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
8389         (hoist_exprs): Remove.
8390         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
8391         (compute_code_hoist_vbeinout): Add debug print outs.
8392         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
8393
8394         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
8395         quadratic behavior.
8396         * params.h (MAX_HOIST_DEPTH): New macro.
8397         * doc/invoke.texi (max-hoist-depth): Document.
8398
8399 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8400
8401         PR rtl-optimization/40956
8402         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
8403         constants.
8404
8405 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8406
8407         PR target/42495
8408         PR middle-end/42574
8409         * config/arm/arm.c (legitimize_pic_address): Use
8410         gen_calculate_pic_address pattern to emit calculation of PIC address.
8411         (will_be_in_index_register): New function.
8412         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
8413         (thumb1_legitimate_address_p): Use it provided !strict_p.
8414         * config/arm/arm.md (calculate_pic_address): New expand and split.
8415
8416 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8417
8418         PR target/42495
8419         PR middle-end/42574
8420         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
8421         * config/arm/arm.md (define_split "J", define_split "K"): Make
8422         IRA/reload friendly.
8423
8424 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8425
8426         * gcse.c (insert_insn_end_basic_block): Update signature, remove
8427         unused checks.
8428         (pre_edge_insert, hoist_code): Update.
8429
8430 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8431
8432         PR target/42495
8433         PR middle-end/42574
8434         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
8435
8436 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8437
8438         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
8439
8440 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8441
8442         PR rtl-optimization/40956
8443         PR target/42495
8444         PR middle-end/42574
8445         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
8446         for hoisting.
8447         (hoist_code): Count occurences in current block too.
8448
8449 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8450
8451         * gcse.c (struct expr:max_distance): New field.
8452         (doing_code_hoisting_p): New static variable.
8453         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
8454         simple expressions, don't change behavior for PRE.  Set max_distance.
8455         (insert_expr_in_table): Set new max_distance field.
8456         (hash_scan_set): Update.
8457         (hoist_expr_reaches_here_p): Stop search after max_distance
8458         instructions.
8459         (find_occr_in_bb): New static function.  Use it in ...
8460         (hoist_code): Calculate sizes of basic block before any changes are
8461         done.  Pass max_distance to hoist_expr_reaches_here_p.
8462         (one_code_hoisting_pass): Set doing_code_hoisting_p.
8463
8464         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
8465         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
8466         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
8467         macros.
8468         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
8469         Document.
8470
8471 2010-07-27  Jeff Law  <law@redhat.com>
8472             Maxim Kuvyrkov  <maxim@codesourcery.com>
8473
8474         * gcse.c (compute_transpout, transpout): Remove, move logic
8475         to prune_expressions.
8476         (compute_pre_data): Move pruning of trapping expressions ...
8477         (prune_expressions): ... here.  New static function.
8478         (compute_code_hoist_data): Use it.
8479         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
8480
8481 2010-07-27  Xinliang David Li  <davidxl@google.com>
8482
8483         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
8484         (rewrite_use_address): Adjust iv update position when needed.
8485
8486 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
8487
8488         * dbgcnt.def (hoist_insn): New debug counter.
8489         * gcse.c (hoist_code): Use it.
8490
8491 2010-07-27  Xinliang David Li  <davidxl@google.com>
8492
8493         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
8494         (niter_for_single_dom_exit): Passes additional parameter.
8495         (iv_period): Fix comments.
8496         (may_eliminate_iv): Handles multiple exit loops properly.
8497         (free_tree_niter_desc): New function.
8498         (free_loop_data): Frees up loop iteration descriptors.
8499
8500 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
8501
8502         PR target/44542
8503         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
8504         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
8505         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
8506         (expand_one_var): Don't consider DECL_ALIGN for variables for
8507         which expand_one_stack_var_at has been already called.
8508
8509         PR testsuite/44701
8510         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
8511         constraints on IA-64.
8512
8513 2010-07-27  Jie Zhang  <jie@codesourcery.com>
8514
8515         PR target/44290
8516         Revert:
8517         2010-07-23  Jie Zhang  <jie@codesourcery.com>
8518
8519         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
8520         false if ! tree_versionable_function_p.
8521
8522 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
8523
8524         * dwarf2out.c (add_data_member_location_attribute): Use
8525         add_AT_unsigned instead of add_AT_int if offset is non-negative.
8526
8527 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
8528
8529         * postreload.c (try_replace_in_use): New static function.
8530         (reload_combine_recognize_const_pattern): Use it here.  Allow
8531         substituting into a final add insn, and substituting into a memory
8532         reference in an insn that sets the reg.
8533
8534 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
8535
8536         * common.opt (o): Add MissingArgError.
8537         * doc/options.texi (MissingArgError): Document.
8538         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
8539         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
8540         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
8541         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
8542         * langhooks.h (struct lang_hooks): Remove missing_argument.
8543         * optc-gen.awk: Handle MissingArgError and output new structure
8544         field initializers.
8545         * opts.c (read_cmdline_option): Use missing_argument_error field
8546         instead of missing_argument langhook.
8547         * opts.h (struct cl_option): Add missing_argument_error field.
8548         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
8549
8550 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
8551
8552         PR target/29090
8553         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
8554         Darwin64 ABI, for zero-sized objects.
8555
8556 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
8557
8558         PR target/35491
8559         PR target/29090
8560
8561         Merge from Apple local 4.2.1.
8562         2005-05-11  Stan Shebs  <shebs@apple.com>
8563         Fix 64-bit varargs for Darwin (Radar 4028089).
8564         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
8565         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
8566         Add argument, add case for 8-byte register half-filled with a float.
8567         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
8568         single-precision floats specially.
8569
8570 2010-07-27  Ira Rosen  <irar@il.ibm.com>
8571
8572         PR tree-optimization/44152
8573         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
8574         complex numbers for further check.
8575         (vect_supported_load_permutation_p): Check nodes with
8576         complex numbers.
8577
8578 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
8579
8580         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
8581         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
8582         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
8583         (LANG_HOOKS_INITIALIZER): Add new hooks.
8584         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
8585         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
8586         and complain_wrong_lang_p.  Update init_options prototype.
8587         * c-objc-common.c (c_initialize_diagnostics): First call
8588         c_common_initialize_diagnostics.
8589         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
8590         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
8591         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
8592         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
8593         (hook_uint_void_0): New.
8594         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
8595         (hook_uint_void_0): New.
8596         * opts-common.c (decode_cmdline_option,
8597         decode_cmdline_options_to_array): Also fill in canonical_option field.
8598         * opts.c (complain_wrong_lang): Use langhook to determine whether
8599         to complain instead of special-casing LTO.
8600         (decode_options): Separate lang_mask determination with
8601         option_lang_mask hook from call of init_options hook.
8602         * opts.h (struct cl_decoded_option): Add canonical_option.
8603
8604 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
8605
8606         PR tree-optimization/45083
8607         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
8608
8609 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
8610
8611         * postreload.c (reload_combine_recognize_const_pattern): Move test
8612         for limiting the insn movement to the right scope.
8613
8614         PR rtl-optimization/45051
8615         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
8616         than reg_mentioned_p.
8617
8618 2010-07-26  Richard Henderson  <rth@redhat.com>
8619
8620         PR target/44132
8621         * tree-emutls.c: New file.
8622         * Makefile.in (OBJS-common): Add it.
8623         * tree-pass.h (pass_ipa_lower_emutls): Declare.
8624         * passes.c (init_optimization_passes): Add it.
8625
8626         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
8627         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
8628         * expr.c (emutls_var_address): Delete.
8629         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
8630         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
8631         (emutls_finish): Delete.
8632         * toplev.c (compile_file): Don't call it.
8633         * tree.h (emutls_decl): Delete.
8634         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
8635         (emutls_finish, emutls_finalize_control_var): Delete.
8636         (emutls_object_type): Move to tree-emutls.c.
8637         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
8638         default_emutls_var_fields, get_emutls_object_type,
8639         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
8640         default_emutls_var_init): Likewise.
8641         (get_variable_section): Don't special case emutls.
8642         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
8643         default_elf_select_section, default_unique_section,
8644         default_encode_section_info): Likewise.
8645         * varpool.c (decide_is_variable_needed): Likewise.
8646         * gimple-iterator.c (update_call_edge_frequencies): New
8647         (gsi_insert_on_edge_immediate): Use it.
8648         (gsi_insert_seq_on_edge_immediate): Likewise.
8649         (gsi_commit_one_edge_insert): Likewise.
8650
8651         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
8652         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
8653         (x86_64_elf_unique_section): Likewise.
8654
8655 2010-07-26  Jan Hubicka  <jh@suse.cz>
8656
8657         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
8658         GTY((skip)).
8659
8660 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
8661
8662         * target.def (output_source_filename): New hook.
8663         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
8664         * doc/tm.texi: Regenerate.
8665         * toplev.c (output_file_directive) Remove function.
8666         * toplev.h (output_file_directive) Remove.
8667         * output.h (default_asm_output_source_filename,
8668         output_file_directive): Declare.
8669         * varasm.h (default_asm_output_source_filename,
8670         output_file_directive): New functions.
8671
8672         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
8673         * config/mips/mips-protos.h (mips_output_filename): Remove.
8674         * config/mips/mips.c (mips_output_filename): Make Static.
8675         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
8676
8677 2010-07-26  Richard Guenther  <rguenther@suse.de>
8678
8679         PR tree-optimization/43784
8680         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
8681         if the destination is used by the call.
8682
8683 2010-07-26  Richard Guenther  <rguenther@suse.de>
8684
8685         PR middle-end/45073
8686         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
8687         SSA updating on being in SSA form.
8688
8689 2010-07-26  Richard Guenther  <rguenther@suse.de>
8690
8691         PR middle-end/45056
8692         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
8693
8694 2010-07-26  Richard Guenther  <rguenther@suse.de>
8695
8696         PR tree-optimization/45071
8697         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
8698         adjust op->opcode.
8699
8700 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
8701
8702         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
8703         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
8704         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
8705         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
8706         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
8707         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
8708         save_r31, return_r31, save_interrupt, return_interrupt,
8709         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
8710         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
8711         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
8712         new ABI requirements.
8713         (save_r6_r9, L_callt_save_r6_r9): Remove.
8714         * config/v850/predicates.md (even_reg_operand, disp23_operand,
8715         const_float_1_operand const_float_0_operand): New Predicates.
8716         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
8717         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
8718         * config/v850/t-v850: Update multilibs for new target variants.
8719         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
8720         * config/v850/t-v850e: Likewise.
8721         * config/v850/v850.c (v850_issue_rate): New.
8722         (v850_strict_argument_naming): New.
8723         (function_arg): Modify to generate a different ABI.
8724         (print_operand): Update case 'z' to support float modes.
8725         (output_move_single): Modify to generate appropriate and better
8726         assembly.
8727         (v850_float_z_comparison_operator, v850_select_cc_mode,
8728         v850_float_nz_comparison_operator,  v850_gen_float_compare,
8729         v850_gen_compare): New functions to support comparison of float values.
8730         (ep_memory_offset): Add support for V850E2 targets.
8731         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
8732         (INTERRUPT_REGPARM_NUM): Remove.
8733         (compute_register_save_size): Add extra case to save/restore long call.
8734         (use_prolog_function): New function to support prologue.
8735         (expand_prologue): Add support for V850E2 targets and modified
8736         as per the current ABI requirements.
8737         (expand_epilogue): Likewise.
8738         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
8739         (construct_save_jarl): Likewise.
8740         (construct_dispose_instruction): Update as per the current ABI
8741         requirements.
8742         (construct_prepare_instruction): Likewise.
8743         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
8744         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
8745         (CPP_SPEC): Updated to support v850e2 targets.
8746         (STRICT_ALIGNMENT): Modified.
8747         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
8748         (FIXED_REGISTERS): Likewise.
8749         (CALL_USED_REGISTERS): Likewise.
8750         (CONDITIONAL_REGISTER_USAGE): Updated.
8751         (HARD_REGNO_MODE_OK): Updated.
8752         (reg_class): Updated to add even registers.
8753         (REG_CLASS_NAMES): Likewise.
8754         (REG_CLASS_CONTENTS): Likewise.
8755         (REGNO_REG_CLASS): Updated for CC registers.
8756         (REG_CLASS_FROM_LETTER): Added support for even registers.
8757         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
8758         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
8759         ARG_POINTER_REGNUM): Updated.
8760         (FUNCTION_ARG_ADVANCE): Define.
8761         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
8762         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
8763         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
8764         (GO_IF_LEGITIMATE_ADDRESS): Updated.
8765         (SELECT_CC_MODE): Define.
8766         (REGISTER_NAMES): Updated to add psw and fcc registers.
8767         (ADDITIONAL_REGISTER_NAMES): Updated.
8768         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
8769         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
8770         * config/v850/v850.md (define_constants): Define new constants.
8771         (type): Update store,bit1,macc,div,fpu and single attributes.
8772         (cpu): New attribute.
8773         (cc): Add set_z attribute.
8774         (unsign23byte_load, sign23byte_load, unsign23hword_load,
8775         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
8776         23word_store): New instructions for 23-bit displacement load and store.
8777         (movqi_internal, movhi_internal): Update the attributes.
8778         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
8779         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
8780         the attributes.
8781         (v850_tst1): Modified using CC_REGNUM.
8782         (tstsi): Remove.
8783         (cmpsi): Modified as define_expand from define_insn.
8784         (cmpsi_insn, cmpsf, cmpdf): New instructions.
8785         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
8786         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
8787         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
8788         one_cmplsi2): Clobber the CC_REGNUM register.
8789         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
8790         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
8791         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
8792         (setf_insn, set_z_insn, set_nz_insn): New instructions for
8793         v850e2v3 target.
8794         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
8795         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
8796         targets.
8797         (sasf_1, sasf_2): Remove.
8798         (sasf): New instruction.
8799         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
8800         targets. CC_REGNUM register is clobbered and attributes are
8801         updated.
8802         (branch_z_normal, branch_z_invert, branch_nz_normal,
8803         branch_nz_invert): New branch related instructions.
8804         (jump): Updated the attributes.
8805         (switch): Update to support new targets. CC_REGNUM register is
8806         clobbered and attributes are updated.
8807         (call_internal_short, call_internal_long, call_value_internal_short,
8808         call_value_internal_long): Updated the attributes.
8809         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
8810         clobbered and attributes are updated.
8811         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
8812         Update to support new targets. CC_REGNUM register is clobbered.
8813         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
8814         instructions.
8815         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
8816         are updated.
8817         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
8818         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
8819         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
8820         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
8821         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
8822         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
8823         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
8824         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
8825         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
8826         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
8827         point instructions defined for V850e2v3 target.
8828         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
8829         Add support for V850E2 targets and CC_REGNUM register is clobbered.
8830         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
8831         support for new targets.
8832         * config/v850/v850-modes.def: New file.
8833         * config/v850/v850.opt(mstrict-align): Remove.
8834         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
8835         mv850e2v3): New command line options for V850.
8836         * config.gcc: Update the newly added files.
8837         * doc/invoke.texi: Update the newly added command line options for
8838         V850 target.
8839
8840 2010-07-26  Richard Guenther  <rguenther@suse.de>
8841
8842         PR tree-optimization/45052
8843         * ipa-pure-const.c (check_stmt): Check volatileness.
8844
8845 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8846
8847         PR target/44707
8848         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
8849         * config/sparc/sparc.c: Include reload.h.
8850         (legitimize_tls_address): Rename into...
8851         (sparc_legitimize_tls_address): ...this.
8852         (legitimize_pic_address): Rename into...
8853         (sparc_legitimize_pic_address): ...this.
8854         (sparc_expand_move): Adjust to above renaming.
8855         (sparc_tls_referenced_p): Likewise.
8856         (sparc_legitimize_tls_address): Likewise.
8857         (sparc_legitimize_pic_address): Likewise.
8858         (sparc_legitimize_address): Likewise.
8859         (sparc_output_mi_thunk): Likewise.
8860         (sparc_legitimize_reload_address): New global function.  Recognize
8861         (lo_sum (high ...) ...) patterns generated by earlier passes.
8862         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
8863
8864 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8865
8866         PR target/44484
8867         * config/sparc/predicates.md (memory_reg_operand): Delete.
8868         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
8869         (*sync_compare_and_swap): Encode the address form in the pattern.
8870         (*sync_compare_and_swapdi_v8plus): Likewise.
8871
8872 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
8873
8874         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
8875         Streamline paragraph on compatibility with the system compiler.
8876
8877 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
8878
8879         PR middle-end/45035
8880         * alias.c (true_dependence_1): Fix thinko in merge of old
8881         true_dependence and canon_true_dependence.
8882
8883 2010-07-23  Jan Hubicka  <jh@suse.cz>
8884
8885         * lto-streamer-out.c (write_symbol): Fix visibilities of external
8886         references.
8887
8888 2010-07-23  Le-Chun Wu  <lcwu@google.com>
8889
8890         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
8891         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
8892         and an unnecessary assignment.
8893         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
8894         self-assign warning.
8895         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
8896         unnecessary self-init.
8897
8898 2010-07-23  Richard Guenther  <rguenther@suse.de>
8899
8900         PR lto/43071
8901         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
8902         for -flto and -fwhopr.
8903
8904 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
8905
8906         PR target/41943
8907         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
8908         (stmp-int-hdrs): Prefix/postfix headers by include_next.
8909         * config.gcc (user_headers_inc_next_pre): New.
8910         (user_headers_inc_next_post): Likewise.
8911         (*-w64-mingw*): Use for float.h post-fixing, and for
8912         stddef.h/stdarg.h pre-fixing by include_next.
8913         * configure.ac (user_headers_inc_next_post): New.
8914         (user_headers_inc_next_pre): New.
8915         * configure: Regenerated.
8916
8917 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8918
8919         * configure.ac: Don't disable TLS on Solaris 8/9 by default
8920         Set tga_func for Solaris 2/x86 resp. SPARC.
8921         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
8922         (LIB_THREAD_LDFLAGS_SPEC): Define.
8923         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
8924         * configure: Regenerate.
8925         * config.in: Regenerate.
8926         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
8927         -pthread, -threads, LIB_TLS_SPEC with -pthread.
8928         * doc/install.texi (Specific, *-*-solaris2*): Document use of
8929         alternate thread libraries on Solaris 8.
8930         Document TLS patch requirements.
8931         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
8932         Document tls.
8933
8934         PR target/18788
8935         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
8936         -shared.
8937
8938 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
8939
8940         * tree.h (struct tree_base): Add nameless_flag bitfield.
8941         (TYPE_NAMELESS, DECL_NAMELESS): Define.
8942         * omp-low.c (create_omp_child_function, scan_omp_parallel,
8943         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
8944         DECL_ARTIFICIAL where needed.
8945         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
8946         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
8947         has DECL_NAMELESS set.
8948
8949 2010-07-23  Martin Jambor  <mjambor@suse.cz>
8950
8951         PR tree-optimization/44915
8952         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
8953         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
8954         (analyze_function): Likewise.
8955
8956 2010-07-23  Martin Jambor  <mjambor@suse.cz>
8957
8958         PR tree-optimization/44914
8959         * tree-sra.c (sra_modify_function_body): Return true if CFG was
8960         changed, add purging dead eh edges.
8961         (ipa_sra_modify_function_body): Return true if CFG was changed,
8962         simplify purging dead eh edges.
8963         (modify_function): Return true if CFG was changed.
8964         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
8965         was changed.
8966         (ipa_early_sra): Likewise.
8967
8968 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8969
8970         PR target/44290
8971         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
8972         if "naked".
8973         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
8974         false if ! tree_versionable_function_p.
8975
8976 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
8977
8978         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
8979         * ipa-pure-const.c (special_builtlin_state): Remove
8980         BUILT_IN_ARGS_INFO case.
8981         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8982         * builtins.c (expand_builtin): Likewise.
8983         (expand_builtin_args_info): Remove.
8984         * doc/tm.texi (__builtin_args_info): Remove.
8985         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
8986         * doc/tm.text.in: Likewise.
8987
8988 2010-07-23  Richard Guenther  <rguenther@suse.de>
8989
8990         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
8991         (lto_symtab_merge_decls_2): Likewise.
8992         * tree-ssa.c (useless_type_conversion_p): Likewise.
8993         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8994         * gimple.c (gtc_visited2, gtc_ob2): Remove.
8995         (struct type_pair_d): Make same_p an array indexed by mode.
8996         Update comment.
8997         (lookup_type_pair): Update initialization.
8998         (struct sccs): Adjust same_p type.
8999         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
9000         Adjust.
9001         (print_gimple_types_stats): Likewise.
9002         * gimple.h (enum gtc_mode): New.
9003         (gimple_types_compatible_p): Adjust prototype.
9004
9005 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
9006
9007         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
9008         again after processing insn.
9009
9010 2010-07-23  Jie Zhang  <jie@codesourcery.com>
9011
9012         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
9013         proper words when !tree_versionable_function_p.
9014
9015 2010-07-23  Richard Guenther  <rguenther@suse.de>
9016
9017         PR tree-optimization/45037
9018         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
9019
9020 2010-07-23  Jie Zhang  <jie@codesourcery.com>
9021
9022         * doc/extend.texi: Remove IP2K from the description of naked attribute.
9023         Add MCORE instead.
9024
9025 2010-07-10  Andi Kleen  <ak@linux.intel.com>
9026
9027         PR lto/44992
9028         * lto-opts.c (lto_write_options): Add NULL file_data argument to
9029         lto_get_section_name.
9030         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
9031         * lto-streamer-out.c (produce_asm): Likewise.
9032         (copy_function): Likewise.
9033         (produce_symtab): Likewise.
9034         (produce_asm_for_decls): Likewise.
9035         * lto-streamer.c (lto_get_section_name): Add file_data argument.
9036         Rewrite to add random postfix to LTO sections.
9037         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
9038         (lto_get_section_name): Add file_data argument to prototype.
9039
9040 2010-07-10  Andi Kleen  <ak@linux.intel.com>
9041
9042         * lto-section-in.c (lto_section_name): Synchronize names
9043         with lto_get_section_name.
9044
9045 2010-07-10  Andi Kleen  <ak@linux.intel.com>
9046
9047         * lto-opts.c (lto_read_file_options): Check for missing section.
9048
9049 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
9050
9051         * ira.c (check_allocation): Correctly handle the case where an allocno
9052         with two objects was allocated to a single reg.
9053
9054 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
9055
9056         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
9057         (is_widening_mult_p): Likewise.
9058         (convert_to_widen): Use them.
9059         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
9060         well as integer ones.
9061
9062 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
9063
9064         * alias.c (true_dependence_1): New function, merged version of
9065         true_dependence and canon_true_dependence.
9066         (true_dependence): Simplify.
9067         (canon_true_dependence): Simplify.
9068
9069 2010-07-22  Richard Henderson  <rth@redhat.com>
9070
9071         PR target/45027
9072         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
9073         of V4SFmode for the SSE saves; increase stack alignment if needed.
9074         (ix86_gimplify_va_arg): Don't increase stack alignment here.
9075
9076 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
9077
9078         PR bootstrap/45028
9079         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
9080         call cprop_find_used_regs again via note_uses.
9081
9082 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
9083
9084         * alias.c (get_alias_set): Fix formatting issues.
9085
9086 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
9087
9088         PR middle-end/44878
9089         * stmt.c (expand_value_return):  Call promote_function_mode with
9090         a for_return argument of 2 when returning by reference.
9091
9092 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
9093
9094         PR debug/45024
9095         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
9096         unit DIE if we can find the scope DIE.
9097
9098 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
9099
9100         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
9101         changed.  Initialize OBJECT_SUBWORD.
9102         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
9103         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
9104         all callers changed.
9105         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
9106         (finish_allocno): Likewise.
9107         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
9108         (remove_low_level_allocnos): Likewise.
9109         (update_bad_spill_attribute): Likewise.
9110         (setup_min_max_allocno_live_range_point): Likewise.
9111         (sort_conflict_id_map): Likewise.
9112         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
9113         (ior_hard_reg_conflicts): New function.
9114         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
9115         (compress_conflict_vecs): Iterate over objects, not allocnos.
9116         (ira_add_live_range_to_object): New function.
9117         (object_range_compare_func): Renamed from allocno_range_compare_func.
9118         All callers changed.
9119         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
9120         subobjects, widen the min/max range of the lowest-order object to
9121         potentially include all other such low-order objects.
9122         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
9123         (check_allocation): Likewise.  Use more fine-grained tests for register
9124         conflicts.
9125         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
9126         allocno subobjects.
9127         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
9128         choices about which bits to set in each set.  Don't use
9129         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
9130         using the multiple sets we computed.
9131         (push_allocno_to_stack): Iterate over allocno subobjects.
9132         (all_conflicting_hard_regs_coalesced): New static function.
9133         (setup_allocno_available_regs_num): Use it.
9134         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
9135         subobjects.
9136         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
9137         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
9138         by ALLOCNO_NUM_OBJECTS.
9139         (calculate_spill_cost): Likewise.
9140         (color_pass): Express if statement in a more normal way.
9141         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
9142         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
9143         (setup_slot_coalesced_allocno_live_ranges): Likewise.
9144         (allocno_reload_assign): Likewise.
9145         (ira_reassign_pseudos): Likewise.
9146         (fast_allocation): Likewise.
9147         * ira-conflicts.c (build_conflict_bit_table): Likewise.
9148         (print_allocno_conflicts): Likewise.
9149         (ira_build_conflicts): Likewise.
9150         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
9151         callers changed.  Test subword 0 of each allocno for conflicts.
9152         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
9153         callers changed.  Iterate over allocno subobjects.
9154         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
9155         * ira-int.h (struct ira_allocno): New member: num_objects.
9156         Rename object to objects and change it into an array.
9157         (ALLOCNO_OBJECT): Add new argument N.
9158         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
9159         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
9160         (ior_hard_reg_conflicts): Declare.
9161         (ira_add_live_range_to_object): Declare.
9162         (ira_allocno_object_iterator): New.
9163         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
9164         (FOR_EACH_ALLOCNO_OBJECT): New macro.
9165         * ira-lives.c (objects_live): Renamed from allocnos_live; all
9166         uses changed.
9167         (allocnos_processed): New sparseset.
9168         (make_object_born): Renamed from make_allocno_born; take an
9169         ira_object_t argument.  All callers changed.
9170         (make_object_dead): Renamed from make_allocno_dead; take an
9171         ira_object_t argument.  All callers changed.
9172         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
9173         All callers changed.
9174         (mark_pseudo_regno_live): Iterate over allocno subobjects.
9175         (mark_pseudo_regno_dead): Likewise.
9176         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
9177         functions.
9178         (mark_ref_live): Detect subword accesses and call
9179         mark_pseudo_regno_subword_live as appropriate.
9180         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
9181         (process_bb_nodes_live): Deal with object-related updates first; set
9182         and test bits in allocnos_processed to avoid computing allocno
9183         statistics more than once.
9184         (create_start_finish_chains): Iterate over objects, not allocnos.
9185         (print_object_live_ranges): New function.
9186         (print_allocno_live_ranges): Use it.
9187         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
9188         and objects_live.
9189
9190 2010-07-22  Richard Guenther  <rguenther@suse.de>
9191
9192         PR lto/42451
9193         * gimple.c (gtc_next_dfs_num): New global.
9194         (struct sccs): Make value a union, add integer same_p member.
9195         (gtc_visit): New function.
9196         (gimple_types_compatible_p_1): New function, split out from ...
9197         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
9198         (iterative_hash_gimple_type): Adjust for sccs change.
9199
9200 2010-07-22  Martin Jambor  <mjambor@suse.cz>
9201
9202         PR tree-optimization/44891
9203         * tree-sra.c: Include gimple-pretty-print.h.
9204         (replace_uses_with_default_def_ssa_name): Renamed to
9205         get_repl_default_def_ssa_name, return the new SSA name instead of
9206         replacing the old one.
9207         (sra_modify_assign): Dump a message when removing a load, if the LHS
9208         is an SSA_NAME, do not do any propagation, just set the RHS to a
9209         default definition SSA NAME, type convert if necessary.
9210         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
9211
9212 2010-07-22  Richard Guenther  <rguenther@suse.de>
9213
9214         PR tree-optimization/45017
9215         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
9216         TYPE_PRECISION of integral types in addition to size.
9217
9218 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9219
9220         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
9221         when no C library is specified.
9222
9223 2010-07-22  Martin Jambor  <mjambor@suse.cz>
9224
9225         * ipa-prop.h (struct ipa_node_params): Updated comment.
9226         (struct ipa_edge_args): Likewise.
9227         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
9228
9229 2010-07-22  Martin Jambor  <mjambor@suse.cz>
9230
9231         * cgraphunit.c (verify_edge_count_and_frequency): New function.
9232         (verify_cgraph_node): Verify frequencies of indirect edges.
9233         * tree-inline.c (tree_function_versioning): Update frequencies of
9234         indirect edges.
9235
9236 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9237
9238         PR target/43698
9239         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
9240         Set *arm_rev to be predicable.
9241
9242 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
9243
9244         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
9245         (LINK_COMMAND_SPEC_A): New.
9246         (DSYMUTIL): New.
9247         (DSYMUTIL_SPEC): New.
9248         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
9249         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
9250
9251 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
9252
9253         * calls.c (load_register_parameters): Move check for zero
9254         sized items so that only the call to
9255         mem_overlaps_already_clobbered_arg_p () is protected.
9256
9257 2010-07-22  Jan Hubicka  <jh@suse.cz>
9258
9259         * ipa-pure-const.c (varying_state): Break out from ...
9260         (get_function_state): ... here; always return varying_state
9261         when state would be NULL otherwise.
9262         (remove_node_data): Do not free varying state.
9263
9264 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
9265
9266         PR bootstrap/44970
9267         PR middle-end/45009
9268         * postreload.c: Include "target.h".
9269         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
9270         into account.
9271         (fixup_debug_insns): Don't copy the rtx.
9272         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
9273         Don't copy when replacing.  Call fixup_debug_insns in the case where
9274         we merged one add with another.
9275         (reload_combine_recognize_pattern): Fail if there aren't any uses.
9276         Try harder to determine whether we're picking a valid index register.
9277         Don't set store_ruid for an insn we're going to scan in the
9278         next iteration.
9279         (reload_combine): Remove unused code.
9280         (reload_combine_note_use): When updating use information for
9281         an old insn, ignore a use that occurs after store_ruid.
9282         * Makefile.in (postreload.o): Update dependencies.
9283
9284         * function.c (record_hard_reg_sets): Restrict the previous change
9285         to cases where the incoming nominal mode is the same as the
9286         incoming promoted mode and everything happens in MODE_INT.
9287
9288 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
9289
9290         PR debug/45015
9291         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
9292         ASM_OPERANDS_OUTPUT_IDX.
9293         (adjust_insn): For inline asm with multiple sets ensure first
9294         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
9295         the insn.
9296
9297 2010-07-21  Richard Henderson  <rth@redhat.com>
9298
9299         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
9300         comparison for avoiding xmm register saves.  Emit the xmm register
9301         saves explicitly.
9302         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
9303         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
9304         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
9305         Remove patterns and the associated splitters.
9306
9307 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
9308
9309         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
9310         and imagine parts of a complex, so that they can have the same
9311         base and fall into the same group.
9312
9313 2010-07-21  Richard Guenther  <rguenther@suse.de>
9314
9315         PR lto/45018
9316         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
9317         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
9318         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
9319
9320 2010-07-21  Martin Jambor  <mjambor@suse.cz>
9321
9322         PR tree-optimization/44900
9323         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
9324         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
9325
9326 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
9327
9328         PR middle-end/44738
9329         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
9330
9331 2010-07-21  Richard Guenther  <rguenther@suse.de>
9332
9333         PR middle-end/45013
9334         * tree-ssa.c (useless_type_conversion_p): Dispatch to
9335         gimple_types_compatible_p only when in lto.
9336         * gimple.c (gimple_types_compatible_p): Use canonical types
9337         to speed up comparison.
9338
9339 2010-07-21  Richard Guenther  <rguenther@suse.de>
9340
9341         * tree-flow.h (referenced_var): Move define ...
9342         * tree-flow-inline.h (referenced_var): ... here as an inline
9343         function.  Assert here ...
9344         * tree-dfa.c (referenced_var_lookup): ... instead of here.
9345         * tree-ssa.c (maybe_optimize_var): Check if the variable
9346         is in referenced vars.
9347         (execute_update_addresses_taken): Remove old broken check.
9348         * gimple-pretty-print.c (pp_points_to_solution): Use
9349         referenced_var_lookup.
9350         * tree-into-ssa.c (dump_decl_set): Likewise.
9351
9352 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
9353
9354         PR debug/45003
9355         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
9356         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
9357         ZERO_EXTEND here.
9358
9359 2010-07-20  Richard Henderson  <rth@redhat.com>
9360
9361         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
9362
9363 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
9364
9365         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
9366         computing the sum of the stack pointer and a large constant.
9367         * config/arm/constraints.md (M): Remove superfluous parentheses.
9368         (Pc): New constraint.
9369
9370 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
9371
9372         PR debug/45006
9373         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
9374         operand's type if exp is tcc_unary class tree.
9375
9376 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
9377
9378         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
9379         Reverse sense of if_then_else condition.
9380
9381 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
9382
9383         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
9384         * config/rs6000/rs6000.c (rs6000_override_options): Set
9385         rs6000_block_move_inline_limit appropriately.
9386         (expand_block_move): Use rs6000_block_move_inline_limit.
9387         * doc/invoke.texi (mblock-move-inline-limit): Document.
9388
9389 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
9390
9391         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
9392         FROM and TO.  All callers changed.  Don't look for tracked uses,
9393         just scan the RTL for DEBUG_INSNs and substitute.
9394         (reload_combine_recognize_pattern): Call fixup_debug_insns.
9395         (reload_combine): Ignore DEBUG_INSNs.
9396
9397 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
9398
9399         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
9400         depth to 8 from 5.
9401
9402         PR debug/45003
9403         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
9404         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
9405         instead of the result's type.
9406
9407 2010-07-20  Richard Guenther  <rguenther@suse.de>
9408
9409         PR tree-optimization/44977
9410         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
9411         SSA form.
9412
9413 2010-07-20  Richard Guenther  <rguenther@suse.de>
9414
9415         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
9416         (lto_symtab_merge_decls_2): Likewise.
9417         * gimple.h (gimple_types_compatible_p): Declare.
9418         * gimple.c (gimple_queue_type_fixup): Remove.
9419         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
9420         (gimple_compatible_complete_and_incomplete_type_p): New function.
9421         (gimple_types_compatible_p): Adjust.
9422         (gimple_register_type): Remove type fixup code.
9423         (print_gimple_types_stats): Adjust.
9424         (free_gimple_type_tables): Likewise.
9425         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
9426         * tree-ssa.c (useless_type_conversion_p): Likewise.
9427
9428 2010-07-20  Richard Guenther  <rguenther@suse.de>
9429
9430         PR middle-end/44971
9431         PR middle-end/44988
9432         * tree-ssa.c (maybe_optimize_var): New function split out from ...
9433         (execute_update_addresses_taken): ... here.
9434         (non_rewritable_mem_ref_base): Likewise.
9435         (execute_update_addresses_taken): Do not iterate over all referenced
9436         vars but just all local decls and parms.
9437         Properly check call and asm arguments and rewrite call arguments.
9438
9439 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
9440
9441         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
9442         to top level.
9443         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
9444         definitions ...
9445         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
9446         New macro.
9447         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
9448
9449 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
9450
9451         * gengtype.c (start_root_entry): New function, split out from
9452         write_root.  Check whether V is null and raise an error if so.
9453         (write_field_root): Check for V being null.  Don't raise an error here;
9454         set V to null instead.
9455         (write_root): Update comment above function.  Use start_root_entry.
9456
9457 2010-07-19  Xinliang David Li  <davidxl@google.com>
9458
9459         PR testsuite/44932
9460         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
9461         def edges.
9462         (find_uninit_use): Add dump.
9463         (is_use_properly_guarded): Ditto.
9464         (warn_uninitialized_phi): Ditto.
9465         (execute_late_warn_uninitialized): Ditto.
9466
9467 2010-07-19  Richard Guenther  <rguenther@suse.de>
9468
9469         PR middle-end/44941
9470         * expr.c (emit_block_move_hints): Move zero size check first.
9471         Move asserts to more useful places.
9472         * calls.c (load_register_parameters): Check for zero size.
9473
9474 2010-07-19  Richard Henderson  <rth@redhat.com>
9475
9476         * tree-optimize.c (execute_all_early_local_passes): New.  Change
9477         cgraph_state here ...
9478         (execute_early_local_optimizations): ... not here.  Remove.
9479         (pass_early_local_passes, pass_all_early_optimizations): Update.
9480
9481 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
9482
9483         * postreload.c (reload_combine_closest_single_use): Ignore the
9484         number of uses for DEBUG_INSNs.
9485         (fixup_debug_insns): New static function.
9486         (reload_combine_recognize_const_pattern): Use it.  Don't let the
9487         main loop be affected by DEBUG_INSNs.
9488         Really disallow moving adds past a jump insn.
9489         (reload_combine_recognize_pattern): Don't update use_ruid here.
9490         (reload_combine_note_use): Do it here.
9491         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
9492
9493 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
9494
9495         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
9496         of a loop.
9497         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
9498
9499 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
9500
9501         * config/i386/darwin.h: Define darwin_emit_branch_islands.
9502         (TARGET_MACHO_BRANCH_ISLANDS): New.
9503         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
9504         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
9505         default value.
9506         * config/i386/i386.c (output_pic_addr_const): Do not emit
9507         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
9508         (x86_output_mi_thunk): Adjust symbol creation.
9509         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
9510         Remove out of date comment.
9511         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
9512         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
9513         (DARWIN_GENERATE_ISLANDS): Ditto.
9514         (output_call):  Do not emit branch islands unless
9515         darwin_emit_branch_islands is set.
9516         * config/darwin.c: Declare darwin_emit_branch_islands.
9517         (machopic_indirect_data_reference): Do not emit unless
9518         darwin_emit_branch_islands is set.
9519         (darwin_override_options): Set darwin_emit_branch_islands
9520         where it is needed.
9521         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
9522
9523 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9524
9525         * doc/sourcebuild.texi (Effective-Target Keywords): Document
9526         sse_runtime, sse2_runtime.
9527
9528 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
9529
9530         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
9531         low half of a single-register SCmode return value before ORing
9532         it with the high half.
9533         * config/mips/mips16.S (MERGE_GPRf): Likewise.
9534
9535 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9536
9537         PR target/44805
9538         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
9539         on all targets.
9540
9541 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
9542
9543         PR target/42235
9544         * postreload.c (reload_cse_move2add): Return bool, true if anything.
9545         changed.  All callers changed.
9546         (move2add_use_add2_insn): Likewise.
9547         (move2add_use_add3_insn): Likewise.
9548         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
9549         reload_combine.
9550         (RELOAD_COMBINE_MAX_USES): Bump to 16.
9551         (last_jump_ruid): New static variable.
9552         (struct reg_use): New members CONTAINING_MEM and RUID.
9553         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
9554         (reload_combine_split_one_ruid, reload_combine_split_ruids,
9555         reload_combine_purge_insn_uses, reload_combine_closest_single_use
9556         reload_combine_purge_reg_uses_after_ruid,
9557         reload_combine_recognize_const_pattern): New static functions.
9558         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
9559         is true for our reg and that we have available index regs.
9560         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
9561         callers changed.  Use them to initialize fields in struct reg_use.
9562         (reload_combine): Initialize last_jump_ruid.  Be careful when to
9563         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
9564         Call reload_combine_recognize_const_pattern.
9565         (reload_combine_note_store): Update REAL_STORE_RUID field.
9566
9567 2010-07-16  Jason Merrill  <jason@redhat.com>
9568
9569         * Makefile.in (opts-common.o): Depend on options.h.
9570
9571 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
9572
9573         * tree.c (build_common_builtin_nodes): Use build_function_type_list
9574         instead of build_function_type.
9575         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
9576         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9577
9578 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
9579
9580         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
9581         do all the work.
9582         (rs6000_emit_int_cmove): Use function pointers for insn generation.
9583         Don't force values into registers unnecessarily.
9584         (output_isel): Assert that we're not given conditions we can't handle.
9585         Delete corresponding code.
9586         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
9587         scc_comparison_operator constraint.  Permit 0 for the consequent
9588         operand.  Permit any GPR for the alternative operand.
9589         (isel_unsigned_<mode>): Likewise.
9590
9591 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
9592
9593         PR target/44942
9594         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
9595         argument to const_tree.
9596         * config/i386/i386.c (function_arg_advance): If padding needs to be
9597         inserted before argument, increment cum->words by number of padding
9598         words as well.
9599         (contains_aligned_value_p): Change argument to const_tree.
9600         (ix86_function_arg_boundary): Change second argument to const_tree.
9601
9602 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
9603
9604         PR target/42235
9605         * function.c (record_hard_reg_sets): New static function.
9606         (assign_parm_setup_reg): If an optab for extending exists and the
9607         generated code clobbbers no hard regs, emit the insn directly and
9608         create a REG_EQUIV note.
9609
9610 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
9611
9612         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
9613         TREE_CHAIN.
9614         * c-typeck.c (push_init_level): Likewise.
9615         (process_init_element): Likewise.
9616
9617 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
9618
9619         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
9620         (integer_three_node): Add.
9621         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
9622         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
9623         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
9624         of call build_int_cst.
9625         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
9626         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
9627         (find_interesting_uses_address): Ditto.
9628         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
9629         * tree-eh.c (lower_eh_constructs_2): Ditto.
9630         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
9631         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
9632         * expmed.c (expand_divmod): Ditto.
9633         * tree-mudflap.c (mx_register_decls): Ditto.
9634         * varasm.c (array_size_for_constructor): Ditto.
9635         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
9636         * c-parser.c (c_parser_postfix_expression): Ditto.
9637
9638 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
9639
9640         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
9641         New static variables.
9642         (reload_combine_recognize_pattern): New static function, broken out
9643         of reload_combine.
9644         (reload_combine): Use it.  Only initialize first_index_reg and
9645         last_index_reg once.
9646
9647 2010-07-15  Richard Henderson  <rth@redhat.com>
9648
9649         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
9650         when done.
9651
9652 2010-07-15  Jan Hubicka  <jh@suse.cz>
9653
9654         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
9655         comdats for broken gold.
9656         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
9657
9658 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
9659
9660         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
9661
9662 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
9663
9664         * tree.h (DECL_CHAIN): Define.
9665         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
9666         * c-decl.c: Likewise.
9667         * c-parser.c: Likewise.
9668         * c-typeck.c: Likewise.
9669         * cfgexpand.c: Likewise.
9670         * cgraph.c: Likewise.
9671         * cgraphunit.c: Likewise.
9672         * combine.c: Likewise.
9673         * config/alpha/alpha.c: Likewise.
9674         * config/arm/arm.c: Likewise.
9675         * config/frv/frv.c: Likewise.
9676         * config/i386/i386.c: Likewise.
9677         * config/i386/winnt-cxx.c: Likewise.
9678         * config/ia64/ia64.c: Likewise.
9679         * config/iq2000/iq2000.c: Likewise.
9680         * config/mep/mep.c: Likewise.
9681         * config/mips/mips.c: Likewise.
9682         * config/pa/som.h: Likewise.
9683         * config/rs6000/rs6000.c: Likewise.
9684         * config/s390/s390.c: Likewise.
9685         * config/sh/sh.c: Likewise.
9686         * config/sh/symbian-cxx.c: Likewise.
9687         * config/sparc/sparc.c: Likewise.
9688         * config/spu/spu.c: Likewise.
9689         * config/stormy16/stormy16.c: Likewise.
9690         * config/vxworks.c: Likewise.
9691         * config/xtensa/xtensa.c: Likewise.
9692         * coverage.c: Likewise.
9693         * dbxout.c: Likewise.
9694         * dwarf2out.c: Likewise.
9695         * emit-rtl.c: Likewise.
9696         * expr.c: Likewise.
9697         * function.c: Likewise.
9698         * gimple-low.c: Likewise.
9699         * gimple-pretty-print.c: Likewise.
9700         * gimplify.c: Likewise.
9701         * integrate.c: Likewise.
9702         * ipa-inline.c: Likewise.
9703         * ipa-prop.c: Likewise.
9704         * ipa-split.c: Likewise.
9705         * ipa-struct-reorg.c: Likewise.
9706         * ipa-type-escape.c: Likewise.
9707         * langhooks.c: Likewise.
9708         * lto-cgraph.c: Likewise.
9709         * omp-low.c: Likewise.
9710         * stor-layout.c: Likewise.
9711         * tree-cfg.c: Likewise.
9712         * tree-complex.c: Likewise.
9713         * tree-dfa.c: Likewise.
9714         * tree-dump.c: Likewise.
9715         * tree-inline.c: Likewise.
9716         * tree-mudflap.c: Likewise.
9717         * tree-nested.c: Likewise.
9718         * tree-object-size.c: Likewise.
9719         * tree-pretty-print.c: Likewise.
9720         * tree-sra.c: Likewise.
9721         * tree-ssa-live.c: Likewise.
9722         * tree-ssa-loop-niter.c: Likewise.
9723         * tree-ssa-math-opts.c: Likewise.
9724         * tree-ssa-reassoc.c: Likewise.
9725         * tree-ssa-sccvn.c: Likewise.
9726         * tree-ssa-structalias.c: Likewise.
9727         * tree-tailcall.c: Likewise.
9728         * tree-vrp.c: Likewise.
9729         * tree.c: Likewise.
9730         * var-tracking.c: Likewise.
9731         * varasm.c: Likewise.
9732
9733 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9734
9735         PR target/44877
9736         * config/spu/spu.c (spu_expand_builtin_1): Allow references
9737         (as well as pointers) as argument to mask_for_load builtins.
9738
9739 2010-07-15  Richard Guenther  <rguenther@suse.de>
9740
9741         PR tree-optimization/44946
9742         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
9743         with accessing only padding properly.
9744
9745 2010-07-15  Jan Hubicka  <jh@suse.cz>
9746
9747         * ipa.c (function_and_variable_visibility): Variables marked as used
9748         should not be localized.
9749
9750 2010-07-15  Jan Hubicka  <jh@suse.cz>
9751
9752         * cgraph.c: Include lto-streamer.h
9753         (change_decl_assembler_name): Work when assembler name hash is at place.
9754         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
9755         be sure to rename it to avoid name clash.
9756         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
9757         Localize hidden symbols only when locally defined.
9758
9759 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
9760
9761         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
9762
9763 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
9764             Kevin F. Quinn  <kevquinn@gentoo.org>
9765
9766         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
9767         * common.opt: Add -Wtrampolines.
9768         * doc/invoke.texi: Add -Wtrampolines.
9769
9770 2010-07-15  Jie Zhang  <jie@codesourcery.com>
9771
9772         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
9773         cortex_a8_issue_ls.
9774
9775 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
9776
9777         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
9778         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
9779
9780 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9781
9782         * config/spu/spu.c (reg_names): Remove prototype.
9783         (call_used_regs): Likewise.
9784
9785 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
9786
9787         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
9788         "unused" with attribute "used".
9789         (__JCR_END__): Likewise.
9790         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
9791         "used" attribute.
9792         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
9793
9794 2010-07-14  Richard Guenther  <rguenther@suse.de>
9795
9796         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
9797         (maybe_fixup_decls): Likewise.
9798         (input_gimple_stmt): Do not fixup anything.
9799         * lto-streamer-out.c (output_gimple_stmt): Make sure all
9800         non-automatic variable uses are wrapped inside a MEM_REF.
9801
9802 2010-07-14  Richard Henderson  <rth@redhat.com>
9803
9804         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
9805         for functions.
9806         * varasm.c (assemble_variable): Remove early exit for functions;
9807         assert that we're given a variable.
9808
9809 2010-07-14  Jie Zhang  <jie@codesourcery.com>
9810
9811         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
9812         cortex_a8_default when neon_type is not none.
9813
9814 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9815
9816         * lower-subreg.c (subreg_context): New static bitmap.
9817         (decompose_multiword_subregs): Allocate and free it.
9818         (find_decomposable_subregs): Set a bit in it for a register that
9819         occurs in a subreg that changes mode but not size.
9820         (can_decompose_p): Test it instead of non_decomposable_context.
9821
9822 2010-07-14  Richard Guenther  <rguenther@suse.de>
9823
9824         PR tree-optimization/44824
9825         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
9826         is_gimple_mem_ref_addr.
9827         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
9828         non-decl_address_invariant_p addresses.
9829
9830 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9831
9832         * reload.c (find_reloads): Revert code to penalize small register
9833         classes that was brought in with the IRA merge.
9834
9835 2010-07-14  Richard Guenther  <rguenther@suse.de>
9836
9837         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
9838         as base of ARRAY_REFs.
9839
9840 2010-07-14  Richard Guenther  <rguenther@suse.de>
9841
9842         PR middle-end/44930
9843         * tree-pretty-print.c (do_niy): Do not print a newline.
9844
9845 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
9846
9847         * ira-int.h (struct ira_object): New.
9848         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
9849         (struct ira_allocno): Remove members min, max,
9850         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
9851         conflict_allocnos_num and conflict_vec_p.  Add new member object.
9852         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
9853         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
9854         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
9855         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
9856         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
9857         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
9858         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
9859         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
9860         an ira_object_t rather than ira_allocno_t.  All uses changed.
9861         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
9862         contains a vector of ira_object_t; all uses changed.
9863         (ira_objects_num): Declare variable.
9864         (ira_create_allocno_object): Declare function.
9865         (ira_conflict_vector_profitable_p): Adjust prototype.
9866         (ira_allocate_conflict_vec): Renamed from
9867         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
9868         (ira_allocate_object_conflicts): Renamed from
9869         ira_allocate_allocno_conflicts; first arg now ira_object_t.
9870         (struct ira_object_iterator): New.
9871         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
9872         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
9873         to conflict_vec_p.  All uses changed.
9874         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
9875         Changed to take into account that conflicts are now tracked for
9876         objects.
9877         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
9878         Args changed to accept ira_object_t.  All uses changed.
9879         (allocnos_conflict_p): New static function.
9880         (collected_conflict_objects): Renamed from collected_allocno_objects;
9881         now a vector of ira_object_t.  All uses changed.
9882         (build_conflict_bit_table): Changed to take into account that
9883         conflicts are now tracked for objects.
9884         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
9885         (print_allocno_conflicts, ira_build_conflicts): Likewise.
9886         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
9887         setup_allocno_left_conflicts_size, allocno_reload_assign,
9888         fast_allocation): Likewise.
9889         * ira-lives.c (make_hard_regno_born, make_allocno_born)
9890         process_single_reg_class_operands, process_bb_node_lives): Likewise.
9891         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
9892         Likewise.
9893         * ira-build.c (ira_objects_num): New variable.
9894         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
9895         contains a vector of ira_object_t; all uses changed.
9896         (ira_object_id_map_vec): Corresponding change.
9897         (object_pool): New static variable.
9898         (initiate_allocnos): Initialize it.
9899         (finish_allocnos): Free it.
9900         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
9901         New functions.
9902         (ira_create_allocno): Don't set members that were removed.
9903         (ira_set_allocno_cover_class): Don't change conflict hard regs.
9904         (merge_hard_reg_conflicts): Changed to take into account that
9905         conflicts are now tracked for objects.
9906         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
9907         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
9908         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
9909         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
9910         setup_min_max_conflict_allocno_ids, ):  Likewise.
9911         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
9912         to ira_object_t; all callers changed.
9913         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
9914         to ira_object_t, all callers changed.
9915         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
9916         to ira_object_t, all callers changed.
9917         (conflict_check, curr_conflict_check_tick): Renamed from
9918         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
9919         changed.
9920         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
9921         arg changed to ira_object_t, all callers changed.
9922         (create_cap_allocno): Call ira_create_allocno_object.
9923         (finish_allocno): Free the corresponding object.
9924         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
9925         callers changed.  Adjusted for dealing with objects.
9926         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
9927         dealing with objects.
9928         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
9929
9930         * ira-int.h (struct live_range): Rename allocno member to object
9931         and change type to ira_object_t.
9932         (struct ira_object): New member live_ranges.
9933         (struct ira_allocno): Remove member live_ranges.
9934         (ALLOCNO_LIVE_RANGES): Remove.
9935         (OBJECT_LIVE_RANGES): New macro.
9936         (ira_create_live_range, ira_copy_live_range_list,
9937         ira_merge_live_range_list, ira_live_ranges_intersect_p,
9938         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
9939         * ira-build.c (ira_create_object): Initialize live ranges here.
9940         (ira_create_allocno): Not here.
9941         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
9942         changed to ira_object_t, all callers changed.
9943         (copy_live_range): Rename from copy_allocno_live_range, all callers
9944         changed.
9945         (ira_copy_live_range_list): Rename from
9946         ira_copy_allocno_live_range_list, all callers changed.
9947         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
9948         all callers changed.
9949         (ira_live_ranges_intersect_p): Rename from
9950         ira_allocno_live_ranges_intersect_p, all callers changed.
9951         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
9952         callers changed.
9953         (ira_finish_live_range_list): Rename from
9954         ira_finish_allocno_live_range_list, all callers changed.
9955         (change_object_in_range_list): Rename from change_allocno_in_range_list,
9956         last arg changed to ira_object_t, all callers changed.
9957         (finish_allocno): Changed to expect live ranges in the allocno's object.
9958         (move_allocno_live_ranges, copy_allocno_live_ranges,
9959         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
9960         ira_flattening, ira_build): Likewise.
9961         * ira-color.c (allocnos_have_intersected_live_ranges_p,
9962         slot_coalesced_allocno_live_ranges_intersect,
9963         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
9964         * ira-conflicts.c (build_conflict_bit_table): Likewise.
9965         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
9966         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
9967         make_allocno_dead, create_start_finish_chains,
9968         remove_some_program_points_and_update_live_ranges,
9969         ira_debug_live_range_list): Likewise.
9970
9971         * ira-int.h (ira_object_conflict_iterator): Rename from
9972         ira_allocno_conflict_iterator.
9973         (ira_object_conflict_iter_init): Rename from
9974         ira_allocno_conflict_iter_init, second arg changed to
9975         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
9976         FOR_EACH_ALLOCNO_CONFLICT.
9977         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
9978         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
9979         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
9980         * ira-conflicts.c (print_allocno_conflicts): Likewise.
9981
9982 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
9983
9984         PR other/44874
9985         * tree-dump.c (dump_options): Add enumerate_locals entry.
9986         Add TDF_NOID exclusion to all entry.
9987         * tree-dump.h (dump_enumerated_decls): Declare.
9988         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
9989         Don't display type uid.
9990         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
9991         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
9992         * tree-ssa-live.c: Include gimple.h.
9993         (numbered_tree_d): New struct.
9994         (numbered_tree): New typedef.
9995         (DEF_VEC_O (numbered_tree): New.
9996         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
9997         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
9998         (dump_enumerated_decls): Likewise.
9999         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
10000         debug info and flag_dump_final_insns, call dump_enumerated_decls.
10001         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
10002         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
10003
10004 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
10005
10006         * expmed.h (MAX_BITS_PER_WORD): Move to...
10007         * defaults.h (MAX_BITS_PER_WORD): ...here.
10008
10009 2010-07-13  DJ Delorie  <dj@redhat.com>
10010
10011         * config/h8300/h8300.c (h8300_init_once): Default to
10012         -fstrict_volatile_bitfields.
10013
10014         * config/sh/sh.c (sh_override_options): Default to
10015         -fstrict_volatile_bitfields.
10016
10017         * config/rx/rx.c (rx_option_override): New.
10018
10019         * config/m32c/m32c.c (m32c_override_options): Default to
10020         -fstrict_volatile_bitfields.
10021
10022 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
10023
10024         * tree.h (build_function_call_expr): Delete.
10025         (build_call_expr_loc_array): New function.
10026         (build_call_expr_loc_vec): New function.
10027         * tree-flow.h (struct omp_region): Change type of ws_args field
10028         to a VEC.
10029         * builtins.c (build_function_call_expr): Delete.
10030         (build_call_expr_loc_array): New function.
10031         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
10032         (build_call_expr): Likewise.
10033         (build_call_expr_loc_vec): New function.
10034         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
10035         build_function_call_expr.
10036         * expr.c (emutls_var_address): Likewise.
10037         * varasm.c (emutls_common_1): Likewise.
10038         * omp-low.c (expand_omp_atomic_mutex): Likewise.
10039         (expand_omp_taskreg): Adjust for new type of region->ws_args.
10040         (get_ws_args_for): Return a VEC instead of a tree.
10041         (expand_parallel_call): Call build_call_expr_loc_vec instead of
10042         build_function_call_expr.
10043         * stor-layout.c (self_referential_size): Likewise.
10044
10045 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
10046
10047         PR testsuite/44701
10048         * recog.c (constrain_operands): Allow side-effects in memory
10049         operands if either < or > constraint is used, rather than if
10050         both < and > is used.
10051
10052 2010-07-13  Richard Guenther  <rguenther@suse.de>
10053
10054         PR middle-end/44911
10055         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
10056         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
10057         without name.
10058
10059 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
10060
10061         PR target/44761
10062         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
10063         to variable emited.
10064         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
10065         * config/sh/sh.md (symGOT_load): Likewise.
10066         (symDTPOFF2reg): Likewise.
10067         (symTPOFF2reg): Likewise.
10068
10069 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10070
10071         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
10072         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
10073
10074 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10075
10076         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
10077         explanation.
10078         Find ucontext_t * on Solaris 11.
10079         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
10080         Handle new Solaris 11 __sighndlr patterns.
10081
10082 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
10083
10084         PR debug/44901
10085         * vec.h (VEC_block_remove): Fix comment.
10086         * tree-ssa-live.c (remove_unused_locals): Don't use
10087         VEC_unordered_remove on local_decls, instead replace a single
10088         vector element in each iteration if at least one element had
10089         to be removed and VEC_truncate at the end.
10090         * omp-low.c (expand_omp_taskreg): Likewise.
10091
10092 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10093
10094         * c-decl.c (finish_function): Fix typo in comment.
10095
10096 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
10097
10098         PR bootstrap/44921
10099         * postreload.c (move2add_use_add3_insn): Silence gcc warning
10100         on min_regno.
10101
10102 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
10103
10104         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
10105         (simplify_stmt_using_ranges): Use it.
10106
10107 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10108
10109         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
10110         member.  Do not mark as GTY(()).
10111         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
10112         (spu_builtin_decls): New static variable.
10113         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
10114         (spu_init_builtins): Likewise.
10115         (spu_builtin_mul_widen_even): Likewise.
10116         (spu_builtin_mul_widen_odd): Likewise.
10117         (spu_builtin_mask_for_load): Likewise.
10118         (spu_builtin_vec_perm): Likewise.
10119         * config/spu/spu-c.c: Include "target.h".
10120         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
10121         of using spu_builtins[].fndecl.
10122
10123 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10124
10125         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
10126         imply -minterlink-mips16.
10127
10128 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10129
10130         * config/mips/mips.h (mips16_globals): Declare.
10131         (SWITCHABLE_TARGET): Define.
10132         * config/mips/mips.c: Include target-globals.h.
10133         (mips16_globals): New variable.
10134         (mips_set_mips16_mode): Use save_target_globals and
10135         restore_target_globals instead of target_reinit.
10136
10137 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10138
10139         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
10140         to say that the function can be called more than once.
10141         * target-globals.c (save_target_globals): Call init_reg_sets.
10142
10143 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10144
10145         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
10146         * bb-reorder.h: New file.
10147         * bb-reorder.c (default_target_bb_reorder): New variable.
10148         (this_target_bb_reorder): New conditional variable.
10149         (uncond_jump_length): Redefine as a macro.
10150         * target-globals.h (this_target_bb_reorder): Declare.
10151         (target_globals): Add a bb_reorder field.
10152         (restore_target_globals): Copy the bb_reorder field to
10153         this_target_bb-reorder.
10154         * target-globals.c: Include bb-reorder.h.
10155         (default_target_globals): Initialize the bb_reorder field.
10156         (save_target_globals): Likewise.
10157
10158 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10159
10160         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
10161         * gcse.h: New file.
10162         * gcse.c: Include gcse.h.
10163         (default_target_gcse): New variable.
10164         (this_target_gcse): New conditional variable.
10165         (can_copy): Redefine as a macro.
10166         (can_copy_init_p): New macro.
10167         (can_copy_p): Remove can_copy_init_p.
10168         * target-globals.h (this_target_gcse): Declare.
10169         (target_globals): Add a gcse field.
10170         (restore_target_globals): Copy the gcse field to this_target_gcse.
10171         * target-globals.c: Include gcse.h.
10172         (default_target_globals): Initialize the gcse field.
10173         (save_target_globals): Likewise.
10174
10175 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10176
10177         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
10178         and x_ira_prohibited_mode_move_regs_initialized_p.
10179         (ira_prohibited_mode_move_regs): Redefine as a macro.
10180         * ira.c (ira_prohibited_mode_move_regs): Delete.
10181         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
10182
10183 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10184
10185         * reload.h (target_reload): Add x_cached_reg_save_code and
10186         x_cached_reg_restore_code.
10187         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
10188         Redefine as macros.
10189
10190 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10191
10192         * Makefile.in (target-globals.o): Depend on builtins.h.
10193         * builtins.h: New file.
10194         * builtins.c: Include builtins.h.
10195         (default_target_builtins): New variable.
10196         (this_target_builtins): New conditional variable.
10197         (apply_args_mode, apply_result_mode): Redefine as macros.
10198         * target-globals.h (this_target_builtins): Declare.
10199         (target_globals): Add a builtins field.
10200         (restore_target_globals): Copy the builtins field to
10201         this_target_builtins.
10202         * target-globals.c: Include builtins.h.
10203         (default_target_globals): Initialize the builtins field.
10204         (save_target_globals): Likewise.
10205
10206 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10207
10208         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
10209         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
10210         from expmed.c.
10211         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
10212         (alg_hash, alg_hash_used_p): New macros.
10213         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
10214         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
10215         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
10216
10217 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10218
10219         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
10220         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
10221         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
10222         (this_op_costs, costs_classes): Redefine as macros.
10223         (record_reg_classes): Don't take op_costs as a parameter.
10224         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
10225         (scan_one_insn): Update call to record_operand_costs.
10226
10227 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10228
10229         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
10230         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
10231         (target_ira_int): New structure.
10232         (default_target_ira_int): Declare.
10233         (this_target_ira_int): Declare as a variable or define as a macro.
10234         (ira_reg_mode_hard_regset, ira_register_move_cost)
10235         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
10236         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
10237         (prohibited_class_mode_regs, ira_important_classes_num)
10238         (ira_important_classes, ira_reg_class_intersect)
10239         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
10240         (ira_reg_class_union): Redefine as macros.
10241         * ira.h (target_ira): New structure.
10242         (default_target_ira): Declare.
10243         (this_target_ira): Declare as a variable or define as a macro.
10244         (ira_available_class_regs, ira_hard_regno_cover_class)
10245         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
10246         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
10247         (ira_class_hard_regs_num): Redefine as macros.
10248         * ira.c (default_target_ira, default_target_ira_int): New variables.
10249         (this_target_ira, this_target_ira_int): New conditional variables.
10250         (ira_reg_mode_hard_regset, ira_memory_move_cost)
10251         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
10252         (ira_class_subset_p): Delete.
10253         (no_unit_alloc_regs): Redefine as a macro.
10254         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
10255         (ira_class_hard_regs_num, ira_class_hard_reg_index)
10256         (ira_available_class_regs): Delete.
10257         (alloc_reg_class_subclasses): Redefine as a macro.
10258         (ira_reg_class_cover_size, ira_reg_class_cover)
10259         (ira_important_classes_num, ira_important_classes)
10260         (ira_important_class_nums, ira_class_translate): Delete.
10261         (cover_class_order): Document the variable's lifetime.
10262         (reorder_important_classes): Don't set ira_important_class_nums.
10263         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
10264         (ira_reg_class_super_classes, ira_reg_class_union)
10265         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
10266         Delete.
10267         (setup_reg_class_nregs): Don't set ira_max_regs.
10268         (prohibited_class_mode_regs): Delete.
10269         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
10270         (target_globals): Add ira and ira_int fields.
10271         (restore_target_globals): Copy the ira field to this_target_ira
10272         and the ira_int field to this_target_ira_int.
10273         * target-globals.c: Include ira-int.h.
10274         (default_target_globals): Initialize the ira and ira_int fields.
10275         (save_target_globals): Likewise.
10276
10277 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10278
10279         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
10280         * cfgloop.h (target_cfgloop): New structure.
10281         (default_target_cfgloop): Declare.
10282         (this_target_cfgloop): Declare as a variable or define as a macro.
10283         (target_avail_regs, target_clobbered_regs, target_res_regs)
10284         (target_reg_cost, target_spill_cost): Redefine as macros.
10285         * cfgloopanal.c (default_target_cfgloop): New variable.
10286         (this_target_cfgloop): New conditional variable.
10287         (target_avail_regs, target_clobbered_regs, target_res_regs)
10288         (target_reg_cost, target_spill_cost): Delete.
10289         * target-globals.h (this_target_cfgloop): Declare.
10290         (target_globals): Add a cfgloop field.
10291         (restore_target_globals): Copy the cfgloop field to
10292         this_target_cfgloop.
10293         * target-globals.c: Include cfgloop.h.
10294         (default_target_globals): Initialize the cfgloop field.
10295         (save_target_globals): Likewise.
10296
10297 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10298
10299         * regs.h (target_regs): Add x_direct_load, x_direct_store and
10300         x_float_extend_from_mem.
10301         (direct_load, direct_store, float_extend_from_mem): New macros.
10302         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
10303
10304 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10305
10306         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
10307         (target-globals.o): Depend on $(LIBFUNCS_H).
10308         * libfuncs.h: Include hashtab.h.
10309         (libfunc_entry): Moved from optabs.c.
10310         (target_libfuncs): New structure.
10311         (default_target_libfuncs): Declare.
10312         (this_target_libfuncs): Declare as a variable or define as a macro.
10313         (libfunc_table): Redefine as a macro.
10314         * optabs.c (default_target_libfuncs): New variable.
10315         (this_target_libfuncs): New conditional variable.
10316         (libfunc_table): Delete.
10317         (libfunc_entry): Moved to optabs.h.
10318         (libfunc_hash): Redefine as a macro.
10319         (hash_libfunc, eq_libfunc): Fix comments.
10320         (init_optabs): Use libfunc_hash to detect cases where the function
10321         has already been called.  Clear the hash table instead of
10322         recreating it.
10323         * target-globals.h (this_target_libfuncs): Declare.
10324         (target_globals): Add a libfuncs field.
10325         (restore_target_globals): Copy the libfuncs field to
10326         this_target_libfuncs.
10327         * target-globals.c: Include libfuncs.h.
10328         (default_target_globals): Initialize the libfuncs field.
10329         (save_target_globals): Likewise.
10330
10331 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10332
10333         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
10334         in all dependency lists.
10335
10336 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10337
10338         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
10339         * optabs.h (target_optabs): New structure.
10340         (default_target_optabs): Declare.
10341         (this_target_optabs): Declare as a variable or define as a macro.
10342         (optab_table, convert_optab_table, direct_optab_table): Redefine
10343         as macros.
10344         * optabs.c (default_target_optabs): New variable.
10345         (this_target_optabs): New conditional variable.
10346         (optab_table, convert_optab_table, direct_optab_table): Delete.
10347         * target-globals.h (this_target_optabs): Declare.
10348         (target_globals): Add a optabs field.
10349         (restore_target_globals): Copy the optabs field to
10350         this_target_optabs.
10351         * target-globals.c: Include expr.h and optabs.h.
10352         (default_target_globals): Initialize the optabs field.
10353         (save_target_globals): Likewise.
10354
10355 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10356
10357         * flags.h (target_flagstate): Add x_flag_excess_precision.
10358         (flag_excess_precision): Redefine as a macro.
10359         * toplev.c (flag_excess_precision): Delete.
10360
10361 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10362
10363         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
10364         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
10365         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
10366         (no_caller_save_reg_set): Redefine as a macro.
10367         * reload.h (target_reload): Add x_caller_save_initialized_p and
10368         x_regno_save_mode.
10369         (caller_save_initialized_p): Redefine as a macro.
10370         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
10371         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
10372         (regno_save_mode): Redefine as a macro.
10373
10374 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10375
10376         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
10377         * expmed.h: New file.
10378         * expmed.c (default_target_costs): New variable.
10379         (this_target_costs): New conditional variable.
10380         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
10381         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
10382         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
10383         * target-globals.h (this_target_expmed): Declare.
10384         (target_globals): Add a expmed field.
10385         (restore_target_globals): Copy the expmed field to
10386         this_target_expmed.
10387         * target-globals.c: Include expmed.h.
10388         (default_target_globals): Initialize the expmed field.
10389         (save_target_globals): Likewise.
10390
10391 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10392
10393         * Makefile.in (target-globals.o): Depend on reload.h.
10394         * reload.h (target_reload): New structure.
10395         (default_target_reload): Declare.
10396         (this_target_reload): Declare as a variable or define as a macro.
10397         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
10398         * reload1.c (default_target_reload): New variable
10399         (this_target_reload): New conditional variable.
10400         (indirect_symref_ok, double_reg_address_ok): Delete.
10401         (spill_indirect_levels): Redefine as a macro.
10402         * target-globals.h (this_target_reload): Declare.
10403         (target_globals): Add a reload field.
10404         (restore_target_globals): Copy the reload field to
10405         this_target_reload.
10406         * target-globals.c: Include hard-reg-set.h.
10407         (default_target_globals): Initialize the reload field.
10408         (save_target_globals): Likewise.
10409
10410 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10411
10412         * rtl.h (target_rtl): Add x_static_reg_base_value.
10413         * alias.c (static_reg_base_value): Redefine as a macro.
10414
10415 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10416
10417         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
10418         (GTFILES): Remove reginfo.c.
10419         * rtl.h (target_rtl): Add x_top_of_stack.
10420         (top_of_stack): New macro.
10421         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
10422         (top_of_stack): Delete.
10423
10424 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10425
10426         * regs.h (target_regs): Add x_hard_regs_of_mode,
10427         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
10428         x_may_move_out_cost and x_last_mode_for_init_move_cost.
10429         (have_regs_of_mode, contains_reg_of_mode, move_cost)
10430         (may_move_in_cost, may_move_out_cost): Redefine as macros.
10431         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
10432         (may_move_in_cost, may_move_out_cost): Delete.
10433         (last_mode_for_init_move_cost): Redefine as a macro.
10434
10435 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10436
10437         * hard-reg-set.h (target_hard_regs): New structure.
10438         (default_target_hard_regs): Declare.
10439         (this_target_hard_regs): Declare as a variable or define as a macro.
10440         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
10441         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
10442         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
10443         (reg_class_size, reg_class_subclasses, reg_class_subunion)
10444         (reg_class_superunion, reg_names): Redefine as macros.
10445         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
10446         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
10447         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
10448         (reg_class_contents, reg_class_size, reg_class_subclasses)
10449         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
10450         (default_target_hard_regs): New variable
10451         (this_target_hard_regs, initial_call_really_used_regs)
10452         (initial_reg_alloc_order): New conditional variables.
10453         (initial_reg_names): New variable.
10454         (init_reg_sets): Assert that initial_call_really_used_regs,
10455         initial_reg_alloc_order and initial_reg_names
10456         are all the same size as their variable counterparts.  Use them to
10457         initialize those counterparts.
10458         * target-globals.h (this_target_hard_regs): Declare.
10459         (target_globals): Add a hard_regs field.
10460         (restore_target_globals): Copy the hard_regs field to
10461         this_target_hard_regs.
10462         * target-globals.c: Include hard-reg-set.h.
10463         (default_target_globals): Initialize the hard_regs field.
10464         (save_target_globals): Likewise.
10465
10466 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10467
10468         * Makefile.in (target-globals.o): Depend on $(RTL_H).
10469         * rtl.h (target_rtl): New structure.
10470         (default_target_rtl): Declare.
10471         (this_target_rtl): Declare as a variable or define as a macro.
10472         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
10473         Redefine as macros.
10474         * emit-rtl.c (default_target_rtl): New variable.
10475         (this_target_rtl): New conditional variable.
10476         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
10477         (return_address_pointer_rtx): Delete.
10478         (initial_regno_reg_rtx): New macro.
10479         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
10480         (init_emit_regs): Likewise.
10481         * target-globals.h (this_target_rtl): Declare.
10482         (target_globals): Add a rtl field.
10483         (restore_target_globals): Copy the rtl field to this_target_rtl.
10484         * target-globals.c: Include rtl.h.
10485         (default_target_globals): Initialize the rtl field.
10486         (save_target_globals): Likewise.
10487
10488 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10489
10490         * Makefile.in (target-globals.o): Depend on $(REGS_H).
10491         * regs.h (target_reg_modes): New structure.
10492         (default_target_reg_modes): Declare.
10493         (this_target_reg_modes): Declare as a variable or define as a macro.
10494         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
10495         * reginfo.c (default_target_reg_modes): New variable.
10496         (this_target_reg_modes): New conditional variable.
10497         (hard_regno_nregs, reg_raw_mode): Delete.
10498         * target-globals.h (this_target_regs): Declare.
10499         (target_globals): Add a regs field.
10500         (restore_target_globals): Copy the regs field to this_target_regs.
10501         * target-globals.c: Include regs.h.
10502         (default_target_globals): Initialize the regs field.
10503         (save_target_globals): Likewise.
10504
10505 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10506
10507         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
10508         * doc/tm.texi: Regenerate.
10509         * Makefile.in (OBJS-common): Add target-globals.o.
10510         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
10511         and target-globals.h.
10512         (target-globals.o): New rule.
10513         (GTFILES): Include $(srcdir)/target-globals.h.
10514         * defaults.h (SWITCHABLE_TARGET): Define.
10515         * gengtype.c (open_base_files): Add target-globals.h to the
10516         list of includes.
10517         * target-globals.h: New file.
10518         * target-globals.c: Likewise.
10519
10520         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
10521         * flags.h (target_flag_state): New structure.
10522         (default_target_flag_state): Declare.
10523         (this_target_flag_state): Declare as a variable or define as a macro.
10524         (align_loops_log): Redefine as a macro.
10525         (align_loops_max_skip, align_jumps_log): Likewise.
10526         (align_jumps_max_skip, align_labels_log): Likewise.
10527         (align_labels_max_skip, align_functions_log): Likewise.
10528         * toplev.c (default_target_flag_state): New variable.
10529         (this_target_flag_state): New conditional variable.
10530         (align_loops_log): Delete.
10531         (align_loops_max_skip, align_jumps_log): Likewise.
10532         (align_jumps_max_skip, align_labels_log): Likewise.
10533         (align_labels_max_skip, align_functions_log): Likewise.
10534         * target-globals.h (this_target_flag_state): Declare.
10535         (target_globals): Add a flag_state field.
10536         (restore_target_globals): Copy the flag_state field to
10537         this_target_flag_state.
10538         * target-globals.c: Include flags.h.
10539         (default_target_globals): Initialize the flag_state field.
10540         (save_target_globals): Likewise.
10541
10542 2010-07-12  Jie Zhang  <jie@codesourcery.com>
10543
10544         * postreload.c (reg_symbol_ref[]): New.
10545         (move2add_use_add2_insn): New.
10546         (move2add_use_add3_insn): New.
10547         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
10548         (move2add_note_store): Likewise.
10549
10550 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
10551
10552         PR rtl-optimization/44752
10553         * genautomata.c (main): Don't emit an empty file even if there
10554         is no automaton.
10555
10556 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10557
10558         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
10559         ix86_solaris_return_in_memory.
10560         * config/i386-protos.h: Reflect this.
10561         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
10562         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
10563         Move ...
10564         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
10565
10566 2010-07-12  Jie Zhang  <jie@codesourcery.com>
10567
10568         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
10569         align the stack when it's going to be saved.
10570
10571 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10572
10573         PR pch/14940
10574         * config/host-solaris.c (mmap_fixed): New function.
10575         (sol_gt_pch_get_address): Use it.
10576         (sol_gt_pch_use_address): Likewise.
10577
10578 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10579
10580         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
10581         pentiumpro on Solaris 8 and 9/x86.
10582         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
10583         Document SSE/SSE2 support.
10584         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
10585
10586 2010-07-12  Andi Kleen  <ak@linux.intel.com>
10587
10588         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
10589         instead of gcc_assert to print better error message for multiple
10590         prevailing defs.
10591
10592 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
10593
10594         * config/i386/i386.c (ix86_asm_output_function_label): Change format
10595         string placeholder from 0x%x to %#x.
10596         (ix86_code_end): Use putc to output '\n'.
10597         (ix86_print_operand) <case ';'>: Use putc to output ';'.
10598
10599 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
10600
10601         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
10602         in directive -export.
10603
10604 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
10605
10606         * reginfo.h (reg_classes_intersect_p): Change arguments type to
10607         reg_class_t.
10608         * rtl.h (reg_classes_intersect_p): Adjust prototype.
10609
10610         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10611         Remove macros.
10612         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
10613         rs6000_memory_move_cost): Remove
10614         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
10615         TARGET_MEMORY_MOVE_COST): Define.
10616         (rs6000_register_move_cost): Make static. Change arguments type from
10617         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
10618         (rs6000_memory_move_cost): Make static. Change arguments type from
10619         'enum reg_class' to reg_class_t.
10620
10621 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
10622
10623         PR middle-end/42505
10624         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
10625         lookup code into....
10626         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
10627         new functions.
10628         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
10629         * cfgloopanal.c (target_clobbered_regs): Define.
10630         (init_set_costs): Initialize target_clobbered_regs.
10631         (estimate_reg_pressure_cost): Add call_p argument.  When true,
10632         adjust the number of available registers to exclude the
10633         call-clobbered registers.
10634         * cfgloop.h (target_clobbered_regs): Declare.
10635         (estimate_reg_pressure_cost): Adjust declaration.
10636         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
10637         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
10638         (determine_set_costs): Dump target_clobbered_regs.
10639         (loop_body_includes_call): New function.
10640         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
10641         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
10642         call_p flag through.
10643         (best_gain_for_invariant): Likewise.
10644         (find_invariants_to_move): Likewise.
10645         (move_single_loop_invariants): Likewise, using already-computed
10646         has_call field.
10647
10648 2010-07-10  Richard Guenther  <rguenther@suse.de>
10649             Joern Rennecke  <joern.rennecke@embecosm.com>
10650
10651         PR debug/44832
10652         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
10653         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
10654         unless they have DECL_IGNORED_P set.
10655
10656 2010-07-10  Richard Guenther  <rguenther@suse.de>
10657
10658         PR lto/44889
10659         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
10660         helper function.
10661         (gimple_types_compatible_p): Similar to pointed-to
10662         types allow and merge a mix of complete and incomplete aggregate.
10663         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
10664         (iterative_hash_gimple_type): Adjust for that.
10665
10666 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
10667
10668         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
10669
10670 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
10671
10672         PR objc/44140
10673         * config/darwin.c (output_objc_section_asm_op): Save and restore
10674         section when outputting ObjC section list.
10675
10676 2010-07-09  Jan Hubicka  <jh@suse.cz>
10677
10678         * lto-streamer-out.c (produce_symtab): Do not write alias
10679         cgraph/varpool nodes.
10680
10681 2010-07-09  Jan Hubicka  <jh@suse.cz>
10682
10683         * tree-inline.c (declare_return_variable): Fix ICE while
10684         inlining DECL_BY_VALUE function not in SSA form
10685
10686 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
10687
10688         PR tree-optimization/44576
10689         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
10690         New.  Pull out from is_loop_prefetching_profitable to implement
10691         the trip count to ahead ratio heuristic.
10692         (mem_ref_count_reasonable_p): New.  Pull out from
10693         is_loop_prefetching_profitable to implement the instruction to
10694         memory reference ratio heuristic.  Also consider not reasonable if
10695         the memory reference count is above a threshold (to avoid
10696         explosive compilation time.
10697         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
10698         is_loop_prefetching_profitable to implement the instruction to
10699         prefetch ratio heuristic.
10700         (is_loop_prefetching_profitable): Removed.
10701         (loop_prefetch_arrays): Distribute the cost analysis across the
10702         function to allow early exit of the prefetch analysis.
10703         is_loop_prefetching_profitable is splitted into three functions,
10704         with each one called as early as possible.
10705         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
10706         number of memory references in a loop is considered too many.
10707
10708 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
10709
10710         * reload.c (find_reloads): Don't clear badop if we have a winreg
10711         alternative, but not win, and the class only has fixed regs.
10712         * hard-reg-set.h (class_only_fixed_regs): Declare.
10713         * reginfo.c (class_only_fixed_regs): New array.
10714         (init_reg_sets_1): Initialize it.
10715         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
10716         discourage alternatives using the stack pointer.
10717
10718         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
10719
10720         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
10721
10722         * config/arm/arm.md (cbranchqi4): Fix array size.
10723         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
10724         calculating length.
10725
10726 2010-07-09  Richard Guenther  <rguenther@suse.de>
10727
10728         * gimple.c (struct type_fixup_s): New struct and VEC type.
10729         (gimple_register_type_fixups): New static global.
10730         (gimple_queue_type_fixup): New function.
10731         (gimple_types_compatible_p): Queue type fixups instead of
10732         applying them here.
10733         (gimple_register_type): Apply queued fixups for the
10734         canonical type.  Empty the type fixup queue.
10735
10736 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
10737
10738         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
10739         * configure: Regenerate.
10740         * config.in: Ditto.
10741
10742 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
10743             Denys Vlasenko  <dvlasenk@redhat.com>
10744             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10745
10746         PR tree-optimization/28632
10747         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
10748         (extract_range_from_binary_expr): Further optimize
10749         BIT_AND_EXPR and BIT_IOR_EXPR.
10750
10751 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
10752
10753         * tree-if-conv.c (fold_or_predicates): New.
10754         (add_to_predicate_list): Call it.
10755
10756 2010-07-09  Richard Guenther  <rguenther@suse.de>
10757
10758         PR middle-end/44890
10759         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
10760         if base is a pointer.
10761         * tree-cfg.c (verify_expr): Update MEM_REF checking.
10762
10763 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
10764
10765         PR target/44877
10766         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
10767         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
10768         builtin mask for load/store builtins.
10769
10770 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
10771
10772         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
10773         for "lock addl".
10774         * configure: Regenerate.
10775         * config/i386/i386.c (ix86_print_operand) <case ';'>:
10776         Remove TARGET_MACHO.
10777
10778 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
10779
10780         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
10781         default ISA flags.
10782         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
10783
10784 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
10785
10786         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
10787
10788 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
10789
10790         * config/picochip/picochip.md (commsTestPort): Emit more
10791         efficient sequence for tstport instruction.
10792
10793 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
10794
10795         * config/i386/i386.c (ix86_veclib_handler): Make static.
10796
10797 2010-07-09  Richard Guenther  <rguenther@suse.de>
10798
10799         PR tree-optimization/44852
10800         * tree-ssa-alias.c: Include toplev.h for exact_log2.
10801         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
10802         in MEM_REF.
10803         (indirect_refs_may_alias_p): Likewise.
10804         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
10805
10806 2010-07-09  Richard Guenther  <rguenther@suse.de>
10807
10808         PR tree-optimization/44882
10809         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
10810         sets do conflict.
10811         (vectorizable_load): Likewise.
10812
10813 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
10814
10815         PR target/40657
10816         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
10817         All callers changed.
10818         Handle the case when we're called for the epilogue.
10819         (thumb_unexpanded_epilogue): Use it.
10820         (thumb1_expand_epilogue): Likewise.
10821
10822 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
10823
10824         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
10825         both ranges are range_int_cst_p with non-negative minimum,
10826         try harder to derive smaller range.
10827
10828 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10829
10830         * genrecog.c: Include diagnostic-core.h before toplev.h.
10831         * genoutput.c: Likewise.
10832         * genextract.c: Likewise.
10833         * genautomata.c: Likewise.
10834         * genemit.c: Likewise.
10835         * genpeep.c: Likewise.
10836         * genattrtab.c: Likewise.
10837         * genconditions.c: Likewise.
10838         * genpreds.c: Likewise.
10839
10840 2010-07-08  Andi Kleen  <ak@linux.intel.com>
10841
10842         * lto-section-in.c (lto_section_name): Add missing comma.
10843
10844 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
10845
10846         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
10847         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
10848         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
10849         (ia64_override_options): Rename to...
10850         (ia64_option_override): ... this one. Make static.
10851
10852 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10853
10854         PR middle-end/44843
10855         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
10856         pointed-to type of the offset in a MEM_REF to compute the alignment.
10857
10858 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
10859
10860         * final.c (final_scan_insn): Replace
10861         TARGET_UNWIND_INFO macro check by unwind_emit
10862         hook NULL check.
10863         * targhooks.c (default_unwind_emit): Removed.
10864         * targhooks.h (default_unwind_emit): Likewise.
10865         * target.def (unwind_emit): Set default value to NULL.
10866
10867         * config/i386/i386-protos.h (ix86_asm_output_function_label):
10868         New prototype.
10869         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
10870         for NULL fntype argument and allow 64-bit targets.
10871         (ix86_asm_output_function_label): New function.
10872         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
10873         (ix86_handle_fndecl_attribute): Likewise.
10874         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
10875         * doc/doc/tm.texi: Regenerated.
10876         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
10877         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
10878         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
10879         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
10880         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
10881         * config/elfos.h: Likewise.
10882         * config/i386/cygming.h: Likewise.
10883         * config/netbsd-aout.h: Likewise.
10884         * config/openbsd.h: Likewise.
10885         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
10886         by ix86_asm_output_function_label function call.
10887         * varasm.c (assemble_start_function): Use
10888         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
10889
10890 2010-07-08  Jan Hubicka  <jh@suse.cz>
10891
10892         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
10893         New function.
10894         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
10895         Declare.
10896         * ipa-cp.c (ipcp_estimate_growth): Use it.
10897         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
10898         Likewise.
10899
10900 2010-07-08  Jan Hubicka  <jh@suse.cz>
10901
10902         * tree-inline.c (declare_return_variable): Allocate annotation for new
10903         temporary.
10904
10905 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10906
10907         PR tree-optimization/44710
10908         * tree-if-conv.c (parse_predicate): New.
10909         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
10910         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
10911
10912 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
10913
10914         * common.opt (ftree-loop-if-convert): New flag.
10915         * doc/invoke.texi (ftree-loop-if-convert): Documented.
10916         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
10917         when flag_tree_loop_if_convert is set.
10918
10919 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
10920
10921         * config/i386/i386.c: Use short syntax for function calls
10922         through function pointers.
10923         * config/i386/i386.md: Ditto.
10924
10925 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10926
10927         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
10928
10929 2010-07-08  Richard Guenther  <rguenther@suse.de>
10930
10931         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
10932         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
10933
10934 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
10935
10936         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
10937         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
10938         (loc_list_from_tree): Likewise.
10939         (output_loc_operands): Handle outputting DW_OP_const[48]u
10940         with loc->dtprel set.
10941         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
10942
10943 2010-07-08  Jan Hubicka  <jh@suse.cz>
10944
10945         * ipa.c: Include pointer-set.h
10946         (cgraph_externally_visible_p): New attribute ALIASED;
10947         when in LTO, hidden symbols are local unless they are aliased.
10948         (function_and_variable_visibility): Compute aliased nodes;
10949         handle LTO and hidden symbol on functions and vars.
10950         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
10951         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
10952
10953 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10954
10955         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
10956         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10957         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10958         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10959         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10960         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
10961         (ix86_gen_probe_stack_range): Likewise.
10962         (override_options): Set them.
10963         (ix86_target_stack_probe): New function.
10964         (ix86_compute_frame_layout): Force use of push instructions to
10965         save registers if stack checking with probes is enabled.
10966         (get_scratch_register_on_entry): New function.
10967         (release_scratch_register_on_entry): Likewise.
10968         (ix86_adjust_stack_and_probe): Likewise.
10969         (output_adjust_stack_and_probe): Likewise.
10970         (ix86_emit_probe_stack_range): Likewise.
10971         (output_probe_stack_range): Likewise.
10972         (ix86_expand_prologue): Emit stack checking code if static built-in
10973         stack checking is enabled.
10974         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
10975         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
10976         (output_adjust_stack_and_probe): Likewise.
10977         (output_probe_stack_range): Likewise.
10978         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
10979         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
10980         TARGET_STACK_PROBE.
10981         (allocate_stack_worker_64): Likewise.
10982         (allocate_stack): Likewise.
10983         (adjust_stack_and_probe): New insn.
10984         (probe_stack_range): Likewise.
10985
10986 2010-07-08  Richard Guenther  <rguenther@suse.de>
10987
10988         PR tree-optimization/44831
10989         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
10990         a MEM_REF preserving TBAA info of the original dereference.
10991         Dereference the original pointer if the address is not invariant.
10992         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
10993         at least one invariant address that we are going to dereference.
10994
10995 2010-07-08  Richard Guenther  <rguenther@suse.de>
10996
10997         PR tree-optimization/44861
10998         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
10999         information when building MEM_REFs.
11000         (vectorizable_load): Likewise.
11001         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
11002
11003 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
11004
11005         * config/sol2-c.c: Do not include diagnostic-core.h.
11006
11007 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11008
11009         PR bootstrap/44768
11010         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
11011         with respect to current_function_decl. Pass decl of the function.
11012         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
11013         * ipa-inline.c (compute_inline_parameters): Pass decl to
11014         estimated_stack_frame_size.
11015
11016 2010-07-08  Richard Guenther  <rguenther@suse.de>
11017
11018         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
11019         New function.
11020         (valueize_refs): Call it.
11021
11022 2010-07-08  Richard Guenther  <rguenther@suse.de>
11023
11024         PR rtl-optimization/44838
11025         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
11026         SSA form do not use pointer equivalence.
11027
11028 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
11029
11030         * dwarf2out.c (AT_linkage_name): Delete.
11031         (add_linkage_attr): New function.
11032         (add_linkage_name): Call it to emit the linkage attribute.
11033         (dwarf2out_finish): Likewise.
11034         (move_linkage_attr): Explicitly accept both attribute variants.
11035
11036 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11037
11038         * toplev.h: Do not include diagnostic-core.h.
11039         Include diagnostic-core.h in every file that includes toplev.h.
11040         * c-tree.h: Do not include toplev.h.
11041         * pretty-print.h: Update comment.
11042         * Makefile.in: Update dependencies.
11043         * alias.c: Include diagnostic-core.h in every file that includes
11044         toplev.h.
11045         * attribs.c: Likewise.
11046         * auto-inc-dec.c: Likewise.
11047         * bb-reorder.c: Likewise.
11048         * bt-load.c: Likewise.
11049         * caller-save.c: Likewise.
11050         * calls.c: Likewise.
11051         * cfg.c: Likewise.
11052         * cfganal.c: Likewise.
11053         * cfgbuild.c: Likewise.
11054         * cfgcleanup.c: Likewise.
11055         * cfghooks.c: Likewise.
11056         * cfgloop.c: Likewise.
11057         * combine.c: Likewise.
11058         * config/alpha/alpha.c: Likewise.
11059         * config/arc/arc.c: Likewise.
11060         * config/arm/arm.c: Likewise.
11061         * config/arm/pe.c: Likewise.
11062         * config/avr/avr.c: Likewise.
11063         * config/bfin/bfin.c: Likewise.
11064         * config/cris/cris.c: Likewise.
11065         * config/crx/crx.c: Likewise.
11066         * config/darwin-c.c: Likewise.
11067         * config/darwin.c: Likewise.
11068         * config/fr30/fr30.c: Likewise.
11069         * config/frv/frv.c: Likewise.
11070         * config/h8300/h8300.c: Likewise.
11071         * config/host-darwin.c: Likewise.
11072         * config/i386/i386.c: Likewise.
11073         * config/i386/netware.c: Likewise.
11074         * config/i386/nwld.c: Likewise.
11075         * config/i386/winnt-cxx.c: Likewise.
11076         * config/i386/winnt-stubs.c: Likewise.
11077         * config/i386/winnt.c: Likewise.
11078         * config/ia64/ia64-c.c: Likewise.
11079         * config/ia64/ia64.c: Likewise.
11080         * config/iq2000/iq2000.c: Likewise.
11081         * config/lm32/lm32.c: Likewise.
11082         * config/m32c/m32c-pragma.c: Likewise.
11083         * config/m32c/m32c.c: Likewise.
11084         * config/m32r/m32r.c: Likewise.
11085         * config/m68hc11/m68hc11.c: Likewise.
11086         * config/m68k/m68k.c: Likewise.
11087         * config/mcore/mcore.c: Likewise.
11088         * config/mep/mep-pragma.c: Likewise.
11089         * config/mep/mep.c: Likewise.
11090         * config/mmix/mmix.c: Likewise.
11091         * config/mn10300/mn10300.c: Likewise.
11092         * config/moxie/moxie.c: Likewise.
11093         * config/pa/pa.c: Likewise.
11094         * config/pdp11/pdp11.c: Likewise.
11095         * config/picochip/picochip.c: Likewise.
11096         * config/rs6000/rs6000-c.c: Likewise.
11097         * config/rs6000/rs6000.c: Likewise.
11098         * config/rx/rx.c: Likewise.
11099         * config/s390/s390.c: Likewise.
11100         * config/score/score.c: Likewise.
11101         * config/score/score3.c: Likewise.
11102         * config/score/score7.c: Likewise.
11103         * config/sh/sh.c: Likewise.
11104         * config/sh/symbian-base.c: Likewise.
11105         * config/sh/symbian-c.c: Likewise.
11106         * config/sh/symbian-cxx.c: Likewise.
11107         * config/sol2-c.c: Likewise.
11108         * config/sol2.c: Likewise.
11109         * config/sparc/sparc.c: Likewise.
11110         * config/spu/spu.c: Likewise.
11111         * config/stormy16/stormy16.c: Likewise.
11112         * config/v850/v850-c.c: Likewise.
11113         * config/v850/v850.c: Likewise.
11114         * config/vax/vax.c: Likewise.
11115         * config/vxworks.c: Likewise.
11116         * config/xtensa/xtensa.c: Likewise.
11117         * convert.c: Likewise.
11118         * cse.c: Likewise.
11119         * cselib.c: Likewise.
11120         * dbgcnt.c: Likewise.
11121         * dbxout.c: Likewise.
11122         * ddg.c: Likewise.
11123         * dominance.c: Likewise.
11124         * emit-rtl.c: Likewise.
11125         * explow.c: Likewise.
11126         * expmed.c: Likewise.
11127         * fixed-value.c: Likewise.
11128         * fold-const.c: Likewise.
11129         * fwprop.c: Likewise.
11130         * gcse.c: Likewise.
11131         * ggc-common.c: Likewise.
11132         * ggc-page.c: Likewise.
11133         * ggc-zone.c: Likewise.
11134         * gimple-low.c: Likewise.
11135         * gimplify.c: Likewise.
11136         * graph.c: Likewise.
11137         * haifa-sched.c: Likewise.
11138         * ifcvt.c: Likewise.
11139         * implicit-zee.c: Likewise.
11140         * integrate.c: Likewise.
11141         * ira-build.c: Likewise.
11142         * ira-color.c: Likewise.
11143         * ira-conflicts.c: Likewise.
11144         * ira-costs.c: Likewise.
11145         * ira-lives.c: Likewise.
11146         * ira.c: Likewise.
11147         * lists.c: Likewise.
11148         * loop-doloop.c: Likewise.
11149         * loop-iv.c: Likewise.
11150         * lto-opts.c: Likewise.
11151         * lto-symtab.c: Likewise.
11152         * main.c: Likewise.
11153         * modulo-sched.c: Likewise.
11154         * optabs.c: Likewise.
11155         * params.c: Likewise.
11156         * plugin.c: Likewise.
11157         * postreload-gcse.c: Likewise.
11158         * postreload.c: Likewise.
11159         * predict.c: Likewise.
11160         * profile.c: Likewise.
11161         * real.c: Likewise.
11162         * regcprop.c: Likewise.
11163         * reginfo.c: Likewise.
11164         * regmove.c: Likewise.
11165         * reorg.c: Likewise.
11166         * resource.c: Likewise.
11167         * rtl.c: Likewise.
11168         * rtlanal.c: Likewise.
11169         * sched-deps.c: Likewise.
11170         * sched-ebb.c: Likewise.
11171         * sched-rgn.c: Likewise.
11172         * sdbout.c: Likewise.
11173         * sel-sched-dump.c: Likewise.
11174         * sel-sched-ir.c: Likewise.
11175         * simplify-rtx.c: Likewise.
11176         * stmt.c: Likewise.
11177         * stor-layout.c: Likewise.
11178         * store-motion.c: Likewise.
11179         * targhooks.c: Likewise.
11180         * tree-cfg.c: Likewise.
11181         * tree-cfgcleanup.c: Likewise.
11182         * tree-dump.c: Likewise.
11183         * tree-eh.c: Likewise.
11184         * tree-inline.c: Likewise.
11185         * tree-nomudflap.c: Likewise.
11186         * tree-object-size.c: Likewise.
11187         * tree-optimize.c: Likewise.
11188         * tree-outof-ssa.c: Likewise.
11189         * tree-phinodes.c: Likewise.
11190         * tree-profile.c: Likewise.
11191         * tree-ssa-ccp.c: Likewise.
11192         * tree-ssa-coalesce.c: Likewise.
11193         * tree-ssa-live.c: Likewise.
11194         * tree-ssa-loop-niter.c: Likewise.
11195         * tree-ssa-loop-prefetch.c: Likewise.
11196         * tree-ssa-loop.c: Likewise.
11197         * tree-ssa-structalias.c: Likewise.
11198         * tree-ssa-uninit.c: Likewise.
11199         * tree-ssa.c: Likewise.
11200         * tree-vect-data-refs.c: Likewise.
11201         * tree-vect-loop-manip.c: Likewise.
11202         * tree-vect-loop.c: Likewise.
11203         * tree-vect-patterns.c: Likewise.
11204         * tree-vect-stmts.c: Likewise.
11205         * tree-vrp.c: Likewise.
11206         * varasm.c: Likewise.
11207         * vec.c: Likewise.
11208         * web.c: Likewise.
11209         * xcoffout.c: Likewise.
11210
11211 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
11212
11213         * gengtype.c (write_field_root): New function.
11214         (write_root): Use it.
11215
11216 2010-07-07  Wei Guozhi  <carrot@google.com>
11217
11218         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
11219         of lowest bits to lshift/compare): Add a missing line.
11220
11221 2010-07-07  Wei Guozhi  <carrot@google.com>
11222
11223         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
11224         of lowest bits to lshift/compare): New.
11225
11226 2010-07-07  Tom Tromey  <tromey@redhat.com>
11227
11228         * doc/tm.texi: Update.
11229         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
11230         Add @hook.
11231         * target.def (want_debug_pub_sections): New hook.
11232         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
11233         * dwarf2out.c (add_pubname_string): Check
11234         targetm.want_debug_pub_sections.
11235         (add_pubname): Likewise.
11236         (add_pubtype): Likewise.
11237
11238 2010-07-07  Jie Zhang  <jie@codesourcery.com>
11239
11240         * genautomata.c (output_automata_list_min_issue_delay_code):
11241         Correctly decompress min_issue_delay.
11242
11243 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
11244
11245         PR rtl-optimization/44404
11246         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
11247         possible, use reg_overlap_mentioned_p instead.
11248
11249 2010-07-07  Duncan Sands  <baldrick@free.fr>
11250
11251         PR middle-end/41355
11252         * tree.c (build_function_type_skip_args): Copy the original type using
11253         build_distinct_type_copy rather than copy_node.
11254
11255 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
11256
11257         PR target/44850
11258         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
11259         revision 161876.
11260         (ix86_expand_prologue): Likewise.
11261         (ix86_handle_fndecl_attribute): Likewise.
11262         (ix86_asm_declare_function_name): Likewise.
11263         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
11264         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
11265         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
11266         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
11267         * doc/extend.texi: Likewise.
11268
11269 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
11270
11271         PR target/44844
11272         * config/i386/i386.md (rdrand<mode>): Changed to expand to
11273         retry if the carry flag isn't valid.
11274         (rdrand<mode>_1): New.
11275
11276 2010-07-07  Richard Guenther  <rguenther@suse.de>
11277
11278         PR middle-end/44790
11279         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
11280         for expanding the constant offset for MEM_REFs.
11281
11282 2010-07-07  Richard Guenther  <rguenther@suse.de>
11283
11284         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
11285         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
11286         * gimple.h (is_gimple_operand): Remove.
11287         * gimple.c (is_gimple_operand): Likewise.
11288         (walk_gimple_op): Fix wi->val_only setting for calls.
11289         * tree-cfg.c (verify_gimple_call): Fix argument validation.
11290         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
11291         invalid gimple calls.
11292
11293 2010-07-06  Jan Hubicka  <jh@suse.cz>
11294
11295         * lto-cgraph.c (output_cgraph): Add missing declaration.
11296
11297 2010-07-06  Jan Hubicka  <jh@suse.cz>
11298
11299         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
11300         partition.
11301
11302 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
11303
11304         * doc/gimple.texi (GIMPLE_DEBUG): Document.
11305         * doc/rtl.texi (Debug Information): New node.
11306         (NOTE_INSN_VAR_LOCATION): Document.
11307         (debug_insn): Likewise.
11308         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
11309
11310 2010-07-07  Jan Hubicka  <jh@suse.cz>
11311
11312         With parts by Richard Guenther.
11313
11314         PR middle-end/44813
11315         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
11316         for functions passed by reference.
11317         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
11318         in memory when passed by reference.
11319         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
11320         beggining.
11321         * ipa-split.c (split_function): Cleanup way return value is passed;
11322         handle SSA DECL_BY_REFERENCE retvals.
11323         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
11324         DECL_BY_REFERENCE is set.
11325         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
11326         find_what_p_points_to): Handle RESULT_DECL.
11327         * tree-inline.c (declare_return_variable): Get new entry_block argument;
11328         when passing by reference ensure that RESULT_DECL is gimple_val.
11329         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
11330         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
11331
11332 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
11333
11334         PR rtl-optimization/44787
11335         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
11336         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
11337
11338 2010-07-06  Jan Hubicka  <jh@suse.cz>
11339
11340         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
11341         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
11342         with body can prevail.
11343         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
11344         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
11345         * cgraph.c (cgraph_get_node_or_alias): New function.
11346         * cgraph.h (cgraph_get_node_or_alias): Declare.
11347
11348 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
11349
11350         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
11351         support.
11352         (ix86_expand_prologue): Likewise.
11353         (ix86_handle_fndecl_attribute): Likewise.
11354         (ix86_asm_declare_function_name): New function for
11355         ASM_DECLARE_FUNCTION_NAME.
11356         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
11357         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
11358         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
11359         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
11360         * doc/extend.texi: Adjust documentation about ms_hook_prologue
11361         attribute.
11362
11363 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
11364
11365         * config/i386/i386.md (immediate_operand): New mode attribute.
11366
11367         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
11368         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
11369         using P mode iterator.
11370         (pro_epilogue_adjust_stack_di_2): Rename from
11371         pro_epilogue_adjust_stack_rex64_2.
11372
11373         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
11374
11375 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
11376
11377         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
11378         through gen_mov_insv_1 function pointer.
11379         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
11380         gen_truncxf<mode>2 through gen_truncxf function pointer.
11381         (remainder<mode>3): Ditto.
11382         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
11383         (allocate_stack): Call gen_allocate_stack_worker_64 or
11384         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
11385         function pointer.
11386         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
11387         function pointer.
11388
11389 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
11390
11391         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
11392         operand constraint instead of <r><i>m.
11393
11394 2010-07-06  Richard Guenther  <rguenther@suse.de>
11395
11396         PR middle-end/44828
11397         * convert.c (convert_to_integer): Watch out for overflowing
11398         MULT_EXPR as well.
11399
11400 2010-07-05  Jan Hubicka  <jh@suse.cz>
11401
11402         * lto-streamer.c (write_symbol_vec): Rename to ...
11403         (write_symbol) ... this one; write only symbol given and when
11404         present in cache. Sanity check that what is defined is present
11405         in cgraph/varpool with body/finalized decl.
11406         (write_symbols_of_kind): Remove.
11407         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
11408         pairs to produce symtab.
11409         (produce_asm_for_decls): Update call of produce_symtab; don't do so
11410         when doing WPA streaming.
11411
11412 2010-07-05  Jan Hubicka  <jh@suse.cz>
11413
11414         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
11415         function is still available to fold into.
11416
11417 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
11418
11419         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
11420         * function.h (struct_function): Change type of local_decls field
11421         to a VEC.
11422         (add_local_decl): New function.
11423         (FOR_EACH_LOCAL_DECL): New macro.
11424         * cfgexpand.c (init_vars_expansion): Adjust for new type of
11425         cfun->local_decls.
11426         (estimated_stack_frame_size): Likewise.
11427         (expand_used_vars): Likewise.
11428         * cgraphbuild.c (build_cgraph_edges): Likewise.
11429         * function.c (instantiate_decls_1): Likewise.
11430         * ipa-struct-reorg.c (build_data_structure): Likewise.
11431         * ipa-type-escape.c (analyze_function): Likewise.
11432         * lto-streamer-in.c (input_function): Likewise.
11433         * lto-streamer-out.c (output_function): Likewise.
11434         * tree-ssa-live.c (remove_unused_locals): Likewise.
11435         * tree.c (free_lang_data_in_decl): Likewise.
11436         (find_decls_types_in_node): Likewise.
11437         * omp-low.c (remove_exit_barrier): Likewise.
11438         (expand_omp_taskreg): Likewise.
11439         (list2chain): Rename to...
11440         (vec2chain): ...this.  Adjust.
11441         * cgraphunit.c (assemble_thunk): Call add_local_decl.
11442         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
11443         * gimple-low.c (record_vars_into): Likewise.
11444         * tree-inline.c (remap_decls): Likewise.
11445         (declare_return_variable): Likewise.
11446         (declare_inline_vars): Likewise.
11447         (copy_forbidden): Adjust for new type of cfun->local_decls.
11448         (add_local_variables): New function.
11449         (expand_call_inline): Call it.
11450         (tree_function_versioning): Likewise.
11451
11452 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
11453
11454         AVX Programming Reference (June, 2010)
11455         * config/i386/cpuid.h (bit_F16C): New.
11456         (bit_RDRND): Likewise.
11457         (bit_FSGSBASE): Likewise.
11458
11459         * config/i386/i386-builtin-types.def: Add
11460         "DEF_FUNCTION_TYPE (UINT16)", function types for
11461         float16 <-> float conversions and
11462         "DEF_FUNCTION_TYPE (VOID, UINT64)".
11463
11464         * config/i386/i386-c.c (ix86_target_macros_internal): Support
11465         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
11466         OPTION_MASK_ISA_F16C.
11467
11468         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
11469         (OPTION_MASK_ISA_RDRND_SET): Likewise.
11470         (OPTION_MASK_ISA_F16C_SET): Likewise.
11471         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
11472         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
11473         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
11474         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
11475         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
11476         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
11477         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
11478         (override_options): Handle them.
11479         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
11480         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
11481         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
11482         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
11483         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
11484         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
11485         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
11486         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
11487         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
11488         (bdesc_args): Likewise.
11489         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
11490         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
11491         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
11492         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
11493         Handle non-memory store.
11494
11495         * config/i386/i386.h (TARGET_FSGSBASE): New.
11496         (TARGET_RDRND): Likewise.
11497         (TARGET_F12C): Likewise.
11498
11499         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
11500         (UNSPEC_VCVTPS2PH): Likewise.
11501         (UNSPECV_RDFSBASE): Likewise.
11502         (UNSPECV_RDGSBASE): Likewise.
11503         (UNSPECV_WRFSBASE): Likewise.
11504         (UNSPECV_WRGSBASE): Likewise.
11505         (UNSPECV_RDRAND): Likewise.
11506         (rdfsbase<mode>): Likewise.
11507         (rdgsbase<mode>): Likewise.
11508         (wrfsbase<mode>): Likewise.
11509         (wrgsbase<mode>): Likewise.
11510         (rdrand<mode>): Likewise.
11511
11512         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
11513
11514         * config/i386/immintrin.h (_rdrand_u16): New.
11515         (_rdrand_u32): Likewise.
11516         (_readfsbase_u32): Likewise.
11517         (_readfsbase_u64): Likewise.
11518         (_readgsbase_u32): Likewise.
11519         (_readgsbase_u64): Likewise.
11520         (_writefsbase_u32): Likewise.
11521         (_writefsbase_u64): Likewise.
11522         (_writegsbase_u32): Likewise.
11523         (_writegsbase_u64): Likewise.
11524         (_rdrand_u64): Likewise.
11525         (_cvtsh_ss): Likewise.
11526         (_mm_cvtph_ps): Likewise.
11527         (_mm256_cvtph_ps): Likewise.
11528         (_cvtss_sh): Likewise.
11529         (_mm_cvtps_ph): Likewise.
11530         (_mm256_cvtps_ph): Likewise.
11531
11532         * config/i386/sse.md (vcvtph2ps): New.
11533         (*vcvtph2ps_load): Likewise.
11534         (vcvtph2ps256): Likewise.
11535         (vcvtps2ph): Likewise.
11536         (*vcvtps2ph): Likewise.
11537         (*vcvtps2ph_store): Likewise.
11538         (vcvtps2ph256): Likewise.
11539
11540         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
11541
11542         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
11543
11544 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
11545
11546         PR bootstrap/44512
11547         * genenums.c (main): Output include of insn-constants.h
11548         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
11549
11550 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
11551
11552         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
11553         (override_options): Initialize it.
11554         (ix86_expand_prologue): Use it.
11555
11556 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
11557
11558         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
11559
11560 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
11561
11562         * double-int.h (fit_double_type): Remove declaration.
11563         * double-int.c (fit_double_type): Remove function.
11564         * tree.h (int_fits_type_p): Adjust prototype.
11565         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
11566         instead of fit_double_type.
11567         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
11568         instead of fit_double_type and build_int_cst_wide.
11569         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
11570         instead of fit_double_type and build_int_cst_wide.
11571         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
11572         of fit_double_type.
11573
11574 2010-07-05  Jan Hubicka  <jh@suse.cz>
11575
11576         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
11577         in_other_partition.
11578         * lto-cgraph.c (referenced_from_other_partition_p,
11579         reachable_from_other_partition_p): Use in_other_partition flags.
11580         (output_node, output_varpool_node): COMDAT nodes always have private
11581         copies and thus are never used from other partition.
11582
11583 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
11584
11585         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
11586         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
11587         * config/ia64/ia64.c Include reload.h.
11588         (ia64_memory_move_cost): New function.
11589         (TARGET_MEMORY_MOVE_COST): Define.
11590         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
11591         memory_move_cost.
11592
11593 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
11594
11595         PR middle-end/42505
11596         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
11597         comments about cost model.
11598         (try_add_cand_for):  Add second strategy for choosing initial set
11599         based on original IVs, controlled by ORIGINALP argument.
11600         (get_initial_solution): Add ORIGINALP argument.
11601         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
11602         (find_optimal_iv_set): Try two different strategies for choosing
11603         the IV set, and return the one with lower cost.
11604
11605 2010-07-05  Richard Guenther  <rguenther@suse.de>
11606
11607         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
11608
11609 2010-07-05  Richard Guenther  <rguenther@suse.de>
11610
11611         * tree.c (reference_alias_ptr_type): New function.
11612         * tree.h (reference_alias_ptr_type): Declare.
11613         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
11614         allow non-TARGET_MEM_REF new refs.
11615         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
11616         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
11617         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
11618         (create_mem_ref): Get alias pointer type.  Adjust calls to
11619         create_mem_ref_raw.
11620         (maybe_fold_tmr): Likewise.
11621         * tree-flow.h (create_mem_ref): Adjust prototype.
11622
11623 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
11624
11625         PR c++/44808
11626         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
11627         *from_p is VAR_DECL.
11628
11629 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
11630
11631         * tree.h (build_call_list): Remove.
11632         * tree.c (build_call_list): Remove.
11633
11634 2010-07-05  Richard Guenther  <rguenther@suse.de>
11635
11636         * double-int.h (double_int_sub): Declare.
11637         * double-int.c (double_int_sub): New function.
11638         * dwarf2out.c (field_byte_offset): Use it.
11639         * fixed-value.c (do_fixed_add): Likewise.
11640         (do_fixed_multiply): Likewise.
11641         (do_fixed_divide): Likewise.
11642         * tree-predcom.c (add_ref_to_chain): Likewise.
11643         (determine_roots_comp): Likewise.
11644         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
11645
11646 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
11647
11648         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
11649         implementations.
11650
11651 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
11652
11653         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
11654         * arm-modes.def (CC_NOTB): Don't define.
11655         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
11656         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
11657         (LTUGEU): New code_iterator.
11658         (cnb, optab): New corresponding code_attrs.
11659         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
11660         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
11661         using LTUGEU.
11662         (addsi3_carryin_shift_<optab>): Likewise.
11663         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
11664         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
11665         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
11666         (subsi3_compare): Renamed from subsi3_compare0_c.
11667         Change CC_NOTB to CC.
11668         (arm_subsi3_insn): Allow constants for operand 0.
11669         (compare_scc peephole for eq case): New.
11670         (compare_scc splitters): Change CC_NOTB to CC.
11671
11672 2010-07-05  Richard Guenther  <rguenther@suse.de>
11673
11674         * tree-ssa-loop-im.c (for_each_index): Do not handle
11675         ALIGN_INDIRECT_REF.
11676         (gen_lsm_tmp_name): Likewise.
11677         * tree-dump.c (dequeue_and_dump): Likewise.
11678         * tree-pretty-print.c (dump_generic_node): Likewise.
11679         (op_code_prio): Likewise.
11680         (op_symbol_code): Likewise.
11681         * tree.c (staticp): Likewise.
11682         (build1_stat): Likewise.
11683         * tree.h (INDIRECT_REF_P): Likewise.
11684         * fold-const.c (maybe_lvalue_p): Likewise.
11685         (operand_equal_p): Likewise.
11686         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11687         (ao_ref_init_from_vn_reference): Likewise.
11688         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
11689         (find_interesting_uses_address): Likewise.
11690         * dwarf2out.c (loc_list_from_tree): Likewise.
11691         * gimplify.c (gimplify_expr): Likewise.
11692         * tree-eh.c (tree_could_trap_p): Likewise.
11693         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11694         * cfgexpand.c (expand_debug_expr): Likewise.
11695         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
11696         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
11697         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
11698         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
11699         * tree-ssa-operands.c (get_expr_operands): Likewise.
11700         * expr.c (safe_from_p): Likewise.
11701         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
11702         * tree-vect-data-refs.c (vect_setup_realignment): Build
11703         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
11704         * tree-vect-stmts.c (vectorizable_load): Likewise.
11705         * tree.def (ALIGN_INDIRECT_REF): Remove.
11706
11707 2010-07-05  Richard Guenther  <rguenther@suse.de>
11708
11709         PR tree-optimization/44784
11710         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
11711         for inserted stmts.
11712         (find_or_generate_expression): Fix SCCVN insertion check.
11713
11714 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
11715
11716         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
11717         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
11718         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
11719         directives.
11720
11721 2010-07-05  Ira Rosen  <irar@il.ibm.com>
11722
11723         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
11724         statements that are not vectorized.
11725         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
11726         in INSIDE_COST.
11727
11728 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
11729
11730         PR bootstrap/44820
11731         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
11732
11733 2010-07-05  Richard Guenther  <rguenther@suse.de>
11734
11735         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
11736         RESULT_DECLs properly.
11737
11738 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
11739
11740         PR rtl-optimization/44695
11741         * config/i386/i386.md (extract_code): Removed.
11742         (<u>divmodqi4): Likewise.
11743         (divmodqi4): New.
11744         (udivmodqi4): Likewise.
11745         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
11746         (udivmodhiqi3): Likewise.
11747
11748 2010-07-04  Jan Hubicka  <jh@suse.cz>
11749
11750         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
11751
11752 2010-07-04  Jan Hubicka  <jh@suse.cz>
11753
11754         * cgraphunit.c (init_cgraph): Only initialize dump file if it
11755         is not already initialized.
11756
11757 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
11758
11759         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
11760         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
11761         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
11762         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
11763         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
11764         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
11765         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
11766         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
11767         (sync_new_nand_optab): Redefine as macros.
11768         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
11769         Delete.
11770         (direct_optab_index): New enum.
11771         (direct_optab_d): New structure.
11772         (direct_optab): New typedef.
11773         (direct_optab_table): Declare.
11774         (direct_optab_handler, set_direct_optab_handler): New functions.
11775         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
11776         (sync_lock_release_optab): New macros.
11777         * optabs.c (direct_optab_table): New variable.
11778         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
11779         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
11780         cmpstr_optab and cmpstrn_optab.
11781         (emit_conditional_move): Likewise for movcc_optab.
11782         (can_conditionally_move_p): Likewise for movcc_gen_code.
11783         (init_insn_codes): Clear direct_optab_table.
11784         (init_optabs): Don't initialize the new "direct optabs" here.
11785         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
11786         vcond_gen_code.
11787         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
11788         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
11789         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
11790         (expand_sync_operation): Likewise other sync_*_optabs.
11791         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
11792         to sync_compare_and_swap_optab.
11793         (expand_sync_lock_test_and_set): Use direct_optab_handler for
11794         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
11795         to the names of both.
11796         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
11797         cmpstr_optab and cmpstrn_optab.
11798         (expand_builtin_lock_release): Likewise sync_lock_release.
11799         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
11800         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
11801         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
11802         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
11803         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
11804         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
11805         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
11806         (sync_lock_test_and_set, sync_lock_release): Delete.
11807         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
11808         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
11809         * genopinit.c (optabs): Use set_direct_optab_handler for the new
11810         macro optabs.
11811         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
11812         the "optab" local variable.  Use direct_optab_handler for optab and
11813         sync_compare_and_swap_optab.
11814         * reload1.c (reload_in_optab, reload_out_optab): Delete.
11815         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
11816         reload_in_optab and reload_out_optab.
11817         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
11818         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
11819         * config/pa/pa.c (pa_secondary_reload): Likewise.
11820         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
11821         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
11822         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
11823         (VMSupportsCS8_builtin): Likewise.
11824
11825 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
11826
11827         * optabs.h (optab_handlers): Change type of insn_code to int.
11828         (optab_handler, set_optab_handler, convert_optab_handler)
11829         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
11830         CODE_FOR_nothing".
11831         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
11832         (init_insn_codes): Zero both the above arrays.
11833         (init_optabs): Never call init_insn_codes first time around.
11834
11835 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
11836
11837         * optabs.h (optab_handler, convert_optab_handler): Turn into
11838         inline functions that return an insn code.
11839         (set_optab_handler, set_convert_optab_handler): New functions.
11840         * builtins.c: Replace optab_handler(X)->insn_code with
11841         optab_handler or set_optab_handler thoughout.  Likewise
11842         convert_optab_handler(X)->insn_code with convert_optab_handler
11843         and set_convert_optab_handler.
11844         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
11845         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
11846         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
11847         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
11848         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
11849         config/spu/spu.c: Likewise.
11850
11851 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11852
11853         PR target/44531
11854         * config.gcc (sh*-*-*): Use regular expressions instead of
11855         the 'i' modifier for sed substitutions.
11856
11857 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
11858
11859         * gimple.c (gimple_body): Comments added.
11860
11861 2010-07-04  Richard Guenther  <rguenther@suse.de>
11862
11863         PR middle-end/44809
11864         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
11865         of an INDIRECT_REF.
11866
11867 2010-07-04  Richard Guenther  <rguenther@suse.de>
11868
11869         PR tree-optimization/44479
11870         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
11871         extra SSA name copy statements which preserves points-to
11872         information.
11873         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
11874         Copy points-to information for all pointers.  Properly handle
11875         MEM_REFs.
11876         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
11877         copy statements.
11878         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
11879         dependency.
11880
11881 2010-07-04  Richard Guenther  <rguenther@suse.de>
11882
11883         PR middle-end/44785
11884         * tree-inline.c (initialize_inlined_parameters): Do not
11885         re-use pointer-map slot over remap_type call.
11886
11887 2010-07-04  Richard Guenther  <rguenther@suse.de>
11888
11889         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
11890
11891 2010-07-04  Richard Guenther  <rguenther@suse.de>
11892
11893         PR tree-optimization/44656
11894         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
11895         again after value-replacing in the defintions lhs.
11896
11897 2010-07-04  Ira Rosen  <irar@il.ibm.com>
11898             Revital Eres  <eres@il.ibm.com>
11899
11900         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
11901         Document new arguments.
11902         * doc/tm.texi: Regenerate.
11903         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
11904         Handle unaligned store.
11905         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
11906         * target.def (builtin_vectorization_cost): Add new arguments.
11907         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
11908         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
11909         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
11910         (vect_vfa_segment_size): Fix indentation.
11911         * tree-vectorizer.h (struct _vect_peel_info): New.
11912         (struct _vect_peel_extended_info): New.
11913         (struct _loop_vec_info): Add new field for peeling hash table and a
11914         macro for its access.
11915         (VECT_MAX_COST): Define.
11916         (vect_get_load_cost): Declare.
11917         (vect_get_store_cost, vect_get_known_peeling_cost,
11918         vect_get_single_scalar_iteraion_cost): Likewise.
11919         (vect_supportable_dr_alignment): Add new argument.
11920         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
11921         field.
11922         (destroy_loop_vec_info): Free peeling hash table.
11923         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
11924         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
11925         vect_analyze_slp. Fix indentation.
11926         (vect_get_single_scalar_iteraion_cost): New function.
11927         (vect_get_known_peeling_cost): Likewise.
11928         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
11929         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
11930         statement. Move outside cost calculation inside unknown peeling case.
11931         Call vect_get_known_peeling_cost for known amount of peeling.
11932         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
11933         reference to the print message of forced alignment.
11934         (vect_verify_datarefs_alignment): Update call to
11935         vect_supportable_dr_alignment.
11936         (vect_get_data_access_cost): New function.
11937         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
11938         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
11939         vect_peeling_hash_choose_best_peeling): Likewise.
11940         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
11941         to store all the accesses in the loop and find best possible access to
11942         align using peeling for known alignment case. For unknown alignment
11943         check if stores are preferred or if peeling is worthy.
11944         (vect_find_same_alignment_drs): Analyze pairs of loads too.
11945         (vect_supportable_dr_alignment): Add new argument and check aligned
11946         accesses according to it.
11947         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
11948         (cost_for_stmt): Call vect_get_stmt_cost.
11949         (vect_model_simple_cost): Likewise.
11950         (vect_model_store_cost): Call vect_get_stmt_cost. Call
11951         vect_get_store_cost to calculate the cost of the statement.
11952         (vect_get_store_cost): New function.
11953         (vect_model_load_cost): Call vect_get_stmt_cost. Call
11954         vect_get_load_cost to calculate the cost of the statement.
11955         (vect_get_load_cost): New function.
11956         (vectorizable_store): Update call to vect_supportable_dr_alignment.
11957         (vectorizable_load): Likewise.
11958         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
11959         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
11960         arguments. Handle unaligned store.
11961         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
11962         (rs6000_builtin_support_vector_misalignment): Return true for word and
11963         double word alignments for VSX.
11964         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
11965         vect_supportable_dr_alignment and builtin_vectorization_cost.
11966
11967 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11968
11969         PR target/44597
11970         * config/pa/predicates.md (prefetch_cc_operand): Remove.
11971         (prefetch_nocc_operand): Likewise.
11972         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
11973         (prefetch_20): New insn.
11974         (prefetch_cc): Remove.
11975         (prefetch_nocc): Likewise.
11976
11977 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11978
11979         * expr.c (vector_mode_valid_p): Move to c-common.c.
11980         * expr.h (vector_mode_valid_p): Do not declare here.
11981         * system.h: Poison GCC_EXPR_H in front-ends.
11982         * Makefile.in: Update dependencies.
11983
11984 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11985
11986         PR target/44705
11987         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
11988
11989 2010-07-03  Jan Hubicka  <jh@suse.cz>
11990
11991         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
11992         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
11993         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
11994         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
11995         Likewise.
11996
11997         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
11998         Update timevars.V
11999         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
12000         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
12001         TV_IPA_LTO_DECL_OUT): New.
12002         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
12003
12004 2010-07-03  Jan Hubicka  <jh@suse.cz>
12005
12006         * ipa-inline.c (update_edge_key): Break out from ...
12007         update_callers_keys): ... here;
12008         (update_callee_keys): Update only the edges from caller to callee.
12009         (update_all_calle_keys): Do what update_calle_keys did.
12010         (decide_inlining_of_small_functions): Avoid recomputing of all
12011         callees when badness increase.
12012
12013 2010-07-03  Jie Zhang  <jie@codesourcery.com>
12014
12015         * config/arm/arm.c (arm_attr_length_move_neon): New.
12016         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
12017         * config/arm/neon.md (define_mode_attr V_slen): Remove.
12018         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
12019         to compute length attribute.
12020
12021 2010-07-03  Jie Zhang  <jie@codesourcery.com>
12022
12023         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
12024         as predicate for operand 1 and remove its constraint.
12025         * config/arm/predicates.md (vfp_register_operand): New.
12026         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
12027         (*push_fp_multi): Likewise.
12028
12029 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
12030
12031         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
12032
12033 2010-07-03  Jan Hubicka  <jh@suse.cz>
12034
12035         * config/i386/i386.c (override_options): Revert accidental commit.
12036
12037 2010-07-02  Le-Chun Wu  <lcwu@google.com>
12038
12039         PR c++/44128
12040         * doc/invoke.texi: Update documentation of -Wshadow.
12041
12042 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
12043             Julian Brown  <julian@codesourcery.com>
12044             Sandra Loosemore  <sandra@codesourcery.com>
12045
12046         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
12047         comparisons.  Adjust to take both operands.
12048         (arm_select_cc_mode): Handle DImode comparisons.
12049         (arm_gen_compare_reg): Generate a scratch register for DImode
12050         comparisons which require one.  Use xor for Thumb equality checks.
12051         (arm_const_double_by_immediates): New.
12052         (arm_print_operand): Allow 'Q' and 'R' for constants.
12053         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
12054         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
12055         arm_canonicalize_comparison.
12056         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
12057         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
12058         prototype.
12059         (arm_const_double_by_immediates): Declare.
12060         * config/arm/constraints.md (Di): New constraint.
12061         * config/arm/predicates.md (arm_immediate_di_operand)
12062         (arm_di_operand, cmpdi_operand): New.
12063         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
12064         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
12065         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
12066         (cstoredi4): Handle non-Cirrus also.
12067
12068 2010-07-02  Julian Brown  <julian@codesourcery.com>
12069             Sandra Loosemore  <sandra@codesourcery.com>
12070
12071         PR target/43703
12072         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
12073         (smax<mode>3): Disable for NEON float modes when
12074         flag_unsafe_math_optimizations is false.
12075         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
12076         (*mul<mode>3_neon)
12077         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
12078         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
12079         for NEON float modes when flag_unsafe_math_optimizations is false.
12080         (quad_halves_<code>v4sf): Only enable if
12081         flag_unsafe_math_optimizations is true.
12082         * doc/invoke.texi (ARM Options): Add note about floating point
12083         vectorization requiring -funsafe-math-optimizations.
12084
12085 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
12086             Julian Brown  <julian@codesourcery.com>
12087
12088         * config/arm/neon.md (UNSPEC_VABA): Delete.
12089         (UNSPEC_VABAL): Delete.
12090         (UNSPEC_VABS): Delete.
12091         (UNSPEC_VMUL_N): Delete.
12092         (adddi3_neon): New.
12093         (subdi3_neon): New.
12094         (mul<mode>3add<mode>_neon): Make the pattern named.
12095         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
12096         (neon_vadd<mode>): Replace with define_expand, and move the remaining
12097         unspec parts...
12098         (neon_vadd<mode>_unspec): ...to this.
12099         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
12100         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
12101         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
12102         (neon_vaba<mode>): Rewrite in terms of vabd.
12103         (neon_vabal<mode>): Rewrite in terms of vabdl.
12104         (neon_vabs<mode>): Rewrite without unspec.
12105         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
12106         (*arm_subdi3): Likewise.
12107         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
12108         No_op attribute to disable assembly output checks.
12109         * config/arm/arm_neon.h: Regenerated.
12110         * doc/arm-neon-intrinsics.texi: Regenerated.
12111
12112 2010-07-02  Jan Hubicka  <jh@suse.cz>
12113
12114         * ipa-split.c (split_function): For aggregate values, set the return
12115         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
12116         *<retval> = fncall.part ().
12117         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
12118
12119 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
12120
12121         * config/arm/neon.md (UNSPEC_VAND): Delete.
12122         (UNSPEC_VBIC): Delete.
12123         (UNSPEC_VCLZ): Delete.
12124         (UNSPEC_VCNT): Delete.
12125         (UNSPEC_VEOR): Delete.
12126         (UNSPEC_VORN): Delete.
12127         (UNSPEC_VORR): Delete.
12128         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
12129         core registers too.
12130         (anddi3_neon): Likewise.
12131         (orndi3_neon): Likewise.
12132         (bicdi3_neon): Likewise.
12133         (xordi3_neon): Likewise.
12134         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
12135         rid of unspec and handle unused operand.
12136         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
12137         * config/arm/predicates.md (imm_for_neon_logic_operand):
12138         Require TARGET_NEON.
12139         (imm_for_neon_inv_logic_operand): Likewise.
12140         * config/arm/arm.md (define_split for logical_binary_operator):
12141         Disable for NEON registers.
12142         (anddi3): Add new define_expand, and rename the insn.  Disable
12143         this insn for NEON, where anddi3_neon now applies.
12144         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
12145         (iordi3): As for anddi3.
12146         (xordi3): Likewise.
12147         * config/arm/neon.ml (Vand): Split DImode variants and mark them
12148         as No_op to disable testing for exact instruction match.
12149         (Vorr): Likewise.
12150         (Veor): Likewise.
12151         (Vbic): Likewise.
12152         (Vorn): Likewise.
12153         * config/arm/arm_neon.h: Regenerated.
12154         * doc/arm-neon-intrinsics.texi: Regenerated.
12155
12156 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
12157
12158         * expr.h (emit_stack_probe): Declare.
12159         * explow.c (emit_stack_probe): Make global.
12160         (anti_adjust_stack_and_probe): Fix comments.
12161         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
12162         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12163         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12164         * config/sparc/sparc.c: Include except.h.
12165         (sparc_emit_probe_stack_range): New function.
12166         (output_probe_stack_range): Likewise.
12167         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
12168         built-in stack checking is enabled.
12169         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
12170         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
12171         (probe_stack_range): New insn.
12172
12173 2010-07-02  Richard Guenther  <rguenther@suse.de>
12174
12175         PR target/43958
12176         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
12177         for argument alignment.
12178
12179 2010-07-02  Jan Hubicka  <jh@suse.cz>
12180
12181         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
12182         walk backwards from entry_bb to check only those basic block of header
12183         that might lead to execution of split part.
12184         (consider_split) ... here.
12185         (find_return_bb): Allow assignment in return BB.
12186         (find_retval): New.
12187         (split_function): Fix name of cloned function; take care of updating
12188         return value in return_bb containing move.
12189
12190 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
12191
12192         PR target/44771
12193         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
12194         used variable insn.
12195
12196 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
12197
12198         * implicit-zee.c (combine_reaching_defs): Fix long lines.
12199         (is_set_with_extension_DI): Delete.
12200         (struct zero_extend_info): New structure.
12201         (add_removable_zero_extend): New function.
12202         (find_removable_zero_extends): Use note_stores to find SETs.
12203         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
12204
12205 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
12206
12207         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
12208         is_miss_rate_acceptable. Pull total_positions computation
12209         out of the loops.  Early return if miss_positions exceeds
12210         the acceptable threshold.
12211         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
12212         is_miss_rate_acceptable after renaming of compute_miss_rate.
12213
12214 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
12215
12216         PR middle-end/44576
12217         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
12218         of 1000) for miss rate if the address diference is greater than or
12219         equal to the cache line size (the two reference will never hit the
12220         same cache line).
12221
12222 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
12223
12224         PR target/42835
12225         * config/arm/arm-modes.def (CC_NOTB): New mode.
12226         * config/arm/arm.c (get_arm_condition_code): Handle it.
12227         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
12228         * config/arm/arm.md (subsi3_compare0_c): New pattern.
12229         (compare_scc): Now a define_and_split.  Add a number of extra
12230         splitters before it.
12231
12232         PR target/42172
12233         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
12234         and ZERO_EXTEND.
12235         (arm_rtx_costs_1): Likewise.
12236         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
12237         * config/arm/arm.md (is_arch6): New attribute.
12238         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
12239         extendqisi2): Tighten the code somewhat, avoiding invalid
12240         RTL to occur in the expander patterns.
12241         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
12242         (thumb1_zero_extendhisi2_v6): Delete.
12243         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
12244         (thumb1_extendhisi2_v6): Delete.
12245         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
12246         (thumb1_extendqisi2_v6): Delete.
12247         (zero_extendhisi2 for register input splitter): New.
12248         (zero_extendqisi2 for register input splitter): New.
12249         (thumb1_extendhisi2 for register input splitter): New.
12250         (extendhisi2 for register input splitter): New.
12251         (extendqisi2 for register input splitter): New.
12252         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
12253         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
12254         and add support for a register alternative requiring a split.
12255         (thumb1_zero_extendqisi2): Likewise.
12256         (arm_zero_extendqisi2): Likewise.
12257         (arm_extendhisi2): Likewise.
12258         (arm_extendqisi2): Likewise.
12259
12260 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
12261
12262         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
12263         instead of an unspec.
12264         (neon_expand_vector_init): Likewise.
12265         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
12266         (UNSPEC_VDUP_LANE): Delete.
12267         (UNSPEC VDUP_N): Delete.
12268         (UNSPEC_VGET_HIGH): Delete.
12269         (UNSPEC_VGET_LANE): Delete.
12270         (UNSPEC_VGET_LOW): Delete.
12271         (UNSPEC_VMVN): Delete.
12272         (UNSPEC_VSET_LANE): Delete.
12273         (V_double_vector_mode): New.
12274         (vec_set<mode>_internal): Make code emitted match that for the
12275         corresponding intrinsics.
12276         (vec_setv2di_internal): Likewise.
12277         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
12278         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
12279         (neon_vset_lane<mode>): Combine double and quad patterns and
12280         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
12281         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
12282         (neon_vdup_n<mode>): Rewrite RTL without unspec.
12283         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
12284         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
12285         with neon_vdup_lanev2di, adjusting the pattern from the latter
12286         to be predicable for consistency.
12287         (neon_vdup_lane<mode>_internal): New.
12288         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
12289         to avoid using an unspec.
12290         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
12291         (neon_vdup_lanev2di): Turn into a define_expand.
12292         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
12293         (neon_vget_high<mode>): Replace with....
12294         (neon_vget_highv16qi): New pattern using canonical RTL.
12295         (neon_vget_highv8hi): Likewise.
12296         (neon_vget_highv4si): Likewise.
12297         (neon_vget_highv4sf): Likewise.
12298         (neon_vget_highv2di): Likewise.
12299         (neon_vget_low<mode>): Replace with....
12300         (neon_vget_lowv16qi): New pattern using canonical RTL.
12301         (neon_vget_lowv8hi): Likewise.
12302         (neon_vget_lowv4si): Likewise.
12303         (neon_vget_lowv4sf): Likewise.
12304         (neon_vget_lowv2di): Likewise.
12305
12306         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
12307         test for this emitting vmov.
12308         (Vset_lane): Likewise.
12309         (Vdup_n): Likewise.
12310         (Vmov_n): Likewise.
12311
12312         * doc/arm-neon-intrinsics.texi: Regenerated.
12313
12314 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
12315
12316         * config/arm/neon.md (vec_extractv2di): Correct error in register
12317         numbering to reconcile with neon_vget_lanev2di.
12318
12319 2010-07-02  Richard Guenther  <rguenther@suse.de>
12320
12321         * tree-ssa-structalias.c (pt_solution_set_var): New function.
12322         * tree-ssa-alias.h (pt_solution_set_var): Declare.
12323         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
12324         points-to information.
12325
12326 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
12327
12328         * config/s390/s390.c (override_options): Adopt prefetching
12329         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
12330
12331 2010-07-02  Jan Hubicka  <jh@suse.cz>
12332
12333         * df-problems.c (df_kill_notes): Do not collect dead  notes.
12334         (df_set_note): Just call add_reg_note.
12335         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
12336         df_create_unused_note): Do not deal with lists of old notes.
12337         (df_note_bb_compute): Likewise.
12338
12339 2010-07-02  Richard Guenther  <rguenther@suse.de>
12340
12341         * tree-ssa-structalias.c (find_func_aliases): Handle
12342         pointer alignment via BIT_AND_EXPR.
12343         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
12344
12345 2010-07-02  Richard Guenther  <rguenther@suse.de>
12346
12347         * tree-data-ref.c (initialize_data_dependence_relation): Handle
12348         mismatching number of dimensions properly.
12349
12350 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12351
12352         PR target/44707
12353         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
12354         (lo_sum (high ...) ...) patterns generated by earlier passes.
12355
12356 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12357
12358         * doc/install.texi (Prerequisites): Document Perl requirement on
12359         Solaris 2.
12360         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
12361
12362 2010-07-02  Richard Guenther  <rguenther@suse.de>
12363
12364         PR middle-end/44777
12365         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
12366
12367 2010-07-02  Jan Hubicka  <jh@suse.cz>
12368
12369         PR middle-end/44706
12370         * predict.c (predict_paths_for_bb): Handle case when control dependence
12371         BB has only abnormal edges.
12372
12373 2010-07-02  Richard Guenther  <rguenther@suse.de>
12374
12375         PR tree-optimization/44748
12376         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
12377         the embedded conversion in MEM_REFs.
12378
12379 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
12380
12381         * reload.c: Include toplev.h.
12382         * recog.c:  Likewise.
12383         * Makefile.in: Adjust dependencies.
12384
12385 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
12386
12387         PR debug/44694
12388         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
12389         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
12390
12391 2010-07-01  Richard Guenther  <rguenther@suse.de>
12392
12393         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
12394         types for offsets.
12395
12396 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
12397
12398         PR target/44732
12399         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
12400         Fix argument types.
12401
12402 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
12403
12404         PR target/44727
12405         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12406         Make sure operand 0 dies.
12407
12408 2010-07-01  Richard Guenther  <rguenther@suse.de>
12409
12410         PR middle-end/42834
12411         PR middle-end/44468
12412         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
12413         * doc/generic.texi (References to storage): Document MEM_REF.
12414         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
12415         (print_call_name): Likewise.
12416         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
12417         (build_simple_mem_ref_loc): New function.
12418         (mem_ref_offset): Likewise.
12419         * tree.h (build_simple_mem_ref_loc): Declare.
12420         (build_simple_mem_ref): Define.
12421         (mem_ref_offset): Declare.
12422         * fold-const.c: Include tree-flow.h.
12423         (operand_equal_p): Handle MEM_REF.
12424         (build_fold_addr_expr_with_type_loc): Likewise.
12425         (fold_comparison): Likewise.
12426         (fold_unary_loc): Fold
12427         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
12428         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
12429         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
12430         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
12431         (ptr_deref_may_alias_ref_p_1): Likewise.
12432         (ao_ref_base_alias_set): Properly differentiate base object for
12433         offset and TBAA.
12434         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
12435         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
12436         (indirect_refs_may_alias_p): Likewise.
12437         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
12438         chasing code.
12439         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
12440         (call_may_clobber_ref_p_1): Likewise.
12441         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
12442         * expr.c (expand_assignment): Handle MEM_REF.
12443         (store_expr): Handle MEM_REFs from STRING_CSTs.
12444         (store_field): If expanding a MEM_REF of a non-addressable
12445         decl use bitfield operations.
12446         (get_inner_reference): Handle MEM_REF.
12447         (expand_expr_addr_expr_1): Likewise.
12448         (expand_expr_real_1): Likewise.
12449         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
12450         * alias.c (ao_ref_from_mem): Handle MEM_REF.
12451         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
12452         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
12453         (dr_analyze_indices): Likewise.
12454         (dr_analyze_alias): Likewise.
12455         (object_address_invariant_in_loop_p): Likewise.
12456         * gimplify.c (mark_addressable): Handle MEM_REF.
12457         (gimplify_cond_expr): Build MEM_REFs.
12458         (gimplify_modify_expr_to_memcpy): Likewise.
12459         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
12460         (gimple_fold_indirect_ref): Adjust.
12461         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
12462         * tree.def (MEM_REF): New tree code.
12463         * tree-dfa.c: Include toplev.h.
12464         (get_ref_base_and_extent): Handle MEM_REF.
12465         (get_addr_base_and_unit_offset): New function.
12466         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
12467         * gimple-fold.c (may_propagate_address_into_dereference): Handle
12468         MEM_REF.
12469         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
12470         accesses if the array has just one dimension.  Remove always true
12471         parameter.  Do not require type compatibility here.
12472         (maybe_fold_offset_to_component_ref): Remove.
12473         (maybe_fold_stmt_indirect): Remove.
12474         (maybe_fold_reference): Remove INDIRECT_REF handling.
12475         Fold back to non-MEM_REF.
12476         (maybe_fold_offset_to_address): Simplify.  Deal with type
12477         mismatches here.
12478         (maybe_fold_reference): Likewise.
12479         (maybe_fold_stmt_addition): Likewise.  Also handle
12480         &ARRAY + I in addition to &ARRAY[0] + I.
12481         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
12482         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
12483         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
12484         * tree-ssa.c (useless_type_conversion_p): Make most pointer
12485         conversions useless.
12486         (warn_uninitialized_var): Handle MEM_REF.
12487         (maybe_rewrite_mem_ref_base): New function.
12488         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
12489         to SSA form.
12490         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
12491         INDIRECT_REF handling.
12492         (copy_tree_body_r): Handle MEM_REF.
12493         * gimple.c (is_gimple_addressable): Adjust.
12494         (is_gimple_address): Likewise.
12495         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
12496         invariant base are invariant.
12497         (is_gimple_min_lval): Adjust.
12498         (is_gimple_mem_ref_addr): New function.
12499         (get_base_address): Handle MEM_REF.
12500         (count_ptr_derefs): Likewise.
12501         (get_base_loadstore): Likewise.
12502         * gimple.h (is_gimple_mem_ref_addr): Declare.
12503         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
12504         * tree-cfg.c (verify_address): New function, split out from ...
12505         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
12506         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
12507         INDIRECT_REFs.
12508         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
12509         INDIRECT_REF.  Allow conversions.
12510         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
12511         a register does not change its size.
12512         (verify_types_in_gimple_reference): Verify MEM_REF.
12513         (verify_gimple_assign_single): Disallow INDIRECT_REF.
12514         Handle MEM_REF.
12515         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
12516         New.
12517         (mark_address_taken): Handle MEM_REF.
12518         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
12519         (get_asm_expr_operands): Pass opf_not_non_addressable.
12520         (get_expr_operands): Handle opf_[not_]non_addressable.
12521         Handle MEM_REF.  Remove INDIRECT_REF handling.
12522         * tree-vrp.c (check_array_ref): Handle MEM_REF.
12523         (search_for_addr_array): Likewise.
12524         (check_array_bounds): Likewise.
12525         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
12526         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
12527         (ref_always_accessed_p): Likewise.
12528         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
12529         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
12530         Handle MEM_REF.
12531         * cgraphbuild.c (mark_load): Properly check for NULL result
12532         from get_base_address.
12533         (mark_store): Likewise.
12534         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
12535         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
12536         handling for MEM_REF.
12537         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
12538         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
12539         * builtins.c (stabilize_va_list_loc): Use the function ABI
12540         valist type if we couldn't canonicalize the argument type.
12541         Always dereference with the canonical va-list type.
12542         (maybe_emit_free_warning): Handle MEM_REF.
12543         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
12544         memmove to memcpy.
12545         * builtins.c (fold_builtin_memory_op): Use ref-all types
12546         for all memcpy foldings.
12547         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
12548         (build_outer_var_ref): Likewise.
12549         (scan_omp_1_op): Likewise.
12550         (lower_rec_input_clauses): Likewise.
12551         (lower_lastprivate_clauses): Likewise.
12552         (lower_reduction_clauses): Likewise.
12553         (lower_copyprivate_clauses): Likewise.
12554         (expand_omp_atomic_pipeline): Likewise.
12555         (expand_omp_atomic_mutex): Likewise.
12556         (create_task_copyfn): Likewise.
12557         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
12558         Remove old union trick.  Initialize constant offsets.
12559         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
12560         INDIRECT_REF.  Init base_alias_set properly.
12561         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
12562         (vn_reference_fold_indirect): Adjust for MEM_REFs.
12563         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
12564         for ARRAY_REFs.
12565         (may_insert): Remove.
12566         (visit_reference_op_load): Do not test may_insert.
12567         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
12568         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
12569         a field to store the constant offset this op applies.
12570         (run_scc_vn): Adjust prototype.
12571         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
12572         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
12573         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
12574         bother about volatile qualifiers on pointers.
12575         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
12576         * tree-ssa-loop-ivopts.c
12577         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
12578         (strip_offset_1): Likewise.
12579         (find_interesting_uses_address): Replace INDIRECT_REF handling with
12580         MEM_REF handling.
12581         (get_computation_cost_at): Likewise.
12582         * ipa-pure-const.c (check_op): Handle MEM_REF.
12583         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
12584         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
12585         and constants.
12586         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
12587         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
12588         (eliminate_local_variables_1): Likewise.
12589         (create_call_for_reduction_1): Likewise.
12590         (create_loads_for_reductions): Likewise.
12591         (create_loads_and_stores_for_name): Likewise.
12592         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
12593         (ssa_accessed_in_tree): Handle MEM_REF.
12594         (ssa_accessed_in_assign_rhs): Likewise.
12595         (update_type_size): Likewise.
12596         (analyze_accesses_for_call_stmt): Likewise.
12597         (analyze_accesses_for_assign_stmt): Likewise.
12598         (transform_access_sites): Likewise.
12599         (transform_allocation_sites): Likewise.
12600         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
12601         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
12602         not handle INDIRECT_REF.
12603         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
12604         (cond_store_replacement): Likewise.
12605         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
12606         MEM_REF, no not handle INDIRECT_REFs.
12607         (insert_into_preds_of_block): Properly initialize avail.
12608         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
12609         for ARRAY_REFs.  Properly handle reference lookups that
12610         require a bit re-interpretation.
12611         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
12612         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
12613         (build_ref_for_offset_1): Remove.
12614         (build_ref_for_offset): Build MEM_REFs.
12615         (gate_intra_sra): Disable for now.
12616         (sra_ipa_modify_expr): Handle MEM_REF.
12617         (ipa_early_sra_gate): Disable for now.
12618         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
12619         MEM_REF handling.
12620         (disqualify_base_of_expr): Likewise.
12621         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
12622         MEM_REF handling.
12623         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
12624         Use mem_ref_offset.  Remove bogus folding.
12625         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
12626         (make_fancy_name_1): Add support for MEM_REF.
12627         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
12628         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
12629         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
12630         (compute_complex_ancestor_jump_func): Likewise.
12631         (ipa_analyze_virtual_call_uses): Likewise.
12632         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
12633         INDIRECT_REF folding with more generalized MEM_REF folding.
12634         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
12635         (forward_propagate_addr_into_variable_array_index): Also handle
12636         &ARRAY + I in addition to &ARRAY[0] + I.
12637         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
12638         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
12639         creates assignments with overlap.
12640         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
12641         (get_frame_field): Likewise.
12642         (get_nonlocal_debug_decl): Likewise.
12643         (convert_nonlocal_reference_op): Likewise.
12644         (struct nesting_info): Add mem_refs pointer-set.
12645         (create_nesting_tree): Allocate it.
12646         (convert_local_reference_op): Insert to be folded mem-refs.
12647         (fold_mem_refs): New function.
12648         (finalize_nesting_tree_1): Perform defered folding of mem-refs
12649         (free_nesting_tree): Free the pointer-set.
12650         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
12651         (vectorizable_load): Likewise.
12652         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
12653         (propagate_with_phi): Likewise.
12654         * tree-object-size.c (addr_object_size): Handle MEM_REFs
12655         instead of INDIRECT_REFs.
12656         (compute_object_offset): Handle MEM_REF.
12657         (plus_stmt_object_size): Handle MEM_REF.
12658         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
12659         for &MEM_REF.
12660         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
12661         (symbol_marked_for_renaming): Likewise.
12662         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
12663         (fold-const.o): Add $(TREE_FLOW_H).
12664         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
12665         (find_func_clobbers): Likewise.
12666         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
12667         (decompose_access): Likewise.
12668         (replace_field_acc): Likewise.
12669         (replace_field_access_stmt): Likewise.
12670         (insert_new_var_in_stmt): Likewise.
12671         (get_stmt_accesses): Likewise.
12672         (reorg_structs_drive): Disable.
12673         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
12674         (ix86_canonical_va_list_type): Likewise.
12675
12676 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
12677
12678         PR other/44566
12679         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
12680         * target.def (struct gcc_target): Replace enum reg_class with
12681         reg_class_t in hook argument / return types.
12682         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
12683         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
12684         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
12685         * targhooks.h (default_branch_target_register_class): Likewise.
12686         (default_ira_cover_classes, default_secondary_reload): Likewise.
12687         (default_memory_move_cost, default_register_move_cost): Likewise.
12688         * targhooks.c (default_branch_target_register_class): Likewise.
12689         (default_ira_cover_classes, default_secondary_reload): Likewise.
12690         (default_memory_move_cost, default_register_move_cost): Likewise.
12691         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
12692         * bt-load.c (branch_target_load_optimize): Likewise.
12693         * ira.c (setup_cover_and_important_classes): Likewise.
12694         * ira-costs.c (copy_cost): Likewise.
12695         * reload1.c (emit_input_reload_insns): Likewise.
12696         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
12697         * config/frv/frv.c (frv_secondary_reload): Likewise.
12698         * config/s390/s390.c (s390_secondary_reload): Likewise.
12699         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
12700         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
12701         (ix86_register_move_cost): Likewise.
12702         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
12703         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
12704         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
12705         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
12706         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
12707         (rs6000_ira_cover_classes): Likewise.
12708         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
12709         * config/picochip/picochip-protos.h (picochip_secondary_reload):
12710         Likewise.
12711         * config/pa/pa.c (pa_secondary_reload): Likewise.
12712         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
12713         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
12714         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
12715         * doc/tm.texi: Regenerate.
12716
12717 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
12718
12719         PR bootstrrap/44726
12720         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
12721         use.
12722         (build_alias_set_optimal_p): Likewise.
12723         (build_base_obj_set_for_drs): Likewise.
12724
12725 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
12726
12727         * target.def: Remove comment about licensing problems of function
12728         declarations.
12729
12730         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
12731         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
12732         * doc/tm.texi: Regenerate.
12733
12734         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
12735         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
12736
12737         * target.def (enum_va_list_p): Use DEFHOOK.
12738         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
12739         Rename ptype to ptree.
12740         * doc/tm.texi: Regenerate.
12741
12742         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
12743         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
12744         * doc/tm.texi: Regenerate.
12745
12746         * target.def (memory_move_cost): Use DEFHOOK.
12747         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
12748         Rename regclass AKA class to rclass.
12749         * doc/tm.texi: Regenerate.
12750
12751         * target.def (pragma_parse): Use DEFHOOK.
12752         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
12753         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
12754         * doc/tm.texi: Regenerate.
12755
12756         * target.def (pass_by_reference): Use DEFHOOK.
12757         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
12758         * doc/tm.texi: Regenerate.
12759
12760         * target.def (resolve_overloaded_builtin): Rename params to arglist.
12761         Use DEFHOOK.
12762         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
12763         * doc/tm.texi: Regenerate.
12764
12765         * target.def (return_pops_args): Use DEFHOOK.
12766         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
12767         Rename stack-size to size.
12768         * doc/tm.texi: Regenerate.
12769
12770         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
12771         last-sched_cycle to last_clock, cur_cycle to clock.
12772         * doc/tm.texi.in: Use @hook.
12773         * doc/tm.texi: Regenerate.
12774
12775         * target.def (print_operand, print_operand_address): Update comment.
12776         (print_operand_punct_valid_p): Likewise.
12777
12778 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12779
12780         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
12781         to rtl.h.
12782         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
12783         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
12784         * rtl-error.h: New.
12785         * regrename.c: Do not include toplev.h. Include rtl-error.h.
12786         * rtl-error.c: Likewise.
12787         * reload.c: Likewise.
12788         * recog.c:  Likewise.
12789         * sel-sched.c: Likewise.
12790         * function.c: Likewise.
12791         * reg-stack.c: Likewise.
12792         * cfgrtl.c: Likewise.
12793         * reload1.c: Likewise.
12794         * final.c: Include rtl-error.
12795         * Makefile.in: Adjust dependencies.
12796
12797 2010-06-30  Jan Hubicka  <jh@suse.cz>
12798
12799         PR middle-end/PR44706
12800         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
12801         to return the value.
12802
12803 2010-06-30  Michael Matz  <matz@suse.de>
12804
12805         PR bootstrap/44699
12806         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
12807         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
12808         a gimple reg, attach the original VDEF to the last store in the
12809         sequence.
12810
12811 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
12812
12813         PR other/44034
12814         * config/darwin.c (darwin_override_options): Use renamed
12815         targetm.asm_out.emit_unwind_label.
12816
12817 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
12818
12819         PR tree-optimization/39799
12820         * tree-inline.c (remap_ssa_name): Initialize variable only if
12821         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12822
12823 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
12824
12825         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
12826
12827 2010-06-30  Richard Guenther  <rguenther@suse.de>
12828
12829         PR target/44722
12830         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
12831         against oscillation with reverse peephole2.
12832
12833 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
12834
12835         PR target/44721
12836         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12837         Fix last commit.
12838
12839 2010-06-30  Nick Clifton  <nickc@redhat.com>
12840
12841         * config/rx/rx-modes.def: New file.
12842         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
12843         (CC_REGNUM): Define.
12844         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
12845         register.
12846         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
12847         (SELECT_CC_MODE): Define.
12848         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
12849         (reg:CC CC_REG) instead of (cc0).
12850         (attr "cc"): Delete.
12851         (cbranchsi4): Do not split compare and branch here. Instead move
12852         it to...
12853         (cbranchsi4_<code>): ... here.  New patterns.
12854         (cmpsi): Call rx-compare_redundant to find out if it is necessary
12855         to emit the compare instruction.
12856         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
12857         cc_status flags.
12858         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
12859         FIRST_PSEUDO_REGNUM.
12860         (rx_expand_prologue, rx_expand_epilogue): Likewise.
12861         (rx_notice_update_cc): Delete.
12862         (rx_cc_modes_compatible): New function.
12863         (flags_needed_for_conditional): New function.
12864         (flags_from_mode): New function.
12865         (rx_compare_redundant): New function - scans backwards through
12866         insn list to find out if condition flags are already set correctly.
12867         (TARGET_CC_MODES_COMPATIBLE): Define.
12868         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
12869
12870         * config/rx/rx.h (BRANCH_COST): Define.
12871         (REGISTER_MOVE_COST): Define.
12872         * config/rx/predicates (rx_source_operand): Allow all constant types.
12873         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
12874         (tstsi4): New pattern.
12875         * config/rx/rx.c (rx_memory_move_cost): Define.
12876         (TARGET_MEMORY_MOVE_COST): Define.
12877
12878 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12879
12880         * tree.h (block_may_fallthru): Declare here.
12881         * tree-flow.h (block_may_fallthru): Do not declare here.
12882         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
12883         bitmap.h
12884         * Makefile.in (c-typeck.o): Update dependencies.
12885
12886 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
12887
12888         PR debug/44694
12889         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
12890         * cselib.c (cfa_base_preserved_regno): New static variable.
12891         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
12892         of REGNO (cfa_base_preserved_val->locs->loc).
12893         (cselib_preserve_cfa_base_value): Add regno argument, set
12894         cfa_base_preserved_regno to it.
12895         (cselib_invalidate_regno): Allow removal of registers other than
12896         cfa_base_preserved_regno from cfa_base_preserved_val.
12897         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
12898         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
12899         of MEM addresses, if not on LHS.
12900         (reverse_op): Don't add reverse ops for cfa_base_rtx.
12901         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
12902
12903 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
12904
12905         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
12906         static variables.
12907         (peep2_buf_position): New static function.
12908         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
12909         peephole2_optimize): Use it.
12910         (peep2_attempt, peep2_update_life): New static functions, broken out
12911         of peephole2_optimize.
12912         (peep2_fill_buffer): New static function.
12913         (peephole2_optimize): Change the main loop to try to fill the buffer
12914         with the maximum number of insns before matching them against
12915         peepholes.  Use a forward scan.  Remove special case for targets with
12916         conditional execution.
12917         * genrecog.c (change_state): Delete dead code.
12918         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12919         Rewrite so as not to expect the second insn to have had a peephole
12920         applied yet.
12921
12922 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12923
12924         * genhooks.c (emit_findices): Cast field precision to int.
12925         (emit_documentation): Likewise.
12926
12927 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
12928
12929         PR tree-optimization/43801
12930         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
12931         if old_decl was DECL_ONE_ONLY.
12932
12933         PR debug/44668
12934         * dwarf2out.c (add_accessibility_attribute): New function.
12935         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
12936         instead of adding DW_AT_accessibility manually.
12937         (gen_enumeration_type_die, gen_struct_or_union_type_die,
12938         gen_typedef_die): Use it.
12939
12940 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12941
12942         * vmsdbgout.c (full_name): Just output the file name if not native.
12943
12944 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12945
12946         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
12947         (funcnam_table): New static table.
12948         (funcnum_table): New static table.
12949         (write_rtnbeg): Write value saved in funcnum_table.
12950         (write_rtnend): Write value saved in funcnum_table.
12951         (vmsdbgout_begin_function): Save current function info in
12952         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
12953         (vmsdbgout_finish): Iterate over funcnum_table.
12954
12955 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12956
12957         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
12958         (vmsdbgout_type_decl): Declare
12959         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
12960         (FUNC_EPILOGUE_LABEL): New macro
12961         (vmsdbgout_begin_epilogue): New function.
12962         (vmsdbgout_type_decl): New function.
12963
12964 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12965
12966         * vmsdbg.h: Update copyright.
12967
12968 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12969
12970         * vmsdbg.h (DST_K_TBG): New DST constant.
12971         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
12972         (write_modbeg): Cast module_language to avoid warning.
12973         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
12974
12975 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
12976
12977         PR other/44034
12978         * target.def, doc/tm.texi.in, genhooks.c: New files.
12979         * target.h: Instead of defining individual hook members,
12980         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
12981         include target.def.
12982         * target-def.h: Instead of defining individual hook initializers,
12983         include target-hooks-def.h.
12984         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
12985         targetm.live_on_entry -> targetm.extra_live_on_entry
12986         targetm.sched.md_finish ->targetm.sched.finish
12987         targetm.sched.md_init -> targetm.sched.init
12988         targetm.sched.md_init_global -> targetm.sched.init_global
12989         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
12990         targetm.asm_out.except_table_label ->
12991           targetm.asm_out.emit_except_table_label
12992         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
12993         targetm.target_help -> targetm.help
12994         targetm.vectorize.builtin_support_vector_misalignment ->
12995           targetm.vectorize.support_vector_misalignment
12996         targetm.file_start_app_off -> targetm.asm_file_start_app_off
12997         targetm.file_start_file_directive ->
12998          targetm.asm_file_start_file_directive
12999         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
13000         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
13001         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
13002         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
13003           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
13004         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
13005           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
13006         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
13007         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
13008         * Makefile.in (TARGET_H): Depend on target.def.
13009         (TARGET_DEF_H): Depend on target-hooks-def.h.
13010         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
13011         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
13012         * doc/tm.texi: Regenerate.
13013
13014         * Makefile.in (s-tm-texi): Remove stray tab / rule.
13015
13016         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
13017         (targetm.sched.init): Likewise.
13018
13019 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
13020
13021         PR bootstrap/44713
13022         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
13023         (function_arg_advance_32): Const-ify TYPE parameter.
13024         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
13025         (ix86_function_arg_advance): Change type of NAMED to bool.
13026         (function_arg_32): Const-ify CUM and TYPE parameters.
13027         (function_arg_64): Likewise.  Change type of NAMED to bool.
13028         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
13029         to bool.
13030         (ix86_function_arg): Change type of NAMED to bool.
13031         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
13032         last argument as a bool.
13033
13034 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
13035
13036         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
13037         (OVERRIDE_OPTIONS): Add note of obsolescence.
13038         Replace references with references to TARGET_OPTION_OVERRIDE.
13039         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
13040          the macro).
13041         * targhooks.c (default_target_option_override): New function.
13042         * targhooks.h (default_target_option_override): Declare.
13043         * target.h (struct gcc_target): Add override member to
13044         target_option member.
13045         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
13046         targetm.target_option.override call.
13047         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
13048         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
13049
13050 2010-06-29  Jan Hubicka  <jh@suse.cz>
13051
13052         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
13053
13054 2010-06-29  Jan Hubicka  <jh@suse.cz>
13055
13056         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
13057         unreachable.
13058         (rebuild_frequencies): New function.
13059         * predict.h (rebuild_frequencies): Declare.
13060         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
13061         entry block and edge reaching new_entry.
13062         (tree_function_versioning): When doing partial cloning, rebuild
13063         frequencies when done.
13064         * passes.c (execute_function_todo): Use rebild_frequencies.
13065
13066 2010-06-29  Richard Guenther  <rguenther@suse.de>
13067
13068         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
13069         * tree-flow.h (enum noalias_state): Remove.
13070         (struct var_ann_d): Remove noalias_state member.
13071
13072 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
13073
13074         PR target/43902
13075         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
13076         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
13077         (maddhidi4): Likewise.
13078
13079         Revert parts of the change for PR25130.
13080         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
13081         MEM_ALIAS_SET.
13082
13083 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
13084
13085         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
13086         targetm.calls.function_incoming_arg, and
13087         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
13088         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
13089         * target.h (struct gcc_target): Add function_arg_advance,
13090         function_arg, and function_incoming_arg fields.
13091         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
13092         (TARGET_FUNCTION_INCOMING_ARG): Define.
13093         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
13094         and TARGET_FUNCTION_INCOMING_ARG.
13095         * targhooks.h (default_function_arg_advance): Declare.
13096         (default_function_arg, default_function_incoming_arg): Declare.
13097         * targhooks.c (default_function_arg_advance): New function.
13098         (default_function_arg, default_function_incoming_arg): New function.
13099         * config/i386/i386.c (function_arg_advance): Rename to...
13100         (ix86_function_arg_advance): ...this.  Make static.
13101         (function_arg): Rename to...
13102         (ix86_function_arg): ...this.  Make static.
13103         (TARGET_FUNCTION_ARG_ADVANCE): Define.
13104         (TARGET_FUNCTION_ARG): Define.
13105         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
13106         (FUNCTION_ARG): Delete.
13107         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
13108         (function_arg): Delete prototype.
13109
13110 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
13111
13112         * reginfo.c (init_reg_sets_1): Adjust comments.
13113         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
13114         * calls.c (prepare_call_address): Likewise.
13115         (emit_call_1): Use targetm.calls.return_pops_args.
13116         (expand_call): Likewise.
13117         * function.c (assign_parms): Likewise.
13118         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
13119         * target.h (struct gcc_target) [struct calls]: Add
13120         return_pops_args field.
13121         * targhooks.h (default_return_pops_args): Declare.
13122         * targhooks.c (default_return_pops_args): Define.
13123         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
13124         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
13125         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
13126         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
13127         documentation.
13128         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
13129         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
13130         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
13131         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
13132         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
13133         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
13134         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
13135         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
13136         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
13137         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
13138         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
13139         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
13140         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
13141         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
13142         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
13143         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
13144         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
13145         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
13146         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
13147         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
13148         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
13149         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
13150         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
13151         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
13152         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
13153         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
13154         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
13155         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
13156         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
13157         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
13158         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
13159         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
13160         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
13161         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
13162         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
13163         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
13164         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
13165         * config/i386/i386.c (ix86_return_pops_args): Make static.
13166         Constify arguments.
13167         (TARGET_RETURN_POPS_ARGS): Define.
13168         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
13169         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
13170         (TARGET_RETURN_POPS_ARGS): Define.
13171         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
13172         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
13173         (TARGET_RETURN_POPS_ARGS): Define.
13174
13175 2010-06-29  Richard Guenther  <rguenther@suse.de>
13176
13177         PR middle-end/44667
13178         * tree-inline.c (initialize_inlined_parameters): Make sure
13179         to remap the inlined parameter variable substitutions types.
13180
13181 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
13182
13183         PR rtl-optimization/44659
13184         * combine.c (make_compound_operation) <SUBREG>: Do not return the
13185         result of force_to_mode if it partially re-expanded the compound.
13186
13187 2010-06-28  Jan Hubicka  <jh@suse.cz>
13188
13189         PR middle-end/44671
13190         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
13191         RESULT_DECL.
13192
13193 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
13194
13195         * double-int.h (force_fit_type_double): Remove declaration.
13196         * double-int.c (force_fit_type_double): Move to tree.c.
13197         * tree.h (force_fit_type_double): Declare.
13198         * tree.h (force_fit_type_double): Moved from double-int.c. Use
13199         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
13200         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
13201         * convert.c (convert_to_pointer): Adjust call to
13202         force_fit_type_double.
13203         * tree-vrp.c (extract_range_from_assert,
13204         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
13205         * fold-const.c: Update comment.
13206         (int_const_binop, fold_convert_const_int_from_int,
13207         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
13208         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
13209         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
13210         round_up_loc): Adjust call to force_fit_type_double.
13211
13212 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
13213
13214         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
13215
13216 2010-06-28  Martin Jambor  <mjambor@suse.cz>
13217
13218         * tree-sra.c (convert_callers): New parameter, change fndecls of
13219         recursive calls.
13220         (modify_function): Pass the old decl to convert_callers.
13221
13222 2010-06-28  Martin Jambor  <mjambor@suse.cz>
13223
13224         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
13225         ipa_check_create_node_params and ipa_initialize_node_params with
13226         checking asserts they are not necessary.
13227
13228 2010-06-28  Jan Hubicka  <jh@suse.cz>
13229
13230         PR tree-optimization/44687
13231         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
13232
13233 2010-06-28  Martin Jambor  <mjambor@suse.cz>
13234
13235         PR c++/44535
13236         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
13237         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
13238         instead of BINFO_BASE_BINFO.
13239
13240 2010-06-28  Michael Matz  <matz@suse.de>
13241
13242         PR middle-end/44592
13243         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
13244         proper VDEF chain for intermediate stores in the sequence.
13245
13246 2010-06-28  Jan Hubicka  <jh@suse.cz>
13247
13248         PR tree-optimization/44357
13249         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
13250         uninlinable functions.
13251
13252 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
13253
13254         * config.gcc (powerpc*-*-*): Handle titan.
13255         * config/rs6000/rs6000.c (titan_cost): New costs.
13256         (rs6000_override_options): Add "titan" to processor_target_table.
13257         Add Titan to branch alignment logic.
13258         Correctly set rs6000_cost for titan.
13259         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
13260         * config/rs6000/titan.md: New file.
13261         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
13262
13263 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
13264
13265         * tree-browser.c (TB_history_stack): Convert to a VEC.
13266         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
13267         (TB_history_prev): Likewise.
13268
13269 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
13270
13271         * vec.h (vec_heap_free): Add parentheses around free.
13272
13273 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
13274
13275         * system.h: Poison GCC_EXCEPT_H for front-end files.
13276
13277         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
13278         langhook.
13279         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
13280         Define to NULL by default.
13281         * except.h: Define GCC_EXCEPT_H.
13282         (doing_eh): Remove prototype.
13283         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
13284         (lang_protect_cleanup_actions): Remove.
13285         * except.c (lang_protect_cleanup_actions): Remove.
13286         (doing_eh): Remove.
13287         (gen_eh_region): Don't check doing_eh here.
13288         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
13289         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
13290         instead of lang_protect_cleanup_actions.
13291         * omp-low.c (maybe_catch_exception): Likewise.
13292         * Makefile.in: Update dependencies.
13293
13294 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
13295
13296         * cgraph.h (struct varpool_node): new used_from_object_file flag.
13297         (struct cgraph_local_info): new used_from_object_file flag.
13298         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
13299         (cgraph_clone_node): initialize used_from_object_file.
13300         (cgraph_create_virtual_clone): initialize used_from_object_file.
13301         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
13302         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
13303         when compiling with -fwhole-program.
13304         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
13305         internal resolver.
13306         * ipa.c (function_and_variable_visibility): Set externally_visible
13307         flag of varpool_node if used_from_object_file flag is set.
13308         (cgraph_externally_visible_p): check used_from_object_file flag.
13309         * doc/invoke.texi (-fwhole-program option): Change description of
13310         externally_visible attribute accordingly.
13311         * doc/extend.texi (externally_visible): Ditto.
13312
13313 2010-06-27  Jan Hubicka  <jh@suse.cz>
13314
13315         * params.def (max-inline-insns-auto): Default to 40.
13316         * doc/invoke.texi (max-inline-insns-auto): Document the change.
13317
13318 2010-06-27  Jan Hubicka  <jh@suse.cz>
13319
13320         PR middle-end/44671
13321         PR middle-end/44686
13322         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
13323         signature change.
13324         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
13325         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
13326
13327 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
13328
13329         * target.h (struct gcc_target): Add register_move_cost field.
13330         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
13331         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
13332         * targhooks.c (default_register_move_cost): New function.
13333         * targhooks.h (default_register_move_cost): Declare function.
13334         * defaults.h (REGISTER_MOVE_COST): Delete.
13335         * ira-int.h (ira_register_move_cost): Update comment.
13336         * ira.c (ira_register_move_cost): Update comment.
13337         * reload.h (register_move_cost): Declare.
13338         * reginfo.c (register_move_cost): New function.
13339         (move_cost): Update comment.
13340         (init_move_cost, memory_move_secondary_cost): Replace
13341         REGISTER_MOVE_COST with register_move_cost.
13342         * postreload.c (reload_cse_simplify_set): (Ditto.).
13343         * reload.c (find_valid_class, find_reloads): (Ditto.).
13344         * reload1.c (choose_reload_regs): (Ditto.).
13345         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
13346         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
13347         * doc/md.texi (can_create_pseudo_p): Update documentation.
13348
13349         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
13350         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
13351         * config/i386/i386.h (ix86_memory_move_cost): Make static.
13352         (TARGET_MEMORY_MOVE_COST): Define.
13353
13354         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
13355         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
13356         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
13357         (TARGET_MEMORY_MOVE_COST): Define.
13358
13359 2010-06-27  Richard Guenther  <rguenther@suse.de>
13360
13361         PR tree-optimization/44683
13362         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
13363         false edge from the inverted condition.
13364
13365 2010-06-27  Richard Guenther  <rguenther@suse.de>
13366
13367         PR middle-end/44684
13368         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
13369         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
13370         for register LHS.  Or non-store assignments.
13371
13372 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
13373
13374         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
13375         (sparc_emit_set_const64): Likewise.  Remove disabled code.
13376         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
13377         (sparc_emit_set_const64): Likewise.
13378
13379 2010-06-26  Catherine Moore  <clm@codesourcery.com>
13380
13381         * config/mips/mips.md (alu_type): New attribute.
13382         (type): Infer type from alu_type.
13383         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
13384         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
13385         *subsi3_extended, negsi2, negdi2, *low<mode>,
13386         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
13387         xor<mode>3, *nor<mode>3,
13388         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
13389         *zero_extendhi_truncqi):  Set alu_type instead of type.
13390
13391 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
13392
13393         * config/alpha/alpha.c (alpha_need_linkage): Adjust
13394         splay_tree_new_ggc call.
13395         (alpha_use_linkage): Likewise.
13396
13397 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
13398
13399         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
13400         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
13401         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
13402         (static_specs): Remove switches_need_spaces.
13403         (process_command, do_self_spec): Hardcode handling "-o" instead of
13404         checking switches_need_spaces.
13405         * system.h (SWITCHES_NEED_SPACES): Poison.
13406
13407 2010-06-26  Richard Guenther  <rguenther@suse.de>
13408
13409         PR tree-optimization/44393
13410         * tree-loop-distribution.c (generate_loops_for_partition): Fix
13411         stmt removal and VOP renaming.
13412         (generate_memset_zero): Remove redundant stmt updating.
13413         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
13414         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
13415
13416 2010-06-26  Jan Hubicka  <jh@suse.cz>
13417
13418         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
13419         edges comming from header are equivalent.
13420         (visit_bb): Handle PHIs correctly.
13421         * tree-inline.c (copy_phis_for_bb): Be able to copy
13422         PHI from entry edge.
13423         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
13424
13425 2010-06-26  Richard Guenther  <rguenther@suse.de>
13426
13427         PR middle-end/44674
13428         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
13429         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
13430
13431 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
13432
13433         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
13434         add_infile, alloc_switch): New.
13435         (process_command): Remove variable lang_n_infiles.  Process
13436         options in a single pass.  Use new functions for allocating
13437         infiles and switches arrays.  Properly skip operands of
13438         -Xpreprocessor and -Xassembler.
13439
13440 2010-06-26  Jan Hubicka  <jh@suse.cz>
13441
13442         PR middle-end/44671
13443         * cgraphunit.c (cgraph_function_versioning): Remove wrong
13444         cgraph_make_decl_local call; fix typo copying RTL data.
13445
13446 2010-06-25  DJ Delorie  <dj@redhat.com>
13447
13448         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
13449         (m32c_output_aligned_common): Likewise.
13450         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
13451         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
13452         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
13453         (m32c_register_pragmas): Register it.
13454         * config/m32c/m32c.c (m32c_get_pragma_address): New.
13455         (m32c_insert_attributes): Set #pragma address decls volatile.
13456         (pragma_entry_eq): New.
13457         (pragma_entry_hash): New.
13458         (m32c_note_pragma_address): New.
13459         (m32c_get_pragma_address): New.
13460         (m32c_output_aligned_common): New.
13461         * doc/extend.texi: Document the new pragma.
13462
13463         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
13464         also.
13465         * config/m32c/predicates.md (m32c_any_operand): Check the code
13466         instead of memory_operand so as to allow matching volatile MEMs.
13467         (m32c_nonimmediate_operand): Likewise.
13468         (mra_operand): Allow volatiles.
13469
13470 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
13471
13472         PR debug/44610
13473         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
13474         address if the offset is unknown.
13475
13476 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
13477
13478         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
13479         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
13480         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
13481         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
13482         to ia64_start_function. Invoke it.
13483         * config/ia64/ia64.c (ia64_start_function): Call new function
13484         dwarf2out_vms_debug_main_pointer.
13485
13486 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
13487
13488         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
13489         statements computing the true predicate.
13490
13491 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
13492
13493         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
13494         to boolean_true_node.
13495         (reset_bb_predicate): New.
13496         (predicate_bbs): Call reset_bb_predicate.
13497
13498 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
13499
13500         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
13501         (tree_if_conversion): Returns true when something has been changed.
13502         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
13503         changed something.
13504
13505 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
13506
13507         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
13508         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
13509         * tree-if-conv.c: Include dbgcnt.h.
13510         (tree_if_conversion): Use if_conversion_tree to count the number of
13511         if-convertible loops.
13512
13513 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
13514
13515         * common.opt (fprefetch-loop-arrays): Re-define
13516         -fprefetch-loop-arrays as a tri-state option with the initial
13517         value of -1.
13518         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
13519         pass only when flag_prefetch_loop_arrays > 0.
13520         * toplev.c (process_options): Note that, with tri-states,
13521         flag_prefetch_loop_arrays>0 means prefetching is enabled.
13522         * config/i386/i386.c (override_options): Enable prefetching at -O3
13523         for a set of CPUs that sw prefetching is helpful.
13524         (software_prefetching_beneficial_p): New.  Return TRUE if software
13525         prefetching is beneficial for the given CPU.
13526
13527 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
13528
13529         PR rtl-optimization/44326
13530         * implicit-zee.c (find_removable_zero_extends): Replace
13531         INSN_P with NONDEBUG_INSN_P.
13532
13533 2010-06-25  Martin Jambor  <mjambor@suse.cz>
13534
13535         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
13536         (struct ipa_node_params): Removed the modification_analysis_done flag.
13537         (ipa_is_param_modified): Removed.
13538         (ipa_analyze_node): Declare.
13539         (ipa_compute_jump_functions): Remove declaration.
13540         (ipa_count_arguments): Likewise.
13541         (ipa_detect_param_modifications): Likewise.
13542         (ipa_analyze_params_uses): Likewise.
13543         * ipa-prop.c (struct param_analysis_info): New type.
13544         (visit_store_addr_for_mod_analysis): Removed.
13545         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
13546         moved down in the file.
13547         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
13548         (ipa_count_arguments): Made static.
13549         (mark_modified): New function.
13550         (is_parm_modified_before_call): New function.
13551         (compute_pass_through_member_ptrs): New parameter parms_info, call
13552         is_parm_modified_before_call instead of ipa_is_param_modified.
13553         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
13554         it to compute_pass_through_member_ptrs.
13555         (ipa_compute_jump_functions): New parameter parms_info, pass it to
13556         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
13557         on the callee if it is analyzed.  Made static.
13558         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
13559         is_parm_modified_before_call instead of ipa_is_param_modified.
13560         (ipa_analyze_call_uses): New parameter parms_info, pass it to
13561         ipa_analyze_indirect_call_uses.
13562         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
13563         ipa_analyze_call_uses.
13564         (ipa_analyze_params_uses): New parameter parms_info, pass it to
13565         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
13566         (ipa_analyze_node): New function.
13567         (ipa_print_node_params): Do not dump the modified flag.
13568         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
13569         it.  Do not stream the modified parameter flag.
13570         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
13571         it.  Do not stream the modified parameter flag.
13572         * ipa-cp.c (ipcp_analyze_node): Removed.
13573         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
13574         with only a call to ipa_analyze_node.
13575         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
13576         node with only a call to ipa_analyze_node.
13577
13578 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13579
13580         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
13581
13582 2010-06-25  Jan Hubicka  <jh@suse.cz>
13583
13584         * tree-pass.h (pass_split_functions): Declare.
13585         * opts.c (decode_options): Enable function splitting at -O2
13586         * timevar.def (TV_IPA_FNSPLIT): New macro.
13587         * ipa-split.c: New file.
13588         * common.opt (-fpartial-inlining): New flag.
13589         * Makefile.in (ipa-split.o): New object file.
13590         * passes.c (init_optimization_passes): Add ipa-split.
13591         * params.def (partial-inlining-entry-probability): New parameters.
13592         * doc/invoke.texi (-fpartial-inlining): New.
13593
13594 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13595
13596         PR 44665
13597         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
13598         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
13599         (gimplify_expr): Likewise.
13600
13601 2010-06-25  Martin Jambor  <mjambor@suse.cz>
13602
13603         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
13604         statements instead of bailing out on them.
13605         (ipa_analyze_indirect_call_uses): Do not require that loads from the
13606         parameter are in the same BB as the condition.  Update comments.
13607
13608 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
13609
13610         PR middle-end/43866
13611         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
13612         true or always false, return NULL_TREE.
13613         (tree_unswitch_single_loop): Optimize conditions even when reaching
13614         max-unswitch-level parameter.  If num > 0, optimize first all conditions
13615         using entry checks, then do still reachable block discovery and consider
13616         only conditions in still reachable basic blocks in the loop.
13617
13618         PR tree-optimization/44539
13619         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
13620         the call doesn't have LHS, but has VDEF.
13621
13622 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
13623
13624         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
13625         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
13626         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
13627         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
13628         * system.h (MODIFY_TARGET_NAME): Poison.
13629
13630 2010-06-25  Alan Modra  <amodra@gmail.com>
13631
13632         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
13633         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
13634         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13635         CMODEL_LARGE as default.
13636         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
13637         (offsettable_ok_by_alignment): Delete.
13638         (rs6000_emit_move): Remove mcmodel=medium optimization.
13639
13640 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
13641
13642         With large parts from Jim Wilson:
13643         PR target/43902
13644         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
13645         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
13646         * optabs.c (optab_for_tree_code): Likewise.
13647         (expand_widen_pattern_expr): Likewise.
13648         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
13649         out of execute_optimize_widening_mul.
13650         (convert_plusminus_to_widen): New function.
13651         (execute_optimize_widening_mul): Use the two new functions.
13652         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
13653         Remove code to generate widening multiply-accumulate.  Add support
13654         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
13655         * gimple-pretty-print.c (dump_ternary_rhs): New function.
13656         (dump_gimple_assign): Call it when appropriate.
13657         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
13658         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
13659         (expand_gimple_stmt_1): Likewise.
13660         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
13661         WIDEN_MULT_MINUS_EXPR.
13662         * tree-ssa-operands.c (get_expr_operands): Likewise.
13663         * tree-inline.c (estimate_operator_cost): Likewise.
13664         * gimple.c (extract_ops_from_tree_1): Renamed from
13665         extract_ops_from_tree.  Add new arg for a third operand; fill it.
13666         (gimple_build_assign_stat): Support operations with three operands.
13667         (gimple_build_assign_with_ops_stat): Likewise.
13668         (gimple_assign_set_rhs_from_tree): Likewise.
13669         (gimple_assign_set_rhs_with_ops_1): Renamed from
13670         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
13671         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
13672         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
13673         WIDEN_MULT_MINUS_EXPR.
13674         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
13675         (extract_ops_from_tree_1): Adjust declaration.
13676         (gimple_assign_set_rhs_with_ops_1): Likewise.
13677         (gimple_build_assign_with_ops): Pass NULL for last operand.
13678         (gimple_build_assign_with_ops3): New macro.
13679         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
13680         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
13681         functions.
13682         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
13683         (verify_gimple_assign): Call it.
13684         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
13685         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
13686         functions for dealing with three-operand statements.
13687         * tree.c (commutative_ternary_tree_code): New function.
13688         * tree.h (commutative_ternary_tree_code): Declare it.
13689         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
13690         ternary statements.
13691         (gimple_assign_nonzero_warnv_p): Likewise.
13692         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
13693         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
13694         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
13695         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
13696         (struct hashtable_expr): New member ternary in the union.
13697         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
13698         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
13699         (iterative_hash_hashable_expr): Likewise.
13700         (print_expr_hash_elt): Handle EXPR_TERNARY.
13701         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
13702         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
13703         statements.  Handle GIMPLE_TERNARY_RHS.
13704
13705 2010-06-25  Jan Hubicka  <jh@suse.cz>
13706
13707         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
13708
13709 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
13710
13711         PR c/44517
13712         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
13713         parameters are not good.
13714         (c_parser_parameter_declaration): Error unknown type name if the type
13715         name can't start declaration specifiers.
13716
13717 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
13718
13719         * gcc.c (translate_options): Don't mention +e in comment.
13720         (process_command): Don't handle +e specially.
13721
13722 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
13723
13724         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
13725
13726         * ira-build.c (merge_hard_reg_conflicts): New function.
13727         (create_cap_allocno, copy_info_to_removed_store_destinations,
13728         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
13729         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
13730         (remove_unnecessary_allocnos, remove_low_level_allocnos)
13731         copy_nifo_to_removed_store_destination): Use them.
13732         * ira-lives.c (make_hard_regno_born): New function, split out of
13733         make_regno_born.
13734         (make_allocno_born): Likewise.
13735         (make_hard_regno_dead): New function, split out of make_regno_dead.
13736         (make_allocno_dead): Likewise.
13737         (inc_register_pressure): New function, split out of set_allocno_live.
13738         (dec_register_pressure): New function, split out of clear_allocno_live.
13739         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
13740         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
13741         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
13742         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
13743         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
13744         mark_pseudo_regno_live.
13745         (process_bb_node_lives): Use mark_pseudo_regno_live,
13746         make_hard_regno_born and make_allocno_dead.
13747         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
13748         set_allocno_live, clear_allocno_live): Delete functions.
13749
13750         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
13751         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
13752         functions.
13753         (ira_flattening): Use ira_parent_allocno.
13754         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
13755         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
13756
13757         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
13758         statement.
13759
13760         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
13761         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
13762         minmax_set_iter_cond, minmax_set_iter_next,
13763         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
13764         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
13765         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
13766         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
13767         uses changed.
13768
13769         * ira-int.h (struct live_range, live_range_t): Renamed from struct
13770         ira_allocno_live_range and allocno_live_range_t; all uses changed.
13771         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
13772         All uses changed.
13773
13774 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
13775
13776         * thumb2.md (thumb2_tlobits_cbranch): Delete.
13777         (peephole2 to convert zero_extract/compare of single bit to
13778          lshift/compare): New.
13779
13780 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
13781
13782         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
13783         recursive call and call to 'int_const_binop'.
13784         (build_range_check, fold_cond_expr_with_comparison, unextend,
13785         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
13786         multiple_of_p): Adjust call to const_binop.
13787
13788 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
13789
13790         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
13791         determine size of XFmode operand.
13792         (XFmode extended DFmode push splitter): Ditto.
13793         (XFmode extended SFmode push splitter): Ditto.
13794
13795 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
13796
13797         PR target/44588
13798         * config/i386/i386.md (extract_code): New.
13799         (<u>divmodqi4): Likewise.
13800         (divmodhiqi3): Likewise.
13801         (udivmodhiqi3): Likewise.
13802         (<u>divqi3): Remvoved.
13803
13804 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
13805
13806         PR middle-end/44492
13807         * recog.h (struct recog_data): Add is_asm field.
13808         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
13809         present in constraints of inline-asm operand and memory operand
13810         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
13811         (extract_insn): Initialize recog_data.is_asm.
13812         * doc/md.texi (Constraints): Document operand side-effect rules.
13813
13814 2010-06-24  Andi Kleen  <ak@linux.intel.com>
13815
13816         * c-parser.c (c_parser_conditional_expression): Call
13817         warn_for_omitted_condop.
13818         * doc/invoke.texi: Document omitted condop warning.
13819
13820 2010-06-24  Nick Clifton<nickc@redhat.com>
13821
13822         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
13823         insn in the sequence is a jump insn before setting its label.
13824
13825 2010-06-24  Alan Modra  <amodra@gmail.com>
13826
13827         * collect2.c (main): Match exactly --version and --help.
13828
13829 2010-06-24  DJ Delorie  <dj@redhat.com>
13830
13831         * config/m32c/m32c-pragma.c: Don't include rtl.h.
13832
13833 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
13834
13835         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
13836         using X87MODEF mode iterator.
13837         (pushsf splitter): Macroize splitter using P mode iterator.
13838         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
13839         mode iterator.
13840
13841         (*movxf_internal): Rename from *movxf_integer.
13842         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
13843         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
13844         (*movdf_internal): Rename from *movdf_integer.
13845         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
13846         (*movsf_internal): Rename from *movdf_1.
13847
13848 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
13849
13850         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
13851         (const_gimple_seq_node): Removed typedefs.
13852
13853         * gimple.h (gimple_seq_node_d, gimple_seq_node)
13854         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
13855
13856 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
13857
13858         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
13859         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
13860         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
13861         and CODE_FOR_vec_extract_lo_v4df.
13862
13863         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
13864         Changed to define_insn_and_split.
13865         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
13866         (vec_extract_lo_v16hi): Likewise.
13867         (vec_extract_lo_v32qi): Likewise.
13868         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
13869         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
13870
13871 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
13872
13873         PR target/44640
13874         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
13875         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
13876         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
13877         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
13878         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
13879
13880         PR target/44640
13881         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
13882
13883         PR other/44644
13884         * df-core.c (struct df): Rename to df_d.
13885         * df.h (struct df): Likewise.
13886         * dse.h (struct df): Remove forward declaration.
13887         * recog.h (struct insn_data): Rename to:
13888         (struct_insn_data_d).  Adjusted all users.
13889
13890 2010-06-23  Arnaud Charlet  <charlet@adacore.com
13891
13892         PR ada/22220
13893         * doc/install.texi: Update requirements to build GNAT.
13894
13895 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
13896
13897         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
13898         enum type.
13899         (m68k_sched_attr_opx_type): Remove unreachable return.
13900         (m68k_sched_attr_opy_type): Likewise.
13901         (m68k_sched_attr_size): Likewise.
13902         (sched_get_opxy_mem_type): Likewise.
13903         (m68k_sched_attr_op_mem): Likewise.
13904
13905 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
13906
13907         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
13908         new statement and adjust VDEF only if necessary.  Remove superfluous
13909         call to maybe_clean_or_replace_eh_stmt.
13910         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
13911         copy the flags.
13912         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
13913         * tree-inline.c (copy_bb): ...and not there.
13914
13915 2010-06-22  Cary Coutant  <ccoutant@google.com>
13916
13917         * dwarf2out.c (is_nested_in_subprogram): New function.
13918         (should_move_die_to_comdat): Use it.
13919         (copy_ancestor_tree): Don't mark DIEs here.
13920         (copy_decls_walk): Start walk from root of newly-added tree;
13921         mark DIEs here instead.
13922
13923 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
13924
13925         * config/i386/i386.md (unit): Also check sseishft1.
13926
13927 2010-06-22  Jan Hubicka  <jh@suse.cz>
13928
13929         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
13930         enabled.
13931
13932 2010-06-22  Jan Hubicka  <jh@suse.cz>
13933
13934         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
13935         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
13936         Return true if something changed.
13937         * df.h (df_confluence_function_n): Return bool.
13938         * df-core.c (df_worklist_propagate_forward,
13939         df_worklist_propagate_backward): Track changes and ages.
13940         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
13941         track ages.
13942         * dse.c (dse_confluence_n): Return always true.
13943
13944 2010-06-22  Jan Hubicka  <jh@suse.cz>
13945
13946         * bitmap.c (bitmap_clear_bit): Micro optimize.
13947
13948 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
13949
13950         * config/i386/i386.md (SWI1248x): New mode iterator.
13951         (SWI48x): Ditto.
13952         (SWI12): Ditto.
13953         (SWI24): Ditto.
13954
13955         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
13956         SWI1248x mode iterator.
13957         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
13958         using SWI124 mode iterator.
13959         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
13960         mode iterator.
13961         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
13962         *pushdi2_prologue_rex64 using P mode iterator.
13963         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
13964         using SWI48 mode iterator.
13965         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
13966         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
13967         using SWI1248x mode iterator.
13968         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
13969         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
13970         SWI48 mode iterator.
13971         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
13972         iterator.
13973         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
13974         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
13975         SWI12 mode iterator.
13976         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
13977         SWI12 mode iterator.
13978         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
13979         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
13980         SWI24 mode iterator.
13981         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
13982         SWI48 mode iterator.
13983         (mov<mode>_insn_1): New expander.
13984         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
13985         using SWI48x mode iterator.
13986
13987         (*movoi_internal_avx): Rename from *movoi_internal.
13988         (*movti_internal_rex64): Rename from *movti_rex64.
13989         (*movti_internal_sse): Rename from *movti_sse.
13990         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
13991         (*movdi_internal): Rename from *movdi_2.
13992         (*movsi_internal): Rename from *movsi_1.
13993         (*movhi_internal): Rename from *movhi_1.
13994         (*movqi_internal): Rename from *movqi_1.
13995
13996         (insv): Update the call to gen_movsi_insv_1 for rename.
13997         * config/i386/i386.c (promote_duplicated_reg): Ditto.
13998
13999 2010-06-22  Jan Hubicka  <jh@suse.cz>
14000
14001         * passes.c (execute_function_todo): Move call of statistics_fini_pass
14002         to ...
14003         (execute_todo) ... this one.
14004
14005 2010-06-22  Alan Modra  <amodra@gmail.com>
14006
14007         PR target/44364
14008         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
14009         * caller-save.c (insert_restore, insert_save): Use non-validate
14010         form of adjust_address.
14011
14012 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14013
14014         PR target/39690
14015         * config/pa/pa.c (override_options): Disable
14016         -freorder-blocks-and-partition.
14017
14018 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
14019
14020         PR target/44615
14021         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
14022
14023         * config/i386/i386.md (type): Add sseishft1
14024
14025         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
14026         (ppro_insn_load): Likewise.
14027         (ppro_insn_store): Likewise.
14028         (ppro_insn_both): Likewise.
14029
14030         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
14031         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
14032         for type.
14033         (*vec_extractv2di_1_avx): Likewise.
14034         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
14035         type.  Remove atom_unit.
14036         (*vec_extractv2di_1_sse2): Likewise.
14037
14038 2010-06-21  DJ Delorie  <dj@redhat.com>
14039
14040         * diagnostic.h (diagnostic_classification_change_t): New.
14041         (diagnostic_context): Add history and push/pop list.
14042         (diagnostic_push_diagnostics): Declare.
14043         (diagnostic_pop_diagnostics): Declare.
14044         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
14045         from pragmas in a history chain instead of the global table.
14046         (diagnostic_push_diagnostics): New.
14047         (diagnostic_pop_diagnostics): New.
14048         (diagnostic_report_diagnostic): Scan history chain to find state
14049         of diagnostics as of the diagnostic location.
14050         * opts.c (set_option): Pass UNKNOWN_LOCATION to
14051         diagnostic_classify_diagnostic.
14052         (enable_warning_as_error): Likewise.
14053         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
14054         use in the history chain.
14055         * doc/extend.texi: Document pragma GCC diagnostic changes.
14056
14057 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
14058
14059         * dwarf2out.c (add_linkage_name): New function.  Don't add
14060         anything to DW_TAG_member DIEs.
14061         (add_name_and_src_coords_attributes): Use it.
14062         (gen_variable_die): Call it for C++ static data members if
14063         specification is DW_TAG_member.
14064
14065         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
14066         C++ char16_t and char32_t.
14067
14068         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
14069         * genattrtab.c: Include vecprim.h.
14070         (cached_attrs, cached_attr_count, attrs_seen_once,
14071         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
14072         attrs_cached_after): New variables.
14073         (find_attrs_to_cache): New function.
14074         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
14075         (write_test_expr): Add attrs_cached argument, return it too,
14076         attempt to cache non-const attributes used more than once in
14077         a single case handling.
14078         (write_attr_get): Use find_attrs_to_cache, for caching candidates
14079         emit cached_* variables.  Adjust write_attr_set callers.
14080         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
14081         to find attributes that should be cached in this block.  Adjust
14082         write_test_expr callers.
14083         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
14084         callers.
14085         (make_automaton_attrs): Adjust write_test_expr caller.
14086
14087         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
14088         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
14089         (make_automaton_attrs): If find_tune_attr returns non-NULL,
14090         write separate internal_dfa_insn_code_* and insn_default_latency_*
14091         functions for each attribute's value and emit init_sched_attrs
14092         function and function pointers.
14093         * genattr.c (const_attrs, reservations): New variables.
14094         (gen_attr): Add const attributes to const_attrs vector.
14095         (check_tune_attr, find_tune_attr): New functions.
14096         (main): Add reservations to reservations vector.  If find_tune_attr
14097         returns true, add prototype for init_sched_attrs and make
14098         internal_dfa_insn_code and insn_default_latency function pointers,
14099         otherwise define init_sched_attrs as dummy macro.
14100         * cfgexpand.c: Include insn-attr.h.
14101         (gimple_expand_cfg): Call init_sched_attrs.
14102
14103         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
14104
14105         PR target/44575
14106         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
14107         va_arg from a set of register save slots into a temporary,
14108         if the container is bigger than type size, do the copying
14109         using smaller mode or using memcpy.
14110
14111         PR bootstrap/44426
14112         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
14113         prototype.
14114         (sel_print_to_dot): Remove macro.
14115         (sel_print): Likewise.  New prototype.
14116         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
14117         (sel_print): New function.
14118
14119 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14120
14121         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
14122         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
14123
14124 2010-06-21  Nick Clifton  <nickc@redhat.com>
14125
14126         * config/rx/rx.h (PTRDIFF_TYPE): Define.
14127         (SMALL_REGISTER_CLASS): Define (to zero).
14128         (PRINT_OPERAND): Delete.
14129         (PRINT_OPERAND_ADDRESS): Delete.
14130         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
14131         (rx_print_operand_address): Delete prototype.
14132         * config/rx/rx.c (rx_print_operand): Make static.
14133         Allow %H and %L to handle CONST_DOUBLEs.
14134         (rx_print_operand_address): Make static.
14135         (rx_gen_move_template): Rename local variable 'template' to
14136         out_template.
14137         (rx_function_arg): Do not pass unknown sized objects in registers.
14138         (TARGET_PRINT_OPERAND): Define.
14139         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14140
14141 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
14142
14143         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
14144
14145 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
14146
14147         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
14148         stack-alignment for simple leaf-functions.
14149
14150 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
14151
14152         * doc/install.texi: Document bootstrap-lto.
14153
14154 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
14155
14156         PR debug/44248
14157         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
14158         (input_function): Drop them here, if VTA is disabled.
14159
14160 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
14161
14162         PR target/44546
14163         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
14164         New predicate.
14165         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
14166         ix86_swapped_fp_comparsion_operator instead of
14167         ix86_fp_comparison_operator.
14168
14169         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
14170         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
14171         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
14172         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
14173         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
14174         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
14175
14176 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
14177
14178         PR other/32998
14179         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
14180         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
14181         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
14182         (decode_cmdline_option): Update for this return value.  Set
14183         orig_option_with_args_text field.  Set arg field for unknown
14184         options.  Make static.
14185         (decode_cmdline_options_to_array): New.
14186         (prune_options): Update handling of find_opt return value.
14187         * opts.c (read_cmdline_option): Take decoded option.  Return void.
14188         (read_cmdline_options): Take decoded options.
14189         (decode_options): Add parameters for decoded options.  Use
14190         decode_cmdline_options_to_array.  Use decoded options for -O
14191         scan.  Use integral_argument for -O parameters.  Update call to
14192         read_cmdline_options.
14193         (enable_warning_as_error): Update handling of find_opt return value.
14194         * opts.h: Update comment on unknown options.
14195         (struct cl_decoded_option): Update comments on opt_index and arg.
14196         Add orig_option_with_args_text.
14197         (decode_cmdline_option): Remove.
14198         (decode_cmdline_options_to_array): Declare.
14199         (decode_options): Update prototype.
14200         * toplev.c (save_argv): Remove.
14201         (save_decoded_options, save_decoded_options_count): New.
14202         (read_integral_parameter): Remove.
14203         (print_switch_values): Use decoded options.
14204         (toplev_main): Don't set save_argv.  Update call to decode_options.
14205         * toplev.h (read_integral_parameter): Remove.
14206         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
14207
14208 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
14209
14210         PR target/44072
14211         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
14212         immediate.
14213         * constraints.md (Pw, Px): New constraints.
14214         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
14215
14216 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
14217
14218         * config/i386/sse.md (fma4modesuffixf4): Removed.
14219         (ssemodesuffixf2s): Likewise.
14220         (ssemodesuffixf4): Likewise.
14221         (ssemodesuffixf2c): Likewise.
14222         (ssescalarmodesuffix2s): Likewise.
14223         (avxmodesuffixf2c): Likewise.
14224         (ssemodesuffix): New.
14225         (ssescalarmodesuffix): Likewise.
14226         Update patterns with ssemodesuffix and ssescalarmodesuffix.
14227
14228 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
14229
14230         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
14231
14232 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
14233
14234         * stor-layout.c (debug_rli): Remove unused local variables.
14235
14236 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
14237
14238         PR rtl-optimization/40900
14239         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
14240         original expression for later reuse.
14241         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
14242         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
14243
14244 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
14245
14246         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
14247         double_int_fits_in_uhwi_p): Implement as static inline.
14248         (double_int_xor): New inline function.
14249         (double_int_lrotate, double_int_rrotate, double_int_max,
14250         double_int_umax, double_int_smax, double_int_min, double_int_umin,
14251         double_int_smin): Declare.
14252         (lrotate_double, rrotate_double): Remove declaration.
14253         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
14254         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
14255         (double_int_lrotate, double_int_rrotate, double_int_max,
14256         double_int_umax, double_int_smax, double_int_min, double_int_umin,
14257         double_int_smin): New function.
14258         * fold-const.c (int_const_binop): Clean up, use double_int_*
14259         functions.
14260         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
14261         double_int_* and immed_double_int_const functions.
14262
14263 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
14264
14265         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
14266         * function.c (types_used_by_cur_var_decl): Likewise.
14267         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
14268
14269 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
14270
14271         * tree.h (record_layout_info): Change type of pending_statics field
14272         to a VEC.
14273         * stor-layout.c (start_record_layout): Store NULL into
14274         pending_statics.
14275         (debug_rli): Call debug_vec_tree instead of debug_tree.
14276         (place_field): Likewise.
14277         (finish_record_layout): Likewise.
14278
14279 2010-06-18  Alan Modra  <amodra@gmail.com>
14280
14281         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
14282
14283 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14284
14285         PR target/43740
14286         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
14287         for SET source operand from SET destination operand.
14288
14289 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
14290
14291         PR rtl-optimization/39871
14292         * reload1.c (init_eliminable_invariants): For flag_pic, disable
14293         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
14294         (function_invariant_p): Rule out a plus of frame or arg pointer with
14295         a SYMBOL_REF.
14296         * ira.c (find_reg_equiv_invariant_const): Likewise.
14297
14298 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
14299
14300         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
14301         print_operand_address and puts to output the operand for CONST.
14302
14303 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
14304
14305         PR debug/44572
14306         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
14307         hook.
14308
14309 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
14310
14311         * v850-protos.h (print_operand): Delete.
14312         (print_operand_address): Delete.
14313         * v850.h (PRINT_OPERAND): Delete.
14314         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14315         (PRINT_OPERAND_ADDRESS): Delete.
14316         * v850.c (print_operand_address): Rename to...
14317         (v850_print_operand_address): ...this.  Make static. Call
14318         v850_print_operand.
14319         (print_operand): Rename to...
14320         (v850_print_operand): ...this.  Make static.  Call
14321         v850_print_operand_address.
14322         (v850_print_operand_punct_valid_p): New function.
14323         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14324         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14325
14326 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
14327
14328         * config/sh/sh-protos.h (print_operand): Delete.
14329         (print_operand_address): Delete.
14330         * config/sh/sh.h (PRINT_OPERAND): Delete.
14331         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14332         (PRINT_OPERAND_ADDRESS): Delete.
14333         * config/sh/sh.c (sh_print_operand_address): Make static.
14334         (sh_print_operand): Make static.  Call sh_print_operand_address
14335         and sh_print_operand.
14336         (sh_print_operand_punct_valid_p): New function.
14337         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14338         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14339
14340 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
14341
14342         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
14343         (mcore_print_operand_address): Delete.
14344         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
14345         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14346         (PRINT_OPERAND_ADDRESS): Delete.
14347         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
14348         (mcore_print_operand): Make static.
14349         (mcore_print_operand_punct_valid_p): New function.
14350         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
14351         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14352
14353 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
14354
14355         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
14356         (print_operand_address): Delete.
14357         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
14358         (PRINT_OPERAND_ADDRESS): Delete.
14359         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
14360         static.
14361         (m68hc11_print_operand): Make static.
14362         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14363
14364 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
14365
14366         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
14367         (m32r_print_operand_address): Delete.
14368         * config/m32r/m32r.h (m32r_punct_chars): Delete.
14369         (PRINT_OPERAND): Delete.
14370         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14371         (PRINT_OPERAND_ADDRESS): Delete.
14372         * config/m32r/m32r.c (m32r_punct_chars): Make static.
14373         (m32r_print_operand_address): Make static.
14374         (m32r_print_operand): Make static.
14375         (m32r_print_operand_punct_valid_p): New function.
14376         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14377         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14378
14379 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
14380
14381         * config/iq2000/iq2000-protos.h (print_operand): Delete.
14382         (print_operand_address): Delete.
14383         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
14384         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14385         (PRINT_OPERAND_ADDRESS): Delete.
14386         (iq2000_print_operand_punct): Delete.
14387         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
14388         (iq2000_print_operand_address): Make static.
14389         (iq2000_print_operand): Make static.
14390         (iq2000_print_operand_punct_valid_p): New function.
14391         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14392         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14393
14394 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
14395
14396         * config/frv/frv-protos.h (frv_print_operand): Delete.
14397         (frv_print_operand_address): Delete.
14398         * config/frv/frv.h (PRINT_OPERAND): Delete.
14399         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14400         (PRINT_OPERAND_ADDRESS): Delete.
14401         * config/frv/frv.c (frv_print_operand_address): Make static.
14402         (frv_print_operand): Make static.
14403         (frv_print_operand_punct_valid_p): New function.
14404         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14405         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14406
14407 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
14408
14409         * tree.h (vec_member): Declare.
14410         * tree.c (vec_member): Define.
14411
14412 2010-06-17  Richard Guenther  <rguenther@suse.de>
14413
14414         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
14415         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
14416
14417 2010-06-17  Richard Guenther  <rguenther@suse.de>
14418
14419         * tree-inline.c (declare_return_variable): Remove bogus code.
14420
14421 2010-06-17  Richard Guenther  <rguenther@suse.de>
14422
14423         * gimplify.c (gimplify_bind_expr): Always promote complex
14424         and vector variables to registers if possible.
14425
14426 2010-06-17  Richard Guenther  <rguenther@suse.de>
14427
14428         * expr.c (get_inner_reference): Use double_int for bit_offset
14429         calculation.
14430
14431 2010-06-16  DJ Delorie  <dj@redhat.com>
14432
14433         * common.opt (-fstrict-volatile-bitfields): new.
14434         * doc/invoke.texi: Document it.
14435         * fold-const.c (optimize_bit_field_compare): For volatile
14436         bitfields, use the field's type to determine the mode, not the
14437         field's size.
14438         * expr.c (expand_assignment): Likewise.
14439         (get_inner_reference): Likewise.
14440         (expand_expr_real_1): Likewise.
14441         * expmed.c (store_fixed_bit_field): Likewise.
14442         (extract_bit_field_1): Likewise.
14443         (extract_fixed_bit_field): Likewise.
14444
14445 2010-06-16  Richard Guenther  <rguenther@suse.de>
14446
14447         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
14448
14449 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
14450
14451         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
14452         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
14453         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
14454         * debug.c: Likewise.
14455         * sdbout.c: Likewise.
14456         * vmsdbgout.c: Likewise.
14457         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
14458         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
14459         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
14460         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
14461         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
14462         * dwarf2out.c (dw_fde_struct): New fields
14463         dw_fde_vms_{end,begin}_prologue.
14464         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
14465         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
14466         (dwarf2out_vms_end_prologue): New function.
14467         (dwarf2out_vms_begin_epilogue): New function.
14468         (dw_val_struct): New value dw_val_class_vms_delta.
14469         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
14470         begin_epilogue for VMS.
14471         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
14472         new static functions.
14473         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
14474         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
14475         static functions.
14476         (print_die): New case dw_val_class_vms_delta.
14477         (attr_checksum): Likewise.
14478         (same_dw_val_p: Likewise.
14479         (size_of_die): Likewise.
14480         (value_format): Likewise.
14481         (output_die): Likewise.
14482         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
14483         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
14484         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
14485         dwarf2out_cfi_begin_epilogue
14486         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
14487
14488 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
14489
14490         * config/cris/cris-protos.h (cris_print_operand): Delete.
14491         (cris_print_operand_address): Delete.
14492         * config/cris/cris.h (PRINT_OPERAND): Delete.
14493         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14494         (PRINT_OPERAND_ADDRESS): Delete.
14495         * config/cris/cris.c (cris_print_operand_address): Make static.
14496         (cris_print_operand): Make static.
14497         (cris_print_operand_punct_valid_p): New function.
14498         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14499         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14500
14501 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
14502
14503         * config/arm/arm-protos.h (arm_print_operand): Delete.
14504         (arm_print_operand_address): Delete.
14505         * config/arm/arm.h (PRINT_OPERAND): Delete.
14506         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14507         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
14508         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
14509         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
14510         (arm_print_operand): Make static.
14511         (arm_print_operand_punct_valid_p): New function.
14512         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
14513         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14514
14515 2010-06-16  Nick Clifton  <nickc@redhat.com>
14516
14517         * config/rx/constraints.md (NEGint4): New constraint.
14518         * config/rx/rx.md (attr cc): Add set_zsc.
14519         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
14520         initialised.
14521         (cmpsf): Likewise.
14522         (call_internal): Clobber the cc0 register.
14523         (call_value_internal): Likewise.
14524         (cstoresi4): Likewise.
14525         (movsieq): Likewise.
14526         (movsine): Likewise.
14527         (addsi3): Add alternative to handle small negative constants.
14528         (sunsi3): Likewise.
14529         (addsi3): Do not set the O bit in the cc0 register.
14530         (adddi3): Likewise.
14531         (subsi3): Likewise.
14532         (subdi3): Likewise.
14533         (andsi3): Reorder alternatives to prefer shorter forms.
14534         (mulsi3): Likewise.
14535         (iorsi3): Likewise.
14536         (negsi2): Note that the cc0 flags are set.
14537         (rotlsi3): Note that only the Z and S bits are set in cc0.
14538         (lshrsi3): Likewise.
14539         (ashlsi3): Likewise.
14540         (subsf3): Use %Q for the MEM operand.
14541         (fix_truncsfsi2): Likewise.
14542         (floatsisf2): Likewise.
14543         (bitset): Remove early clobber from destination.
14544         (bitset_in_memory): Likewise.
14545         (lrintsf2): Clobber the cc0 register.
14546         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
14547         (rx_print_operand): Handle %N.
14548
14549 2010-06-16  Jan Hubicka  <jh@suse.cz>
14550
14551         * df-core.c (df_compact_blocks): Free problem_temps vector.
14552
14553 2010-06-16  Martin Jambor  <mjambor@suse.cz>
14554
14555         PR tree-optimization/43905
14556         * tree-sra.c: Include tree-inline.h.
14557         (create_abstract_origin): Removed.
14558         (modify_function): Version the call graph node instead of creating
14559         abstract origins and dealing with same_body aliases.
14560         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
14561         function is versionable.
14562         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
14563
14564 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
14565
14566         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
14567         (CHOOSE_DYNAMIC_LINKER): Update.
14568
14569 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
14570
14571         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
14572         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
14573         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
14574         *prefetch_3dnow_rex.
14575
14576 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
14577
14578         * target.h (struct asm_out):Add declare_constant_name field.
14579         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
14580         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
14581         * output.h (default_asm_declare_constant_name): Declare.
14582         (assemble_label): Update prototype.
14583         * varasm.c (assemble_constant_contents): Use
14584         targetm.asm_out.declare_constant_name target hook.
14585         (assemble_label): Add 'file' argument.
14586         (default_asm_declare_constant_name): New function.
14587         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
14588         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
14589         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
14590
14591         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
14592         * config/darwin.c (darwin_asm_declare_constant_name): New function.
14593         (machopic_output_indirection): Update assemble_label argument list.
14594         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
14595         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
14596
14597 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
14598
14599         PR middle-end/44391
14600         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
14601         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
14602
14603 2010-06-15  Richard Guenther  <rguenther@suse.de>
14604
14605         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
14606
14607 2010-06-15  Paul Brook  <paul@codesourcery.com>
14608
14609         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
14610         hard-float ABI.
14611
14612 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
14613
14614         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
14615         don't get a vector type for output.
14616
14617 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
14618
14619         PR fortran/44536
14620         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
14621         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
14622         (LANG_HOOKS_DECLS): Add it.
14623         * gimplify.c (omp_notice_variable): Call
14624         lang_hooks.decls.omp_report_decl.
14625
14626 2010-06-15  Martin Jambor  <mjambor@suse.cz>
14627
14628         PR lto/44464
14629         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
14630         on the newly dead SSA name.
14631
14632 2010-06-15  Alan Modra  <amodra@gmail.com>
14633
14634         * doc/invoke.texi: Add mcmodel to powerpc options.
14635         * configure.ac: Add HAVE_LD_LARGE_TOC test.
14636         * configure: Regenerate.
14637         * config.in: Regenerate.
14638         * config/rs6000/linux64.opt (mcmodel): New.
14639         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
14640         (TARGET_CMODEL, SET_CMODEL): Define.
14641         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
14642         select CMODEL_MEDIUM default.
14643         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
14644         (TARGET_CMODEL): Define default.
14645         * config/rs6000/rs6000.c (cmodel): New variable.
14646         (rs6000_explicit_options): Add cmodel field.
14647         (rs6000_handle_option): Handle -mcmodel.
14648         (create_TOC_reference): Add largetoc_reg param.  Generate high,
14649         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
14650         (rs6000_delegitimize_address): Recognise new toc reference rtl
14651         and minimal-toc rtl.
14652         (rs6000_legitimize_reload_address): Handle new toc references.
14653         (print_operand_address): Handle legitimate_constant_pool_address_p
14654         match before lo_sum.
14655         (rs6000_eliminate_indexed_memrefs): Tidy.
14656         (rs6000_emit_move): Tweak threshold for inlining constants.
14657         Keep rs6000_emit_allocate_stack large stack frame offsets
14658         loaded into r0 inline.
14659         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
14660         (tocrel_base, tocrel_offset): New variables.
14661         (toc_relative_expr_p): Set them here.
14662         (print_operand_address): Skip over any offset on constant pool address.
14663         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
14664         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
14665         (offsettable_ok_by_alignment): New function.
14666         (rs6000_emit_move): Address suitably aligned local symbol_refs
14667         relative to the toc pointer for -mcmodel=medium.
14668         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
14669         strict param.  Allow lo_sum version of addressing.  Verify reg
14670         used for -mminimal-toc and -mcmodel != small.  Update all callers.
14671         * config/rs6000/constraints.md: Update for above change.
14672         * config/rs6000/predicates.md: Likewise.
14673         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
14674         code.
14675         (tls_gd): Split for -mcmodel=medium/large.
14676         (tls_gd_high, tls_gd_low): New.
14677         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
14678         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
14679         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
14680         (largetoc_high, largetoc_low): New.
14681         (cmptf_internal2): Add clobber.
14682         * config/rs6000/rs6000-protos.h: Update.
14683
14684 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
14685
14686         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
14687         true if no prefetch is going to be generated for a given group.
14688         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
14689         estimate the prefetch_count.
14690         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
14691         prefetch count by considering the unroll_factor and prefetch_mod
14692         for is_loop_prefetching_profitable.
14693
14694 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
14695
14696         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
14697         anything if the argument is not a MEM.
14698
14699 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
14700
14701         PR debug/43650
14702         PR debug/44181
14703         PR debug/44247
14704         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
14705         debug stmts.
14706         (canonicalize_loop_ivs): Likewise.
14707
14708 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
14709
14710         PR debug/43656
14711         * haifa-sched.c (setup_insn_reg_pressure_info,
14712         update_register_pressure): Reject debug insns.
14713         (ready_sort): Don't setup reg pressure for debug insns.
14714         (schedule_insn): Don't update reg pressure for debug insns.
14715
14716 2010-06-14  Richard Guenther  <rguenther@suse.de>
14717
14718         * lto-streamer.c (cached_bp): Remove.
14719         (bitpack_delete): Likewise.
14720         (bitpack_create): Likewise.
14721         (bp_get_next_word): Likewise.
14722         (bp_pack_value, bp_unpack_value): Move ...
14723         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
14724         Re-implement.
14725         (struct bitpack_d): Likewise.
14726         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
14727         New inline functions.
14728         * lto-streamer-out.c (lto_output_bitpack): Remove.
14729         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
14730         (pack_value_fields): Adjust.
14731         (lto_write_tree): Likewise.
14732         (output_gimple_stmt): Likewise.
14733         (output_function): Likewise.
14734         * lto-streamer-in.c (input_gimple_stmt): Adjust.
14735         (input_function): Likewise.
14736         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
14737         (lto_input_bitpack): Remove.
14738         (lto_materialize_tree): Adjust.
14739         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
14740         * lto-cgraph.c (lto_output_edge): Adjust.
14741         (lto_output_node): Likewise.
14742         (lto_output_varpool_node): Likewise.
14743         (lto_output_ref): Likewise.
14744         (input_node): Likewise.
14745         (input_varpool_node): Likewise.
14746         (input_ref): Likewise.
14747         (input_edge): Likewise.
14748         (output_node_opt_summary): Likewise.
14749         (input_node_opt_summary): Likewise.
14750         * ipa-pure-const.c (pure_const_write_summary): Likewise.
14751         (pure_const_read_summary): Likewise.
14752         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
14753         (ipa_read_indirect_edge_info): Likewise.
14754         (ipa_write_node_info): Likewise.
14755         (ipa_read_node_info): Likewise.
14756
14757 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
14758
14759         PR target/44534
14760         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
14761         (vec_extract_lo_v16hi): Likewise.
14762         (vec_extract_lo_v32qi): Likewise.
14763
14764 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
14765
14766         PR bootstrap/44426
14767         * tree.h (build_call_expr): Don't define as vararg macro, instead
14768         add a prototype.
14769         * builtins.c (build_call_nofold): Remove.
14770         (expand_builtin_int_roundingfn, expand_builtin_pow,
14771         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
14772         expand_builtin_memset_args, expand_builtin_strcmp,
14773         expand_builtin_strncmp, expand_builtin_memory_chk): Use
14774         build_call_nofold_loc instead of build_call_nofold.
14775         (build_call_expr): New function.
14776
14777         PR tree-optimization/44508
14778         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
14779         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
14780         don't eliminate trivially dead stmts.
14781         * tree-vrp.c (vrp_finalize): Pass false as last argument
14782         to substitute_and_fold.
14783         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
14784         to substitute_and_fold.
14785         * tree-ssa-ccp.c (ccp_finalize): Likewise.
14786
14787         PR bootstrap/44509
14788         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
14789
14790 2010-06-14  Ira Rosen  <irar@il.ibm.com>
14791
14792         PR tree-optimization/44507
14793         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
14794         to build initial vector for BIT_AND_EXPR.
14795         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
14796
14797 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
14798
14799         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
14800         adjust z10prop set_attr.
14801
14802 2010-06-13  Jan Hubicka  <jh@suse.cz>
14803
14804         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
14805         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
14806         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
14807         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
14808         datastructure checks into checking asserts.
14809         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
14810         * tree-ssa-sccvn.c (VN_INFO): Likewise.
14811         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
14812         df_ref_create_structure): Likewise.
14813         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
14814         pool_free): Use gcc_checking_assert.
14815         * alias.c (get_alias_set): Likewise.
14816         * var-tracking.c (variable_htab_free, shared_hash_copy,
14817         canonicalize_values_mark, variable_merge_over_cur): Likewise.
14818         * lto-streamer.c (bp_unpack_value): Likewise.
14819
14820 2010-06-13  Richard Guenther  <rguenther@suse.de>
14821
14822         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
14823         Do not stream but initialize TYPE_CANONICAL to NULL.
14824         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
14825         * gimple.c (gimple_types_compatible_p): Disregard
14826         TYPE_STRUCTURAL_EQUALITY_P.
14827         (gimple_register_type): Use TYPE_CANONICAL as cache.
14828         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
14829         before registering common types.
14830         * config/i386/i386.c (ix86_function_arg_boundary): Do not
14831         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
14832         * tree.h (TYPE_CANONICAL): Clarify documentation.
14833
14834 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
14835
14836         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
14837         LIBCALL_VALUE): Remove macros.
14838         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
14839         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14840         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14841         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
14842         (ia64_function_value): Make static. Handle receiving the function
14843         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
14844
14845 2010-06-12  Jan Hubicka  <jh@suse.cz>
14846
14847         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
14848         at correct place.
14849
14850 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
14851
14852         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
14853
14854 2010-06-12  Jan Hubicka  <jh@suse.cz>
14855
14856         * df-core.c (df_clear_bb_info): New function.
14857         (df_set_blocks): bb_info is always allocated.
14858         (df_get_bb_info): Use block_info_elt_size.
14859         (df_set_bb_info): Likewise.
14860         (df_compact_blocks): Update for new block_info.
14861         (grow_bb_info): New function.
14862         * df-problems.c (df_grow_bb_info): Move to df-core.c
14863         (df_rd_set_bb_info): Remove.
14864         (df_rd_free_bb_info): Do not free block pool.
14865         (df_rd_alloc): Do not create pool, use check for
14866         obstack presence instead of NULL pointer for new blocks.
14867         (df_rd_free): DO not free alloc pool; clear block_info.
14868         (problem_RD): Add size of block info structure.
14869         (df_lr_set_bb_info): Remove.
14870         (df_lr_free_bb_info): Do not free block pool.
14871         (df_lr_alloc): Do not create pool, use check for
14872         obstack presence instead of NULL pointer for new blocks.
14873         (df_lr_free): DO not free alloc pool; clear block_info.
14874         (problem_LR): Add size of block info structure.
14875         (df_live_set_bb_info): Remove.
14876         (df_live_free_bb_info): Do not free block pool.
14877         (df_live_alloc): Do not create pool, use check for
14878         obstack presence instead of NULL pointer for new blocks.
14879         (df_live_free): DO not free alloc pool; clear block_info.
14880         (problem_LIVE): Add size of block info structure.
14881         (problem_CHAIN): Add size of block info structure.
14882         (df_byte_lr_set_bb_info): Remove.
14883         (df_byte_lr_free_bb_info): Do not free block pool.
14884         (df_byte_lr_alloc): Do not create pool, use check for
14885         obstack presence instead of NULL pointer for new blocks.
14886         (df_byte_lr_free): DO not free alloc pool; clear block_info.
14887         (problem_BYTE_LR): Add size of block info structure.
14888         (problem_NOTE): Add size of block info structure.
14889         (df_byte_MD_set_bb_info): Remove.
14890         (df_byte_MD_free_bb_info): Do not free block pool.
14891         (df_byte_MD_alloc): Do not create pool, use check for
14892         obstack presence instead of NULL pointer for new blocks.
14893         (df_byte_MD_free): DO not free alloc pool; clear block_info.
14894         (problem_BD): Add size of block info structure.
14895         * df-scan.c (df_scan_free_internal): Free block pool.
14896         (df_scan_set_bb_info): Remove.
14897         (df_scan_free_bb_info): Check for artificial_defs instead
14898         of bb_info being non-NULL.
14899         (df_scan_alloc): DO not create df_scan_block pool.
14900         (problem_SCAN): Set size of block info.
14901         (df_bb_refs_record): Do not allocate bb_info.
14902         * df.h (df_problem): Add block_info_elt_size.
14903         (struct dataflow): Change block_info to void *.
14904         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
14905         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
14906         in-line structures.
14907
14908 2010-06-12  Jan Hubicka  <jh@suse.cz>
14909
14910         PR tree-optimize/44485
14911         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
14912         containing use of return value of noreturn function.
14913
14914 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
14915
14916         * targhooks.c (default_function_value): Don't use
14917         FUNCTION_OUTGOING_VALUE.
14918         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
14919         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
14920
14921 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
14922
14923         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
14924         Add crtfastmath.o to extra_parts.
14925         * config/mips/crtfastmath.c: New.
14926         * config/mips/linux.h (ENDFILE_SPEC): New.
14927
14928 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
14929
14930         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
14931         old_type in parameter.
14932         (gcc_type_for_value): Update call to gcc_type_for_interval.
14933         (compute_type_for_level_1): Renamed compute_type_for_level.
14934         Update call to gcc_type_for_interval.
14935
14936 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
14937
14938         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
14939         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
14940
14941 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
14942
14943         * opts-common.c: Include options.h.
14944         (integral_argument): Move from opts.c.
14945         (decode_cmdline_option): New.  Based on read_cmdline_option.
14946         * opts.c (integral_argument): Move to opts-common.c.
14947         (read_cmdline_option): Move most contents to
14948         decode_cmdline_option.  Use %qs in diagnostics.
14949         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
14950         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
14951         decode_cmdline_option): New.
14952
14953 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14954
14955         PR target/44481
14956         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
14957         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
14958         (partiysi2_cmp): Ditto.
14959         (*partiyhi2_cmp): Ditto.
14960         (*parityqi2_cmp): Remove.
14961
14962 2010-06-11  Jan Hubicka  <jh@suse.cz>
14963
14964         * bitmap.h (bmp_iter_next_bit): New.
14965         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
14966
14967 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
14968             Eric Botcazou  <ebotcazou@adacore.com>
14969
14970         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
14971         computed cost.
14972
14973 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14974
14975         * config/i386/i386.md (unspec): New define_c_enum.
14976         (unspecv): Ditto.
14977
14978 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
14979
14980         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
14981
14982 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
14983
14984         PR middle-end/44483
14985         * tree-if-conv.c (bb_predicate_s): New struct.
14986         (bb_predicate_p): New.
14987         (bb_has_predicate): New.
14988         (bb_predicate): New.
14989         (set_bb_predicate): New.
14990         (bb_predicate_gimplified_stmts): New.
14991         (set_bb_predicate_gimplified_stmts): New.
14992         (add_bb_predicate_gimplified_stmts): New.
14993         (init_bb_predicate): New.
14994         (free_bb_predicate): New.
14995         (is_predicated): Use bb_predicate.
14996         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
14997         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
14998         before processing their successors.
14999         (clean_predicate_lists): Removed.
15000         (find_phi_replacement_condition): Use bb_predicate.
15001         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
15002         computations.
15003         (insert_gimplified_predicates): New.
15004         (combine_blocks): Call insert_gimplified_predicates.
15005         (tree_if_conversion): Call free_bb_predicate instead of
15006         clean_predicate_lists.
15007
15008 2010-10-11  Paul Brook  <paul@codesourcery.com>
15009
15010         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
15011         * config/arm/arm.c (all_architectures): Change v7e-m default to
15012         cortexm4.
15013         * config/arm/arm-cores.def: Add cortex-m4.
15014         * config/arm/arm-tune.md: Regenerate.
15015
15016 2010-06-11  Jan Hubicka  <jh@suse.cz>
15017
15018         * ipa-pure-const.c (special_builtlin_state): New function.
15019         (check_call): Use it instead of special casign BUILT_IN_RETURN.
15020         (propagate_pure_const): Use it.
15021
15022 2010-06-11  Jan Hubicka  <jh@suse.cz>
15023
15024         * df-problems.c (df_live_scratch): Convert to bitmap_head.
15025         (df_live_alloc): Initialize df_live_scratch when initializing
15026         problem_data.
15027         (df_live_transfer_function): Update uses of df_live_scratch.
15028         (df_live_free): Free problem_data; clear df_live_scratch before
15029         releasing the obstack.
15030         (df_md_free): Free problem data.
15031
15032 2010-06-11  Jan Hubicka  <jh@suse.cz>
15033
15034         * doc/invoke.texi (Wsuggest-attribute): Document.
15035         (Wmissing-noreturn): Remove.
15036         * ipa-pure-const.c (warn_function_noreturn): New function.
15037         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
15038         warn_missing_noreturn.
15039         * common.opt (Wsuggest-attribute=noreturn): New.
15040         * tree-flow.h (warn_function_noreturn): Declare.
15041         * tree-cfg.c (execute_warn_function_noreturn): Use
15042         warn_function_noreturn.
15043         (gate_warn_function_noreturn): New.
15044         (pass_warn_function_noreturn): Update.
15045
15046 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15047
15048         * c-typeck.c (handle_warn_cast_qual): Add loc
15049         parameter. Improve warning message.
15050         (build_c_cast): Pass location to handle_warn_cast_qual.
15051
15052 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
15053
15054         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
15055         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
15056         insn mnemonic.
15057         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
15058
15059 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
15060
15061         Fix bootstap on mips
15062         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
15063         be naming typedefs.
15064
15065 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
15066
15067         * system.h (helper_const_non_const_cast): New inline for
15068         gcc version <= 4.0.
15069         (CONST_CAST2): For gcc version <= 4.0 use
15070         new helper to do const/non-const casting.
15071
15072 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15073
15074         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
15075         * Makefile.in (OBJS-common): Include insn-enums.o.
15076         (insn-enums.o): New rule.
15077         (simple_generated_c): Add insn-enums.c.
15078         (build/genenums.o): New rule.
15079         (genprogmd): Add "enums".
15080         * genconstants.c (print_enum_type): Declare a C string array
15081         for each enum.
15082         * genenums.c: New file.
15083         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
15084         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
15085         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
15086
15087 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15088
15089         * doc/md.texi (define_enum_attr): Document.
15090         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
15091         * read-md.h (lookup_enum_type): Declare.
15092         * read-md.c (lookup_enum_type): New function.
15093         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
15094         * genattrtab.c (attr_desc): Add an enum_name field.
15095         (evaluate_eq_attr): Take the associated attribute as argument.
15096         Get the enum prefix from the enum_name field, if defined.
15097         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
15098         (simplify_test_exp): Pass attr to evaluate_eq_attr.
15099         (add_attr_value): New function, split out from...
15100         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
15101         (write_test_expr): Pass attr to evaluate_eq_attr.
15102         (write_attr_get): Use the enum_name as the enum tag, if defined.
15103         (write_attr_valueq): Use the enum_name as a prefix, if defined.
15104         (find_attr): Initialize enum_name.
15105         (main): Handle DEFINE_ENUM_ATTR.
15106         * gensupport.c (process_rtx): Likewise.
15107         * config/mips/mips.h (mips_tune_attr): Delete.
15108         * config/mips/mips.md (cpu): Use define_attr_enum.
15109
15110 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15111
15112         * doc/md.texi (define_c_enum, define_enum): Document.
15113         * read-md.h (md_constant): Add a parent_enum field.
15114         (enum_value, enum_type): New structures.
15115         (upcase_string, traverse_enum_types): Declare.
15116         * read-md.c (enum_types): New variable.
15117         (upcase_string, add_constant): New functions.
15118         (handle_constants): Don't create the hash table here.
15119         Use add_constant.
15120         (traverse_md_constants): Don't check for a null md_constants.
15121         (decimal_string, handle_enum, traverse_enum_types): New functions.
15122         (read_md_files): Initialize md_constants and md_enums.
15123         * genconstants.c (print_md_constant): Ignore info argument.
15124         Only print constants that belong to no enum.
15125         (print_enum_type): New function.
15126         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
15127         for each defined enum type.
15128         * config/mips/mips.md (processor): New define_enum.
15129         (unspec): New define_c_enum.
15130         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
15131         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
15132         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
15133         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
15134         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
15135         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
15136         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
15137         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
15138         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
15139         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
15140         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
15141         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
15142         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
15143         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
15144         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
15145         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
15146         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
15147         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
15148         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
15149         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
15150         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
15151         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
15152         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
15153         (UNSPEC_RDDSP): Move to mips-dsp.md.
15154         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
15155         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
15156         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
15157         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
15158         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
15159         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
15160         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
15161         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
15162         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
15163         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
15164         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
15165         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
15166         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
15167         Moved to mips-dspr2.md.
15168         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
15169         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
15170         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
15171         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
15172         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
15173         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
15174         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
15175         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
15176         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
15177         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
15178         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
15179         UNSPEC_LOONGSON_PSADBH)
15180         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
15181         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
15182         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
15183         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
15184         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
15185         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
15186         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
15187         (cpu): Update comment.
15188         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
15189         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
15190         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
15191         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
15192         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
15193         UNSPEC_LOONGSON_PCMPEQ)
15194         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
15195         UNSPEC_LOONGSON_PINSR_0)
15196         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
15197         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
15198         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
15199         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
15200         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
15201         UNSPEC_LOONGSON_PSADBH)
15202         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
15203         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
15204         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
15205         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
15206         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
15207         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
15208         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
15209         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
15210         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
15211         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
15212         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
15213         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
15214         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
15215         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
15216         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
15217         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
15218         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
15219         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
15220         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
15221         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
15222         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
15223         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
15224         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
15225         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
15226         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
15227         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
15228         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
15229         (UNSPEC_RDDSP): Moved from mips.md.
15230         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
15231         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
15232         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
15233         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
15234         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
15235         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
15236         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
15237         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
15238         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
15239         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
15240         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
15241         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
15242         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
15243         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
15244         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
15245         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
15246         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
15247         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
15248         (UNSPEC_SCC): Moved from mips.md.
15249         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
15250         "processor_type" to "processor".
15251         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
15252         * config/mips/mips.h (processor_type): Delete.
15253         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
15254         "processor_type" to "processor".
15255
15256 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15257
15258         * configure.ac (tm_include_list): Add insn-constants.h.
15259         * configure: Regenerate.
15260         * Makefile.in (GTM_H): Move insn-constants.h here from...
15261         (TM_H): ...here.
15262         * mkconfig.sh: Remove special handling for insn-constants.h.
15263
15264 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15265
15266         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
15267         (BUILD_MD): ...this new variable.
15268         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
15269         that include the old contents of simple_generated_h and
15270         simple_generated_c.
15271         (simple_generated_h, simple_generated_c): Include them.  Add
15272         insn-constants.h.
15273         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
15274         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
15275         Remove these dependencies from the main rule and include
15276         insn-conditions.md in the command line only if it appears
15277         in the dependency list.
15278         (insn-constants.h, s-constants): Delete.
15279         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
15280         or gensupport.h.
15281         (build/genmddeps.o): Likewise.
15282         (genprogrtl): New variable that contains everything from genprogmd
15283         except mddeps and constants.
15284         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
15285         depend on $(BUILD_MD)
15286         (genprog): New variable.  Make these programs depend on
15287         $(BUILD_ERRORS).
15288         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
15289         (main): Use read_md_files instead of init_rtx_reader_args.
15290         * genconstants.c: As for genmddeps.c.
15291         * read-md.h (read_skip_construct): Declare.
15292         * read-md.c (read_skip_construct): New function.
15293         (handle_file): Allow a null handle_directive, skipping the
15294         construct if so.
15295         (parse_include): Update the comment accordingly.
15296
15297 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15298
15299         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
15300         * genmddeps.c: Include read-md.h.
15301         (main): Call init_rtx_reader_args instead of init_md_reader_args.
15302         * genattr.c (main): Likewise.
15303         * genattrtab.c (main): Likewise.
15304         * genautomata.c (main): Likewise.
15305         * gencodes.c (main): Likewise.
15306         * genconditions.c (main): Likewise.
15307         * genconfig.c (main): Likewise.
15308         * genconstants.c (main): Likewise.
15309         * genemit.c (main): Likewise.
15310         * genextract.c (main): Likewise.
15311         * genflags.c (main): Likewise.
15312         * genopinit.c (main): Likewise.
15313         * genoutput.c (main): Likewise.
15314         * genpeep.c (main): Likewise.
15315         * genrecog.c (main): Likewise.
15316         * genpreds.c (main): Likewise.
15317         * gensupport.h (in_fname): Move to read-md.h.
15318         (init_md_reader_args_cb): Rename to...
15319         (init_rtx_reader_args_cb): ...this and return a bool.
15320         (init_md_reader_args): Rename to...
15321         (init_rtx_reader_args): ...this and return a bool.
15322         (include_callback): Move to read-md.h.
15323         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
15324         (file_name_list, first_dir_md_include): Move to read-md.c
15325         (first_bracket_include): Delete unused variable.
15326         (last_dir_md_include): Move to read-md.c.
15327         (process_include): Delete, moving code to read-md.c:handle_include.
15328         (process_rtx): Don't handle INCLUDE.
15329         (save_string): Delete.
15330         (rtx_handle_directive): New function.
15331         (init_md_reader_args_cb): Rename to...
15332         (init_rtx_reader_args_cb): ...this and return a boolean success value.
15333         Use read_md_args.
15334         (init_md_reader_args): Rename to...
15335         (init_rtx_reader_args): ...this and return a boolean success value.
15336         * rtl.def (INCLUDE): Delete.
15337         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
15338         argument.
15339         * read-rtl.c (read_conditions): Don't gobble ')' here.
15340         (read_mapping): Likewise.
15341         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
15342         Handle top-level non-rtx constructs here rather than in read_rtx_1.
15343         Store the whole queue in *X.  Remove call to init_md_reader.
15344         (read_rtx_1): Rename to...
15345         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
15346         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
15347         here.
15348         (read_nested_rtx): New function.  Handle (nil) here rather than
15349         in read_rtx_code.
15350         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
15351         gobble ')' here.
15352         * read-md.h (directive_handler_t): New type.
15353         (in_fname, include_callback): Moved from read-md.h.
15354         (read_constants, init_md_reader): Delete.
15355         (read_md_files): Declare.
15356         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
15357         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
15358         from gensupport.c.
15359         (read_constants): Rename to...
15360         (handle_constants): ...this.  Don't gobble ')' here.
15361         (handle_include, handle_file, handle_toplevel_file)
15362         (parse_include): New functions, mostly taken from gensupport.c.
15363         (init_md_reader): Subsume into...
15364         (read_md_files): ...this new function.
15365
15366 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15367
15368         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
15369         (unread_char): Decrement read_md_lineno after putting back '\n'.
15370         * read-md.c (fatal_with_file_and_line): Push back any characters
15371         that we decide not to add to the context.
15372         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
15373         fatal_expected_char in cases where '/' ends a line (for example).
15374         (read_name): Don't increment read_md_lineno here.
15375         (read_escape): Likewise.
15376         (read_quoted_string): Likewise.
15377         (read_braced_string): Likewise.
15378
15379 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15380
15381         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
15382         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
15383         * genconstants.c: Include read-md.h.
15384         * read-rtl.c (md_constants): Move to read-md.c.
15385         (md_name): Move to read-md.h.
15386         (initialize_iterators): Use leading_string_hash instead of def_hash
15387         and leading_string_eq_p instead of def_name_eq_p.
15388         (read_name): Move to read-md.c.
15389         (def_hash, def_name_eq_p): Delete.
15390         (read_constants, traverse_md_constants): Move to read-md.c.
15391         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
15392         * read-md.h: Include hashtab.h.
15393         (md_name): Moved from read-rtl.c.
15394         (md_constant): Moved from read-md.h.
15395         (leading_string_hash, leading_string_eq_p, read_name)
15396         (read_constants, traverse_md_constants): Declare.
15397         * read-md.c (md_constants): Moved from read-rtl.c.
15398         (leading_string_hash, leading_string_eq_p): New functions.
15399         (read_name, read_constants, traverse_md_constants): Moved from
15400         read-rtl.c.
15401
15402 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15403
15404         * read-rtl.c (md_name): New structure.
15405         (read_name): Take an md_name instead of a buffer pointer.
15406         Use the "string" field instead of strcpy when expanding constants.
15407         (read_constants): Remove the tmp_char argument.  Update the calls
15408         to read_name, using two local name buffers instead of the tmp_char
15409         argument.  Merge the constant-creation code.
15410         (read_conditions): Remove the tmp_char argument.  Update the calls
15411         to read_name, using a local name buffer instead of the tmp_char
15412         argument.
15413         (read_mapping): Replace tmp_char variable with a local name buffer.
15414         Update the calls to read_name.
15415         (read_rtx_1): Likewise.  Update the calls to read_constants and
15416         read_conditions.
15417
15418 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15419
15420         * Makefile.in (build/read-md.o): Depend on errors.h.
15421         * read-md.h (error_with_line): Declare.
15422         * read-md.c: Include errors.h.
15423         (message_with_line_1): New function, extracted from...
15424         (message_with_line): ...here.
15425         (error_with_line): New function.
15426         * genattrtab.c: If a call to message_with_line is followed by
15427         "have_error = 1;", replace both statements with a call to
15428         error_with_line.
15429         * genoutput.c: Likewise.
15430         * genpreds.c: Likewise.
15431         * genrecog.c: If a call to message_with_line is followed by
15432         "error_count++;", replace both statements with a call to
15433         error_with_line.
15434         (errorcount): Delete.
15435         (main): Don't check it.
15436         * gensupport.c: If a call to message_with_line is followed by
15437         "errors = 1;", replace both statements with a call to error_with_line.
15438         (errors): Delete.
15439         (process_define_cond_exec): Check have_error instead of errors.
15440         (init_md_reader_args_cb): Likewise.  Don't set errors.
15441
15442 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15443
15444         * read-md.h (read_md_file): Declare.
15445         (read_char, unread_char): New functions.
15446         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
15447         (read_quoted_string, read_string): Remove FILE * argument.
15448         * read-md.c (read_md_file): New variable.
15449         (read_md_filename, read_md_lineno): Update comments and remove
15450         unnecessary initialization.
15451         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
15452         (read_escape, read_quoted_string, read_braced_string, read_string):
15453         Remove FILE * argument.  Update calls accordingly, using read_char
15454         and unread_char instead of getc and ungetc.
15455         * rtl.h (read_rtx): Remove FILE * argument.
15456         * read-rtl.c (iterator_group): Remove FILE * argument from
15457         "find_builtin".
15458         (iterator_traverse_data): Remove "infile" field.
15459         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
15460         (add_mapping, read_name, read_constants, read_conditions)
15461         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
15462         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
15463         Remove file arguments from all calls, using read_char and unread_char
15464         instead of getc and ungetc.
15465         * gensupport.c (process_include): Preserve read_md_file around
15466         the include.  Set read_md_file to the handle of the included file.
15467         Update call to read_rtx.
15468         (init_md_reader_args_cb): Set read_md_file to the handle of the file
15469         and remove local FILE *.  Update calls to read_rtx.
15470
15471 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15472
15473         * read-md.h (read_rtx_lineno): Rename to...
15474         (read_md_lineno): ...this.
15475         (read_rtx_filename): Rename to...
15476         (read_md_filename): ...this.
15477         (copy_rtx_ptr_loc): Rename to...
15478         (copy_md_ptr_loc): ...this.
15479         (print_rtx_ptr_loc): Rename to...
15480         (print_md_ptr_loc): ...this.
15481         * read-md.c: Likewise.  Update references after renaming.
15482         (string_obstack): Replace RTL with MD in comment.
15483         (set_rtx_ptr_loc): Rename to...
15484         (set_md_ptr_loc): ...this.
15485         (get_rtx_ptr_loc): Rename to...
15486         (get_md_ptr_loc): ...this.
15487         * genconditions.c: Update references after renaming.
15488         * genemit.c: Likewise.
15489         * genoutput.c: Likewise.
15490         * genpreds.c: Likewise.
15491         * gensupport.c: Likewise.
15492         * read-rtl.c: Likewise.
15493
15494 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
15495
15496         * Makefile.in (READ_MD_H): New variable.
15497         (BUILD_RTL): Add build/read-md.o.
15498         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
15499         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
15500         (build/genattrtab.o, build/genconditions.o build/genemit.o)
15501         (build/genextract.o, build/genflags.o, build/genoutput.o)
15502         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
15503         (build/read-md.o): New rule.
15504         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
15505         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
15506         * coretypes.h: ...here.
15507         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
15508         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
15509         * genattr.c: Include read-md.h.
15510         * genattrtab.c: Likewise.
15511         * genconditions.c: Likewise.
15512         * genemit.c: Likewise.
15513         * genextract.c: Likewise.
15514         * genflags.c: Likewise.
15515         * genoutput.c: Likewise.
15516         * genpreds.c: Likewise.
15517         * genrecog.c: Likewise.
15518         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
15519         (join_c_conditions, print_c_condition, read_rtx_filename)
15520         (read_rtx_lineno): Move to read-md.h.
15521         * read-rtl.c: Include read-md.h.
15522         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
15523         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
15524         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
15525         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
15526         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
15527         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
15528         (read_braced_string, read_string): Move to read-md.c.
15529         (read_rtx): Move some initialization to init_md_reader and call
15530         init_md_reader here.
15531         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
15532         Move to read-md.h.
15533         * gensupport.c: Include read-md.h.
15534         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
15535         * read-md.h, read-md.c: New files.
15536
15537 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
15538
15539         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15540         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15541         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
15542         * config/moxie/moxie.c (moxie_function_value): Make static.
15543         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
15544         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15545
15546 2010-06-10  Martin Jambor  <mjambor@suse.cz>
15547
15548         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
15549         * dbgcnt.def (tree_sra): New counter.
15550         * tree-sra.c: Include dbgcnt.h.
15551         (gate_intra_sra): Check tree_sra debug counter.
15552
15553 2010-06-10  Martin Jambor  <mjambor@suse.cz>
15554
15555         PR tree-optimization/44258
15556         * tree-sra.c (build_access_subtree): Return false iff there is a
15557         partial overlap.
15558         (build_access_trees): Likewise.
15559         (analyze_all_variable_accesses): Disqualify candidates if
15560         build_access_trees returns true for them.
15561
15562 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
15563
15564         PR debug/41371
15565         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
15566         tail-recurse into canonical node.  Fast-forward over
15567         non-canonical VALUEs.
15568
15569 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
15570
15571         PR boostrap/44470
15572         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
15573         (*addsi_1_zext) <TYPE_LEA>: Likewise.
15574         (add lea splitter): Likewise.
15575         (add_zext lea splitter): Likewise.
15576
15577 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
15578
15579         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
15580
15581 2010-06-10  Jan Hubicka  <jh@suse.cz>
15582
15583         * df-problems.c (df_live_problem_data): Add live_bitmaps.
15584         (df_live_alloc): Initialize problem data and live_osbtacks.
15585         (df_live_finalize): Remove obstack, problem data; do not
15586         clear all bitmaps.
15587         (df_live_top_dump, df_live_bottom_dump): Do not dump old
15588         data when not allocated.
15589         (df_live_verify_solution_start): Do not allocate problem data.
15590         (df_live_verify_solution_end): Check if out is allocated.
15591         (struct df_md_problem_data): New structure.
15592         (df_md_alloc): Allocate problem data.
15593         (df_md_free): Free problem data; do not clear bitmaps.
15594
15595 2010-06-10  Jan Beulich  <jbeulich@novell.com>
15596
15597         PR bootstrap/37304
15598         * configure.ac: Replace $() with ${} when intending to expand
15599         variables rather than invoking commands.
15600         * configure: Re-generate.
15601
15602 2010-06-10  Jan Hubicka  <jh@suse.cz>
15603
15604         PR rtl-optimization/44460
15605         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
15606         TYPE_NEEDS_CONSTRUCTING sanity check.
15607
15608 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
15609
15610         * doc/include/fdl.texi: Move to GFDL version 1.3.
15611
15612         * doc/cpp.texi: Move to GFDL version 1.3.
15613         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
15614         * doc/gccint.texi: Move to GFDL version 1.3.
15615         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
15616         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
15617         * doc/invoke.texi: Move to GFDL version 1.3.
15618
15619 2010-06-09  Jan Hubicka  <jh@suse.cz>
15620
15621         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
15622         Break out from ...
15623         (propagate) ... here; swap the order.
15624
15625 2010-06-09  Jan Hubicka  <jh@suse.cz>
15626
15627         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
15628         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
15629         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
15630         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
15631
15632 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
15633
15634         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
15635         Do not the gather memory reference in the outer loop if the step
15636         is not a constant.
15637
15638 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
15639
15640         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
15641         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
15642         8 to 4.  Minor change of the related comments.
15643
15644 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
15645
15646         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
15647         the scev analysis when the variable is not used outside the loop
15648         in a close phi node: call compute_overall_effect_of_inner_loop.
15649
15650 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
15651
15652         * graphite-sese-to-poly.c (single_pred_cond): Renamed
15653         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
15654         (build_sese_conditions_before): Renamed call to single_pred_cond.
15655         (build_sese_conditions_after): Same.
15656
15657 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
15658
15659         * graphite-poly.h: Fix comments and indentation.
15660         * graphite-sese-to-poly.c: Same.
15661         (build_sese_conditions_before): Compute stmt and gbb only when needed.
15662         * tree-chrec.c: Fix comments and indentation.
15663         (tree-ssa-loop-niter.c): Same.
15664
15665 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
15666
15667         PR rtl-optimization/42461
15668         * dce.c (deletable_insn_p): Return true for const or pure calls again.
15669         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
15670
15671 2010-06-09  Jan Hubicka  <jh@suse.cz>
15672
15673         * bitmap.c (bitmap_and): Walk array forward.
15674         (bitmap_and_compl_into): Likewise.
15675         (bitmap_xor): Likewise.
15676         (bitmap_xor_into):  Likewise.
15677         (bitmap_equal_p): Likewise.
15678         (bitmap_intersect_p): Likewise.
15679         (bitmap_intersect_compl_p): Likewise.
15680         (bitmap_ior_and_into): Likewise.
15681         (bitmap_elt_copy): Likewise.
15682         (bitmap_and_compl): Likewise.
15683         (bitmap_elt_ior): Likewise.
15684
15685 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
15686
15687         * opts-common.c (prune_options): Ensure replacement argv array
15688         is correctly terminated by a NULL entry.
15689
15690 2010-06-09  Jan Hubicka  <jh@suse.cz>
15691
15692         * cgraph.h (varpool_first_static_initializer,
15693         varpool_next_static_initializer): Make checking only when
15694         checking enabled.
15695         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
15696         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
15697         gcc_assert to gcc_checking_assert.
15698         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
15699         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
15700         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
15701         op_iter_init_phiuse, op_iter_init_phidef,
15702         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
15703         gcc_checking_assert.
15704         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
15705         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
15706         partition_is_global, live_on_entry, live_on_exit,
15707         live_merge_and_clear): Likewise.
15708         * system.h (gcc_checking_assert): New macro.
15709         * gimple.h (set_bb_seq): Use gcc_checking_assert.
15710
15711 2010-06-09  Jason Merrill  <jason@redhat.com>
15712
15713         * Makefile.in (TAGS): Collect tags info from c-family.
15714
15715 2010-06-09  Jan Hubicka  <jh@suse.cz>
15716
15717         * gimple.h (gcc_gimple_checking_assert): New macro.
15718         (gimple_set_def_ops, gimple_set_use_ops,
15719         gimple_set_vuse, gimple_set_vdef,
15720         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
15721         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
15722         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
15723         gimple_asm_output_op, gimple_asm_output_op_ptr,
15724         gimple_asm_set_output_op, gimple_asm_clobber_op,
15725         gimple_asm_set_clobber_op, gimple_asm_label_op,
15726         gimple_asm_set_label_op, gimple_try_set_kind,
15727         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
15728         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
15729         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
15730         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
15731         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
15732         gimple_omp_for_set_initial, gimple_omp_for_final,
15733         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
15734         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
15735         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
15736         conditional with ENABLE_GIMPLE_CHECKING.
15737         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
15738
15739 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
15740
15741         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
15742         (get_computation_cost_at): Use it.
15743         (determine_use_iv_cost_condition): Likewise.
15744         (determine_iv_cost): Likewise.
15745
15746 2010-06-09  Richard Guenther  <rguenther@suse.de>
15747
15748         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
15749         replace constants.
15750
15751 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
15752
15753         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
15754
15755 2010-06-09  Martin Jambor  <mjambor@suse.cz>
15756
15757         PR tree-optimization/44423
15758         * tree-sra.c (dump_access): Dump also grp_assignment_read.
15759         (analyze_access_subtree): Pass negative allow_replacements to children
15760         if the current type is scalar.
15761
15762 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15763
15764         PR testsuite/42843
15765         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
15766         * doc/plugins.texi (Plugin license check): Update information
15767         on type of plugin_is_GPL_compatible.
15768         * Makefile.in (PLUGINCC): Define as $(COMPILER).
15769         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
15770
15771 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
15772
15773         * config/arm/arm.c (thumb2_reorg): New function.
15774         (arm_reorg): Call it.
15775         * config/arm/thumb2.md (define_peephole2 for flag clobbering
15776         arithmetic operations): Delete.
15777
15778 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
15779
15780         PR target/44067
15781         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
15782         e500v2 target.
15783
15784 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15785
15786         PR plugins/44459
15787         * gcc-plugin.h: Encapsulate all declarations in extern "C".
15788
15789 2010-06-08  Jan Hubicka  <jh@suse.cz>
15790
15791         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
15792         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
15793
15794 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
15795
15796         PR tree-optimization/39874
15797         PR middle-end/28685
15798         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
15799         Declare.
15800         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
15801         same_bool_result_p): New.
15802         (and_var_with_comparison, and_var_with_comparison_1,
15803         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
15804         (or_var_with_comparison, or_var_with_comparison_1,
15805         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
15806         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
15807         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
15808         of combine_comparisons.
15809         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
15810
15811 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
15812
15813         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15814         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15815         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
15816         pdp11_function_value_regno_p): New functions.
15817         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15818         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15819
15820 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
15821
15822         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
15823         Thumb-2 in the MINUS case.
15824
15825 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15826
15827         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
15828
15829         * doc/gty.texi (GTY Options): Document typed GC allocation and
15830         variable_size GTY option.
15831
15832         * ggc-internal.h: New.
15833
15834         * ggc.h: Update copyright year.
15835         (digit_string): Move to stringpool.c.
15836         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
15837         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
15838         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
15839         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
15840         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
15841         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
15842         (ggc_force_collect, ggc_get_size, ggc_statistics)
15843         (ggc_print_common_statistics): Move to ggc-internal.h.
15844         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
15845         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
15846         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
15847         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
15848         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
15849         (ggc_alloc_zone_pass_stat): Remove.
15850         (ggc_internal_alloc_stat, ggc_internal_alloc)
15851         (ggc_internal_cleared_alloc_stat): New.
15852         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
15853         (ggc_internal_vec_alloc_stat)
15854         (ggc_internal_cleared_vec_alloc_stat)
15855         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
15856         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
15857         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
15858         (ggc_cleared_alloc_ptr_array_two_args): New.
15859         (htab_create_ggc, splay_tree_new_ggc): Redefine.
15860         (ggc_splay_alloc): Change the type of the first argument to
15861         enum gt_types_enum.
15862         (ggc_alloc_string): Make macro.
15863         (ggc_alloc_string_stat): New.
15864         (ggc_strdup): Redefine.
15865         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
15866         (ggc_alloc_rtvec_sized): New.
15867         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
15868         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
15869         (ggc_internal_cleared_alloc_zone_stat)
15870         (ggc_internal_zone_alloc_stat)
15871         (ggc_internal_zone_cleared_alloc_stat)
15872         (ggc_internal_zone_vec_alloc_stat)
15873         (ggc_alloc_zone_rtx_def_stat)
15874         (ggc_alloc_zone_tree_node_stat)
15875         (ggc_alloc_zone_cleared_tree_node_stat)
15876         (ggc_alloc_cleared_gimple_statement_d_stat): New.
15877
15878         * ggc-common.c: Include ggc-internal.h.
15879         (ggc_internal_cleared_alloc_stat): Rename from
15880         ggc_alloc_cleared_stat.
15881         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
15882         (ggc_calloc): Remove.
15883         (ggc_cleared_alloc_htab_ignore_args): New.
15884         (ggc_cleared_alloc_ptr_array_two_args): New.
15885         (ggc_splay_alloc): Add obj_type parameter.
15886         (init_ggc_heuristics): Formatting fixes.
15887
15888         * ggc-none.c: Update copyright year.
15889         (ggc_alloc_stat): Rename to ggc_alloc_stat.
15890         (ggc_alloc_cleared_stat): Rename to
15891         ggc_internal_cleared_alloc_stat.
15892         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
15893
15894         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
15895         Remove references to ggc_alloc in comments.
15896         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
15897         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
15898         (new_ggc_zone, destroy_ggc_zone): Remove.
15899         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
15900
15901         * ggc-zone.c: Include ggc-internal.h.  Remove references to
15902         ggc_alloc in comments.
15903         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
15904         (ggc_internal_alloc_zone_pass_stat): New.
15905         (ggc_internal_cleared_alloc_zone_stat): New.
15906         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
15907         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
15908         (new_ggc_zone, destroy_ggc_zone): Remove.
15909
15910         * stringpool.c: Update copyright year.  Include ggc-internal.h
15911         (digit_vector): Make static.
15912         (digit_string): Moved from ggc.h.
15913         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
15914         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
15915
15916         * Makefile.in (GGC_INTERNAL_H): New.
15917         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
15918         $(GGC_INTERNAL_H) to dependencies.
15919
15920         * gentype.c: Update copyright year.
15921         (walk_type): Accept variable_size GTY option.
15922         (USED_BY_TYPED_GC_P): New macro.
15923         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
15924         whitespace at the end of strings.
15925         (get_type_specifier, variable_size_p): New functions.
15926         (alloc_quantity, alloc_zone): New enums.
15927         (write_typed_alloc_def): New function.
15928         (write_typed_struct_alloc_def): Likewise.
15929         (write_typed_typed_typedef_alloc_def): Likewise.
15930         (write_typed_alloc_defns): Likewise.
15931         (output_typename, write_splay_tree_allocator_def): Likewise.
15932         (write_splay_tree_allocators): Likewise.
15933         (main): Call write_typed_alloc_defns and
15934         write_splay_tree_allocators.
15935
15936         * lto-streamer.h (lto_file_decl_data_ptr): New.
15937
15938         * passes.c (order): Define using cgraph_node_ptr.
15939
15940         * strinpool.c (struct string_pool_data): Declare nested_ptr using
15941         ht_identifier_ptr.
15942
15943         * gimple.h (union gimple_statement_d): Likewise.
15944
15945         * rtl.h (struct rtx_def): Likewise.
15946         (struct rtvec_def): Likewise.
15947
15948         * tree.h (union tree_node): Likewise.
15949
15950         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
15951
15952         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
15953
15954         * tree-scalar-evolution.c (scev_initialize): Likewise.
15955
15956         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
15957
15958         * dwarf2asm.c (dw2_force_const_mem): Likewise.
15959
15960         * omp-low.c (lower_omp_critical): Likewise.
15961
15962         * bitmap.h (struct bitmap_head_def): Update comment to not
15963         reference ggc_alloc.
15964
15965         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
15966
15967         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
15968
15969         * ipa-prop.c (duplicate_ggc_array): Rename to
15970         duplicate_ipa_jump_func_array.  Use typed GC allocation.
15971         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
15972
15973         * gimple.c (gimple_alloc_stat): Use
15974         ggc_alloc_cleared_gimple_statement_d_stat.
15975
15976         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
15977
15978         * tree.c (make_node_stat): Use
15979         ggc_alloc_zone_cleared_tree_node_stat.
15980         (make_tree_vec_stat): Likewise.
15981         (build_vl_exp_stat): Likewise.
15982         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
15983         (make_tree_binfo_stat): Likewise.
15984         (tree_cons_stat): Likewise.
15985
15986         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
15987         (shallow_copy_rtx_stat): Likewise.
15988         (make_node_stat): Likewise.
15989
15990         * lto-symtab.c: Fix comment.
15991
15992         * tree-cfg.c (create_bb): Update comment to not reference
15993         ggc_alloc_cleared.
15994         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
15995
15996         * varpool.c (varpool_node): Use typed GC allocation.
15997         (varpool_extra_name_alias): Likewise.
15998
15999         * varasm.c (emutls_decl): Likewise.
16000         (get_unnamed_section): Likewise.
16001         (get_noswitch_section): Likewise.
16002         (get_section): Likewise.
16003         (get_block_for_section): Likewise.
16004         (build_constant_desc): Likewise.
16005         (create_constant_pool): Likewise.
16006         (force_const_mem): Likewise.
16007
16008         * tree.c (build_vl_exp_stat): Likewise.
16009         (build_real): Likewise.
16010         (build_string): Likewise.
16011         (decl_debug_expr_insert): Likewise.
16012         (decl_value_expr_insert): Likewise.
16013         (type_hash_add): Likewise.
16014         (build_omp_clause): Likewise.
16015
16016         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
16017
16018         * tree-ssa.c (init_tree_ssa): Likewise.
16019
16020         * tree-ssa-structalias.c (heapvar_insert): Likewise.
16021
16022         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
16023
16024         * tree-ssa-loop-niter.c (record_estimate): Likewise.
16025
16026         * tree-ssa-alias.c (get_ptr_info): Likewise.
16027
16028         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
16029
16030         * tree-phinodes.c (allocate_phi_node): Likewise.
16031
16032         * tree-iterator.c (tsi_link_before): Likewise.
16033         (tsi_link_after): Likewise.
16034
16035         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
16036
16037         * tree-dfa.c (create_var_ann): Likewise.
16038
16039         * tree-cfg.c (create_bb): Likewise.
16040
16041         * toplev.c (alloc_for_identifier_to_locale): Likewise.
16042         (general_init): Likewise.
16043
16044         * stringpool.c (stringpool_ggc_alloc): Likewise.
16045         (gt_pch_save_stringpool): Likewise.
16046
16047         * sese.c (if_region_set_false_region): Likewise.
16048
16049         * passes.c (do_per_function_toporder): Likewise.
16050
16051         * optabs.c (set_optab_libfunc): Likewise.
16052         (set_conv_libfunc): Likewise.
16053
16054         * lto-symtab.c (lto_symtab_register_decl): Likewise.
16055
16056         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
16057         (input_eh_region): Likewise.
16058         (input_eh_lp): Likewise.
16059         (make_new_block): Likewise.
16060         (unpack_ts_real_cst_value_fields): Likewise.
16061
16062         * lto-section-in.c (lto_new_in_decl_state): Likewise.
16063
16064         * lto-cgraph.c (input_node_opt_summary): Likewise.
16065
16066         * loop-init.c (loop_optimizer_init): Likewise.
16067
16068         * lambda.h (lambda_vector_new): Likewise.
16069
16070         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
16071
16072         * ira.c (update_equiv_regs): Likewise.
16073
16074         * ipa.c (cgraph_node_set_new): Likewise.
16075         (cgraph_node_set_add): Likewise.
16076         (varpool_node_set_new): Likewise.
16077         (varpool_node_set_add): Likewise.
16078
16079         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
16080         (duplicate_ipa_jump_func_array): Likewise.
16081         (ipa_read_node_info): Likewise.
16082
16083         * ipa-cp.c (ipcp_create_replace_map): Likewise.
16084
16085         * integrate.c (get_hard_reg_initial_val): Likewise.
16086
16087         * gimple.c (gimple_alloc_stat): Likewise.
16088         (gimple_build_omp_for): Likewise.
16089         (gimple_seq_alloc): Likewise.
16090         (gimple_copy): Likewise.
16091
16092         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
16093         (gsi_insert_after_without_update): Likewise.
16094
16095         * function.c (add_frame_space): Likewise.
16096         (insert_temp_slot_address): Likewise.
16097         (assign_stack_temp_for_type): Likewise.
16098         (allocate_struct_function): Likewise.
16099         (types_used_by_var_decl_insert): Likewise.
16100
16101         * except.c (init_eh_for_function): Likewise.
16102         (gen_eh_region): Likewise.
16103         (gen_eh_region_catch): Likewise.
16104         (gen_eh_landing_pad): Likewise.
16105         (add_call_site): Likewise.
16106
16107         * emit-rtl.c (get_mem_attrs): Likewise.
16108         (get_reg_attrs): Likewise.
16109         (start_sequence): Likewise.
16110         (init_emit): Likewise.
16111
16112         * dwarf2out.c (new_cfi): Likewise.
16113         (queue_reg_save): Likewise.
16114         (dwarf2out_frame_init): Likewise.
16115         (new_loc_descr): Likewise.
16116         (find_AT_string): Likewise.
16117         (new_die): Likewise.
16118         (add_var_loc_to_decl): Likewise.
16119         (clone_die): Likewise.
16120         (clone_as_declaration): Likewise.
16121         (break_out_comdat_types): Likewise.
16122         (new_loc_list): Likewise.
16123         (loc_descriptor): Likewise.
16124         (add_loc_descr_to_each): Likewise.
16125         (add_const_value_attribute): Likewise.
16126         (tree_add_const_value_attribute): Likewise.
16127         (add_comp_dir_attribute): Likewise.
16128         (add_name_and_src_coords_attributes): Likewise.
16129         (lookup_filename): Likewise.
16130         (store_vcall_insn): Likewise.
16131         (dwarf2out_init): Likewise.
16132
16133         * dbxout.c (dbxout_init): Likewise.
16134
16135         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
16136
16137         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
16138
16139         * config/score/score7.c (score7_output_external): Likewise.
16140
16141         * config/score/score3.c (score3_output_external): Likewise.
16142
16143         * config/s390/s390.c (s390_init_machine_status): Likewise.
16144
16145         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
16146         (rs6000_init_machine_status): Likewise.
16147         (output_toc): Likewise.
16148
16149         * config/pa/pa.c (pa_init_machine_status): Likewise.
16150         (get_deferred_plabel): Likewise.
16151
16152         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
16153
16154         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
16155
16156         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
16157
16158         * config/mep/mep.c (mep_init_machine_status): Likewise.
16159         (mep_note_pragma_flag): Likewise.
16160
16161         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
16162
16163         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
16164
16165         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
16166
16167         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
16168         (i386_pe_maybe_record_exported_symbol): Likewise.
16169
16170         * config/i386/i386.c (get_dllimport_decl): Likewise.
16171         (ix86_init_machine_status): Likewise.
16172         (assign_386_stack_local): Likewise.
16173
16174         * config/frv/frv.c (frv_init_machine_status): Likewise.
16175
16176         * config/darwin.c (machopic_indirection_name): Likewise.
16177
16178         * config/cris/cris.c (cris_init_machine_status): Likewise.
16179
16180         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
16181
16182         * config/avr/avr.c (avr_init_machine_status): Likewise.
16183
16184         * config/arm/arm.c (arm_init_machine_status): Likewise.
16185
16186         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
16187         (alpha_need_linkage): Likewise.
16188         (alpha_use_linkage): Likewise.
16189
16190         * cgraph.c (cgraph_allocate_node): Likewise.
16191         (cgraph_create_edge_1): Likewise.
16192         (cgraph_create_indirect_edge): Likewise.
16193         (cgraph_add_asm_node): Likewise.
16194
16195         * cfgrtl.c (init_rtl_bb_info): Likewise.
16196
16197         * cfgloop.c (alloc_loop): Likewise.
16198         (rescan_loop_exit): Likewise.
16199
16200         * cfg.c (init_flow): Likewise.
16201         (alloc_block): Likewise.
16202         (unchecked_make_edge): Likewise.
16203
16204         * c-parser.c (c_parse_init): Likewise.
16205         (c_parse_file): Likewise.
16206
16207         * c-decl.c (bind): Likewise.
16208         (record_inline_static): Likewise.
16209         (push_scope): Likewise.
16210         (make_label): Likewise.
16211         (lookup_label_for_goto): Likewise.
16212         (finish_struct): Likewise.
16213         (finish_enum): Likewise.
16214         (c_push_function_context): Likewise.
16215
16216         * bitmap.c (bitmap_element_allocate): Likewise.
16217         (bitmap_gc_alloc_stat): Likewise.
16218
16219         * alias.c (record_alias_subset): Likewise.
16220         (init_alias_analysis): Likewise.
16221
16222 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
16223
16224         * fold-const.c (fold_comparison): Remove redundant parenthesis.
16225         * tree-inline.c (expand_call_inline): Pass translated return value of
16226         cgraph_inline_failed_string to diagnostic function.
16227
16228 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
16229             Shujing Zhao  <pearly.zhao@oracle.com>
16230
16231         PR c/37724
16232         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
16233         implicit bad conversions is initialization.
16234         (error_init): Use gmsgid instead of msgid for argument name and change
16235         the call for error.
16236         (pedwarn_init): Use gmsgid instead of msgid for argument name and
16237         change the call for pedwarn.
16238         (warning_init): Use gmsgid instead of msgid for argument name and
16239         change the call for warning.
16240
16241 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
16242
16243         * config/mips/mips-protos.h (mips_print_operand): Delete.
16244         (mips_print_operand_address): Delete.
16245         * config/mips/mips.h (mips_print_operand_punct): Delete.
16246         (PRINT_OPERAND): Delete.
16247         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16248         (PRINT_OPERAND_ADDRESS): Delete.
16249         * config/mips/mips.c (mips_print_operand_punct): Make static.
16250         (mips_print_operand_address): Make static.
16251         (mips_print_operand): Make static.  Call
16252         mips_print_operand_punct_valid_p.
16253         (mips_print_operand_punct_valid_p): New function.
16254         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
16255         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16256
16257 2010-06-07  Jan Hubicka  <jh@suse.cz>
16258
16259         PR middle-end/44454
16260         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
16261         are allocated.
16262
16263 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
16264
16265         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
16266         name of RECORD.
16267
16268 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16269
16270         * doc/sourcebuild.texi (Effective-Target Keywords, Other
16271         attributes): Document gas.
16272
16273 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
16274
16275         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
16276         <TYPE_LEA>: Split instruction.
16277         <default>: Remove alternative 2 handling.
16278         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
16279         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
16280         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
16281
16282         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
16283         (ashift_zext lea splitter): Use DImode for multiplication.
16284
16285         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
16286         to generate addition.
16287
16288 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
16289
16290         * common.opt (fira-verbose): Use Var.
16291         (fpcc-struct-return): Use Init instead of VarExists.
16292         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
16293         toplev.c.
16294         * flags.h (flag_signed_char, flag_short_enums,
16295         flag_pcc_struct_return, flag_ira_verbose,
16296         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
16297         * toplev.c (flag_detailed_statistics, flag_signed_char,
16298         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
16299         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
16300         * toplev.h (flag_crossjumping, flag_if_conversion,
16301         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
16302         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
16303         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
16304         flag_cprop_registers, time_report, flag_ira_loop_pressure,
16305         flag_ira_coalesce, flag_ira_move_spills,
16306         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
16307
16308 2010-06-07  Jan Hubicka  <jh@suse.cz>
16309
16310         * df-core.c (df_analyze_problem): Do verification after allocation.
16311
16312         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
16313         (df_lr_alloc): Initialize problem data; move bitmaps to
16314         lr_bitmaps obstack.
16315         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
16316         (df_lr_verify_solution_start): Do not initialize problem data;
16317         allocate bitmaps in lr_bitmaps.
16318         (df_lr_verify_solution_end): Do not free problem data.
16319
16320 2010-06-07  Jan Hubicka  <jh@suse.cz>
16321
16322         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
16323         if caller is noreturn.
16324         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
16325         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
16326         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
16327         * ipa-pure-const.c (check_decl): Add IPA parameter.
16328         (state_from_flags): New function.
16329         (better_state, worse_state): New functions.
16330         (check_call): When in IPA mode, do not care about callees.
16331         (check_load, check_store): Update.
16332         (check_ipa_load, check_ipa_store): New.
16333         (check_stmt): When in IPA mode, use IPA checkers.
16334         (analyze_function): Use state_from_flags.
16335         (propagate): Check indirect edges and references.
16336
16337 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
16338
16339         PR rtl-optimization/44404
16340         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
16341         of count_occurrences to see if it's safe to modify mem_insn.
16342
16343 2010-06-07  Richard Guenther  <rguenther@suse.de>
16344
16345         * gimplify.c (gimplify_cleanup_point_expr): For empty body
16346         and EH-only cleanup drop the cleanup instead of inserting it
16347         unconditionally.
16348
16349 2010-06-07  Ira Rosen  <irar@il.ibm.com>
16350
16351         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
16352         documentation.
16353         * targhooks.c (default_builtin_vectorization_cost): New function.
16354         * targhooks.h (default_builtin_vectorization_cost): Declare.
16355         * target.h (enum vect_cost_for_stmt): Define.
16356         (builtin_vectorization_cost): Change argument and comment.
16357         * tree-vectorizer.h: Remove cost model macros.
16358         * tree-vect-loop.c: Include target.h.
16359         (vect_get_cost): New function.
16360         (vect_estimate_min_profitable_iters): Replace cost model macros with
16361         calls to vect_get_cost.
16362         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
16363         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
16364         default implementation.
16365         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
16366         calls to target hook builtin_vectorization_cost.
16367         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
16368         Likewise.
16369         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
16370         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
16371         implementation to return costs.
16372         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
16373         * config/spu/spu.h: Remove vectorizer cost model macros.
16374         * config/i386/i386.h: Likewise.
16375         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
16376         a call to target hook builtin_vectorization_cost.
16377
16378 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
16379
16380         PR target/44319
16381         * config/i386/i386.c (override_options): Turn zee pass on for level 2
16382         and above and defer till target is known.
16383         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
16384         turn off otherwise.
16385
16386 2010-05-25  Jan Hubicka  <jh@suse.cz>
16387
16388         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
16389         (df_compact_blocks): Likewise.
16390         * df.h (struct df): Turn hardware_regs_used,
16391         regular_block_artificial_uses, eh_block_artificial_uses,
16392         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
16393         bitmap_head.
16394         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
16395         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
16396         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
16397         df_scan_blocks, df_insn_delete, df_insn_rescan,
16398         df_insn_rescan_debug_internal, df_insn_rescan_all,
16399         df_process_deferred_rescans, df_process_deferred_rescans,
16400         df_notes_rescan, df_get_call_refs, df_get_call_refs,
16401         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
16402         df_record_entry_block_defs, df_record_exit_block_uses,
16403         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
16404         df_scan_verify): Update.
16405
16406 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
16407
16408         PR c++/44188
16409         * c-common.c (is_typedef_decl): Move this definition ...
16410         * tree.c (is_typedef_decl): ... here.
16411         (typdef_variant_p): Move definition here from cp/tree.c.
16412         * c-common.h (is_typedef_decl): Move this declaration ...
16413         * tree.h (is_typedef_decl): ... here.
16414         (typedef_variant_p): Move declaration here from cp/cp-tree.h
16415         * dwarf2out.c (is_naming_typedef_decl): New function.
16416         (gen_tagged_type_die): Split out of ...
16417         (gen_type_die_with_usage): ... this function. When an anonymous
16418         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
16419         is emitted for the typedef.
16420         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
16421         anonymous tagged types.
16422
16423 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16424
16425         PR c/20000
16426         * c-decl.c (grokdeclarator): Delete warning.
16427
16428 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
16429
16430         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
16431         newly built CALL_EXPR.
16432         * tree-profile.c (tree_profiling): Don't profile functions produced
16433         for built-in stuff.
16434
16435 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
16436
16437         PR bootstrap/44427
16438         PR bootstrap/44428
16439         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
16440         endianness-independent.
16441
16442 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
16443
16444         * c-common.c: Move to c-family/.
16445         * c-common.def: Likewise.
16446         * c-common.h: Likewise.
16447         * c-cppbuiltin.c: Likewise.
16448         * c-dump.c: Likewise.
16449         * c-format.c: Likewise.
16450         * c-format.h : Likewise.
16451         * c-gimplify.c: Likewise.
16452         * c-lex.c: Likewise.
16453         * c-omp.c: Likewise.
16454         * c.opt: Likewise.
16455         * c-opts.c: Likewise.
16456         * c-pch.c: Likewise.
16457         * c-ppoutput.c: Likewise.
16458         * c-pragma.c: Likewise.
16459         * c-pragma.h: Likewise.
16460         * c-pretty-print.c: Likewise.
16461         * c-pretty-print.h: Likewise.
16462         * c-semantics.c: Likewise.
16463         * stub-objc.c: Likewise.
16464
16465         * gengtype.c (get_file_langdir): Special-case files in c-family/.
16466         (get_output_file_with_visibility): Fix name for c-common.h.
16467         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
16468
16469         * c-tree.h: Update include path for moved files.
16470         * c-lang.c: Likewise.
16471         * c-lang.h: Likewise.
16472         * c-parser.c: Likewise.
16473         * c-convert.c: Likewise.
16474         * c-decl.c: Likewise.
16475         * c-objc-common.c: Likewise.
16476         * configure.ac: Make sure c-family/ exists in the build directory.
16477         * configure: Regenerate.
16478         * Makefile.in: Update paths for moved files.  Regroup files per
16479         location and update dependencies.  Move generated_files down after
16480         ALL_GTFILES_H.
16481
16482         * config/spu/spu-c.c: Update paths for moved files.
16483         * config/mep/mep-pragma.c: Likewise.
16484         * config/darwin-c.c: Likewise.
16485         * config/i386/msformat-c.c: Likewise.
16486         * config/i386/i386-c.c: Likewise.
16487         * config/avr/avr-c.c: Likewise.
16488         * config/sol2-c.c: Likewise.
16489         * config/ia64/ia64-c.c: Likewise.
16490         * config/rs6000/rs6000-c.c: Likewise.
16491         * config/arm/arm.c: Likewise.
16492         * config/arm/arm-c.c: Likewise.
16493         * config/h8300/h8300.c: Likewise.
16494         * config/v850/v850-c.c: Likewise.
16495
16496         * config/t-darwin: Fix dependencies for moved files.
16497         * config/t-sol2: Fix dependencies for moved files.
16498         * config/mep/t-mep: Fix dependencies for moved files.
16499         * config/ia64/t-ia64: Fix dependencies for moved files.
16500         * config/rs6000/t-rs6000: Fix dependencies for moved files.
16501         * config/v850/t-v850: Fix dependencies for moved files.
16502         * config/v850/t-v850e: Fix dependencies for moved files.
16503
16504         * config/m32c/m32c-pragma.c
16505
16506         * po/exgettext: Look in c-family/ also.
16507
16508 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
16509
16510         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
16511         (mark_control_dependent_edges_necessary): Call it instead of marking
16512         the last statement manually.
16513         (propagate_necessity): Likewise.
16514
16515 2010-06-05  Jan Hubicka  <jh@suse.cz>
16516
16517         * basic-block.h (compute_dominance_frontiers): Updated.
16518         (compute_idf): Likewise.
16519
16520         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
16521         for dominance frontiers.
16522         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
16523         (insert_updated_phi_nodes_for): Likewise.
16524         (update_ssa): Likewise.
16525         * cfganal.c (compute_dominance_frontiers_1): Likewise.
16526         (compute_dominance_frontiers): Likewise.
16527         (compute_idf): Likewise.
16528         * df-problems.c (df_md_local_compute): Likewise.
16529
16530 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
16531
16532         * target.h (struct gcc_target): Add memory_move_cost field.
16533         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
16534         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
16535         * targhooks.c (default_memory_move_cost): New function.
16536         * targhooks.h (default_memory_move_cost): Declare function.
16537         * reload.h (memory_move_cost): Declare.
16538         (memory_move_secondary_cost): Change type of 'in' argument to bool.
16539         * reginfo.c (memory_move_cost): New function.
16540         (memory_move_secondary_cost): Change type of 'in' argument to bool.
16541         * ira.h (ira_memory_move_cost): Update comment.
16542         * ira.c (ira_memory_move_cost): Update comment.
16543         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
16544         with memory_move_cost.
16545         * postreload.c (reload_cse_simplify_set): (Ditto.).
16546         * reload1.c (choose_reload_regs): (Ditto.).
16547         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
16548         (MEMORY_MOVE_COST):  Revise documentation.
16549
16550         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
16551         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
16552         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
16553         type of 'in' argument to bool.
16554         (TARGET_MEMORY_MOVE_COST): Define.
16555
16556 2010-06-05  Jan Hubicka  <jh@suse.cz>
16557
16558         * ipa-pure-const.c (propagate): Fix typo in handling of functions
16559         that cannot return.  Be more careful when merging the results with
16560         previously known ones.
16561
16562 2010-06-05  Matthias Klose  <doko@ubuntu.com>
16563
16564         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
16565         function to add the -iplugindir option.
16566         (find_plugindir_spec_function): Add new declaration and function.
16567         (static_spec_func): Use it for "find-plugindir".
16568
16569 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
16570
16571         PR c++/44361
16572         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
16573         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
16574         statement expression.
16575
16576 2010-06-05  Jan Hubicka  <jh@suse.cz>
16577
16578         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
16579         (df_rd_problem_data): Convert sparse_invalidated_by_call,
16580         dense_invalidated_by_call to bitmap head.
16581         (df_rd_alloc, df_rd_bb_local_compute_process_def,
16582         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
16583         df_rd_start_dump, df_lr_verify_transfer_functions,
16584         df_live_verify_transfer_functions, df_chain_create_bb,
16585         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
16586         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
16587         df_simulate_one_insn_forwards, df_md_alloc,
16588         df_md_bb_local_compute_process_def,
16589         df_md_bb_local_compute_process_def, df_md_local_compute,
16590         df_md_transfer_function df_md_free): Update.
16591
16592 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
16593
16594         PR c/44322
16595         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
16596         target type for ADDR_EXPR; require no changes to qualifiers except
16597         for function types.
16598         * c-tree.h (c_build_type_variant): Remove.
16599
16600 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
16601
16602         * genautomata.c (get_excl_set): Do work per element, not per char.
16603         (check_presence_pattern_sets): Similar.
16604         (check_absence_pattern_sets): Similar.
16605
16606 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
16607
16608         * genautomata.c (curr_state_pass_num): Delete.
16609         (min_issue_delay_pass_states): Delete.
16610         (min_issue_delay): Delete.
16611         (initiate_min_issue_delay_pass_states): Delete.
16612         (output_min_issue_delay_table): Compute min_issue_delay_vect
16613         using a breadth-first search variant.
16614         (output_tables): Don't call initiate_min_issue_delay_pass_states.
16615
16616 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
16617
16618         PR boostrap/44421
16619         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
16620         (df_byte_lr_bb_local_compute): Likewise.
16621
16622 2010-06-03  Jason Merrill  <jason@redhat.com>
16623
16624         Implement noexcept operator (5.3.7)
16625         * c-common.c (c_common_reswords): Add noexcept.
16626         * c-common.h (enum rid): Add RID_NOEXCEPT.
16627
16628 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
16629
16630         * config/darwin-driver.c (darwin_default_min_version): Use
16631         GCC-specific formats in diagnostics.
16632         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
16633         diagnostics.
16634         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
16635         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
16636         eval_spec_function, handle_braces, process_brace_body, main,
16637         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
16638         getenv_spec_function, compare_version_strings,
16639         version_compare_spec_function): Use GCC-specific formats in
16640         diagnostics.
16641
16642 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
16643
16644         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
16645         that operand 0 and operand 1 are equal.
16646         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
16647         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
16648         and operand 1 are equal.
16649         <default>: Ditto.  Remove ??? comment.
16650         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
16651         and operand 1 are equal.
16652         <default>: Ditto.  Remove ??? comment.
16653         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
16654         are equal.
16655         (*add<mode>_4) <default>: Ditto.
16656         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
16657
16658 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
16659
16660         * config/i386/i386-protos.h (ix86_print_operand): Declare.
16661         * config/i386/i386.c (ix86_print_operand): Make non-static.
16662         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
16663         * output.h (output_operand): Declare.
16664         * final.c (output_operand): Make non-static.
16665
16666 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
16667
16668         PR rtl-optimization/44013
16669         * sched-deps.c (add_dependence_list_and_free): Don't free lists
16670         when processing debug insns.
16671
16672         PR debug/41371
16673         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
16674         recursing.  Check that recursion is bounded.  Rename inner var
16675         to avoid hiding incoming argument.
16676
16677 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
16678
16679         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
16680         operands[2] == 255.
16681         (*addqi_3): Ditto.
16682         (*addqi_4): Ditto.
16683         (*addqi_5): Ditto.
16684         (*addqi_ext_1_rex64): Ditto.
16685         (*addqi_ext_1): Ditto.
16686
16687         (*addqi_4): Check for incdec_operand in QImode.
16688
16689         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
16690         using SWI mode iterator.
16691         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
16692         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
16693         mode iterator.
16694         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
16695         using SWI mode iterator.
16696
16697 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16698
16699         PR c/25880
16700         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
16701         * c-format.c (gcc_diag_flag_specs): Add hash.
16702         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
16703         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
16704         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
16705         pp_c_cv_qualifiers. Handle qualifiers spelling here.
16706         (pp_c_type_qualifier_list): Call the function above.
16707         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
16708         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
16709         (WARN_FOR_QUALIFIERS): New macro.
16710         (convert_for_assignment): Use it.
16711
16712 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
16713
16714         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
16715
16716 2010-06-04  Jan Hubicka  <jh@suse.cz>
16717
16718         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
16719         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
16720         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
16721         DF_BYTE_LR_OUT): Update for embedded bitmaps.
16722         * fwprop.c (single_def_use_enter_block): Likewise.
16723         * ddg.c (create_ddg_dep_from_intra_loop_link,
16724         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
16725         * loop-iv.c (latch_dominating_def): Likewise.
16726         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
16727         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
16728         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
16729         df_rd_transfer_function, df_rd_top_dump,
16730         df_rd_bottom_dump): Update.
16731         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
16732         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
16733         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
16734         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
16735         df_lr_verify_solution_start, df_lr_verify_solution_end,
16736         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
16737         df_live_free_bb_info, df_live_alloc, df_live_reset,
16738         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
16739         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
16740         df_live_verify_solution_start, df_live_verify_solution_end,
16741         df_live_verify_transfer_functions, df_chain_create_bb,
16742         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
16743         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
16744         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
16745         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
16746         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
16747         df_byte_lr_transfer_function, df_byte_lr_top_dump,
16748         df_byte_lr_bottom_dump, df_create_unused_note,
16749         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
16750         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
16751         df_md_transfer_function, df_md_init, df_md_confluence_0,
16752         df_md_confluence_n,
16753         df_md_top_dump, df_md_bottom_dump): Update.
16754         (struct df_lr_problem_data): Embedd bitmap headers.
16755
16756 2010-06-04  Jan Hubicka  <jh@suse.cz>
16757
16758         * dce.c (dce_process_block): Do not re-scan already marked
16759         instructions.
16760
16761 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
16762
16763         PR rtl-optimization/39871
16764         PR rtl-optimization/40615
16765         PR rtl-optimization/42500
16766         PR rtl-optimization/42502
16767         * ira.c (init_reg_equiv_memory_loc: New function.
16768         (ira): Call it twice.
16769         * reload.h (calculate_elim_costs_all_insns): Declare.
16770         * ira-costs.c: Include "reload.h".
16771         (regno_equiv_gains): New static variable.
16772         (init_costs): Allocate it.
16773         (finish_costs): Free it.
16774         (ira_costs): Call calculate_elim_costs_all_insns.
16775         (find_costs_and_classes): Take estimated elimination costs
16776         into account.
16777         (ira_adjust_equiv_reg_cost): New function.
16778         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
16779         * reload1.c (init_eliminable_invariants, free_reg_equiv,
16780         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
16781         (elim_bb): New static variable.
16782         (reload): Move code out of here into init_eliminable_invariants and
16783         free_reg_equiv.  Call them.
16784         (calculate_elim_costs_all_insns): New function.
16785         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
16786         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
16787         but call note_reg_elim_costly if we turned a valid memory address
16788         into an invalid one.
16789         * Makefile.in (ira-costs.o): Depend on reload.h.
16790
16791 2010-06-04  Julian Brown  <julian@codesourcery.com>
16792
16793         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
16794         for pool ranges.
16795
16796 2010-06-04  Richard Guenther  <rguenther@suse.de>
16797
16798         PR lto/41584
16799         * cgraph.h (struct varpool_node): Add lto_file_data field.
16800         * lto-cgraph.c (input_varpool_node): Initialize it.
16801
16802 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
16803
16804         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
16805         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
16806         predicate in "type" attribute calculation.
16807         (*addsi_1_zext): Ditto.
16808         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
16809         (*addsi_2_zext): Ditto.
16810         (*add<mode>_3): Ditto.
16811         (*addsi_3_zext): Ditto.
16812         (*add<mode>_5): Ditto.
16813
16814 2010-06-03  Jan Hubicka  <jh@suse.cz>
16815
16816         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
16817         of bitmap_bit_p.
16818         * cfganal.c (compute_dominance_frontiers_1): Likewise.
16819
16820 2010-06-03  Jan Hubicka  <jh@suse.cz>
16821
16822         * df-problems.c (df_create_unused_note, df_note_bb_compute):
16823         micro-optimize the checks when to add new note.
16824
16825 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
16826
16827         * final.c (output_asm_insn): Call
16828         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
16829         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
16830         (output_address): Call targetm.asm_out.print_operand_address.
16831         Update comments.
16832         * target.h (struct gcc_target): Add print_operand,
16833         print_operand_address, and print_operand_punct_valid_p fields.
16834         * targhooks.h (default_print_operand): Declare.
16835         (default_print_operand_address): Declare.
16836         (default_print_operand_punct_valid_p): Declare.
16837         * targhooks.c (default_print_operand): Define.
16838         (default_print_operand_address): Define.
16839         (default_print_operand_punct_valid_p): Define.
16840         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
16841         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
16842         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
16843         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
16844         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
16845         * vmsdbgout.c (addr_const_to_string): Update comment.
16846         * config/i386/i386.c (print_operand): Rename to...
16847         (ix86_print_operand): ...this.  Make static.
16848         (print_operand_address): Rename to...
16849         (ix86_print_operand_address): ...this.  Make static.  Call
16850         ix86_print_operand instead of PRINT_OPERAND.
16851         (ix86_print_operand_punct_valid_p): New function.
16852         (TARGET_PRINT_OPERAND): Define.
16853         (TARGET_PRINT_OPERAND_ADDRESS): Define.
16854         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16855         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
16856         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16857         (PRINT_OPERAND): Delete.
16858         (PRINT_OPERAND_ADDRESS): Delete.
16859         * config/i386/i386-protos.h (print_operand): Delete prototype.
16860         (print_operand_address): Delete prototype.
16861
16862 2010-06-03  Richard Guenther  <rguenther@suse.de>
16863
16864         PR tree-optimization/44403
16865         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
16866         Preserve pointer qualifiers.
16867         (vect_create_data_ref_ptr): Likewise.
16868
16869 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
16870
16871         PR c++/44294
16872         * defaults.h (MAX_FIXED_MODE_SIZE): New.
16873
16874         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
16875
16876 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
16877
16878         PR debug/44375
16879         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
16880         return false if merging the bbs would lead to goto_locus
16881         location being lost from the IL.
16882
16883 2010-06-03  Jan Hubicka  <jh@suse.cz>
16884             Jakub Jelinek  <jakub@redhat.com>
16885
16886         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
16887         set->regs[i] is NULL or has just one entry.
16888
16889 2010-06-03  Jan Hubicka  <jh@suse.cz>
16890
16891         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
16892         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
16893
16894 2010-06-03  Paul Brook  <paul@codesourcery.com>
16895
16896         * config/arm/arm.c (FL_TUNE): Define.
16897         (arm_default_cpu, arm_cpu_select): Remove.
16898         (all_cores): Populate core field.
16899         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
16900         (arm_find_cpu): New function.
16901         (arm_handle_option): Lookup cpu/architecture names.
16902         (arm_override_options): Cleanup mcpu/march/mtune handling.
16903         (arm_file_start): Ditto.
16904
16905 2010-06-03  Alan Modra  <amodra@gmail.com>
16906
16907         PR target/44169
16908         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
16909         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
16910         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
16911         (rs6000_emit_load_toc_table): Likewise.
16912
16913 2010-06-02  Jan Hubicka  <jh@suse.cz>
16914
16915         * passes.c (init_optimization_passes): Put ipa reference
16916         after ipa pure-const.
16917
16918 2010-06-02  Jan Hubicka  <jh@suse.cz>
16919
16920         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
16921         calls_read_all and calls_write_all.
16922         (get_reference_optimization_summary): Fix formatting.
16923         (is_proper_for_analysis): Check that decl is not readonly.
16924         (propagate_bits): Check CONST/PURE/noreturn flags.
16925         (ipa_init): Move all_module_statics to optimization_summary_obstack.
16926         (analyze_function): Ignore indirect edges.
16927         (copy_global_bitmap): For all module statics, do nothing.
16928         (generate_summary): Do not print calls_read_all/calls_write_all.
16929         (read_write_all_from_decl): Take node as argument; check
16930         cgraph_node_cannot_return.
16931         (propagate): Reorganize read_all/write_all computation;
16932         check indirect edges; check ecf flags; use all_module_statics
16933         in the results; do not free all_module_statics.
16934         (stream_out_bitmap): Handle all_module_statics.
16935         (ipa_reference_write_optimization_summary): Likewise; use
16936         varpool/cgraph encoders to get boundaries.
16937         (ipa_reference_read_optimization_summary): Read in all_module_statics;
16938         use it when possible.
16939
16940 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16941
16942         PR target/44218
16943         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
16944         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
16945
16946         * doc/extend.texi (powerpc builtins): Document vec_recip,
16947         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
16948
16949         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
16950         (rs6000_emit_swrsqrt): Ditto.
16951         (rs6000_emit_swdivsf): Delete.
16952         (rs6000_emit_swdivdf): Ditto.
16953         (rs6000_emit_swrsqrtsf): Ditto.
16954
16955         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
16956         describe the reciprocal estimate support for each type.
16957         (recip_options): Map -mrecip=<opt> into option bits.
16958         (gen_2arg_fn_t): New typedef for binary rtx gen function.
16959         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
16960         reciprocal estimate instructions.
16961         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
16962         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
16963         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
16964         cost information if -mdebug=cost or -mdebug=reg.
16965         (rs6000_override_options): Set -mrecip-precision for power6, and
16966         power7 machines.  If -mvsx or -mdfp, enable various options that
16967         came in previous instruction set ISAs, unless the option was
16968         explicitly disabled by the command line option.  Parse
16969         -mrecip=<opt> options.
16970         (rs6000_builtin_vectorized_function): Add support for vectorizing
16971         the reciprocal estimate builtins and expansions.
16972         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
16973         (bdesc_2arg): Add reciprocal estimate builtins.
16974         (bdesc_1arg): Add reciprocal square root estimate builtins.
16975         (rs6000_expand_builtin): Rewrite to use a switch statement,
16976         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
16977         (rs6000_init_builtins): Create declarations for reciprocal
16978         estimate builtins.
16979         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
16980         sized, prefer traditional floating point registers, if integer
16981         vector types, prefer altivec registers.  Don't actually look at
16982         the memory address any more.
16983         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
16984         builtins.
16985         (rs6000_load_constant_and_splat): New helper function to load up
16986         the constant for reciprocal estimate instructions.
16987         (rs6000_emit_madd): New helper function for generating
16988         multiply/add type instructions, based on the current switches.
16989         (rs6000_emit_msub): Ditto.
16990         (rs6000_emit_mnsub): Ditto.
16991         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
16992         replace a divide with a reciprocal estimate and fixup, adding
16993         support for machines with high precision and vectors.
16994         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
16995         low precision machines.
16996         (rs6000_emit_swdiv): New common function to be called to replace a
16997         division with reciprocal estimate and fixup.
16998         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
16999         for double and vector types.  Add support for high precision machines.
17000
17001         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
17002         the reciprocal estimate instructions can be generated.
17003         (TARGET_FRE): Ditto.
17004         (TARGET_FRSQRTES): Ditto.
17005         (TARGET_FRSQRTE): Ditto.
17006         (RS6000_RECIP_*): New macros for reciprocal estimate support.
17007
17008         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
17009         square root estimate on vectors.
17010         (re<mode>2): New insn for reciprocal division estimate on vectors.
17011
17012         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
17013         New builtin.
17014         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
17015         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
17016         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
17017         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
17018         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
17019         (RS6000_BUILTIN_RSQRT): Ditto.
17020         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
17021         floating point builtin.
17022
17023         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
17024         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
17025         __RECIP_PRECISION__ based on the command line switches.
17026         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
17027
17028         * config/rs6000/rs6000.opt (-mrecip): Document add support for
17029         replacing division instructions with reciprocal estimate and fixup.
17030         (-mrecip=<opt>): New option.
17031         (-mrecip-precision): Ditto.
17032
17033         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
17034         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
17035         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
17036         precision scalar.
17037
17038         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
17039         (UNSPEC_VREFP): Ditto.
17040         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
17041         conterparts with regard to support of -mno-fused-madd and -ffast-math.
17042         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
17043         reciprocal estimate instructions to be generated.
17044         (altivec_vrefp): Ditto.
17045
17046         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
17047         estimate support.
17048         (rreg): New mode attribute for reciprocal estimate support.
17049         (recip<mode>3): New insn for division using reciprocal estimate
17050         and fixup builtins.
17051         (divide define_split): New define_split to convert floating point
17052         division to use reciprocal estimate if the user used the
17053         appropriate options and the split is run when we can add new
17054         pseudo registers for the fixup.
17055         (rsqrt<mode>2): New insn for reciprocal square root support.
17056         (recipsf3): Move into recip<mode>3.
17057         (recipdf3): Ditto.
17058         (fres): Use TARGET_FRES.
17059         (rsqrtsf2): Move into rsqrt<mode>2.
17060         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
17061         (copysignsf3): Add support for VSX.
17062         (fred): Use TARGET_FRE.
17063         (fred_fpr): Ditto.
17064         (rsqrtdf_internal1): New function for frsqrte instruciton.
17065
17066         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
17067         (vec_rsqrt): Ditto.
17068
17069 2010-06-03  Richard Guenther  <rguenther@suse.de>
17070
17071         PR middle-end/44291
17072         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
17073         (set_user_assembler_libfunc): Likewise.
17074
17075 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
17076
17077         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
17078         defaults.h.
17079         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
17080         to defaults.h
17081         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
17082         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
17083         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
17084         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
17085         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
17086         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
17087         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
17088         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
17089         * defaults.h: Updated for above mentioned changes.
17090
17091 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
17092
17093         * c-common.c: Remove header include of tm_p.h.
17094         * Makefile.in (c-common.o): Remove TM_P_H dependency.
17095
17096 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
17097
17098         * tree.h (struct tree_decl_map): New type.
17099         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
17100         (tree_decl_map_hash): New prototype.
17101         (debug_expr_for_decl, value_expr_for_decl): Change into
17102         tree_decl_map hashtab from tree_map.
17103         (init_ttree): Adjust initialization.
17104         (tree_decl_map_hash): New function.
17105         (decl_debug_expr_lookup, decl_debug_expr_insert,
17106         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
17107
17108 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17109
17110         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
17111         linker emulations.
17112         * configure: Regenerate.
17113         * config.in: Regenerate.
17114
17115         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
17116         (X86_64_EMULATION): Define.
17117         (TARGET_LD_EMULATION): Use them.
17118
17119         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
17120         (SPARC64_EMULATION): Define.
17121         (LINK_ARCH_SPEC): Use them.
17122
17123 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
17124
17125         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
17126         smallest_mode_for_size for computing the precision types of new
17127         graphite IVs.  Do not call lang_hooks.types.type_for_size.
17128
17129 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
17130
17131         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
17132         information.
17133         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
17134
17135 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
17136
17137         PR middle-end/44363
17138         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
17139         return false instead.
17140
17141 2010-06-02  Jan Hubicka  <jh@suse.cz>
17142
17143         PR middle-end/44295
17144         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
17145         create new cgraph node to check callee.
17146
17147 2010-06-02  Richard Guenther  <rguenther@suse.de>
17148
17149         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
17150
17151 2010-06-02  Richard Guenther  <rguenther@suse.de>
17152
17153         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
17154         (lto_wrapper_cleanup): ... this.  Do not exit.
17155         (fatal): Adjust.  Exit here.
17156         (fatal_perror): Likewise.
17157         (fatal_signal): New function.
17158         (main): Set up signal handlers to cleanup temporary files.
17159         * Makefile.in (lto-wrapper.o): Adjust dependencies.
17160
17161 2010-06-02  Richard Guenther  <rguenther@suse.de>
17162
17163         PR tree-optimization/44377
17164         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
17165
17166 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17167
17168         * config/s390/2097.md (z10_fhex): Remove insn reservation.
17169         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
17170         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
17171         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
17172         instruction.
17173         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
17174
17175 2010-06-02  Jan Hubicka  <jh@suse.cz>
17176
17177         * bitmap.c (bitmap_descriptor): Add search_iter.
17178         (bitmap_find_bit): Increment it.
17179         (print_statistics): Print it.
17180
17181 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
17182
17183         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
17184         instead of gimple_build_call_vec.  Delete unnecessary local variable.
17185
17186 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
17187
17188         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
17189         change from yesterday.
17190
17191 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
17192
17193         * c-ada-spec.c: Clean up redundant includes.
17194
17195 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
17196
17197         * gimplify.c: Do not include except.h and optabs.h.
17198         (gimplify_body): Do not initialize RTL profiling.
17199         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
17200         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
17201         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
17202         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
17203         langhooks.h.
17204
17205         * tree-pretty-print.h: Include pretty-print.h.
17206         * gimple-pretty-print.h: Include pretty-print.h.
17207
17208         * tree-pretty-print.c: Do not include diagnostic.h.
17209         * tree-vrp.c: Likewise.
17210         * tree-tailcall.c: Likewise
17211         * tree-scalar-evolution.c: Likewise
17212         * tree-ssa-dse.c: Likewise
17213         * tree-chrec.c: Likewise
17214         * tree-ssa-sccvn.c: Likewise
17215         * tree-ssa-copyrename.c: Likewise
17216         * tree-nomudflap.c: Likewise
17217         * tree-call-cdce.c: Likewise
17218         * tree-stdarg.c: Likewise
17219         * tree-ssa-math-opts.c: Likewise
17220         * tree-nrv.c: Likewise
17221         * tree-ssa-sink.c: Likewise
17222         * tree-browser.c: Likewise
17223         * tree-ssa-loop-ivcanon.c: Likewise
17224         * tree-ssa-loop.c: Likewise
17225         * tree-parloops.c: Likewise
17226         * tree-ssa-address.c: Likewise
17227         * tree-ssa-ifcombine.c: Likewise
17228         * tree-if-conv.c: Likewise
17229         * tree-data-ref.c: Likewise
17230         * tree-affine.c: Likewise
17231         * tree-ssa-phiopt.c: Likewise
17232         * tree-ssa-coalesce.c: Likewise
17233         * tree-ssa-pre.c: Likewise
17234         * tree-ssa-live.c: Likewise
17235         * tree-predcom.c: Likewise
17236         * tree-ssa-forwprop.c: Likewise
17237         * tree-ssa-dce.c: Likewise
17238         * tree-ssa-ter.c: Likewise
17239         * tree-ssa-loop-prefetch.c: Likewise
17240         * tree-optimize.c: Likewise
17241         * tree-ssa-phiprop.c: Likewise
17242         * tree-object-size.c: Likewise
17243         * tree-outof-ssa.c: Likewise
17244         * tree-ssa-structalias.c: Likewise
17245         * tree-switch-conversion.c: Likewise
17246         * tree-ssa-reassoc.c: Likewise
17247         * tree-ssa-operands.c: Likewise
17248         * tree-vectorizer.c: Likewise
17249         * tree-vect-data-refs.c: Likewise
17250         * tree-vect-generic.c: Likewise
17251         * tree-vect-stmts.c: Likewise
17252         * tree-vect-patterns.c: Likewise
17253         * tree-vect-slp.c: Likewise
17254         * tree-vect-loop.c: Likewise
17255         * tree-ssa-loop-ivopts.c: Likewise
17256         * tree-ssa-loop-im.c: Likewise
17257         * tree-ssa-loop-niter.c: Likewise
17258         * tree-ssa-loop-unswitch.c: Likewise
17259         * tree-ssa-loop-manip.c: Likewise
17260         * tree-ssa-loop-ch.c: Likewise
17261         * tree-dump.c: Likewise
17262         * tree-complex.c: Likewise
17263
17264         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
17265         * tree-ssa-uninit.c: Likewise
17266         * tree-ssa-threadupdate.c: Likewise
17267         * tree-ssa-uncprop.c: Likewise
17268         * tree-ssa-ccp.c: Likewise
17269         * tree-ssa-dom.c: Likewise
17270         * tree-ssa-propagate.c: Likewise
17271         * tree-ssa-alias.c: Likewise
17272         * tree-dfa.c: Likewise
17273         * tree-cfgcleanup.c: Likewise
17274         * tree-sra.c: Likewise
17275         * tree-ssa-copy.c: Likewise
17276         * tree-ssa.c: Likewise
17277         * tree-profile.c: Likewise
17278         * tree-cfg.c: Likewise
17279         * tree-ssa-threadedge.c: Likewise
17280         * tree-vect-loop-manip.c: Likewise
17281
17282         * tree-inline.c: Do not include diagnostic.h and expr.h.
17283         Include rtl.h.
17284         (copy_decl_for_dup_finish): Do not use NULL_RTX.
17285
17286         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
17287         * tree-loop-distribution.c: Likewise.
17288
17289 2010-06-01  Jan Hubicka  <jh@suse.cz>
17290
17291         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
17292
17293 2010-06-01  Jan Hubicka  <jh@suse.cz>
17294
17295         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
17296         remove return value.
17297         (split_bbs_on_noreturn_calls) .... here.
17298         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
17299         * tree-flow.h (fixup_noreturn_call): New.
17300
17301 2010-06-01  Jan Hubicka  <jh@suse.cz>
17302
17303         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
17304
17305 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
17306
17307         * tree.h (build_nt_call_list): Delete.
17308         * tree.c (build_nt_call_list): Delete.
17309
17310 2010-06-01  Jan Hubicka  <jh@suse.cz>
17311
17312         * fwprop.c: Make emit-rtl.h include last.
17313         * rtlanal.c: Include emit-rtl.h.
17314         * genautomata.c: Output emit-rtl include into insn-automata.c
17315         * df-scan.c: Include emit-rtl.h.
17316         * haifa-sched.c: Indlude emit-rtl.h.
17317         * mode-switching.c: Indlude emit-rtl.h.
17318         * graph.c: Indlude emit-rtl.h.
17319         * sel-sched.c: Include emit-rtl.h.
17320         * sel-sched-ir.c: Include emit-rtl.h.
17321         * ira-build.c: Include emit-rtl.h.
17322         * emit-rtl.c (first_insn, last_insn): Remove defines.
17323         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
17324         Move to emit-rtl.h.
17325         (set_new_first_and_last_insn, get_last_insn_anywhere,
17326         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
17327         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
17328         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
17329         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
17330         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
17331         Use accessor functions.
17332         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
17333          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
17334         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
17335         mem_expr_equal_p): Move here from rtl.h.
17336         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
17337         Move here from emit-rtl.c; make inline.
17338         * cfglayout.h: Include emit-rtl.h.
17339         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
17340          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
17341         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
17342         mem_expr_equal_p, get_insns, set_first-insn,
17343         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
17344         * reg-stack.c: Include emit-rtl.h.
17345         * dce.c: Likewise.
17346
17347 2010-06-01  Jan Hubicka  <jh@suse.cz>
17348
17349         * cgraph.h (tree_function_versioning): Update prototype.
17350         (cgraph_function_versioning): Update prototype.
17351         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
17352         bitmap.
17353         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
17354         (cgraph_materialize_clone, save_inline_function_body): Update use of
17355         tree_function_versioning.
17356         * tree-inline.c (copy_bb): Look for previous copied block to link
17357         after; fix debug output.
17358         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
17359         (copy_body): Likewise.
17360         (expand_call_inline): Update use of copy_body.
17361         (tree_function_versioning): Update use of copy body; accept
17362         blocks_to_copy and new_entry.
17363
17364 2010-06-01  Jan Hubicka  <jh@suse.cz>
17365
17366         * gegenrtl.c: Remove unnecesary prototypes.
17367         (gendecl): Remove.
17368         (gendef): Produce static inline.
17369         (gencode): Remove.
17370         (main): Do not decode parameters; generate header only.
17371         * Makefile.in (genrtl.c): Remove.
17372
17373 2010-06-01  Jan Hubicka  <jh@suse.cz>
17374
17375         * tree-switch-conversion.c (build_one_array): Make it readonly.
17376
17377 2010-06-01  Richard Guenther  <rguenther@suse.de>
17378
17379         * optabs.c (init_optabs): Guard all accesses to reinit.
17380         * ipa-pure-const.c (propagate): Fix another typo.
17381         * opts.c (common_handle_option): Split assignment to bool.
17382         * c-opts.c (c_common_handle_option): Likewise.
17383
17384 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
17385             Matthew Gingell  <gingell@adacore.com>
17386
17387         * doc/invoke.texi: Mention -fdump-ada-spec.
17388         * tree-dump.c (dump_files): Add ada-spec.
17389         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
17390         * tree-pass.h (tree_dump_index): Add TDI_ada.
17391         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
17392         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
17393         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
17394         * c-decl.c: Include c-ada-spec.h.
17395         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
17396         functions.
17397         (c_write_global_declarations): Add handling of -fdump-ada-spec.
17398         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
17399         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
17400         * c-ada-spec.h, c-ada-spec.c: New files.
17401
17402 2010-06-01  Richard Guenther  <rguenther@suse.de>
17403
17404         PR lto/43853
17405         * ipa-pure-const.c (get_function_state): Hand back varying state
17406         if we do not have one.
17407         (has_function_state): New function.
17408         (duplicate_node_data): Adjust.
17409         (remove_node_data): Likewise.
17410         (pure_const_write_summary): Likewise.
17411         (propagate): Likewise.  Fix typo.
17412
17413 2010-06-01  Jan Hubicka  <jh@suse.cz>
17414
17415         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
17416         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
17417         (execute_all_ipa_transforms): Do not play with the states.
17418
17419 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
17420
17421         * config/arm/t-linux-androideabi: New.
17422         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
17423
17424 2010-06-01  Jan Hubicka  <jh@suse.cz>
17425
17426         * tree-inline.c (estimate_num_insns): For stdarg functions look
17427         into call statement to count cost of argument passing.
17428
17429 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
17430
17431         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
17432         argument for fprintf.
17433         (ix86_output_addr_diff_elt): Likewise.
17434         (x86_function_profiler): Likewise.
17435         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
17436         (LPREFIX): Likewise.
17437         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
17438
17439 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
17440
17441         PR target/44338
17442         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
17443         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
17444         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
17445         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
17446         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
17447         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
17448         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
17449         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
17450         TARGET_FUSED_MADD.
17451
17452 2010-05-31  Jan Hubicka  <jh@suse.cz>
17453
17454         * tree.h (tree_range_check_failed): Declare noreturn.
17455
17456 2010-05-31  Jan Hubicka  <jh@suse.cz>
17457
17458         * gimple.c (gimple_call_builtin_p): New function.
17459         * gimple.h (gimple_call_builtin_p): Declare.
17460         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
17461         to exit.
17462         (execute_warn_function_return): BUILT_IN_RETURN is return.
17463         (split_critical_edges): Return edges are not critical.
17464         (is_ctrl_altering_stmt): Builtin_in_return is altering.
17465         (gimple_verify_flow_info): Handle built_in_return.
17466         (execute_warn_function_return): Handle built_in_return.
17467         * ipa-pure-const.c (check_call): Ignore builtin_return.
17468
17469 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
17470
17471         PR middle-end/44337
17472         * expr.c (expand_assignment): Don't store anything for out-of-bounds
17473         array accesses with non-MEM.
17474
17475         PR tree-optimization/44182
17476         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
17477         newly needs to end a bb is followed by debug stmts, instead return
17478         true from the function at the end.
17479         (maybe_move_debug_stmts_to_successors): New function.
17480         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
17481
17482 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
17483
17484         PR target/44161
17485         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
17486
17487 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
17488
17489         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
17490         for nested functions in non-optimized compilation.
17491
17492 2010-05-31  Richard Guenther  <rguenther@suse.de>
17493
17494         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
17495
17496 2010-05-30  Jan Hubicka  <jh@suse.cz>
17497
17498         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
17499
17500 2010-05-30  Richard Guenther  <rguenther@suse.de>
17501
17502         PR lto/42975
17503         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
17504         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
17505         no longer needed.
17506
17507 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
17508
17509         * config/darwin.c (output_objc_section_asm_op): Add comment.
17510         (name_needs_quotes): Add '_' to list of valid comment chars.
17511         (machopic_output_function_base_name): Remove unneeded quotes.
17512         (darwin_encode_section_info): Adjust asm whitespace.
17513         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
17514         (ASM_OUTPUT_LOCAL): Ditto.
17515         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
17516         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
17517         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
17518
17519 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
17520
17521         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
17522         RS6000_OUTPUT_BASENAME unconditionally.
17523         (rs6000_output_function_epilogue): Likewise.
17524
17525 2010-05-30  Jan Hubicka  <jh@suse.cz>
17526
17527         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
17528         nodes.
17529
17530 2010-05-30  Richard Guenther  <rguenther@suse.de>
17531
17532         * tree-cfg.c (verify_gimple_assign_single): Implement
17533         verification for COND_EXPR rhs.
17534
17535 2010-05-30  Jan Hubicka  <jh@suse.cz>
17536
17537         * cgraph.h (cgraph_dump_file): Declare.
17538         * cgraphunit.c (cgraph_dump_file): Export.
17539         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
17540
17541 2010-05-30  Jan Hubicka  <jh@suse.cz>
17542
17543         * dwarf2out.c (reference_to_unused,
17544         premark_types_used_by_global_vars_helper): Avoid creation of new
17545         varpool nodes.
17546
17547 2010-05-30  Jan Hubicka  <jh@suse.cz>
17548
17549         * cgraph.h (cgraph_node_cannot_return,
17550         cgraph_edge_cannot_lead_to_return): New functions.
17551         * cgraph.c (cgraph_node_cannot_return,
17552         cgraph_edge_cannot_lead_to_return): Use them.
17553         * ipa-pure-const.c (pure_const_names): New static var.
17554         (check_call): Handle calls not leading to return.
17555         (pure_const_read_summary): Dump info read.
17556         (propagate): Dump info about propagation process; ignore side effects
17557         of functions not leading to exit; fix handling of pure functions.
17558
17559 2010-05-30  Jan Hubicka  <jh@suse.cz>
17560
17561         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
17562         for tail call epilogues.
17563
17564 2010-05-30  Jan Hubicka  <jh@suse.cz>
17565
17566         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
17567         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
17568         dump files.
17569
17570 2010-05-29  Jan Hubicka  <jh@suse.cz>
17571
17572         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
17573         node; remove references in node we no longer keep in cgrpah but need
17574         body of.
17575
17576 2010-05-29  Jan Hubicka  <jh@suse.cz>
17577
17578         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
17579
17580 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17581
17582         PR target/44165
17583         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
17584
17585 2010-05-29  Jan Hubicka  <jh@suse.cz>
17586
17587         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
17588         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
17589         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
17590         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
17591         debug_names_replaced_by, debug_update_ssa): Likewise.
17592         * sbitmap.c (debug_sbitmap): Likewise.
17593         * genrecog.c (debug_decision, debug_decision_list): Likewise.
17594         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
17595         debug_tree_chain): Likewise.
17596         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
17597         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
17598         * optabs.c (debug_optab_libfuncs): Likewise.
17599         (verify_loop_closed_ssa): Likewise.
17600         * value-prof.c (verify_histograms): Likewise.
17601         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
17602         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
17603         * cfghooks.c (verify_flow_info): Likewise.
17604         * fold-const.c (debug_fold_checksum): Likewise.
17605         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
17606         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
17607         Likewise.
17608         * omega.c (debug_omega_problem): Likewise.
17609         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
17610         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
17611         * dominance.c (verify_dominators, debug_dominance_info,
17612         debug_dominance_tree): Likewise.
17613         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
17614         * df_regno_debug, df_ref_debug,
17615         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
17616         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
17617         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
17618         * sel-sched.c (debug_state): Likewise.
17619         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
17620         Likewise.
17621         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
17622         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
17623         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
17624         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
17625         Likewise.
17626         * c-pretty-print.c (debug_c_tree): Likewise.
17627         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
17628         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
17629         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
17630         * ebitmap.c (debug_ebitmap): Likewise.
17631         * function.c (debug_find_var_in_block_tree): Likewise.
17632         * print-rtl.c (debug_rtx): Likewise.
17633         (debug_rtx_count): Likewise.
17634         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
17635         * stor-layout.c (debug_rli): Likewise.
17636         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
17637         * tree-data-ref.c (debug_data_references,
17638         debug_data_dependence_relations, debug_data_reference,
17639         debug_data_dependence_relation, debug_rdg_vertex,
17640         debug_rdg_component, debug_rdg): Likewise.
17641         * tree-affine.c (debug_aff): Likewise.
17642         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
17643         Likewise.
17644         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
17645         * emit-rtl.c (verify_rtl_sharing): Likewise.
17646         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
17647         debug_value_expressions): Likewise.
17648         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
17649         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
17650         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
17651         * cfglayout.c (verify_insn_chain): Likewise.
17652         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
17653         debug_clast_stmt, debug_generated_program): Likewise.
17654         * ggc-page.c (debug_print_page_list): Likewise.
17655         * tree-ssa-ter.c (debug_ter): Likewise.
17656         * graphite-dependences.c (debug_pddr): Likewise.
17657         * sched-deps.c (debug_ds): Likewise.
17658         * tree-ssa.c (verify_ssa): Likewise.
17659         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
17660         debug_scattering_functions, debug_iteration_domains, debug_pdr,
17661         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
17662         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
17663         * tree-inline.c (debug_find_tree): Likewise.
17664         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
17665         debug_ppl_powerset_matrix): Likewise.
17666         * var-tracking.c (debug_dv): Likewise.
17667         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
17668         * cfgloop.c (verify_loop_structure): Likewise.
17669         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
17670         * c-common.c (verify_sequence_points): Likewise.
17671         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
17672         debug_candidates, debug_rgn_dependencies): Likewise.
17673         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
17674         * debug_constraint_graph, debug_solution_for_var,
17675         debug_sa_points_to_info): Likewise.
17676         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
17677         Likewie.
17678         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
17679         debug_loops, debug_loop, debug_loop_num): Likewise.
17680         * passes.c (debug_pass): Likewise.
17681         (dump_properties): Likewise; add cfglayout property.
17682         (debug_properties): Likewise.
17683         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
17684         * varpool.c (debug_varpool): Likewise.
17685         * regcprop.c (debug_value_data): Likewise.
17686         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
17687         debug_immediate_uses_for): Likewise.
17688
17689 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
17690
17691         PR bootstrap/44315
17692         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
17693         Filter out insn-flags.h.
17694
17695 2010-05-29  Jan Hubicka  <jh@suse.cz>
17696
17697         * cgraph.h (struct varpool_node_set_def,
17698         struct cgraph_node_set_def): Remove unused AUX pointer.
17699         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
17700         VEC_empty macro.
17701
17702 2010-05-29  Jan Hubicka  <jh@suse.cz>
17703
17704         PR middle-end/44324
17705         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
17706
17707 2010-05-29  Richard Guenther  <rguenther@suse.de>
17708
17709         * lto-streamer.c (cached_bp): New global variable.
17710         (bitpack_create): Return the cached bitpack, if available.
17711         (bitpack_delete): Clear and cache the bitpack, if appropriate.
17712         (bp_pack_value): Remove redundant asserts.
17713
17714 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
17715
17716         PR middle-end/44306
17717         * tree-if-conv.c (is_true_predicate): New.
17718         (is_predicated): Use is_true_predicate.
17719         (add_to_predicate_list): Same.  Do not use unshare_expr.
17720         (add_to_dst_predicate_list): Same.
17721
17722 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
17723
17724         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
17725         field on edges.
17726         (predicate_bbs): Same.
17727         (clean_predicate_lists): Same.
17728         (find_phi_replacement_condition): Do not AND the predicate from
17729         edge->aux.
17730
17731 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
17732
17733         PR bootstrap/44315
17734         * Makefile.in (build/gencondmd.o): Add a missing `\'.
17735
17736 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17737
17738         PR target/44261
17739         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
17740         (negdf2): Adjust expander pattern and use negdf2_slow.
17741         (negsf2): Likewise.
17742
17743 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
17744
17745         * basic-block.h (struct control_flow_graph): Move last_label_uid field
17746         up.
17747         * df.h (struct df_base_ref): Move regno field up.
17748         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
17749         * expr.h (struct separate_ops): Move location field up.
17750         * optabs.h (struct optab_d): Move libcall_basename field down.
17751         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
17752         * config/i386/i386.h (struct machine_function): Convert call_abi field
17753         into a bitfield.  Move cfa field to the end of the structure.
17754
17755 2010-05-29  Jan Hubicka  <jh@suse.cz>
17756
17757         * varpool.c (varpool_get_node): Fix lookup.
17758
17759 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17760
17761         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
17762         RTL specific prototypes with #ifdef RTX_CODE.
17763         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
17764         * config/spu/t-spu-elf: Fix dependencies.
17765
17766         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
17767
17768 2010-05-29  Mike Stump  <mikestump@comcast.net>
17769
17770         PR bootstrap/44315
17771         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
17772         TM_H when building to avoid dependency loops.
17773
17774 2010-05-29  Jan Hubicka  <jh@suse.cz>
17775
17776         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
17777         refs and body; not the whole node for masters of materialized clones.
17778
17779 2010-05-29  Mike Stump  <mikestump@comcast.net>
17780
17781         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
17782
17783 2010-05-29  Jan Hubicka  <jh@suse.cz>
17784
17785         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
17786         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
17787         use of clone_function_name.
17788         * cgraph.h (cgraph_create_virtual_clone,
17789         cgraph_function_versioning): update prototypes.
17790         (clone_function_name): Declare.
17791         * ipa-cp.c (ipcp_insert_stage): Update call of
17792         cgraph_create_virtual_clone.
17793         * omp-low.c (create_omp_child_function_name): Use
17794         cgraph_create_virtual_clone.
17795         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
17796         (cgraph_function_versioning): Take SUFFIX argument; produce new name
17797         and make decl local.
17798
17799 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17800
17801         * vec.h: Include statistics.h
17802         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
17803         with VEC_H.
17804
17805 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17806
17807         * c-lex.c: Do not include c-tree.h.
17808         * c-pretty-print.c: Likewise.
17809         * c-opts.c: Likewise.
17810         * c-gimplify.c: Likewise.
17811         * c-common.c: Likewise.
17812         * c-dump.c: Likewise.  Include c-common.h.
17813
17814 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17815
17816         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
17817         before including diagnostic-core.h.
17818         (c_cpp_error): New prototype moved from c-tree.h.
17819         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
17820         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
17821         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
17822         (c_cpp_error): Prototype moved to c-common.h.
17823         * Makefile.in: Update dependency for C_COMMON_H.
17824
17825 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
17826
17827         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
17828         * c-common.c (c_register_addr_space): Remove here.
17829         * c-decl.c (c_register_addr_space): Re-add here.
17830
17831 2010-05-28  Mike Stump  <mikestump@comcast.net>
17832
17833         * config/darwin-c.c: Remove c-tree.h include.
17834
17835 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17836
17837         * gcc.c: Include diagnostic.h.
17838         (error_count): Remove.  All users changed to use errorcount.
17839         (programname): Remove.  All users changed to use progname.
17840         (fancy_abort, internal_error, fatal_error, error, warning, inform,
17841         fnotice): Remove.
17842         (execute): Don't include "Internal error" and bug reporting
17843         information in argument of internal_error call.
17844         (process_command): Don't increment error_count after calling
17845         perror_with_name.
17846         (input_filename): Rename to gcc_input_filename.  All users
17847         changed.
17848         (main): Call diagnostic_initialize.  Register delete_temp_files
17849         with atexit.  Use seen_error to test for errors.
17850         * gcc.h: Include diagnostic-core.h.
17851         (fatal_error, error, warning): Remove.
17852         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
17853         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
17854         (gcc.o): Update dependencies.
17855
17856 2010-05-28  Jeff Law  <law@redhat.com>
17857
17858         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
17859         functions.
17860         * ira.h (ira_bad_reload_regno): Declare
17861         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
17862
17863         * ira-color.c (update_curr_costs): Free updated hard reg costs.
17864         (ira_reassign_conflict_allocnos): Remove bogus asserts.
17865         (allocno_reload_assign): Likewise.
17866
17867 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
17868
17869         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
17870         build1_stat.
17871
17872 2010-05-28  Richard Guenther  <rguenther@suse.de>
17873
17874         PR lto/44312
17875         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
17876         Stream fixed-point constants mode.
17877         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
17878         and TYPE_PRECISION.
17879         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
17880         Stream fixed-point constants mode.
17881         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
17882         and TYPE_PRECISION.
17883
17884 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
17885
17886         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
17887         only place it was called from.
17888         (number_of_latch_executions): Do not return chrec_dont_know when the
17889         may_be_zero is a runtime condition: instead, return a COND_EXPR
17890         including the may_be_zero condition.
17891         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
17892         of nb_iterations.
17893         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
17894         COND_EXPRs.
17895
17896 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
17897
17898         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
17899         generate COND_EXPRs for degenerate_phi_result.
17900
17901 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
17902
17903         PR middle-end/44293
17904         * tree-if-conv.c (if_convertible_loop_p): Check the
17905         if-convertibility of phi nodes in non predicated BBs.
17906
17907 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17908
17909         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
17910
17911 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17912
17913         PR driver/15303
17914         * gcc.c (inform, warning, inform): New functions.
17915         (fatal_ice): Rename to internal_error; change cmsgid parameter to
17916         gmsgid.  All callers changed.
17917         (notice): Rename to fnotice; add parameter fp.  All callers changed.
17918         (fatal_error): Rename to fatal_signal.  All users changed.
17919         (fatal): Rename to fatal_error; change cmsgid parameter to
17920         gmsgid.  All callers changed.
17921         (process_command): Use warning instead of error for warnings.
17922         (end_going_arg): Don't use _() around argument of error.
17923         (do_spec_1): Use inform for message from %n specs.  Use warning
17924         instead of error for warnings.
17925         (main): Use inform for comparison messages.  Use warning for
17926         message about unused linker input.
17927         (error): Increment error_count.  Print "error: ".
17928         * gcc.h (fatal): Change to fatal_error.
17929         (warning): Declare.
17930         * config/darwin-driver.c (darwin_default_min_version): Use warning
17931         instead of fprintf for warnings.
17932         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
17933
17934 2010-05-28  Julian Brown  <julian@codesourcery.com>
17935
17936         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
17937         (*thumb2_addsi3_compare0_scratch): New.
17938         * config/arm/constraints.md (Pv): New.
17939         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
17940         for ARM mode only.
17941         (*addsi3_compare0_scratch): Likewise.
17942
17943 2010-05-28  Jan Hubicka  <jh@suse.cz>
17944
17945         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
17946         check.
17947         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
17948         only on local statics.
17949
17950 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
17951
17952         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
17953
17954 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17955
17956         PR bootstrap/44314
17957         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
17958         (OPTION_GLIBC): Define.
17959
17960 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
17961
17962         PR debug/41048
17963         * dwarf2out.c (double_int_type_size_in_bits): New function.
17964         (round_up_to_align): Change first argument and return value to
17965         double_int.
17966         (field_byte_offset): Work internally on double_ints.
17967
17968         PR target/43636
17969         * builtins.c (expand_movstr): Use a temporary pseudo instead
17970         of target even when target is not NULL and not const0_rtx, but
17971         fails movstr predicate.
17972         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
17973
17974 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17975
17976         * final.c (rest_of_clean_state): Use %m in errors instead of
17977         strerror (errno).
17978         * gengtype.c (read_input_list, close_output_files): Use xstrerror
17979         instead of strerror.
17980         * toplev.c (process_options): Use %m in errors instead of strerror
17981         (errno).
17982         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
17983         (errno).
17984
17985 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
17986
17987         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
17988         (ix86_canonical_va_list_type): Make static.  Add declaration.
17989         (ix86_enum_va_list): Make static.  Reindent.
17990         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
17991         (ix86_canonical_va_list_type): Ditto.
17992         (ix86_enum_va_list): Ditto.
17993
17994 2010-05-28  Richard Guenther  <rguenther@suse.de>
17995
17996         * lto-wrapper.c (run_gcc): With -save-temps generate a
17997         user-visible ltrans filename.  Fixup ltrans unit numbering.
17998
17999 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
18000
18001         * c-common.c (c_common_nodes_and_builtins): Replace use
18002         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
18003         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
18004         to ix86_enum_va_list.
18005         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
18006         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
18007         (TARGET_ENUM_VA_LIST_P): Add hook description.
18008         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
18009         * target.h (gcc_target): Add enum_va_list hook.
18010
18011         PR bootstrap/44299
18012         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
18013         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
18014         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
18015
18016 2010-05-28  Alan Modra  <amodra@gmail.com>
18017
18018         PR target/44266
18019         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
18020         emit_library_call machinery to set up __tls_get_addr calls.
18021
18022 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18023
18024         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
18025
18026 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
18027
18028         Revert fix for PR c++/44188
18029         * c-common.c (is_typedef_decl): Revert the moving of  this
18030         definition ...
18031         * tree.c (is_typedef_decl): ... here.
18032         (typdef_variant_p): Revert the moving of this  definition
18033         here from cp/tree.c.
18034         * c-common.h (is_typedef_decl): Revert the moving of this
18035         declaration ...
18036         * tree.h (is_typedef_decl): ... here.
18037         (typedef_variant_p): Revert the moving of this  declaration here
18038         from cp/cp-tree.h
18039         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
18040         (gen_tagged_type_die): Revert the splitting out of ...
18041         (gen_type_die_with_usage): ... this function. Revert the anonymous
18042         tagged type handling.
18043         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
18044         typedefs naming anonymous tagged types.
18045
18046 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
18047
18048         * config/rs6000/rs6000-modes.def (PSImode): Delete.
18049
18050 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
18051
18052         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
18053         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
18054         throughout.
18055         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
18056         "xer" to "ca".
18057         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
18058         XER_REGS to CA_REGS throughout.
18059         * config/rs6000/rs6000.h: Same.
18060         (ADDITIONAL_REGISTER_NAMES): Add "xer".
18061         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
18062         that mode_iterator "P" is the size for arithmetic carries as well.
18063         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
18064
18065 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
18066
18067         PR bootstrap/44255
18068         * combine.c (struct rtx_subst_pair): Define unconditionally.
18069         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
18070         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
18071         Call make_compound_operation on pair->to.
18072         (propagate_for_debug): Don't call make_compound_operation here.
18073         Always use simplify_replace_fn_rtx.
18074
18075 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
18076
18077         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
18078         * config/xtensa/xtensa.c (override_options): Check
18079           TARGET_FORCE_NO_PIC and set flag_pic.
18080         * config/xtensa/xtensa.opt: Document -mforce-no-pic
18081
18082 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
18083
18084         PR bootstrap/44299
18085         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
18086         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
18087
18088 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
18089
18090         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
18091         toplev.h.
18092         * diagnostic.c: Don't include toplev.h.
18093         (progname): Define.  Moved from toplev.c.
18094         (seen_error): New function.
18095         * diagnostic.h: Include diagnostic-core.h.
18096         (diagnostic_t, emit_diagnostic): Don't declare here.
18097         * toplev.c (progname): Move to toplev.c.
18098         (emit_debug_global_declarations, compile_file, finalize,
18099         do_compile, toplev_main): Use seen_error.
18100         * toplev.h: Include diagnostic-core.h.
18101         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
18102         internal_error, warning, warning_at, error, error_n, error_at,
18103         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
18104         verbatim, fnotice, progname): Move to diagnostic-core.h.
18105         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
18106         (expand_builtin_expect): Use seen_error.
18107         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
18108         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
18109         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
18110         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
18111         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
18112         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
18113         errorcount for errors.
18114         * c-opts.c (c_common_finish): Use seen_error.
18115         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
18116         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
18117         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
18118         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
18119         (get_coverage_counts): Use seen_error.
18120         * dwarf2out.c (dwarf2out_finish): Use seen_error.
18121         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
18122         gimplify_body): Use seen_error.
18123         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
18124         * ipa-pure-const.c (gate_pure_const): Use seen_error.
18125         * ipa-reference.c (gate_reference): Use seen_error.
18126         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
18127         * lambda-code.c: Include diagnostic-core.h instead of
18128         diagnostic.h.
18129         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
18130         * lto-compress.c: Include diagnostic-core.h instead of
18131         diagnostic.h.
18132         * lto-section-in.c: Include diagnostic-core.h instead of
18133         diagnostic.h.
18134         * lto-streamer-out.c: Include diagnostic-core.h instead of
18135         diagnostic.h.
18136         * lto-streamer.c: Include diagnostic-core.h instead of
18137         diagnostic.h.
18138         (gate_lto_out): Use seen_error.
18139         * matrix-reorg.c: Include diagnostic-core.h instead of
18140         diagnostic.h.
18141         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
18142         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
18143         (gate_expand_omp, lower_omp_1): Use seen_error.
18144         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
18145         (rest_of_decl_compilation, rest_of_type_compilation,
18146         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
18147         * tree-cfg.c (label_to_block_fn): Use seen_error.
18148         * tree-inline.c (optimize_inline_calls): Use seen_error.
18149         * tree-mudflap.c (mudflap_finish_file): Use
18150         seen_error.
18151         * tree-optimize.c (gate_all_optimizations,
18152         gate_all_early_local_passes, gate_all_early_optimizations): Use
18153         seen_error.
18154         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
18155         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
18156         (varpool_remove_unreferenced_decls,
18157         varpool_assemble_pending_decls): Use seen_error.
18158         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
18159         (TOPLEV_H, DIAGNOSTIC_H): Update.
18160         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
18161         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
18162         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
18163         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
18164         coverage.o, lambda-code.o): Update dependencies.
18165
18166 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
18167
18168         PR c++/44188
18169         * c-common.c (is_typedef_decl): Move this definition ...
18170         * tree.c (is_typedef_decl): ... here.
18171         (typdef_variant_p): Move definition here from cp/tree.c.
18172         * c-common.h (is_typedef_decl): Move this declaration ...
18173         * tree.h (is_typedef_decl): ... here.
18174         (typedef_variant_p): Move declaration here from cp/cp-tree.h
18175         * dwarf2out.c (is_naming_typedef_decl): New function.
18176         (gen_tagged_type_die): Split out of ...
18177         (gen_type_die_with_usage): ... this function. When an anonymous
18178         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
18179         is emitted for the typedef.
18180         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
18181         anonymous tagged types.
18182
18183 2010-05-27  Jason Merrill  <jason@redhat.com>
18184
18185         * print-tree.c (debug_vec_tree): New fn.
18186         (print_vec_tree): New fn.
18187         * tree.h: Declare them.
18188         * gdbinit.in (pvt): New command.
18189
18190         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
18191
18192         * gdbinit.in (pdd): New command.
18193
18194 2010-05-27  Jan Hubicka  <jh@suse.cz>
18195
18196         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
18197         (update_caller_keys): Return early if there are no callers;
18198         only update fibheap when decresing the key.
18199         (update_callee_keys): Avoid recursion.
18200         (decide_inlining_of_small_functions): When badness does not match;
18201         re-insert into fibheap.
18202
18203 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
18204
18205         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
18206         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
18207         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
18208         (ALL_HOST_OBJS): Now a union of the above two.
18209         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
18210         all files in ALL_HOST_FRONTEND_OBJS.
18211         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
18212
18213         * c-common.c: Pretend to be a backend file by undefining
18214         IN_GCC_FRONTEND (still need rtl.h here).
18215
18216 2010-05-27  Jan Hubicka  <jh@suse.cz>
18217
18218         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
18219         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
18220
18221 2010-05-27  Jan Hubicka  <jh@suse.cz>
18222
18223         * sched-ebb.c: Rename struct deps to struct deps_desc.
18224         * ddg.c: Likewise.
18225         * sel-sched-ir.c: Likewise.
18226         * sched-deps.c: Likewise.
18227         * sched-int.h: Likewise.
18228         * sched-rgn.c: Likewise.
18229
18230 2010-05-27  Jon Beniston  <jon@beniston.com>
18231
18232         PR 43726
18233         * config/lm32/lm32.h: Remove definition of
18234         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
18235
18236 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18237
18238         PR lto/44230
18239         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
18240
18241 2010-05-27  Richard Guenther  <rguenther@suse.de>
18242
18243         PR tree-optimization/44284
18244         * tree-vect-stmts.c (vectorizable_assignment): Handle
18245         sign-changing conversions as simple copy.
18246
18247 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18248
18249         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
18250         Bionic C library.
18251         (__gthread_active_p): Check for pthread_create if compiling against
18252         Bionic C library.
18253
18254 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18255
18256         Support compilation for Android platform.  Reimplement -mandroid.
18257
18258         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
18259         (*android*): Set ANDROID_DEFAULT.
18260         (arm*-*-linux*): Include linux-android.h.
18261         (arm*-*-eabi*): Don't include previous -mandroid implementation.
18262         * config/arm/eabi.h: Remove, move Android-specific parts ...
18263         * config/linux-android.h: ... here.  New file.
18264         * config/arm/eabi.opt: Rename to ...
18265         * config/linux-android.opt: ... this.
18266         (mandroid): Allow -mno-android option.  Initialize based on
18267         ANDROID_DEFAULT.
18268         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
18269         Move logic to corresponding LINUX_TARGET_* macros.
18270         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
18271         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
18272         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
18273         Android definitions.
18274         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
18275         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
18276         Document.
18277
18278 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18279
18280         Add support for Bionic C library
18281
18282         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
18283         macro.
18284         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
18285         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
18286
18287         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
18288         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
18289         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
18290         to support multiple C libraries.  Handle Bionic.
18291         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
18292         (BIONIC_DYNAMIC_LINKER64): Define.
18293         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
18294         Update.
18295         (TARGET_HAS_SINCOS): Enable for Bionic.
18296
18297         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
18298         the last option specified on command line take effect.
18299         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
18300         (mbionic): New.
18301         (mglibc, muclibc): Update.
18302
18303         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
18304         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
18305         DEFAULT_LIBC.
18306
18307         * doc/invoke.texi (-mglibc, -muclibc): Update.
18308         (-mbionic): Document.
18309
18310 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18311
18312         * c-common.h (c_register_addr_space): Add prototype.
18313         (ADDR_SPACE_KEYWORD): Remove.
18314         * c-common.c (c_register_addr_space): New function.
18315         (c_addr_space_name): Reimplement.
18316         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
18317
18318         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
18319         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
18320
18321         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
18322         Remove TARGET_ADDR_SPACE_KEYWORDS.
18323
18324 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
18325
18326         * input.c: New file.
18327         * input.h (main_input_filename): Move declaration to toplev.h.
18328         * toplev.c (input_location, line_table): Move to input.c
18329         * toplev.h (main_input_filename): Move declaration from input.h.
18330         * tree.c (expand_location): Move to input.c.
18331         * Makefile.in (OBJS-common): Add input.o.
18332         (input.o): Add dependencies.
18333
18334 2010-05-27  Richard Guenther  <rguenther@suse.de>
18335
18336         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
18337         for non-existant files.
18338         (fork_execute): Mark args_name file as deleted.
18339
18340 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
18341
18342         PR bootstrp/44287
18343         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
18344         (narrow_signed_type): Likewise.
18345
18346 2010-05-26  Jan Hubicka  <jh@suse.cz>
18347
18348         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
18349         edge only when checking is enabled; check using former_clone_of;
18350         check inline clones too.
18351         (cgraph_materialize_clone): Record former_clone_of pointer.
18352         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
18353         combining redirections; dump args_to_skip bitmap
18354         (cgraph_materialize_all_clones): Do no redirection here.
18355         * ipa-inline.c (inline_transform): Do redirection here.
18356         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
18357         cheking only).
18358
18359 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
18360
18361         * config/avr/avr-c.c: Do not include regs.h.
18362         Include cpplib.h for cpp_define and tree.h for c-common.h.
18363         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
18364         * config/avr/t-avr: Fix dependencies for avr-c.o.
18365
18366 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
18367
18368         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
18369         string instead of SYMBOL_REF rtx.
18370         * rtl.h (set_stack_check_libfunc): Move prototype from here...
18371         * libfuncs.h: ...to here.  Adjust for explow.c change.
18372
18373 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
18374
18375         * pretty-print.c: Don't include ggc.h.
18376         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
18377         (identifier_to_locale): Use them for allocation.
18378         * pretty-print.h (identifier_to_locale_alloc,
18379         identifier_to_locale_free): Declare.
18380         * toplev.c (alloc_for_identifier_to_locale): New.
18381         (general_init): Set identifier_to_locale_alloc and
18382         identifier_to_locale_free.
18383         * Makefile.in (pretty-print.o): Update dependencies.
18384
18385 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
18386
18387         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
18388         pointer types if they have different alignment or mode.
18389
18390 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
18391
18392         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18393         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18394         * config/sparc/sparc-protos.h (function_value): Remove declaration.
18395         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
18396         sparc_function_value_regno_p): New functions.
18397         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18398         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18399         (function_value): Rename to...
18400         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
18401         argument to 'outgoing'.
18402         (function_arg_record_value, function_arg_union_value,
18403         function_arg_vector_value): Update comment.
18404
18405 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
18406
18407         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
18408         (fde_needed_for_eh_p): New predicate.
18409         (output_call_frame_info): Use it throughout to decide whether FDEs
18410         are needed for EH purpose.
18411         (dwarf2out_begin_prologue): Reorder assignments.
18412
18413 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18414
18415         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
18416         special case loop->header.
18417         (is_predicated): New.
18418         (if_convertible_loop_p): Call it.
18419
18420 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18421
18422         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
18423         iterator in parameter.  Do not generate code during the analysis.
18424         (tree_if_convert_cond_stmt): Removed.
18425         (tree_if_convert_stmt): Removed.
18426         (predicate_bbs): New.
18427         (if_convertible_loop_p): Call predicate_bbs.
18428         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
18429         now contains all the analysis part.
18430
18431 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18432
18433         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
18434         statements in the analysis part.
18435         (tree_if_convert_stmt): Update comment.
18436         (remove_conditions_and_labels): New.
18437         (combine_blocks): Call remove_conditions_and_labels.
18438         (tree_if_conversion): Update comment.
18439
18440 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18441
18442         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
18443         than 2 predecessors or more than 2 successors.
18444
18445 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18446
18447         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
18448         of loops in which the data dependence analysis fails.
18449
18450 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18451
18452         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
18453         CDI_POST_DOMINATORS.
18454         (tree_if_conversion): Same.
18455
18456 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18457
18458         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
18459
18460 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
18461
18462         * tree-if-conv.c: Update copyright years.  Fix comments.
18463         Fix indentation.
18464
18465 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
18466
18467         * builtin-types.def (BT_INT128): New primitive type.
18468         (BT_UINT128): Likewise.
18469         * c-common.c (c_common_r): Add __int128 keyword.
18470         (c_common_type_for_size): Handle __int128.
18471         (c_common_type_for_mode): Likewise.
18472         (c_common_signed_or_unsigned_type): Likewise.
18473         (c_common_nodes_and_builtins): Add builtin type
18474         if target supports 128-bit integer scalar.
18475         * c-common.h (enum rid): Add RID_INT128.
18476         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
18477         if target supports 128-bit integer scalar.
18478         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
18479         (finish_declspecs): Likewise.
18480         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
18481         (c_token_starts_declspecs): Likewise.
18482         (c_parser_declspecs): Likewise.
18483         (c_parser_attributes): Likewise.
18484         (c_parser_objc_selector): Likewise.
18485         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
18486         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
18487         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
18488         * tree.c (make_or_reuse_type): Likewise.
18489         (make_unsigned_type): Likewise.
18490         (build_common_tree_nodes_2): Likewise.
18491         * tree.h (enum integer_type_kind): Add itk_int128 and
18492         itk_unsigned_int128.
18493         (int128_integer_type_node): New define.
18494         (int128_unsigned_type_node): New define.
18495         * doc/extend.texi: Add documentation about __int128 type.
18496
18497 2010-05-26  Richard Guenther  <rguenther@suse.de>
18498
18499         * tree-ssa-sccvn.c (copy_nary): Adjust.
18500         (copy_phis): Rename to ...
18501         (copy_phi): ... this.  Adjust.
18502         (copy_references): Rename to ...
18503         (copy_reference): ... this.  Adjust.
18504         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
18505         result into the valid table.
18506
18507 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
18508
18509         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
18510         insn-config.h, insn-codes.h, recog.h, and optabs.h.
18511
18512 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18513
18514         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
18515
18516 2010-05-26  Richard Guenther  <rguenther@suse.de>
18517
18518         * opts.c (common_handle_option): Handle OPT_Ofast.
18519
18520 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
18521
18522         * diagnostic.c: Don't include opts.h.
18523         (permissive_error_option): Define.
18524         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
18525         for classify_diagnostic.  Don't use memset for
18526         classify_diagnostic.  Initialize new and recently added fields.
18527         (diagnostic_classify_diagnostic): Use context->n_opts instead of
18528         N_OPTS.
18529         (diagnostic_report_diagnostic): Pass context parameter to
18530         diagnostic_report_warnings_p.  Use option_enabled and option_name
18531         hooks from context.
18532         (emit_diagnostic): Use permissive_error_option.
18533         (permerror): Likewise.
18534         * diagnostic.h: Don't include options.h.
18535         (struct diagnostic_context): Add n_opts, opt_permissive,
18536         inhibit_warnings, warn_system_headers, option_enabled and
18537         option_name fields.  Change classify_diagnostic to a pointer.
18538         * opts-diagnostic.h: New file.
18539         * opts.c: Include opts-diagnostic.h.
18540         (common_handle_option): Set global_dc fields for -Wfatal-errors,
18541         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
18542         (option_name): New function.
18543         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
18544         (c_common_handle_option): Set global_dc->permissive for
18545         -fpermissive.
18546         * c-common.c (c_cpp_error): Save and restore
18547         global_dc->warn_system_headers, not variable warn_system_headers.
18548         * toplev.c: Include opts-diagnostic.h.
18549         (general_init): Update call to diagnostic_initialize.  Set
18550         global_dc->show_column, global_dc->option_enabled and
18551         global_dc->option_name.
18552         (process_options): Don't set global_dc fields here.
18553         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
18554         (diagnostic.o, opts.o, toplev.o): Update dependencies.
18555
18556 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
18557
18558         * config/picochip/picochip.md (movsi): Split a movsi from a
18559         const after reload.
18560
18561 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18562
18563         * ggc-zone.c: Update copyright year.
18564         (poison_region): Mark memory for Valgrind as undefined before
18565         memset () call and inaccessible afterwards.
18566         (ggc_pch_total_size): Change type of i to int.
18567
18568 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18569
18570         * ggc-common.c (ggc_free_overhead): Allow empty slot.
18571
18572 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18573
18574         * ggc-common.c: Update copyright year.
18575         (ggc_rlimit_bound): Remove prototype.  Compile only if
18576         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
18577         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
18578         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
18579         (ggc_min_heapsize_heuristic): Likewise.
18580
18581 2010-05-26  Richard Guenther  <rguenther@suse.de>
18582
18583         PR rtl-optimization/44164
18584         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
18585         no-common access-path disambiguation.
18586         (indirect_ref_may_alias_decl_p): Adjust.
18587         (indirect_refs_may_alias_p): Likewise.
18588         (refs_may_alias_p_1): Likewise.
18589
18590 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
18591
18592         * c-typeck.c: Do not include expr.h.
18593
18594 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
18595
18596         * rtl.h (decl_default_tls_model): Move prototype from here...
18597         * output.h: ...to here.
18598         * c-decl.c: Do not include rtl.h.
18599         * c-pragma.c: Likewise.
18600         * c-parser.c: Likewise.
18601         * c-gimplify.c: Likewise.  And also not hard-reg-set.
18602         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
18603         FIXME note for it.  Add a FIXME note for expr.h.
18604         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
18605         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
18606         defined.
18607
18608 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
18609
18610         PR target/44199
18611         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
18612         or total_size is larger than red zone size for non-V4 ABI, emit a
18613         stack_tie resp. frame_tie insn before stack pointer restore.
18614         * config/rs6000/rs6000.md (frame_tie): New insn.
18615
18616 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
18617
18618         * function.h (struct function): Add can_throw_non_call_exceptions bit.
18619         * lto-streamer-in.c (input_function): Stream it in.
18620         * lto-streamer-out.c (output_function): Stream it out.
18621         * function.c (allocate_struct_function): Set it.
18622         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
18623         for flag_non_call_exceptions.
18624         * cfgbuild.c (control_flow_insn_p): Likewise.
18625         (make_edges): Likewise.
18626         * cfgexpand.c (expand_stack_alignment): Likewise.
18627         * combine.c (distribute_notes): Likewise.
18628         * cse.c (cse_extended_basic_block): Likewise.
18629         * except.c (insn_could_throw_p): Likewise.
18630         * gcse.c (simple_mem): Likewise.
18631         * ipa-pure-const.c (check_call): Likewise.
18632         (check_stmt ): Likewise.
18633         * lower-subreg.c (lower-subreg.c): Likewise.
18634         * optabs.c (emit_libcall_block): Likewise.
18635         (prepare_cmp_insn): Likewise.
18636         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
18637         * postreload.c (rest_of_handle_postreload): Likewise.
18638         * reload1.c (reload_as_needed): Likewise.
18639         (emit_input_reload_insns): Likewise.
18640         (emit_output_reload_insns): Likewise.
18641         (fixup_abnormal_edges): Likewise.
18642         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
18643         * store-motion.c (find_moveable_store): Likewise.
18644         * tree-eh.c (stmt_could_throw_p): Likewise.
18645         (tree_could_throw_p): Likewise.
18646         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
18647         * config/arm/arm.c (arm_expand_prologue): Likewise.
18648         (thumb1_expand_prologue): Likewise.
18649         * config/rx/rx.md (cbranchsf4): Likewise.
18650         (cmpsf): Likewise.
18651         * config/s390/s390.c (s390_emit_prologue): Likewise.
18652         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
18653         (inline_forbidden_into_p): New predicate.
18654         (expand_call_inline): Use it to forbid inlining.
18655         (tree_can_inline_p): Likewise.
18656
18657 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
18658
18659         * config/i386/i386-c.c: Do not include rtl.h.
18660         * config/i386/t-i386: Update dependencies.
18661
18662 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
18663
18664         * attribs.c: Do not include rtl.h.
18665         * Makefile.in: Update dependencies.
18666
18667 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
18668
18669         * double-int.h (double_int_and): New.
18670         * combine.c (try_combine): Clean up, use double_int_* and
18671         immed_double_int_const functions.
18672
18673 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18674
18675         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
18676         stderr to /dev/null instead of grep -q.
18677         * configure: Regenerate.
18678
18679 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
18680
18681         * Makefile.in (EXCEPT_H): Fix typo.
18682
18683 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
18684
18685         * ira-build.c (update_conflict_hard_reg_costs): New.
18686         (ira_build): Call update_conflict_hard_reg_costs.
18687
18688 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
18689
18690         PR debug/41371
18691         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
18692         ENABLE_CHECKING.
18693         (intersect_loc_chains): Walk the s2var's loc_chain together
18694         with s1node chain as long as the locations are equal, don't
18695         call find_loc_in_1pdv in that case.
18696
18697         PR debug/42801
18698         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
18699         (copy_bind_expr): ... instead of here.
18700         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
18701         if the block hasn't been remapped.
18702         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
18703         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
18704
18705 2010-05-25  Richard Guenther  <rguenther@suse.de>
18706
18707         PR middle-end/44069
18708         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
18709         out-of-bounds array accesses.
18710
18711 2010-05-25  Richard Guenther  <rguenther@suse.de>
18712
18713         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
18714         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
18715         (run_gcc): Re-organize to make cleanup easier.
18716
18717 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18718
18719         * config/s390/s390.c (optimization_options): Fix and move the
18720         flag_prefetch_loop_arrays override ...
18721         (override_options): ... here.
18722
18723 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
18724
18725         * diagnostic.c: Don't include plugin.h.
18726         (diagnostic_report_diagnostic): Don't handle plugins specially
18727         here.  Pass context to internal_error callback.
18728         * diagnostic.h (struct diagnostic_context): Add context parameter
18729         to internal_error callback.
18730         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
18731         * plugin.h (struct diagnostic_context): Declare.
18732         (warn_if_plugins, plugins_internal_error_function): Declare.
18733         * toplev.c (general_init): Set global_dc->internal_error.
18734         * Makefile.in (diagnostic.o): Update dependencies.
18735
18736 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
18737
18738         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
18739         * config/rs6000/t-darwin64: New.
18740         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
18741         build crt2.
18742
18743 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
18744
18745         PR 44203
18746         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
18747         match the original (and intended) behaviour before r159557.  This
18748         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
18749         in two ways.
18750
18751 2010-05-25  Richard Guenther  <rguenther@suse.de>
18752
18753         * doc/invoke.texi: Document -Ofast.
18754         * target.h (struct gcc_target): Add handle_ofast.
18755         * target-def.h (TARGET_HANDLE_OFAST): Add.
18756         (TARGET_INITIALIZER): Adjust.
18757         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
18758         * common.opt (Ofast): Add.
18759
18760 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
18761
18762         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
18763         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
18764
18765 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
18766
18767         PR target/43610
18768         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
18769         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
18770         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
18771         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
18772
18773 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
18774
18775         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
18776         DW_OP_minus with negated offset instead of DW_OP_plus.
18777         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
18778
18779 2010-05-25  Wei Guozhi  <carrot@google.com>
18780
18781         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
18782         tst instruction and a new alternative.
18783         * config/arm/constraints.md (Pu): New constraint.
18784
18785 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
18786
18787         * function.c (assign_stack_local_1): Initialize variable
18788         to avoid warning when bootstrapping at -O3.
18789
18790 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
18791
18792         * configure.ac (all_lang_makefiles): Remove everything related to it.
18793         * configure: Regenerate.
18794         * Makefile.in: Fix reference to ada Make-lang.in.
18795         Remove support for LANG_MAKEFILES.
18796
18797 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
18798             Sandra Loosemore  <sandra@codesourcery.com>
18799
18800         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
18801         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
18802         description.  Add arm_neon_fp16_ok.
18803         (Add Options): Add arm_neon and arm_neon_fp16.
18804
18805 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
18806
18807         * diagnostic.c: Don't include flags.h.
18808         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
18809         context parameters.  Check flags in the context passed as a parameter.
18810         (diagnostic_build_prefix): Add context parameter.  Check
18811         show_column flag in context.
18812         (diagnostic_action_after_output): Check fatal_errors flag in context.
18813         (diagnostic_report_current_module): Check show_column flag in context.
18814         (default_diagnostic_starter): Update call to
18815         diagnostic_build_prefix.
18816         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
18817         (emit_diagnostic): Pass context to permissive_error_kind.
18818         (permerror): Pass context to permissive_error_kind.
18819         * diagnostic.h (struct diagnostic_context): Add show_column,
18820         pedantic_errors, permissive and fatal_errors fields.
18821         (diagnostic_build_prefix): Update prototype.
18822         * langhooks.c
18823         * toplev.c (process_options): Set flags in global_dc from
18824         flag_show_column, flag_pedantic_errors, flag_permissive,
18825         flag_fatal_errors.
18826         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
18827         to diagnostic_build_prefix.
18828         * Makefile.in (diagnostic.o): Update dependencies.
18829
18830 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
18831
18832         * config/i386/ia32intrin.h (__crc32q): Define only if
18833         __SSE4_2__ is defined.
18834
18835 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
18836
18837         PR target/44132
18838         PR middle-end/43602
18839         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
18840         DECL_VISIBILITY_SPECIFIED.
18841         (emutls_decl): Set DECL_PRESERVE_P and copy
18842         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
18843         (emutls_finalize_control_var): New callback.
18844         (emutls_finish): Finalize emutls control variables.
18845         * toplev.c (compile_file): Move the call to emutls_finish ()
18846         before varpool_assemble_pending_decls ().
18847
18848 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
18849
18850         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
18851         added to the preprocessor condition.
18852
18853 2010-05-24  Paul Brook  <paul@codesourcery.com>
18854
18855         * gengtype-lex.l: Add HARD_REG_SET.
18856         * expr.c (expand_expr_real_1): Record writes to hard registers.
18857         * function.c (rtl_data): Add asm_clobbers.
18858         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
18859         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
18860         Use crtl->asm_clobbers.
18861
18862 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18863
18864         * doc/makefile.texi (Makefile): Mention stages 'profile'
18865         and 'feedback' for profiledbootstrap.
18866
18867 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
18868
18869         PR target/44245
18870         * config/i386/i386.c (def_builtin): Properly check
18871         OPTION_MASK_ISA_64BIT.
18872
18873 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
18874
18875         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
18876         typedefs with different but compatible types.  Allow duplicate
18877         typedefs with the same type except for pedantic non-C1X, but give
18878         warning for variably modified types.
18879         * c-typeck.c (tagged_types_tu_compatible_p,
18880         function_types_compatible_p, type_lists_compatible_p,
18881         comptypes_internal): Add parameter different_types_p; set
18882         *different_types_p for different but compatible types.  All
18883         callers changed.
18884         (comptypes_check_different_types): New.
18885         * c-tree.h (comptypes_check_different_types): Declare.
18886
18887 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
18888
18889         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
18890         * jump.c: Include basic-block.h.
18891         * profile.c: Likewise.
18892         * tree-profile.c: Likewise.
18893         * coverage.c: Likewise.
18894         * basic-block.h (optimize_function_for_size_p): Move to function.h.
18895         (optimize_function_for_speed_p): Likewise.
18896         * function.h (optimize_function_for_size_p,
18897         optimize_function_for_speed_p): Moved here from basic-block.h.
18898         * Makefile.in: Update dependencies.
18899
18900 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18901
18902         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
18903         before calling make; allow override through $MAKE.
18904         * doc/invoke.texi (Optimize Options): Document override.
18905
18906 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
18907
18908         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
18909         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18910         (rs6000_mode_dependent_address_ptr): Make static.
18911         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18912         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
18913         Remove.
18914
18915 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
18916
18917         PR target/43869
18918         * config/i386/i386.c: Make sure that the correct regparm is passed.
18919
18920 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
18921
18922         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
18923         * sbitmap.c: ...to here to internalize sbitmap element access.
18924         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
18925         Explain why basic-block.h is included.
18926         * function.h: Include tm.h for CUMULATIVE_ARGS.
18927         * Makefile.in: Update dependencies.
18928
18929 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
18930
18931         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
18932         New core types.
18933         * sbitmap.h (struct sbitmap_def): Do not typedef here.
18934         * sbitmap.c: Include sbitmap.h.
18935         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
18936         hard-reg-set.h.  Split everything related to regsets out from here...
18937         * regset.h: ...to here.  New file.
18938         * df.h: Include regset.h and sbitmap.h.
18939         * tree-flow.h: Likewise.
18940         * cfgloop.h: Likewise.
18941         * except.h: Do not include sbitmap.h.  Include hashtab.h.
18942         * cgraph.h: Include vec.h and function.h.
18943         * reload.h (struct insn_chain): Change types of live_throughout
18944         and dead_or_set from regset_head to bitmap_head.
18945         (compute_use_by_pseudos): Be defined also if regset.h is not included.
18946         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
18947         spilled_regs from regset_head to bitmap_head to avoid dependency
18948         in regset.h.
18949         * sel-sched-ir.h: Include regset.h.
18950         * reload.c: Include df.h before reload.h.
18951         * caller-save.c: Likewise.
18952         * reload1.c: Likewise.
18953         * ira.c: Likewise.
18954         (mark_elimination): Update type of r to bitmap, consistent with
18955         DF_LR_IN.
18956         * dominance.c: Include bitmap.h.
18957         * modulo-sched.c: Include df.h.
18958         * cfganal.c: Include bitmap.h and sbitmap.h.
18959         * cfgbuild.c: Include sbitmap.h.
18960         * lcm.c: Include sbitmap.h.
18961         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
18962         * domwalk.c: Include sbitmap.h, exclude ggc.h.
18963         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
18964         * cselib.c: Include bitmap.h.
18965         * tree-optimize.c: Include regset.h.
18966         * stmt.c: Include bitmap.h.
18967         * Makefile.in: Update dependencies.
18968
18969 2010-05-22  Jan Hubicka  <jh@suse.cz>
18970
18971         * cgraph.h (struct varpool_node): Add same_comdat_group.
18972         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
18973         pointer.
18974         (output_varpool): Update call of lto_output_varpool_node.
18975         (input_varpool): Read same_comdat_group pointer.
18976         (input_varpool_1): Fixup same_comdat_group pointer.
18977         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
18978         group is needed, all are.
18979         * varpool.c (varpool_remove_node): Remove node from same comdat group
18980         linklist too.
18981         (varpool_analyze_pending_decls): Walk same comdat groups.
18982
18983 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
18984
18985         * rtl.h (union rtunion_def): Remove rt_bit member.
18986         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
18987         * print-rtl (print_rtx): Do not print the member.
18988         * gengtype.c (adjust_field_rtx_def): Do not handle it.
18989         * gengenrtl.c (type_from_format): Likewise.
18990         (accessor_from_format): Likewise.
18991
18992 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
18993
18994         * dbgcnt.c: Include toplev.h instead of errors.h.
18995         * ira-emit.c: Don't include errors.h.
18996         * ira.c: Include toplev.h instead of errors.h.
18997         * lto-compress.c: Include toplev.h instead of errors.h.
18998         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
18999         ira.o, dbgcnt.o): Update dependencies.
19000
19001 2010-05-22  Richard Guenther  <rguenther@suse.de>
19002
19003         * gimple.c (gimple_types_compatible_p): Check type qualifications
19004         before merging pointer to complete and pointer to incomplete type.
19005         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
19006         we use our own resolution algorithm.  The gold linker plugin
19007         doesn't do the job we want it to do here.
19008
19009 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
19010
19011         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19012         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19013         (sparc_mode_dependent_address_p): New function.
19014
19015 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
19016
19017         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
19018
19019         * timevar.c: Do not include any core headers.
19020         (timevar_print): De-i18n-ize.
19021         (print_time): Likewise.
19022         * timevar.h (timevar_push, timevar_pop): Make inline functions.
19023
19024 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
19025
19026         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
19027         langhooks-def.h.
19028         (diagnostic_initialize): Initialize x_data not last_function.
19029         (diagnostic_report_current_function): Move to tree-diagnostic.c.
19030         (default_diagnostic_starter): Call
19031         diagnostic_report_current_module not
19032         diagnostic_report_current_function.
19033         (diagnostic_report_diagnostic): Initialize x_data not
19034         abstract_origin.
19035         (verbatim): Likewise.
19036         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
19037         x_data.
19038         (struct diagnostic_context): Change last_function to x_data.
19039         (diagnostic_auxiliary_data): Replace with
19040         diagnostic_context_auxiliary_data and
19041         diagnostic_info_auxiliary_data.
19042         (diagnostic_last_function_changed, diagnostic_set_last_function,
19043         diagnostic_report_current_function): Move to tree-diagnostic.h.
19044         (print_declaration, dump_generic_node, print_generic_stmt,
19045         print_generic_stmt_indented, print_generic_expr,
19046         print_generic_decl, debug_c_tree, dump_omp_clauses,
19047         print_call_name, debug_generic_expr, debug_generic_stmt,
19048         debug_tree_chain, default_tree_printer): Move to
19049         tree-pretty-print.h.
19050         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
19051         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
19052         gimple-pretty-print.h.
19053         * pretty-print.c: Don't include tree.h
19054         (pp_base_format): Don't handle %K here.
19055         (pp_base_tree_identifier): Move to tree-pretty-print.c.
19056         * pretty-print.h (text_info): Change abstract_origin to x_data.
19057         (pp_tree_identifier, pp_unsupported_tree,
19058         pp_base_tree_identifier): Move to tree-pretty-print.h.
19059         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
19060         tree-pretty-print.h: New files.
19061         * tree-pretty-print.c: Include tree-pretty-print.h.
19062         (percent_K_format): New.  Moved from pretty-print.c.
19063         (pp_base_tree_identifier): Move from pretty-print.c.
19064         * c-objc-common.c: Include tree-pretty-print.h.
19065         (c_tree_printer): Handle %K here.
19066         * langhooks.c: Include tree-diagnostic.h.
19067         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
19068         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
19069         (default_tree_printer): Handle %K using percent_K_format.
19070         (general_init): Use default_tree_diagnostic_starter.
19071         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
19072         (free_lang_data): Use default_tree_diagnostic_starter.
19073         * c-pretty-print.c: Include tree-pretty-print.h.
19074         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
19075         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
19076         * dwarf2out.c: Include tree-pretty-print.h.
19077         * except.c: Include tree-pretty-print.h.
19078         * gimple-pretty-print.c: Include tree-pretty-print.h and
19079         gimple-pretty-print.h.
19080         * gimplify.c: Include tree-pretty-print.h.
19081         * graphite-poly.c: Include tree-pretty-print.h and
19082         gimple-pretty-print.h.
19083         * ipa-cp.c: Include tree-pretty-print.h.
19084         * ipa-inline.c: Include gimple-pretty-print.h.
19085         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
19086         * ipa-pure-const.c: Include gimple-pretty-print.h.
19087         * ipa-struct-reorg.c: Include tree-pretty-print.h and
19088         gimple-pretty-print.h.
19089         * ipa-type-escape.c: Include tree-pretty-print.h.
19090         * print-rtl.c: Include tree-pretty-print.h.
19091         * print-tree.c: Include gimple-pretty-print.h.
19092         * sese.c: Include tree-pretty-print.h.
19093         * tree-affine.c: Include tree-pretty-print.h.
19094         * tree-browser.c: Include tree-pretty-print.h.
19095         * tree-call-cdce.c: Include gimple-pretty-print.h.
19096         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
19097         * tree-chrec.c: Include tree-pretty-print.h.
19098         * tree-data-ref.c: Include tree-pretty-print.h and
19099         gimple-pretty-print.h.
19100         * tree-dfa.c: Include tree-pretty-print.h.
19101         * tree-if-conv.c: Include tree-pretty-print.h and
19102         gimple-pretty-print.h.
19103         * tree-inline.c: Include tree-pretty-print.h.
19104         * tree-into-ssa.c: Include tree-pretty-print.h and
19105         gimple-pretty-print.h.
19106         * tree-nrv.c: Include tree-pretty-print.h.
19107         * tree-object-size.c: Include tree-pretty-print.h and
19108         gimple-pretty-print.h.
19109         * tree-outof-ssa.c: Include tree-pretty-print.h and
19110         gimple-pretty-print.h.
19111         * tree-parloops.c: Include tree-pretty-print.h and
19112         gimple-pretty-print.h.
19113         * tree-predcom.c: Include tree-pretty-print.h and
19114         gimple-pretty-print.h.
19115         * tree-scalar-evolution.c: Include tree-pretty-print.h and
19116         gimple-pretty-print.h.
19117         * tree-sra.c: Include tree-pretty-print.h.
19118         * tree-ssa-address.c: Include tree-pretty-print.h.
19119         * tree-ssa-alias.c: Include tree-pretty-print.h.
19120         * tree-ssa-ccp.c: Include tree-pretty-print.h and
19121         gimple-pretty-print.h.
19122         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
19123         * tree-ssa-copy.c: Include tree-pretty-print.h and
19124         gimple-pretty-print.h.
19125         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
19126         * tree-ssa-dce.c: Include tree-pretty-print.h and
19127         gimple-pretty-print.h.
19128         * tree-ssa-dom.c: Include tree-pretty-print.h and
19129         gimple-pretty-print.h.
19130         * tree-ssa-dse.c: Include gimple-pretty-print.h.
19131         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
19132         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
19133         * tree-ssa-live.c: Include tree-pretty-print.h and
19134         gimple-pretty-print.h.
19135         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
19136         gimple-pretty-print.h.
19137         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
19138         gimple-pretty-print.h.
19139         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
19140         gimple-pretty-print.h.
19141         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
19142         gimple-pretty-print.h.
19143         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
19144         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
19145         * tree-ssa-operands.c: Include tree-pretty-print.h and
19146         gimple-pretty-print.h.
19147         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
19148         gimple-pretty-print.h.
19149         * tree-ssa-pre.c: Include tree-pretty-print.h and
19150         gimple-pretty-print.h.
19151         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
19152         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
19153         gimple-pretty-print.h.
19154         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
19155         gimple-pretty-print.h.
19156         * tree-ssa-sink.c: Include gimple-pretty-print.h.
19157         * tree-ssa-ter.c: Include tree-pretty-print.h and
19158         gimple-pretty-print.h.
19159         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
19160         * tree-ssa.c: Include tree-pretty-print.h and
19161         gimple-pretty-print.h.
19162         * tree-stdarg.c: Include gimple-pretty-print.h.
19163         * tree-switch-conversion.c: Include gimple-pretty-print.h.
19164         * tree-tailcall.c: Include tree-pretty-print.h and
19165         gimple-pretty-print.h.
19166         * tree-vect-data-refs.c: Include tree-pretty-print.h and
19167         gimple-pretty-print.h.
19168         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
19169         gimple-pretty-print.h.
19170         * tree-vect-loop.c: Include tree-pretty-print.h and
19171         gimple-pretty-print.h.
19172         * tree-vect-patterns.c: Include gimple-pretty-print.h.
19173         * tree-vect-slp.c: Include tree-pretty-print.h and
19174         gimple-pretty-print.h.
19175         * tree-vect-stmts.c: Include tree-pretty-print.h and
19176         gimple-pretty-print.h.
19177         * tree-vectorizer.c: Include tree-pretty-print.h.
19178         * tree-vrp.c: Include tree-pretty-print.h and
19179         gimple-pretty-print.h.
19180         * value-prof.c: Include tree-pretty-print.h and
19181         gimple-pretty-print.h.
19182         * var-tracking.c: Include tree-pretty-print.h.
19183         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
19184         (tree-diagnostic.o): New dependencies.
19185         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
19186         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
19187         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
19188         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
19189         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
19190         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
19191         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
19192         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
19193         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
19194         tree-ssa-address.o, tree-ssa-loop-niter.o,
19195         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
19196         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
19197         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
19198         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
19199         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
19200         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
19201         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
19202         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
19203         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
19204         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
19205         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
19206         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
19207         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
19208         tree-switch-conversion.o, var-tracking.o, value-prof.o,
19209         cfgexpand.o, pretty-print.o): Update dependencies.
19210
19211 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
19212
19213         * tree-ssa-structalias.c: Remove tm_p.h from include.
19214
19215 2010-05-21  Jeff Law  <law@redhat.com>
19216
19217         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
19218
19219 2010-05-21  Jason Merrill  <jason@redhat.com>
19220
19221         * tree-eh.c (cleanup_is_dead_in): New.
19222         (lower_try_finally): Don't generate a dead cleanup region.
19223         (lower_cleanup): Likewise.
19224
19225 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
19226
19227         PR debug/44223
19228         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
19229         unchain each use from the cyclic next_regno_use chain first.
19230
19231 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
19232
19233         * real: Do not include gmp.h, mpfr.h, and mpc.h.
19234         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
19235         (real_value_negate, real_value_abs): New prototypes.
19236         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
19237         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
19238         new include file for interface between MPFR and REAL_VALUE_TYPE.
19239         * real.c: Include realmpfr.h.
19240         (real_arithmetic2): Remove legacy function.
19241         (real_value_negate): New.
19242         (real_value_abs): New.
19243         (mfpr_from_real, real_from_mpfr): Move from here...
19244         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
19245         * builtins.c: Include realmpfr.h.
19246         * fold-const.c: Include realmpfr.h.
19247         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
19248         (fold_negate_const): Likewise.
19249         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
19250         * toplev.c: Include realmpfr.h.
19251         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
19252         and real_value_negate.
19253         * fixed-value.c (check_real_for_fixed_mode): Likewise.
19254         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
19255         (vfp3_const_double_index): Likewise.
19256         (arm_print_operand): Likewise.
19257         * Makefile.in: Update dependencies.
19258
19259 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19260
19261         * config/s390/s390.c (override_options): Increase the default
19262         of max-completely-peel-times.
19263
19264 2010-05-21  Julian Brown  <julian@codesourcery.com>
19265             Mark Mitchell  <mark@codesourcery.com>
19266
19267         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
19268         sibling calls for Thumb-1.
19269         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
19270         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
19271         Thumb-2.
19272         (*call_insn, *call_value_insn): Don't use for Thumb-2.
19273         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
19274         for Thumb-2.
19275         (return): New expander.
19276         (*arm_return): New name for ARM return insn.
19277         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
19278
19279 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
19280
19281         * config.gcc (sparc64-*-rtems*): New target.
19282
19283 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
19284
19285         * tree.c (build_function_decl_skip_args): Fix grammar.
19286         (build_function_type_list_1): Fix typos, adjust formatting.
19287
19288 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
19289
19290         * tree.h: Include real.h and fixed-value.h as basic datatypes.
19291         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
19292         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
19293         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
19294         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
19295         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
19296         tree-pretty-print.c, tree-loop-distribution.c,
19297         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
19298         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
19299         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
19300         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
19301         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
19302         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
19303         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
19304         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
19305         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
19306         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
19307         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
19308         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
19309         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
19310         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
19311         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
19312         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
19313         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
19314         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
19315         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
19316         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
19317         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
19318         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
19319         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
19320         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
19321         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
19322         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
19323         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
19324         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
19325         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
19326         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
19327         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
19328         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
19329         config/score/score7.c, config/score/score.c, config/arm/arm.c,
19330         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
19331         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
19332         config/bfin/bfin.c: Clean up redundant includes.
19333         * Makefile.in: Update accordingly.
19334
19335 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
19336
19337         PR middle-end/44204
19338         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
19339         statement has no arguments.
19340
19341 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
19342
19343         PR/44139
19344         * varasm.c (emutls_decl): Merge attributes to new decl.
19345
19346 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
19347
19348         PR middle-end/44101
19349         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
19350         around the uniquized constructor if its type requires a conversion.
19351
19352 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
19353
19354         PR debug/44205
19355         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
19356         at -O0 goto_locus of any of the incoming edges differs from
19357         goto_locus of outgoing edge, or gimple_location of any of the
19358         labels differs.
19359
19360 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
19361
19362         * ira.c (ira_non_ordered_class_hard_regs): Define.
19363         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
19364         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
19365         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
19366         cost of unaligned hard regs when allocating multi-reg pseudos.
19367
19368 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
19369
19370         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
19371         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
19372         for TARGET_NO_FLOAT.
19373         * config/mips/mips.c (mips_file_start): Expand conditional expression
19374         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
19375         (mips_override_options): Move -mno-float override -msoft-float and
19376         -mhard-float.
19377         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
19378         Condition(TARGET_SUPPORTS_NO_FLOAT).
19379         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
19380         __mips_no_float here.
19381         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
19382         (TARGET_SUPPORTS_NO_FLOAT): Define.
19383         * config/mips/sdemtk.opt: Delete.
19384
19385 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
19386
19387         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
19388
19389 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
19390
19391         PR target/43733
19392         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
19393         * configure: Regenerate.
19394         * config.in: Regenerate.
19395         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
19396         instead of sahf only for 64bit targets.
19397
19398 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
19399
19400         PR debug/44178
19401         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
19402         setup_ref_regs for DEBUG_INSNs.
19403
19404 2010-05-20  Jan Hubicka  <jh@suse.cz>
19405
19406         PR middle-end/44197
19407         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
19408
19409 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
19410
19411         PR bootstrap/43870
19412         * df-scan.c (df_ref_compare): Stabilize sort.
19413
19414 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
19415
19416         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
19417         argument.  Don't use DW_OP_piece if offset is non-zero,
19418         put offset into second DW_OP_bit_piece argument.
19419         (dw_sra_loc_expr): Adjust callers.  For memory expressions
19420         compute offset.
19421
19422 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
19423
19424         PR target/44202
19425         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
19426         settings for 16-bit-constant "addo" alternative.
19427
19428 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
19429
19430         * config/mips/mips-dsp.md (add<DSPV:mode>3,
19431         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
19432
19433         PR target/43764
19434         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
19435         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
19436         Use it.
19437
19438 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
19439
19440         * diagnostic.c (FLOAT, FFS): Don't undefine.
19441         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
19442         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
19443         include ordering.
19444
19445 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
19446
19447         * combine.c (propagate_for_debug): Call make_compound_operation
19448         on the source value.
19449         (try_combine): When implementing a split chosen by find_split_point,
19450         either copy i2src or set it to null.  Assert that i2src is not null
19451         before substituting into CALL_INSN_FUNCTION_USAGE.
19452
19453 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
19454
19455         * double-int.h (double_int_ior): New function.
19456         * tree.h (build_int_cst_wide_type): Remove.
19457         * tree.c (build_int_cst_wide_type): Remove.
19458         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
19459         of build_int_cst_wide_type.
19460         * stor-layout.c (set_sizetype): (Ditto.).
19461         * dojump.c (do_jump): Use build_int_cstu instead of
19462         build_int_cst_wide_type.
19463
19464 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
19465
19466         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
19467         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
19468         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
19469         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
19470         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
19471         propagate the 'data' argument to copy_tree_r.
19472         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
19473         Propagate 'data' argument to walk_tree.
19474         (copy_if_shared): New function.
19475         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
19476         (unmark_visited): New function.
19477         (unshare_body): Call copy_if_shared instead of doing it manually.
19478         (unvisit_body): Call unmark_visited instead of doing it manually.
19479
19480 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
19481
19482         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
19483         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
19484         * hooks.c: Likewise.
19485         * target-def.h (TARGET_FOLD_BUILTIN): Define to
19486         hook_tree_tree_int_treep_bool_null.
19487         * target.h (struct gcc_target): Update signature of fold_builtin
19488         field.
19489         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
19490         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
19491         instead of the call expression.
19492         (fold_builtin_call_array): Pass n and argarray directly.
19493         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
19494         consing a list.
19495         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
19496         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
19497         `i' and use it in place of `arity'.
19498         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
19499         Dereference `args' directly.
19500         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
19501
19502 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19503
19504         * doc/sourcebuild.texi (Effective-Target Keywords): Document
19505         3dnow, sse3, sse2.
19506         (Directives): Document optional dg-require-effective-target
19507         selector.
19508
19509 2010-05-19  Richard Guenther  <rguenther@suse.de>
19510
19511         PR lto/44196
19512         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
19513
19514 2010-05-19  Richard Guenther  <rguenther@suse.de>
19515
19516         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
19517         * common.opt (fwhopr=): New.
19518         * opts.c (common_handle_option): Handle OPT_fwhopr.
19519         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
19520         * collect2.c (main): Match -fwhopr*.
19521         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
19522         Execute ltrans stage in parallel when jobs is bigger than 1.
19523
19524 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19525
19526         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19527         pentiumpro on Solaris 8/x86 with Sun as.
19528         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
19529         hidden alias bug.
19530         (gcc_cv_as_ix86_quad): Check for .quad directive.
19531         * configure: Regenerate.
19532         * config.in: Regenerate.
19533         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
19534
19535 2010-05-19  Martin Jambor  <mjambor@suse.cz>
19536
19537         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
19538         also for indirect edges.  Actual printing moved...
19539         (ipa_print_node_jump_functions_for_edge): ...here.
19540         (ipa_compute_jump_functions): Renamed to
19541         ipa_compute_jump_functions_for_edge and made static.
19542         (ipa_compute_jump_functions): New function.
19543         (make_edge_direct_to_target): Check if the number of arguments on
19544         the newly direct edge is the same as the number of parametrs of
19545         the callee.
19546         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
19547         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
19548         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
19549         analysis functions unconditionally, call the new
19550         ipa_analyze_params_uses on the node instead of every edge.
19551
19552 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
19553
19554         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
19555         to tree.
19556         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
19557         also checks for a constant int vs.  non-constant but
19558         loop-invariant steps.
19559         (find_or_create_group): Change the sort algorithm to only consider
19560         steps that are constant ints.
19561         (idx_analyze_ref): Adopt code to handle a tree instead of a
19562         HOST_WIDE_INT for step.
19563         (gather_memory_references_ref): Handle tree instead of int and be
19564         prepared to see a NULL_TREE.
19565         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
19566         prefetches if the step cannot be calculated at compile time.
19567         (issue_prefetch_ref): Issue prefetches for non-constant but
19568         loop-invariant steps.
19569
19570 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
19571
19572         Revert:
19573         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
19574
19575         * tree.h (build_call_list): Remove.
19576         * tree.c (build_call_list): Remove.
19577
19578 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
19579
19580         * tree.h (build_call_list): Remove.
19581         * tree.c (build_call_list): Remove.
19582
19583 2010-05-18  Jan Hubicka  <jh@suse.cz>
19584
19585         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
19586
19587 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
19588
19589         PR rtl-optimization/43332
19590         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
19591
19592 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
19593
19594         * tree.h (build_int_cstu): Implement as static inline.
19595         * tree.c (build_int_cstu): Remove function.
19596         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
19597         sign extended.
19598
19599 2010-05-18  Richard Guenther  <rguenther@suse.de>
19600
19601         PR lto/44143
19602         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
19603         (debug): Initialize from -save-temps.
19604         (collect_execute): Print command-line when verbose.
19605         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
19606         for ltrans invocation.  Produce -dumpbase flag again.
19607         (process_args): Remove.
19608         (main): Simplify.
19609         * collect2.c (maybe_run_lto_and_relink): Only pass object
19610         files to lto-wrapper.
19611         * gcc.c (LINK_COMMAND_SPEC): Likewise.
19612
19613 2010-05-18  Jan Hubicka  <jh@suse.cz>
19614
19615         * opts.c (decode_options): Do not disable whopr at ipa_cp.
19616         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
19617
19618 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
19619
19620         PR lto/44184
19621         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
19622         in a GIMPLE_ASM.
19623         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
19624         in a GIMPLE_ASM.
19625
19626 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
19627
19628         PR debug/41371
19629         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
19630         rtx_equal_p inline.
19631
19632 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
19633
19634         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
19635         lto-macho as lto_binary_reader.
19636
19637         * darwin.c (darwin_asm_named_section): Do not add assembler comment
19638         after .section directive; just print it before the directive instead.
19639
19640 2010-05-17  Jan Hubicka  <jh@suse.cz>
19641
19642         * cgraph.c (cgraph_create_virtual_clone): Only check
19643         versionable_function_p when not in wpa and checking is enabled.
19644         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
19645         there are no more functions to materialize.
19646
19647 2010-05-17  Jan Hubicka  <jh@suse.cz>
19648
19649         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
19650         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
19651         New functions.
19652         (output_cgraph): Call output_cgraph_opt_summary.
19653         (input_cgrpah): Call input_cgraph_opt_summary.
19654         (output_cgraph_opt_summary_p, output_node_opt_summary,
19655         input_node_opt_summary, input_cgraph_opt_section): New functions.
19656         * lto-section-in.c (lto_section_name): Add cgraphopt.
19657         * tree-inline.c (tree_function_versioning): Handle parm_num.
19658         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
19659         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
19660
19661 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
19662
19663         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
19664         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
19665         the insn to prefetch ratio heuristic to loops with known trip count.
19666
19667 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
19668
19669         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
19670         (schedule_prefetches): Do not generate a prefetch if the unroll factor
19671         is far from what is required by the prefetch.
19672
19673 2010-05-17  Jan Hubicka  <jh@suse.cz>
19674
19675         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
19676         (ipcp_estimate_growth): Likewise.
19677         (ipcp_const_param_count): Likewise.
19678         (ipcp_insert_stage): Likewise.
19679         * ipa-prop.c (visit_load_for_mod_analysis): New function.
19680         (visit_store_addr_for_mod_analysis): Set used flag.
19681         (ipa_detect_param_modifications): Set used flag for SSE params;
19682         update use of walk_stmt_load_store_addr_ops.
19683         (ipa_print_node_params): Print used flag.
19684         (ipa_write_node_info): Stream used flag.
19685         (ipa_read_node_info): Likewise.
19686         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
19687         (ipa_is_param_used): New function.
19688         (lto_ipa_fixup_call_notes): Remove unused declaration.
19689
19690 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19691
19692         PR target/44074
19693         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
19694         * configure: Regenerate.
19695         * config.in: Regenerate.
19696         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
19697         !HAVE_AS_IX86_REP_LOCK_PREFIX.
19698         Don't emit whitespace.
19699         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
19700         (*rep_movsi): Likewise.
19701         (*rep_movsi_rex64): Likewise.
19702         (*rep_movqi): Likewise.
19703         (*rep_movqi_rex64): Likewise.
19704         (*rep_stosdi_rex64): Likewise.
19705         (*rep_stossi): Likewise.
19706         (*rep_stossi_rex64): Likewise.
19707         (*rep_stosqi): Likewise.
19708         (*rep_stosqi_rex64): Likewise.
19709         (*cmpstrnqi_nz_1): Use {%;} after repz.
19710         (*cmpstrnqi_nz_rex_1): Likewise.
19711         (*cmpstrnqi_1): Likewise.
19712         (*cmpstrnqi_rex_1): Likewise.
19713         (*strlenqi_1): Use {%;} after repnz.
19714         (*strlenqi_rex_1): Likewise.
19715         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
19716         (*sync_compare_and_swap<mode>): Likewise.
19717         (sync_double_compare_and_swap<mode>): Likewise.
19718         (*sync_double_compare_and_swapdi_pic): Likewise.
19719         (sync_old_add<mode>): Likewise.
19720         (sync_add<mode>): Likewise.
19721         (sync_sub<mode>): Likewise.
19722         (sync_<code><mode>): Likewise.
19723
19724 2010-05-17  Martin Jambor  <mjambor@suse.cz>
19725
19726         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
19727         otr_token and polymorphic.
19728         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
19729         (cgraph_clone_edge): Copy the above fields.
19730         * tree.c (get_binfo_at_offset): New function.
19731         * tree.h (get_binfo_at_offset): Declare.
19732         * ipa-prop.h (enum jump_func_type): Added known_type jump function
19733         type, reordered items, updated comments.
19734         (union jump_func_value): Added base_type field, reordered fields.
19735         (enum ipa_lattice_type): Moved down in the file.
19736         (struct ipa_param_descriptor): New field polymorphic.
19737         (ipa_is_param_polymorphic): New function.
19738         * ipa-prop.c: Include gimple.h and gimple-fold.h.
19739         (ipa_print_node_jump_functions): Print known type jump functions.
19740         (compute_complex_pass_through): Renamed to...
19741         (compute_complex_assign_jump_func): this.
19742         (compute_complex_ancestor_jump_func): New function.
19743         (compute_known_type_jump_func): Likewise.
19744         (compute_scalar_jump_functions): Create known type and complex ancestor
19745         jump functions.
19746         (ipa_note_param_call): New parameter polymorphic, set the corresponding
19747         flag in the call note accordingly.
19748         (ipa_analyze_call_uses): Renamed to...
19749         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
19750         variable var only in the block where it is used.
19751         (ipa_analyze_virtual_call_uses): New function.
19752         (ipa_analyze_call_uses): Likewise.
19753         (combine_known_type_and_ancestor_jfs): Likewise.
19754         (update_jump_functions_after_inlining): Implemented handling of a
19755         number of new jump function types combination.
19756         (print_edge_addition_message): Removed.
19757         (make_edge_direct_to_target): New function.
19758         (try_make_edge_direct_simple_call): Likewise.
19759         (try_make_edge_direct_virtual_call): Likewise.
19760         (update_call_notes_after_inlining): Renamed to...
19761         (update_indirect_edges_after_inlining): this.  Moved edge creation for
19762         indirect calls to try_make_edge_direct_simple_call, also calls
19763         try_make_edge_direct_virtual_call for virtual calls.
19764         (ipa_print_node_params): Changed the header message.
19765         (ipa_write_jump_function): Stream also known type jump functions.
19766         (ipa_read_jump_function): Likewise.
19767         (ipa_write_indirect_edge_info): Stream new fields in
19768         cgraph_indirect_call_info.
19769         (ipa_read_indirect_edge_info): Likewise.
19770         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
19771         GIMPLE_FOLD_H.
19772
19773 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19774
19775         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
19776
19777 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
19778
19779         * tree.h (CALL_EXPR_ARGS): Delete.
19780         (call_expr_arglist): Delete.
19781         * tree.c (call_expr_arglist): Delete.
19782         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
19783         targetm.fold_builtin.
19784         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
19785         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
19786         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
19787         arglist parameter.  Use CALL_EXPR_ARG.
19788         (picochip_expand_builtin_3op): Likewise.
19789         (picochip_expand_builtin_2opvoid): Likewise.
19790         (picochip_expand_array_get): Likewise.
19791         (picochip_expand_array_put): Likewise.
19792         (picochip_expand_array_testport): Likewise.
19793         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
19794         rather than arglist.
19795         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
19796         CALL_EXPR_ARGS.
19797         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
19798         than TREE_VALUE and TREE_CHAIN.
19799         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
19800         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
19801         the arglist.
19802
19803 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
19804
19805         PR bootstrap/42347
19806         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
19807         to have no fallthru edge.
19808
19809         PR middle-end/44102
19810         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
19811         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
19812         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
19813         add BARRIER after previous bb if needed.
19814
19815 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
19816
19817         * tree.c (build_function_type_list_1): Remove bogus assert condition.
19818
19819 2010-05-17  Alan Modra  <amodra@gmail.com>
19820
19821         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
19822         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
19823         with copy_reg rtx param.
19824         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
19825         Correct cases where code for ABI_V4 did not initialise the reg
19826         used to access frame.  Also leave frame_reg_rtx as sp for large
19827         frames that save no regs.
19828
19829 2010-05-17  Martin Jambor  <mjambor@suse.cz>
19830
19831         PR middle-end/44133
19832         * tree-sra.c (create_access_replacement): New parameter rename, mark
19833         the replaement for renaming only when it is true.
19834         (get_access_replacement): Pass true in the rename parameter of
19835         create_access_replacement.
19836         (get_unrenamed_access_replacement): New function.
19837         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
19838         replacement declaration from it.
19839
19840 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
19841
19842         * function.c (try_fit_stack_local, add_frame_space): New static
19843         functions.
19844         (assign_stack_local_1): Use them.  Look for opportunities to use
19845         space previously wasted on alignment.
19846         * function.h (struct frame_space): New.
19847         (struct rtl_data): Add FRAME_SPACE_LIST member.
19848         * reload1.c (something_was_spilled): New static variable.
19849         (alter_reg): Set it.
19850         (reload): Test it in addition to testing if the frame size changed.
19851
19852 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
19853
19854         * config/s390/s390.c: Define sane prefetch settings and activate
19855         flag_prefetch_loop_arrays on -O3.
19856         * config/s390/s390.h: Declare that read can use write prefetch.
19857
19858 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
19859
19860         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
19861         build.
19862
19863 2010-05-16  Jan Hubicka  <jh@suse.cz>
19864
19865         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
19866         function body; do not check stdarg field of struct function.
19867
19868 2010-05-16  Jan Hubicka  <jh@suse.cz>
19869
19870         * cgraph.c (dump_cgraph_node): Dump versionable flag.
19871         * cgraph.h (cgraph_local_info): Add versionable flag.
19872         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
19873         (ipcp_versionable_function_p): Use it.
19874         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
19875         versionable flag.
19876
19877 2010-05-16  Jan Hubicka  <jh@suse.cz>
19878
19879         * cgraph.c (cgraph_clone_node): Take decl argument and insert
19880         clone into hash when it is different from orig.
19881         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
19882         * cgraph.h (cgraph_clone_node): Update prototype.
19883         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
19884         (lto_cgraph_encoder_delete): Delete body map.
19885         (lto_cgraph_encoder_size): Move to header.
19886         (lto_cgraph_encoder_encode_body_p,
19887         lto_set_cgraph_encoder_encode_body): New.
19888         (lto_output_node): Do not take written_decls argument; output clone_of
19889         pointer.
19890         (add_node_to): Add include_body_argument; call
19891         lto_set_cgraph_encoder_encode_body on master of the clone.
19892         (add_references): Update use of add_node_to.
19893         (compute_ltrans_boundary): Likewise.
19894         (output_cgraph): Do not create written_decls bitmap.
19895         (input_node): Take nodes argument; stream in clone_of correctly.
19896         (input_cgraph_1): Update use of input_node.
19897         * lto-streamer-out.c (lto_output): Use encoder info to decide
19898         what bodies to output.
19899         * ipa-inline.c (cgraph_clone_inlined_nodes,
19900         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
19901         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
19902         (lto_cgraph_encoder_size): Define here.
19903         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
19904         Declare.
19905
19906 2010-05-16  Richard Guenther  <rguenther@suse.de>
19907
19908         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
19909         -fipa-type-escape.
19910         * ipa-type-escape.c (gate_type_escape_vars): Run when
19911         -fipa-struct-reorg runs.
19912         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
19913         * common.opt (fipa-type-escape): Remove.
19914
19915 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
19916
19917         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
19918         (decode_options): Likewise.
19919         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
19920
19921 2010-05-16  Jan Hubicka  <jh@suse.cz>
19922
19923         * ipa.c (function_and_variable_visibility): Also bring local all
19924         aliases.
19925
19926 2010-05-16  Richard Guenther  <rguenther@suse.de>
19927
19928         * alias.c (nonoverlapping_memrefs_p): Remove use of
19929         IPA type-escape information.
19930
19931 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
19932
19933         * c-common.c (c_common_reswords): Add _Static_assert for C.
19934         * c-parser.c (c_token_starts_declaration,
19935         c_parser_next_token_starts_declaration,
19936         c_parser_static_assert_declaration_no_semi,
19937         c_parser_static_assert_declaration): New.
19938         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
19939         Handle static assertions if static_assert_ok.
19940         (c_parser_external_declaration, c_parser_declaration_or_fndef,
19941         c_parser_compound_statement_nostart, c_parser_label,
19942         c_parser_for_statement, c_parser_objc_methodprotolist,
19943         c_parser_omp_for_loop): All callers of
19944         c_parser_declaration_or_fndef changed.
19945         (c_parser_struct_declaration): Handle static assertions.
19946         (c_parser_compound_statement_nostart): Use
19947         c_parser_next_token_starts_declaration and
19948         c_token_starts_declaration to detect start of declarations.
19949         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
19950         Likewise.
19951
19952 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
19953
19954         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19955         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19956         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19957         TARGET_FUNCTION_VALUE_REGNO_P): Define.
19958         (mmix_function_outgoing_value): Rename to...
19959         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
19960         (mmix_function_value_regno_p): Make static.
19961         (mmix_libcall_value): New function.
19962         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
19963         mmix_function_value_regno_p): Remove declaration.
19964
19965 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
19966
19967         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
19968         BUILT_IN_ALLOCA if stack checking is enabled.
19969
19970 2010-05-16  Richard Guenther  <rguenther@suse.de>
19971
19972         * var-tracking.c (vars_copy_1): Inline ...
19973         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
19974         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
19975         (variable_merge_over_cur): Adjust.  Merge asserts.
19976         (variable_merge_over_src): Likewise.
19977         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
19978         (variable_post_merge_new_vals): Merge asserts.
19979         (variable_post_merge_perm_vals): Likewise.
19980         (find_mem_expr_in_1pdv): Likewise.
19981         (dataflow_set_different_value): Remove.
19982         (onepart_variable_different_p): Merge asserts.
19983         (variable_different_p): Likewise.
19984         (dataflow_set_different_1): Inline ...
19985         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
19986         (emit_notes_for_differences_1): Merge asserts.
19987
19988 2010-05-16  Richard Guenther  <rguenther@suse.de>
19989
19990         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
19991         * optabs.c (libfunc_decl_hash): Likewise.
19992         * varasm.c (emutls_decl): Likewise.
19993
19994 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
19995
19996         * c-decl.c: Don't include gimple.h.
19997         (merge_decls): Do not copy gimple_body.
19998
19999 2010-05-15  Jason Merrill  <jason@redhat.com>
20000
20001         * c.opt: Add -fnothrow-opt.
20002
20003 2010-05-15  Jan Hubicka  <jh@suse.cz>
20004
20005         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
20006         analyzed.
20007         * passes.c (ipa_write_summaries): Write all analyzed nodes.
20008
20009 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
20010
20011         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
20012         * Makefile.in: Add it.
20013         Fix all other Makefile dependencies for changes below.
20014         * tree.h: Include it instead of defining VEC primitives here.
20015         * gimple.h: Likewise.
20016         * rtl.h: Likewise.
20017         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
20018         * except.h: Include vecir.h, break dependence on tree.h.
20019
20020         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
20021         Move from here...
20022         * tree-iterator.c: ...to here.
20023         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
20024
20025         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
20026         tm_p.h.
20027         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
20028         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
20029         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
20030         tree-mudflap.h, and target.h.
20031         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
20032         predict.h, tree-inline.h, gimple.h, and langhooks.h.
20033         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
20034         Add FIXME for why gimple.h is still included (should be unnecessary
20035         since GCC 4.5 gimplification unit-at-a-time).
20036         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
20037         * c-pragma.c: Add FIXME for why function.h needs to be included just
20038         for cfun, at front-end level.
20039         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
20040         Do not include ggc.h, but include vecprim.h for VEC(char).
20041         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
20042         Explain why target.h is included.
20043         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
20044         Explain why gimple.h is included.
20045         * c-ppoutput.c: Do not include tm.h.
20046         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
20047         * c-parses.c: Explain why rtl.h is included, and that this (and only
20048         this) is also why tm.h must be included.
20049         Do not include except.h.
20050         * c-lang.c: Do not include ggc.h.
20051
20052 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
20053
20054         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
20055
20056 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
20057
20058         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
20059         unions by default if those structs and unions have no tags.  Do
20060         not condition anonymous struct and unions handling on flag_iso.
20061         Allow anonymous structs and unions for C1X.
20062         (finish_struct): Do not diagnose lack of named fields when
20063         anonymous structs and unions present for C1X.  Accept flexible
20064         array members in structure with anonymous structs or unions but no
20065         directly named fields.
20066         * doc/extend.texi (Unnamed Fields): Update.
20067
20068 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
20069
20070         * gimple.h (compare_field_offset): Rename into...
20071         (gimple_compare_field_offset): ...this.
20072         * gimple.c (compare_field_offset): Rename into...
20073         (gimple_compare_field_offset): ...this.  Compare the full access if
20074         the offset is self-referential.
20075         (gimple_types_compatible_p): Adjust for above renaming.
20076         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
20077         DECL_NONADDRESSABLE_P flag of fields before merging them.
20078
20079 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
20080
20081         * tree.h (ctor_to_list): Delete.
20082         * tree.c (ctor_to_list): Delete.
20083
20084 2010-05-15  Jan Hubicka  <jh@suse.cz>
20085
20086         * ipa-reference.c: Include toplev.h
20087         (is_proper_for_analysis): Only add to all_module_statics
20088         if it is allocated.
20089         (write_node_summary_p, stream_out_bitmap,
20090         ipa_reference_write_optimization_summary,
20091         ipa_reference_read_optimization_summary): New.
20092         (struct ipa_opt_pass_d pass_ipa_reference): Add
20093         optimization summary streaming.
20094         * lto-cgraph.c (referenced_from_this_partition_p,
20095         reachable_from_this_partition_p): New functions.
20096         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
20097         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
20098         * opts.c (decode_options): Enable ipa_reference.
20099         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
20100         * lto-streamer.h (referenced_from_this_partition_p,
20101         reachable_from_this_partition_p): Declare.
20102
20103 2010-05-15  Richard Guenther  <rguenther@suse.de>
20104
20105         PR tree-optimization/44038
20106         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
20107         taking the address of a V_C_E of a constant.
20108
20109 2010-05-14  Jan Hubicka  <jh@suse.cz>
20110
20111         * tree.h (memory_identifier_string): Remove.
20112         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
20113         (ipa_reference_global_vars_info_d): Remove statics_not_read and
20114         statics_not_written.
20115         (ipa_reference_optimization_summary_d): New structure.
20116         (ipa_reference_optimization_summary_t): New type and vector.
20117         (ipa_reference_vars_info_d): Embedd structures instead of using
20118         pointers.
20119         (reference_vars_to_consider): Remove out of GGC space.
20120         (module_statics_escape): Remove.
20121         (global_info_obstack): Rename to ...
20122         (optimization_summary_obstack): ... this one.
20123         (initialization_status_t): Remove.
20124         (memory_identifier_string): Remove.
20125         (get_reference_vars_info): Fix indenting.
20126         (set_reference_vars_info): Likewise.
20127         (get_reference_optimization_summary): New.
20128         (set_reference_optimization_summary): New.
20129         (get_global_reference_vars_info): Remove.
20130         (ipa_reference_get_read_global): Remove.
20131         (ipa_reference_get_written_global): Remove.
20132         (ipa_reference_get_not_read_global): Update.
20133         (ipa_reference_get_not_written_global): Update.
20134         (is_proper_for_analysis): Outlaw addressable.
20135         (propagate_bits): Update for new datastructures.
20136         (analyze_variable): Remove.
20137         (init_function_info): Update for new datastructures.
20138         (clean_function_local_data): Remove.
20139         (clean_function): Remove.
20140         (copy_global_bitmap): Use optimizations_summary_obstack.
20141         (duplicate_node_data): Duplicate optimization summary only.
20142         (remove_node_data): Remove optimization summary only.
20143         (generate_summary): Do not analyze variables; do not compute
20144         module_statics_escape; do not prune solutions by it.
20145         (read_write_all_from_decl): Fix typos in comments.
20146         (propagate): Doscover readonly and nonaddressable first;
20147         update for new datastructures; share global bitmaps.
20148         * ipa-reference.h (ipa_reference_get_read_global,
20149         ipa_reference_get_written_global): Remove.
20150         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
20151         * Makefile.in: Remove ipa-refereference from GT files.
20152
20153 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
20154
20155         PR debug/44112
20156         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
20157         for all SYMBOL_REF_DECLs.
20158
20159 2010-05-14  Jan Hubicka  <jh@suse.cz>
20160
20161         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
20162         (varpool_all_refs_explicit_p): New inline function.
20163         * ipa-reference.c: Update comment.
20164         (module_statics_written): Remove.
20165         (get_static_decl): Remove.
20166         (ipa_init): Do not initialize module_statics_written.
20167         (analyze_function): Likewise.
20168         (generate_summary): Likewise; do not compute module_statics_readonly
20169         and do not update variable flags.
20170         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
20171         * ipa.c: Inlucde flags.h
20172         (cgraph_local_node_p): New.
20173         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
20174         promote functions to local.
20175         (ipa_discover_readonly_nonaddressable_vars): New function.
20176         (function_and_variable_visibility): Use cgraph_local_node_p.
20177         * varpool.c (varpool_finalize_decl): Set force_output for
20178         DECL_PRESERVE_P vars.
20179
20180 2010-05-14  Jan Hubicka  <jh@suse.cz>
20181
20182         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
20183
20184 2010-05-14  Richard Guenther  <rguenther@suse.de>
20185
20186         PR tree-optimization/44119
20187         * tree-ssa-pre.c (eliminate): Properly mark replacement of
20188         a PHI node necessary.
20189
20190 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
20191
20192         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
20193
20194 2010-05-14  Jason Merrill  <jason@redhat.com>
20195
20196         PR c++/44127
20197         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
20198         (gimple_call_set_nothrow): New.
20199         * gimple.c (gimple_build_call_from_tree): Call it.
20200         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
20201
20202         PR c++/44127
20203         * gimplify.c (gimplify_seq_add_stmt): No longer static.
20204         * gimple.h: Declare it.
20205         * gimple.c (gimple_build_eh_filter): No ops.
20206
20207 2010-05-14  Jan Hubicka  <jh@suse.cz>
20208
20209         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
20210         nodes already in queue.
20211         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
20212         re-enqueueing node.
20213
20214 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
20215
20216         PR debug/44136
20217         * cfgexpand.c (expand_debug_expr): If non-memory op0
20218         has BLKmode, return NULL.
20219
20220 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
20221
20222         * config.gcc: Add support for --with-cpu option for bdver1.
20223         * config/i386/i386.h (TARGET_BDVER1): New macro.
20224         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
20225         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
20226         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
20227         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
20228         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
20229         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
20230         (processor_type): Add PROCESSOR_BDVER1.
20231         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
20232         processor_type in config/i386/i386.h.
20233         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
20234         movaps <reg, reg> instead of movapd <reg, reg> when replacing
20235         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
20236         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
20237         to emit packed xor instead of packed double/packed integer
20238         xor for SSE and AVX when moving a zero value.
20239         * config/i386/sse.md: Add check for
20240         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
20241         movapd/movdqa for SSE and AVX.
20242         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
20243         single logical operations i.e and, or and xor instead of packed double
20244         logical operations for SSE and AVX.
20245         * config/i386/i386-c.c (ix86_target_macros_internal):
20246         Add PROCESSOR_BDVER1.
20247         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
20248         (has_fma4, has_xop): New.
20249         * config/i386/i386.c (bdver1_cost): New variable.
20250         (m_BDVER1): New macro.
20251         (m_AMD_MULTIPLE): Add m_BDVER1.
20252         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
20253         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
20254         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
20255         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
20256         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
20257         x86_tune_sse_partial_reg_dependency,
20258         x86_tune_sse_unaligned_load_optimal,
20259         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
20260         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
20261         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
20262         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
20263         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
20264         Enable/disable for bdver1.
20265         (processor_target_table): Add bdver1_cost.
20266         (cpu_names): Add bdver1.
20267         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
20268          processor_alias_table.
20269         (ix86_expand_vector_move_misalign): Change.
20270         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
20271         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
20272         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
20273         of movupd/movdqu for SSE and AVX.
20274         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
20275         (ix86_tune_adjust_cost): Add code for bdver1.
20276         (standard_sse_constant_opcode): Add check for
20277         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
20278         of packed double xor for SSE and AVX.
20279
20280 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
20281
20282         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
20283         result to unsigned.
20284
20285 2010-05-14  Tristan Gingold  <gingold@adacore.com>
20286
20287         * toplev.c (default_debug_hooks): Remove this variable.
20288         (process_options): Remove assignments to default_debug_hooks.
20289
20290 2010-05-14  Martin Jambor  <mjambor@suse.cz>
20291
20292         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
20293         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
20294         * langhooks.h (struct lang_hooks_for_decls): Removed field
20295         fold_obj_type_ref.
20296         * tree.c (free_lang_data): Remove assignment to
20297         lang_hooks.fold_obj_type_ref.
20298         * tree.def (OBJ_TYPE_REF): Update comment.
20299
20300 2010-05-14  Richard Guenther  <rguenther@suse.de>
20301
20302         PR tree-optimization/44124
20303         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
20304
20305 2010-05-14  Alan Modra  <amodra@gmail.com>
20306
20307         PR target/44075
20308         * config/rs6000/rs6000.c (struct machine_function): Reorder
20309         fields for better packing.  Add lr_save_state.
20310         (rs6000_ra_ever_killed): Return lr_save_state if set.
20311         (rs6000_emit_eh_reg_restore): Set lr_save_state.
20312
20313 2010-05-13  Jan Hubicka  <jh@suse.cz>
20314
20315         * varpool.c (decide_is_variable_needed): Drop code checking
20316         TREE_SYMBOL_REFERENCED.
20317
20318 2010-05-13  Jan Hubicka  <jh@suse.cz>
20319
20320         * final.c (output_addr_const): Do not call mark_decl_referenced.
20321         * cgraphunit.c (process_function_and_variable_attributes): Use
20322         mark_needed_node dirrectly.
20323         (assemble_thunk): Do not call mark_decl_referenced.
20324
20325 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
20326
20327         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
20328
20329 2010-05-13  Jeff Law  <law@redhat.com>
20330
20331         * ira-conflicts.c (print_allocno_conflicts): New function broken out
20332         from...
20333         (print_conflicts): Call print_allocno_conflicts.
20334
20335 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
20336
20337         PR debug/44104
20338         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
20339         if it is NULL.
20340
20341 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
20342
20343         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
20344         t-mingw-w64 or t-mingw-w32 for multilib configuration.
20345         * config/i386/t-mingw-w32: New.
20346         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
20347
20348 2010-05-13  Martin Jambor  <mjambor@suse.cz>
20349
20350         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
20351         gimple-fold.c).
20352         * gimple-fold.c (get_base_binfo_for_type): New function.
20353         (gimple_get_relevant_ref_binfo): Likewise.
20354         (gimple_fold_obj_type_ref_known_binfo): Likewise.
20355         (gimple_fold_obj_type_ref): Likewise.
20356         (fold_gimple_call): Simplify condition for folding virtual calls
20357         and call gimple_fold_obj_type_ref.
20358         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
20359         (gimple_fold_obj_type_ref_known_binfo): Likewise.
20360
20361 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
20362
20363         * config/rs6000/rs6000-protos.h
20364         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
20365         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
20366         (rs6000_debug_mode_dependent_address)
20367         (rs6000_mode_dependent_address_ptr): Likewise.
20368
20369 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
20370
20371         PR debug/43983
20372         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
20373         by SRA.
20374         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
20375         * tree-sra.c (create_access_replacement): Call unshare_expr before
20376         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
20377         * dwarf2out.c: Include tree-flow.h.
20378         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
20379         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
20380         Handle DW_OP_bit_piece.
20381         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
20382         construct_piece_list, adjust_piece_list): New functions.
20383         (add_var_loc_to_decl): Handle SRA optimized variables.
20384         Adjust for var_loc_note to loc field renaming.
20385         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
20386         in VAR_LOCATION note.
20387         (new_loc_descr_op_bit_piece): New function.
20388         (dw_sra_loc_expr): New function.
20389         (dw_loc_list): Use it.  Don't handle the last range after the
20390         loop, handle it inside of the loop.  Adjust for var_loc_note
20391         to loc field renaming.
20392         (add_location_or_const_value_attribute): Only special case
20393         single entry loc lists if loc is NOTE_P.  Adjust for
20394         var_loc_note to loc field renaming.
20395         (dwarf2out_var_location): Don't set newloc->var_loc_note
20396         and newloc->next here.
20397
20398 2010-05-12  Jan Hubicka  <jh@suse.cz>
20399
20400         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
20401         flag.
20402         * cgraph.h (cgraph_only_called_directly_p,
20403         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
20404         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
20405         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
20406         (assemble
20407         * ipa.c (cgraph_remove_unreachable_nodes): Use
20408         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
20409         flags.
20410         * tree-inline.c (copy_bb): Check address_taken flag.
20411         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
20412         externally_visible flag.
20413
20414 2010-05-12  Jason Merrill  <jason@redhat.com>
20415
20416         PR bootstrap/44048
20417         PR target/44099
20418         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
20419         * sdbout.c (plain_type_1): Likewise.
20420         * dwarf2out.c (is_base_type): Likewise.
20421         (gen_type_die_with_usage): Likewise.  Generate
20422         DW_TAG_unspecified_type for any LANG_TYPE.
20423
20424 2010-05-12  Jan Hubicka  <jh@suse.cz>
20425
20426         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
20427         indrect edges too.
20428         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
20429         (cgraph_clone_edge): Update.
20430         (cgraph_node_remove_callees): Remove indirect calls too.
20431         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
20432         (cgraph_create_indirect_edge): Update prototype.
20433         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
20434         is_proper_for_analysis.
20435         (add_new_function, visited_nodes, function_insertion_hook_holder,
20436         get_local_reference_vars_info, mark_address_taken, mark_address,
20437         mark_load, mark_store, check_asm_memory_clobber, check_call,
20438         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
20439         (ipa_init): Do not initialize visited_nodes;
20440         function_insertion_hook_holder.
20441         (analyze_variable): Rewrite.
20442         (analyze_function): Rewrite.
20443         (copy_local_bitmap): Remove.
20444         (duplicate_node_dat): Do not duplicate local info.
20445         (generate_summary): Simplify to only walk cgraph.
20446         (write_node_summary_p, ipa_reference_write_summary,
20447         ipa_reference_read_summary): Remove.
20448         (propagate): Do not remove function insertion;
20449         generate summary.
20450         (pass_ipa_reference): NULLify summary handling fields.
20451         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
20452         (input_edge): Input ecf_flags.
20453         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
20454         (update_indirect_edges_after_inlining): Ignore edges with unknown
20455         param.
20456
20457 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
20458
20459         * implicit-zee.c: New file.
20460         * tree-pass.h (pass_implicit_zee): Declare.
20461         * passes.c (init_optimization_passes): Add zee pass.
20462         * common.opt (fzee): New flag.
20463         * timevar.def (TV_ZEE): Define.
20464         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
20465         and beyond.
20466         * Makefile.in (implicit-zee.o): Add new build file.
20467
20468 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
20469             Nathan Froyd  <froydnj@codesourcery.com>
20470
20471         * c-common.c (sync_resolve_params): Remove write-only variable.
20472
20473 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
20474
20475         * target.h (struct gcc_target): Add mode_dependent_address_p field.
20476         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
20477         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
20478         * targhooks.c (default_mode_dependent_address_p): New function.
20479         * targhooks.h (default_mode_dependent_address_p): Declare function.
20480         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
20481         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
20482         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
20483         target hook. Change return type to bool.
20484         * recog.h (mode_dependent_address_p): Change return type to bool.
20485
20486 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
20487             Nathan Froyd  <froydnj@codesourcery.com>
20488
20489         * tree-mudflap.c (build_function_type_0, build_function_type_1,
20490         build_function_type_2, build_function_type_3): Remove.
20491         (mudflap_init): Use build_function_type_list.
20492
20493 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
20494             Nathan Froyd  <froydnj@codesourcery.com>
20495
20496         * coverage.c (build_fn_info_value): Call build_constructor instead of
20497         build_constructor_from_list.
20498         (build_ctr_info_value): Likewise.
20499         (build_gcov_info): Likewise.
20500
20501 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
20502
20503         * tree.c (build_constructor): Compute TREE_CONSTANT for the
20504         resultant constructor.
20505         (build_constructor_single): Don't set TREE_CONSTANT.
20506         (build_constructor_from_list): Don't compute TREE_CONSTANT.
20507
20508 2010-05-12  Jan Hubicka  <jh@suse.cz>
20509
20510         * cgraph.h (struct varpool_node): Add aux.
20511         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
20512         * varpool.c (varpool_remove_node): Do not remove initializer.
20513         (varpool_reset_queue): Export.
20514         (varpool_finalize_decl): Volatile vars are forced to be output.
20515         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
20516         replaced decl.
20517         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
20518         process_references, varpool_can_remove_if_no_refs): New functions.
20519         (cgraph_remove_unreachable_nodes): Handle variables too.
20520
20521 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
20522
20523         PR target/44088
20524         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
20525
20526 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
20527
20528         PR middle-end/44085
20529         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
20530         change value of ORT_TASK.
20531         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
20532         (omp_notice_threadprivate_variable): New function.
20533         (omp_notice_variable): Call it for threadprivate variables.
20534         If enclosing ctx is a task, print enclosing task rather than
20535         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
20536         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
20537         if task has untied clause.
20538
20539         PR debug/42278
20540         * dwarf2out.c (base_type_die): Don't add name attribute here.
20541         (modified_type_die): Instead of sizetype use
20542         its underlying original type.  If a DW_TAG_base_type doesn't
20543         have name added, add __unknown__.
20544         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
20545         always call force_type_die instead.
20546
20547 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
20548
20549         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
20550         for __stack_chk_guard.
20551
20552 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
20553
20554         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
20555         don't call start_source_file debug hook here...
20556         (finish_options): ... but here, after outputting predefined and
20557         command line defines and undefs.
20558
20559         PR middle-end/44071
20560         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
20561         no fallthru edge.
20562         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
20563         optimizing away empty bb with no successors, move over its
20564         footer chain to fallthru predecessor.
20565         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
20566         (rtl_split_edge): For asm goto call patch_jump_insn even if
20567         splitting fallthru edge.
20568
20569         PR c++/44059
20570         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
20571         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
20572         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
20573         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
20574         on DW.ref.* decls.
20575
20576         PR c++/44062
20577         * c-parser.c (c_parser_expression): Mark LHS of a comma
20578         expression as read if it is a decl, handled component or
20579         COMPOUND_EXPR with that on the RHS.
20580         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
20581         if it is a decl or handled component.
20582
20583 2010-05-11  Jan Hubicka  <jh@suse.cz>
20584
20585         * lto-symtab.c (lto_symtab_free): New function.
20586         * lto-streamer.h (lto_symtab_free): Declare.
20587
20588 2010-05-11  Jan Hubicka  <jh@suse.cz>
20589
20590         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
20591         that if function is needed it is reachable.
20592         (lto_output_node): See if it the function is reachable or referenced.
20593         (output_cgraph): Update call of lto_output_node.
20594         * lto-streamer.h (reachable_from_other_partition_p): Declare.
20595
20596 2010-05-11  Jan Hubicka  <jh@suse.cz>
20597
20598         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
20599         Mark as used.
20600
20601 2010-05-11  Jan Hubicka  <jh@suse.cz>
20602
20603         PR tree-optimize/44063
20604         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
20605         queue.
20606         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
20607         limits.
20608         (estimate_function_body_sizes): Compute sizes even when disregarding.
20609
20610 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
20611
20612         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
20613
20614 2010-05-11  Jan Hubicka  <jh@suse.cz>
20615
20616         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
20617         into every boundary.
20618
20619 2010-05-11  Jan Hubicka  <jh@suse.cz>
20620
20621         * matrix-reorg.c (matrix_reorg): Rebuild edges.
20622
20623 2010-05-11  Jan Hubicka  <jh@suse.cz>
20624
20625         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
20626         lto_streamer_cache_delete): Put nodes into heap.
20627         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
20628         heap.
20629
20630 2010-05-11  Jan Hubicka  <jh@suse.cz>
20631
20632         * cgraphbuild.c (cgraph_rebuild_references): New.
20633         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
20634         out extern inlines.
20635         * cgraph.h (cgraph_rebuild_references): Declare.
20636         * tree-inline.c (tree_function_versioning): Use it.
20637         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
20638
20639 2010-05-11  Jan Hubicka  <jh@suse.cz>
20640
20641         * cgraph.c: Include ipa-utils.h
20642         (cgraph_create_virtual_clone): Update references.
20643         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
20644
20645 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
20646
20647         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
20648         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
20649         cache size.
20650
20651 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
20652
20653         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
20654
20655 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
20656
20657         * gcc.c (execute): For -### don't quote arguments that
20658         contain just alphanumerics and _/-. characters.
20659         * doc/invoke.texi: Document that change for -###.
20660
20661         PR debug/44023
20662         * df-problems.c (struct dead_debug): Add to_rescan field.
20663         (dead_debug_init): Clear to_rescan field.
20664         (dead_debug_finish): Rescan all debug insns in to_rescan
20665         bitmap and free the bitmap.
20666         (dead_debug_insert_before): Instead of rescanning debug insns
20667         immediately queue their rescanning until dead_debug_finish.
20668         (df_note_bb_compute): After dead_debug_add do continue instead
20669         of break.
20670
20671 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
20672
20673         PR debug/44028
20674         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
20675         clear also INSN_REG_USE_LIST.
20676
20677 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20678
20679         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
20680
20681 2010-05-10  Jan Hubicka  <jh@suse.cz>
20682
20683         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
20684         commited change.
20685
20686 2010-05-10  Jan Hubicka  <jh@suse.cz>
20687
20688         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
20689         Allocate encoders.
20690         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
20691         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
20692         (lto_streamer_cache_create): Init alloc pool.
20693         (lto_streamer_cache_delete): Free alloc pool.
20694         * lto-streamer.h: Include alloc pool.
20695         (lto_streamer_cache_d): Use alloc pool.
20696         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
20697
20698 2010-05-10  Jan Hubicka  <jh@suse.cz>
20699
20700         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
20701         * cgraphbuild.c: Include except.h
20702         (record_type_list, record_eh_tables): New function.
20703         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
20704
20705 2010-05-10  Jan Hubicka  <jh@suse.cz>
20706
20707         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
20708         __frame_dummy_init_array_entry, force_to_data): Attribute as used
20709         rather than unused.
20710
20711 2010-05-10  Michael Matz  <matz@suse.de>
20712
20713         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
20714         (can_reassociate_p): Use FLOAT_TYPE_P.
20715         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
20716         (vect_force_simple_reduction): ... this.
20717         * tree-parloops.c (gather_scalar_reductions): Use
20718         vect_force_simple_reduction.
20719         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
20720         vect_is_simple_reduction, add modify argument, if true rewrite
20721         "a-b" into "a+(-b)".
20722         (vect_is_simple_reduction, vect_force_simple_reduction): New
20723         functions.
20724         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
20725
20726 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
20727             Vladimir Makarov  <vmakarov@redhat.com>
20728
20729         PR rtl-optimization/44012
20730         * ira-build.c (remove_unnecessary_allocnos): Nullify
20731         regno_allocno_map of the removed allocno.
20732
20733 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20734
20735         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
20736         to /dev/null.
20737         * configure: Regenerate.
20738
20739 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20740
20741         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
20742         unused.
20743         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
20744         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
20745         support in Sun ld.
20746         * configure: Regenerate.
20747
20748 2010-05-10  Richard Guenther  <rguenther@suse.de>
20749
20750         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
20751         marked if the entry identifier is marked.
20752
20753 2010-05-10  Richard Guenther  <rguenther@suse.de>
20754
20755         * c-common.c (struct c_common_attributes): Add fnspec attribute.
20756         (handle_fnspec_attribute): New function.
20757         * gimple.h (gimple_call_return_flags): Declare.
20758         (gimple_call_arg_flags): Likewise.
20759         * gimple.c (gimple_call_arg_flags): New function.
20760         (gimple_call_return_flags): Likewise.
20761         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
20762         New argument flags.
20763         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
20764         return value flags.
20765         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
20766         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
20767         main work to ...
20768         (make_heapvar_for): ... this new function.
20769         (handle_rhs_call): Handle fnspec attribute argument specifiers.
20770         (handle_lhs_call): Likewise.
20771         (find_func_aliases): Adjust.
20772
20773 2010-05-10  Richard Guenther  <rguenther@suse.de>
20774
20775         PR tree-optimization/44050
20776         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
20777
20778 2010-05-10  Wei Guozhi  <carrot@google.com>
20779
20780         PR target/42879
20781         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
20782
20783 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
20784
20785         PR c/10676
20786         * c-typeck.c (lookup_field): Take a type directly.  Update
20787         recursive calls.
20788         (build_component_ref): Update call to lookup_field.
20789         (set_init_label): Use lookup_field to find initialized field.
20790         Handle returned list of fields like a sequence of designators.
20791
20792 2010-05-09  Richard Guenther  <rguenther@suse.de>
20793
20794         PR middle-end/44024
20795         * fold-const.c (tree_single_nonzero_warnv_p): Properly
20796         handle &FUNCTION_DECL.
20797
20798 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
20799
20800         PR c/4784
20801         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
20802         structures and unions recursively.
20803         (detect_field_duplicates): Move duplicate detection with a hash to
20804         detect_field_duplicates_hash.  Always use a hash if anonymous
20805         structures or unions are present.
20806         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
20807         give errors.
20808
20809 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
20810
20811         PR target/44046
20812         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
20813         detect Atom, Core 2 and Core i7.
20814
20815 2010-05-09  Richard Guenther  <rguenther@suse.de>
20816
20817         * gcc.c (store_arg): Handle temporary file deletion for
20818         joined arguments.
20819
20820 2010-05-09  Richard Guenther  <rguenther@suse.de>
20821
20822         PR middle-end/44043
20823         * ipa-inline.c (estimate_function_body_sizes): Return after
20824         disregarding inline limits.
20825
20826 2010-05-09  Richard Guenther  <rguenther@suse.de>
20827
20828         * gcc.c (store_arg): Revert last change.
20829
20830 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
20831
20832         PR middle-end/28685
20833         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
20834         (optimize_ops_list): Call it.
20835
20836 2010-05-08  Richard Guenther  <rguenther@suse.de>
20837
20838         PR tree-optimization/44030
20839         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
20840         NECESSARY flag if we propagate from a inserted expression.
20841
20842 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
20843
20844         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
20845         domain types as equal if they are both PLACEHOLDER_EXPRs.
20846
20847 2010-05-08  Richard Guenther  <rguenther@suse.de>
20848
20849         * lto-wrapper.c (run_gcc): Remove linker output from
20850         command line for LTRANS invocation.
20851
20852 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
20853
20854         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
20855         lto-macho as lto_binary_reader.
20856         * target.h (struct gcc_target): New hooks lto_start and lto_end.
20857         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
20858         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
20859         in lto_start and lto_end calls.
20860         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
20861         magic numbers.
20862         (scan_prog_file): Update is_elf_or_coff call.
20863         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
20864
20865         * collect2.c (main): Fix enum comparison.
20866
20867         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
20868         Add prototypes.
20869         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
20870         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
20871         and TARGET_ASM_LTO_END.
20872         * darwin.c: Include obstack.h and lto-streamer.h.
20873         (lto_section_names_offset, lto_section_names_obstack,
20874         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
20875         global variables.
20876         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
20877         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
20878         to a temporary file.
20879         (darwin_asm_lto_end): New function.  Restore asm_out_file.
20880         (darwin_asm_named_section): For LTO sections, replace the name with
20881         the offset of the section name in a string table, and build this
20882         table.
20883         (darwin_file_start): Initialize global vars for LTO support.
20884         (darwin_file_end): If output to asm_out_file was redirected, append it
20885         to the proper asm_out_file here.  Add the section names section.
20886
20887 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
20888
20889         * c-pragma.c (pending_weak_d, pending_weak): New.
20890         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
20891         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
20892         handle_pragma_weak): Update the uses of pending_weaks.
20893
20894 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20895
20896         PR documentation/44016
20897         * doc/standards.texi (Standards): Link to unversioned
20898         cxx0x_status.html page.
20899
20900 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
20901
20902         PR target/43708
20903         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
20904         in addition to TREE_USED, to avoid "set but unused" warnings.
20905
20906 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20907
20908         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
20909         (is_loop_prefetching_profitable): Do not insert prefetches
20910         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
20911         times the prefetch ahead distance.
20912
20913 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20914
20915         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
20916         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
20917         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
20918         the unroll_factor.
20919
20920 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20921
20922         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
20923         a diagnostic info when the insn-to-mem ratio is too small.
20924
20925 2010-05-07  Richard Guenther  <rguenther@suse.de>
20926
20927         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
20928         the linker plugin.
20929         (store_arg): Queue temp_filename for deletion instead of
20930         the whole argument.
20931
20932 2010-05-07  Richard Guenther  <rguenther@suse.de>
20933
20934         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
20935         (run_gcc): Handle LTRANS phase invocation.
20936         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
20937
20938 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
20939
20940         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
20941         this is also meaningful on PARM_DECLs and RESULT_DECLs.
20942
20943 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20944
20945         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
20946
20947 2010-05-07  Richard Guenther  <rguenther@suse.de>
20948
20949         PR tree-optimization/44020
20950         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
20951         code when PRE is not yet initialized.
20952
20953 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20954
20955         * config/mips/dbxmdebug.h: Remove.
20956         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
20957
20958 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
20959
20960         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
20961         with null pointer and also warn about ordered comparison of zero with
20962         pointer if -Wextra.
20963
20964 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
20965
20966         * graphite-blocking.c
20967         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
20968         * graphite-clast-to-gimple.c
20969         (clast_to_gcc_expression): Same.
20970         (precision_for_value): Same.
20971         (precision_for_interval): Same.
20972         (gcc_type_for_interval): Same.
20973         (graphite_create_new_guard): Same.
20974         (compute_bounds_for_level): Same.
20975         (graphite_create_new_loop_guard): Same.
20976         * graphite-interchange.c
20977         (build_linearized_memory_access): Same.
20978         (pdr_stride_in_loop): Same.
20979         (memory_strides_in_loop_1): Same.
20980         (memory_strides_in_loop): Same.
20981         (extend_scattering): Same.
20982         (psct_scattering_dim_for_loop_depth): Same.
20983         (pbb_number_of_iterations): Same.
20984         * graphite-poly.h
20985         (debug_iteration_domains): Same.
20986         * graphite-ppl.c
20987         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
20988         (ppl_set_inhomogeneous_gmp): Same.
20989         (ppl_strip_loop): Same.
20990         (ppl_lexico_compare_linear_expressions): Same.
20991         (ppl_read_polyhedron_matrix): Same.
20992         (ppl_max_for_le_pointset): Same.
20993         * graphite-ppl.h
20994         (ppl_read_polyhedron_matrix): Same.
20995         (tree_int_to_gmp): Same.
20996         (gmp_cst_to_tree): Same.
20997         (ppl_set_inhomogeneous): Same.
20998         (ppl_set_inhomogeneous_tree): Same.
20999         (ppl_set_coef): Same.
21000         (ppl_set_coef_tree): Same.
21001         * graphite-sese-to-poly.c
21002         (build_pbb_scattering_polyhedrons): Same.
21003         (build_scop_scattering): Same.
21004         (scan_tree_for_params_right_scev): Same.
21005         (scan_tree_for_params): Same.
21006         (find_params_in_bb): Same.
21007         (find_scop_parameters): Same.
21008         (add_upper_bounds_from_estimated_nit): Same.
21009         (build_loop_iteration_domains): Same.
21010         (add_condition_to_domain): Same.
21011         (pdr_add_memory_accesses): Same.
21012
21013 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
21014
21015         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
21016         CLooG's value_* macros to their respective mpz_* counterparts.
21017         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
21018         (graphite_create_new_loop_guard): Same.
21019         * graphite-interchange.c (build_linearized_memory_access): Same.
21020         (pdr_stride_in_loop): Same.
21021         (memory_strides_in_loop_1): Same.
21022         (1st_interchange_profitable_p): Same.
21023         * graphite-poly.c (extend_scattering): Same.
21024         (psct_scattering_dim_for_loop_depth): Same.
21025         (pbb_number_of_iterations): Same.
21026         (pbb_number_of_iterations_at_time): Same.
21027         * graphite-poly.h (new_1st_loop): Same.
21028         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
21029         (oppose_constraint): Same.
21030         (insert_constraint_into_matrix): Same.
21031         (ppl_set_inhomogeneous_gmp): Same.
21032         (ppl_set_coef_gmp): Same.
21033         (ppl_strip_loop): Same.
21034         (ppl_lexico_compare_linear_expressions): Same.
21035         (ppl_max_for_le_pointset): Same.
21036         (ppl_min_for_le_pointset): Same.
21037         (ppl_build_realtion): Same.
21038         * graphite-ppl.h (gmp_cst_to_tree): Same.
21039         (ppl_set_inhomogeneous): Same.
21040         (ppl_set_inhomogeneous_tree): Same.
21041         (ppl_set_coef): Same.
21042         (ppl_set_coef_tree): Same.
21043         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
21044         (build_scop_scattering): Same.
21045         (add_value_to_dim): Same.
21046         (scan_tree_for_params_right_scev): Same.
21047         (scan_tree_for_params_int): Same.
21048         (scan_tree_for_params): Same.
21049         (find_params_in_bb): Same.
21050         (find_scop_parameters): Same.
21051         (add_upper_bounds_from_estimated_nit): Same.
21052         (build_loop_iteration_domains): Same.
21053         (create_linear_expr_from_tree): Same.
21054         (add_condition_to_domain): Same.
21055         (pdr_add_memory_accesses): Same.
21056
21057 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
21058             Jason Merrill  <jason@redhat.com>
21059
21060         * c-common.c (c_common_reswords): Add nullptr.
21061         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
21062         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
21063         (gen_type_die_with_usage): Likewise.
21064         * dbxout.c (dbxout_type): Likewise.
21065         * sdbout.c (plain_type_1): Likewise.
21066
21067 2010-05-06  Jason Merrill  <jason@redhat.com>
21068
21069         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
21070         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
21071         ret appropriately.
21072         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
21073
21074         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
21075         stripping WITH_SIZE_EXPR.
21076         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
21077         change.
21078
21079 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21080
21081         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
21082         list of obsolete configurations.
21083         Disabled check for obsolete configurations.
21084         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
21085         Removed support for previous versions.
21086         * config/mips/iris.h: Removed.
21087         * config/mips/iris5.h: Removed.
21088         * config/mips/iris6.h: Merged old iris.h contents.
21089         (TARGET_IRIX): Removed.
21090         (DRIVER_SELF_SPECS): Removed mabi=32.
21091         (IDENT_ASM_OP): Removed undef.
21092         (STARTFILE_SPEC): Removed mabi=32.
21093         (ENDFILE_SPEC): Likewise.
21094         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
21095         (MACHINE_TYPE): Update for IRIX 6.5.
21096         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
21097         TARGET_IRIX by TARGET_IRIX6.
21098         (mips_file_start): Likewise.
21099         (mips_output_external): Remove IRIX 5/6 O32 support.
21100         (mips_output_function_prologue): Likewise.
21101         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
21102         TARGET_IRIX6.
21103         (TARGET_CPU_CPP_BUILTINS): Likewise.
21104         (TARGET_IRIX): Removed.
21105         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
21106         (MULTILIB_DIRNAMES): Removed 32.
21107         (MULTILIB_OSDIRNAMES): Removed ../lib.
21108         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
21109         (Specific, mips-sgi-irix5): Document removal.
21110         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
21111         Remove references to older IRIX 6 releases and the O32 ABI.
21112
21113 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
21114
21115         PR bootstrap/43994
21116         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
21117         instead of DF_REF_REAL_REG.
21118
21119 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
21120
21121         PR target/43888
21122         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
21123         handling to still return true for x64 targets.
21124
21125 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
21126
21127         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
21128
21129 2010-05-06  Jan Hubicka  <jh@suse.cz>
21130
21131         PR tree-optimization/43791
21132         * ipa-inline.c (update_caller_keys): Remove bogus
21133         disregard_inline_limits check.
21134
21135 2010-05-06  Michael Matz  <matz@suse.de>
21136
21137         PR tree-optimization/43984
21138         * tree-ssa-pre.c (inserted_phi_names): Remove.
21139         (inserted_exprs): Change to bitmap.
21140         (create_expression_by_pieces): Set bits, don't append to vector.
21141         (insert_into_preds_of_block): Don't handle inserted_phi_names.
21142         (eliminate): Don't look at inserted_phi_names, remove deleted
21143         insns from inserted_exprs.
21144         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
21145         (init_pre, fini_pre): Allocate and free bitmaps.
21146         (execute_pre): Insert insns on edges before elimination.
21147
21148 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
21149
21150         * tree.c (initializer_zerop): Handle STRING_CST.
21151
21152 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21153
21154         PR 40989
21155         * doc/invoke.texi (Wimplicit): Document as C only.
21156         * opts.c (common_handle_option): Add argument kind.
21157         (handle_option): Rename as read_cmdline_option. Factor out code to...
21158         (handle_option): ... here. New.
21159         (handle_options): Rename as read_cmdline_options.
21160         (decode_options): Update call.
21161         (set_option): Use option index instead of option pointer. Classify
21162         diagnostics correctly.
21163         (enable_warning_as_error): Call handle_option.
21164         * opts.h (set_option): Update declaration.
21165         (handle_option): Declare.
21166         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
21167         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
21168         * c-opts.c (set_Wimplicit): Delete.
21169         (c_family_lang_mask): New static constant.
21170         (c_common_handle_option): Add argument kind. Use handle_option
21171         instead of set_Wimplicit.
21172         (c_common_post_options): warn_implicit and warn_implicit_int
21173         are disabled by default.
21174         * c-common.c (warn_implicit): Do not define here.
21175         * c-common.h (warn_implicit): Do not declare here.
21176         (c_common_handle_option): Update declaration.
21177         * lto-opts.c (lto_reissue_options): Update call to set_option.
21178
21179 2010-05-06  Richard Guenther  <rguenther@suse.de>
21180
21181         PR tree-optimization/43571
21182         * domwalk.c (walk_dominator_tree): Walk the dominator
21183         sons in more optimal order.
21184
21185 2010-05-06  Richard Guenther  <rguenther@suse.de>
21186
21187         PR tree-optimization/43934
21188         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
21189         (stmt_cost): Likewise.
21190         (extract_true_false_args_from_phi): New helper.
21191         (determine_max_movement): For PHI nodes verify we can hoist them
21192         and compute their cost.
21193         (determine_invariantness_stmt): Handle PHI nodes.
21194         (move_computations_stmt): Likewise.  Hoist PHI nodes in
21195         if-converted form using COND_EXPRs.
21196         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
21197         (tree_ssa_lim): Likewise.
21198         * tree-flow.h (tree_ssa_lim): Adjust prototype.
21199         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
21200
21201 2010-05-06  Richard Guenther  <rguenther@suse.de>
21202
21203         PR tree-optimization/43987
21204         * tree-ssa-structalias.c (could_have_pointers): For possibly
21205         address-taken variables force pointers to be recorded.
21206         (create_variable_info_for_1): Likewise.
21207         (push_fields_onto_fieldstack): Pass in wheter all fields
21208         must have pointers.
21209         (find_func_aliases): Query types instead of vars whether
21210         they contain pointers where appropriate.
21211
21212 2010-05-06  Jan Hubicka  <jh@suse.cz>
21213
21214         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
21215         (record_reference, mark_address, mark_load, mark_store): Record
21216         references.
21217         (record_references_in_initializer): Update call of record_references.
21218         (rebuild_cgraph_edges): Remove all references before rebuiding.
21219         * cgraph.c (cgraph_create_node): Clear ref list.
21220         (cgraph_remove_node): Remove references.
21221         (dump_cgraph_node): Dump references.
21222         (cgraph_clone_node): Clone references.
21223         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
21224         (struct cgraph_node, varpool_node): Add ref_lst.
21225         * ipa-ref.c: New file.
21226         * ipa-ref.h: New file.
21227         * ipa-ref-inline.h: New file.
21228         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
21229         (referenced_from_other_partition_p): New function.
21230         (lto_output_varpool_node): Take set arugment; call
21231         referenced_from_other_partition.
21232         (lto_output_ref): New.
21233         (add_references): New.
21234         (output_refs): New.
21235         (output_cgraph): Compute boundary based on references; output refs.
21236         (output_varpool): Accept cgraph_node_set argument.
21237         (input_ref): New.
21238         (input_refs): New.
21239         (input_cgraph): Call input_refs.
21240         * lto-section-in.c (lto_section_name): Add refs.
21241         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
21242         (ipa-ref.o): New file.
21243         * varpool.c (varpool_node): Clear ipa ref list.
21244         (varpool_remove_node): Remove references.
21245         (dump_varpool_node): Dump references.
21246         (varpool_assemble_decl): Only compile finalized ones.
21247         (varpool_extra_name_alias): Initialize ref list.
21248         * lto-streamer.c (lto-get_section_name): Add .refs section.
21249         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
21250         (referenced_from_other_partition_p): Declared.
21251
21252 2010-05-06  Ira Rosen  <irar@il.ibm.com>
21253
21254         PR tree-optimization/43901
21255         * tree-vect-stmts.c (vectorizable_call): Assert that vector
21256         type is not NULL if it's transformation phase, and return
21257         FALSE if it's analysis.
21258         (vectorizable_conversion, vectorizable_operation,
21259         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
21260
21261 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
21262
21263         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
21264         Delete.
21265         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
21266         New define.
21267         * config/mips/mips-protos.h
21268         (mips_small_register_classes_for_mode_p): Delete prototype.
21269
21270 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
21271
21272         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
21273         * config/arm/arm.c (multiple_operation_profitable_p,
21274         compute_offset_order): New static functions.
21275         (load_multiple_sequence, store_multiple_sequence): Use them.
21276         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
21277         memory offsets, not register numbers.
21278         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
21279
21280 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
21281
21282         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
21283         (get_pending_sizes, put_pending_size, put_pending_sizes):
21284         Update the uses of pending_sizes.
21285         * c-decl.c (store_parm_decls): Likewise.
21286         * c-tree.h (struct c_arg_info): Likewise.
21287         * tree.h: Update the prototype for get_pending_sizes and
21288         put_pending_sizes.
21289
21290 2010-05-05  Jason Merrill  <jason@redhat.com>
21291
21292         PR debug/43370
21293         * c-common.c (handle_aligned_attribute): Respect
21294         ATTR_FLAG_TYPE_IN_PLACE.
21295
21296         PR testsuite/43758
21297         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
21298         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
21299         (TARGET_INITIALIZER): Use it.
21300         * c-common.c (attribute_takes_identifier_p): Call it.
21301         * c-common.h: Update prototype.
21302         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
21303         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
21304
21305 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
21306
21307         PR debug/43950
21308         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
21309         DW_ID_down_case for Fortran compilation units.
21310
21311 2010-05-05  Jan Hubicka  <jh@suse.cz>
21312
21313         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
21314         handle aliases.
21315
21316 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
21317
21318         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
21319         a variable-sized RESULT_DECL.
21320
21321 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
21322
21323         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
21324
21325 2010-05-05  Jason Merrill  <jason@redhat.com>
21326
21327         PR c++/43787
21328         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
21329         returns GS_OK.
21330         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
21331
21332 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
21333             Jakub Jelinek  <jakub@redhat.com>
21334
21335         PR debug/43478
21336         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
21337         (dead_debug_init, dead_debug_finish): New functions.
21338         (dead_debug_add, dead_debug_insert_before): Likewise.
21339         (df_note_bb_compute): Initialize a dead_debug object, add dead
21340         debug uses to it, insert debug bind insns before death insns,
21341         reset debug insns that refer to pending uses at the end.
21342         * rtl.h (make_debug_expr_from_rtl): New prototype.
21343         * varasm.c (make_debug_expr_from_rtl): New function.
21344
21345 2010-05-05  Jan Hubicka  <jh@suse.cz>
21346
21347         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
21348         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
21349         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
21350         lto_varpool_encoder_deref, lto_varpool_encoder_size,
21351         lto_varpool_encoder_encode_initializer_p,
21352         lto_set_varpool_encoder_encode_initializer): New functions.
21353         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
21354         call output_varpool.
21355         (input_varpool_node): Do not always set analyzed.
21356         (input_cgraph_1): Return vector of cgraph nodes.
21357         (input_varpool_1): Return vector of varpools.
21358         (input_cgraph): Free the vectors.
21359         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21360         output only initializers needed.
21361         (lto_output): Only call output_cgraph.
21362         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
21363         * lto-section-out.c (lto_new_out_decl_state): Initialize
21364         state->varpool_node_encoder.
21365         * lto-streamer.h (lto_varpool_encoder_d): New.
21366         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
21367         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
21368         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
21369         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
21370         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
21371         Declare.
21372         (output_varpool, input_varpool): Remove declarations.
21373
21374 2010-05-05  Jan Hubicka  <jh@suse.cz>
21375
21376         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
21377         with body can prevail.
21378
21379 2010-05-05  Jan Hubicka  <jh@suse.cz>
21380
21381         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
21382         size.
21383
21384 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21385
21386         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
21387
21388         * gengtype.h (erro_at_line): Constify pos argument.
21389
21390         * gengtype.c: Include hashtab.h.
21391         (enum gc_used): Document GC_MAYBE_POINTED_TO.
21392         (error_at_line): Constify pos argument.
21393         (do_typedef): Initialize p->opt field.
21394         (get_file_gtfilename): Fix comment typo.
21395         (struct walk_type_data): Constify line field.
21396         (get_output_file_for_structure): New function.
21397         (write_local_func_for_structure): Constify orig_s argument.
21398         Use get_output_file_for_structure.
21399         (write_func_for_structure): Use get_output_file_for_structure.
21400         (INDENT): New define.
21401         (dump_pair, dump_type, dump_type_list, dump_typekind)
21402         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
21403         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
21404         functions.
21405         (seen_types): New variable.
21406         (main): New variable do_dump.  Process "-d" command line option.
21407         Call dump_everything if dump requested.
21408
21409 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
21410
21411         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
21412         in a temporary instead of invoking the macro multiple times.
21413         (track_expr_p): Likewise.
21414
21415 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
21416
21417         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
21418         per new semantics.
21419         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
21420         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
21421         conditions for printing notes.
21422         * common.opt (-Wcoverage-mismatch): Allow negative, default to
21423         true, update documentation.
21424         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
21425
21426 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
21427
21428         PR c/43981
21429         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
21430         on dimen.
21431
21432 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
21433
21434         PR target/43799
21435         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
21436         (*sse_prologue_save_insn1): Likewise.
21437         (SSE prologue save splitter): Likewise.
21438
21439 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
21440
21441         * tree.c (free_lang_data_in_one_sizepos): New inline function.
21442         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
21443         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
21444         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
21445         all decls.  Call it on DECL_FIELD_OFFSET of fields.
21446         (find_decls_types_r): Follow DECL_VALUE_EXPR.
21447         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
21448
21449 2010-05-04  Martin Jambor  <mjambor@suse.cz>
21450
21451         * tree-sra.c (build_access_from_expr_1): The first parameter type
21452         changed to simple tree.
21453         (build_access_from_expr): Likewise, gsi parameter was eliminated.
21454         (scan_assign_result): Renamed to assignment_mod_result, enum elements
21455         renamed as well.
21456         (build_accesses_from_assign): Removed all parameters except for a
21457         simple gimple statement.  Now returns a simple bool.
21458         (scan_function): All non-analysis parts moved to separate functions
21459         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
21460         parameters and updated both callers.
21461         (sra_modify_expr): Removed parameter data.
21462         (sra_modify_function_body): New function.
21463         (perform_intra_sra): Call sra_modify_function_body to modify the
21464         function body.
21465         (replace_removed_params_ssa_names): Parameter data changed into
21466         adjustments vector.
21467         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
21468         changed the parameter dont_convert to convert with the opposite
21469         meaning.
21470         (sra_ipa_modify_assign): Parameter data changed into adjustments
21471         vector, return value changed to bool.
21472         (ipa_sra_modify_function_body): New function.
21473         (sra_ipa_reset_debug_stmts): Updated a comment.
21474         (modify_function): Use ipa_sra_modify_function_body to modify function
21475         body.
21476
21477 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
21478
21479         PR middle-end/43671
21480         * alias.c (true_dependence): Handle the same VALUE in x and mem.
21481         (canon_true_dependence): Likewise.
21482         (write_dependence_p): Likewise.
21483
21484 2010-05-04  Jan Hubicka  <jh@suse.cz>
21485
21486         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
21487         * cgraphbuild.c: Include ipa-utils.h
21488         (record_reference_ctx): New struct.
21489         (record_reference): Simplify to work on initializers; not statements.
21490         (mark_address, mark_load, mark_store): New.
21491         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
21492         walk PHI nodes too.
21493         (record_references_in_initializer): Update use of record_reference.
21494         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
21495         walk PHI nodes too.
21496
21497 2010-05-04  Jan Hubicka  <jh@suse.cz>
21498
21499         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
21500         node will be removed anyway.
21501         (lto_varpool_replace_node): Allow also unanalyzed nodes;
21502         relink aliases of node into prevailing node.
21503         * varpool.c (varpool_remove_node): Remove aliases properly;
21504         when removing node, remove all its aliases too; remove DECL_INITIAL
21505         of removed node; ggc_free the varpool node.
21506
21507 2010-05-04  Richard Guenther  <rguenther@suse.de>
21508
21509         PR tree-optimization/43879
21510         * tree-ssa-structalias.c (alias_get_name): Use
21511         DECL_ASSEMBLER_NAME if available.
21512         (create_function_info_for): Return the varinfo node.
21513         (ipa_pta_execute): Associate same-body aliases and extra names
21514         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
21515
21516 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
21517
21518         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
21519
21520 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
21521
21522         PR bootstrap/43964
21523         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
21524         only if HONOR_REG_ALLOC_ORDER is not defined.
21525
21526 2010-05-04  Richard Guenther  <rguenther@suse.de>
21527
21528         PR tree-optimization/43949
21529         * tree-vrp.c (extract_range_from_binary_expr): Only handle
21530         TRUNC_MOD_EXPR.
21531
21532 2010-04-26  Jason Merrill  <jason@redhat.com>
21533
21534         * c.opt (-fstrict-enums): New.
21535         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
21536
21537 2010-05-03  David Ung  <davidu@mips.com>
21538             James E. Wilson  <wilson@codesourcery.com>
21539
21540         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
21541         emit the trap instruction before the divide for TUNE_74K.
21542
21543 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
21544
21545         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
21546         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
21547         based on the above, for new target hook.
21548
21549         * hooks.c (hook_bool_mode_true): New generic hook.
21550         * hooks.h (hook_bool_mode_true): Add prototype.
21551
21552         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
21553         target hook.
21554         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
21555         target hook, set to hook_bool_mode_false.
21556         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
21557         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
21558         with targetm.small_register_classes_for_mode_p.
21559         (find_reusable_reload): Likewise.
21560         (combine_reloads): Likewise.
21561         * reload1.c (reload_as_needed): Likewise.
21562         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
21563         * ifcvt.c (noce_process_if_block, check_cond_move_block,
21564         dead_or_predicable): Likewise.
21565         * regmove.c (optimize_reg_copy_1): Likewise.
21566         * calls.c (prepare_call_address): Likewise.
21567         (precompute_register_parameters): Likewise.
21568
21569         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
21570         hook definition.
21571         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
21572         implementation of the hook that considers all register classes
21573         small except for SH64.
21574         (sh_override_options): Use the new hook.
21575         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
21576         Add prototype.
21577
21578         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
21579         hook definition.
21580         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
21581         implementation of the hook that considers all register classes
21582         small for THUMB1.
21583         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
21584         Add prototype.
21585
21586         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
21587         hook definition.
21588         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
21589         implementation of the hook that considers all register classes
21590         small for MIPS16.
21591         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
21592         Add prototype.
21593
21594         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
21595         hook definition.
21596         * config/m32c/m32c.h: Likewise.
21597         * config/pdp11/pdp11.h: Likewise.
21598         * config/avr/avr.h: Likewise.
21599         * config/xtensa/xtensa.h: Likewise.
21600         * config/m68hc11/m68hc11.h: Likewise.
21601         * config/mn10300/mn10300.h: Likewise.
21602         * config/mcore/mcore.h: Likewise.
21603         * config/h8300/h8300.h: Likewise.
21604         * config/bfin/bfin.h: Likewise.
21605
21606         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
21607         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
21608
21609 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
21610
21611         * double-int.h (tree_to_double_int): Remove macro.
21612         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
21613         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
21614         (tree_to_double_int): New function.
21615         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
21616         Move ...
21617         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
21618
21619 2010-05-03  Richard Guenther  <rguenther@suse.de>
21620
21621         PR tree-optimization/43971
21622         * tree-ssa-structalias.c (get_constraint_for_1): Fix
21623         constraints in the !flag_delete_null_pointer_checks case.
21624
21625 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
21626
21627         PR debug/43972
21628         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
21629         result mode matches original rtl mode.
21630
21631 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
21632
21633         PR target/43888
21634         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
21635
21636 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21637
21638         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
21639         when processing flag options.
21640
21641 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21642
21643         * gcov-iov.c (main): Change format string placeholder
21644         from %#08x to 0x%08x.
21645         * genchecksum.c (dosum): Change format string placeholder
21646         from %#02x to 0x%02x.
21647
21648 2010-05-02  Richard Guenther  <rguenther@suse.de>
21649
21650         PR tree-optimization/43879
21651         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
21652
21653 2010-05-02  Bruno Haible  <bruno@clisp.org>
21654
21655         * doc/extend.texi (Function Attributes): Fix a typo.
21656
21657 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21658
21659         Revert:
21660         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
21661         placeholder from 0x%x to %#x.
21662         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
21663         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
21664         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
21665         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
21666         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
21667         * config/i386/i386.c (ix86_target_string): Ditto.
21668         * config/i386/i386.c (output_pic_addr_const): Ditto.
21669         (print_operand): Ditto.
21670
21671 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
21672
21673         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
21674         placeholder from 0x%x to %#x.
21675         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
21676         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
21677         (ASM_OUTPUT_DEBUG_DATA): Ditto.
21678         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
21679         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
21680         * optc-gen.awk: Ditto.
21681         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
21682         (HOST_WIDE_INT_PRINT_HEX): Ditto.
21683         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
21684         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
21685
21686 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
21687
21688         * target.h (struct calls): Add function_value_regno_p field.
21689         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
21690         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
21691         * targhooks.c (default_function_value_regno_p): New function.
21692         * targhooks.h (default_function_value_regno_p): Declare function.
21693         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
21694         * builtins.c. (apply_result_size): (Ditto.).
21695         * combine.c. (likely_spilled_retval_p): (Ditto.).
21696         * mode-switching.c. Include 'target.h'.
21697         (create_pre_exit): Use function_value_regno_p hook.
21698         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
21699         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
21700         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
21701
21702         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
21703         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
21704         (ix86_function_value_regno_p): Declare as static, change argument
21705         type to const unsigned int.
21706         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
21707
21708 2010-05-01  Richard Guenther  <rguenther@suse.de>
21709
21710         PR tree-optimization/43949
21711         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
21712         types.
21713         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
21714
21715 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
21716
21717         * rtl.h (CONST_DOUBLE_P): Define.
21718         (rtx_to_double_int): Declare.
21719         * emit-rtl.c (rtx_to_double_int): New function.
21720         * dwarf2out.c (insert_double): New function.
21721         (loc_descriptor, add_const_value_attribute): Clean up, use
21722         rtx_to_double_int and insert_double functions.
21723
21724 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
21725
21726         * doc/extend.texi (Inline): Add missing return keyword to examples.
21727         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
21728         "command-line".
21729
21730 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
21731
21732         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
21733         the variable part of the offset as well.  Use highest_pow2_factor for
21734         all alignment checks.
21735
21736 2010-04-30  Richard Guenther  <rguenther@suse.de>
21737
21738         PR tree-optimization/43879
21739         * tree-ssa-structalias.c (type_could_have_pointers): Functions
21740         can have pointers.
21741
21742 2010-04-30  Jan Hubicka  <jh@suse.cz>
21743
21744         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
21745         varpool.
21746         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
21747
21748 2010-04-30  Jan Hubicka  <jh@suse.cz>
21749
21750         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
21751         New.
21752         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
21753         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
21754         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
21755         cgraph_node_set_needs_ltrans_p): Remove.
21756
21757 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
21758
21759         * sdbout.c: Include vec.h, do not include varray.h.
21760         (deferred_global_decls, sdbout_global_decl,
21761         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
21762         * toplev.c: Do not include varray.h.
21763         (dump_memory_report): Do not dump VARRAY statistics.
21764         * gengtype.c (open_base_file): Ignore varray.h.
21765         * Makefile.in: Update for abovementioned changes.
21766         Remove all traces of varray.c and varray.h.
21767         * varray.c: Remove file.
21768         * varray.h: Remove file.
21769
21770 2010-04-30  Jan Hubicka  <jh@suse.cz>
21771
21772         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
21773         references.
21774
21775 2010-04-30  Jan Hubicka  <jh@suse.cz>
21776
21777         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
21778         needed.
21779
21780 2010-04-30  Richard Guenther  <rguenther@suse.de>
21781
21782         * tree-ssa-structalias.c (get_constraint_for_1): Generate
21783         constraints for CONSTRUCTOR.
21784
21785 2010-04-30  Richard Guenther  <rguenther@suse.de>
21786
21787         PR lto/43946
21788         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
21789         first after all lowering passes.
21790
21791 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
21792
21793         * toplev.c: Include varray.h for statistics dumping.
21794         * tree.h: Do not declare varray_head_tag.
21795         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
21796         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
21797         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
21798         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
21799         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
21800         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
21801         c-common.c, c-common.h, reg-stack.c, basic-block.h,
21802         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
21803         include varray.h.
21804         * Makefile.in: Update for abovementioned changes.
21805
21806 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
21807
21808         PR debug/43942
21809         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
21810
21811 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
21812
21813         * config/picochip/picochip.c (picochip_legitimize_address): Define.
21814         Use this function to do machine-specific conversion.
21815         (picochip_legitimize_reload_address): Likewise.
21816         (picochip_legitimate_address_p): Check valid base register only if
21817         strict.
21818         (picochip_check_conditional_copy): Check for modw only if opnd is
21819         register.
21820         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
21821         to call the function in c.
21822         * config/picochip/picochip-protos.h
21823         (picochip_legitimize_reload_address): Define.
21824         * config/picochip/picochip.md (supported_compare1): Define.
21825
21826 2010-04-30  Jan Hubicka  <jh@suse.cz>
21827
21828         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
21829         (cgraph_global_info): Remove inlined.
21830         (LTO_cgraph_tag_names): Remove.
21831         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
21832         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
21833         simplify cgraph tags and document.
21834         (lto_output_node): Use only LTO_cgraph_unavail_node and
21835         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
21836         for_functions_valid, global info, process and output flags.
21837         (input_overwrite_node): Initialize estimated stack size and
21838         estimated growth.  Do not read flags we no longer store.
21839         (input_node): Likewise do not read info no longer stored.
21840         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
21841         flag.
21842
21843 2010-04-30  Richard Guenther  <rguenther@suse.de>
21844
21845         PR tree-optimization/43879
21846         * tree-ssa-structalias.c (get_constraint_for_1): Properly
21847         handle non-zero initializers.
21848
21849 2010-04-30  Richard Guenther  <rguenther@suse.de>
21850
21851         * builtins.c (fold_builtin_1): Delete free (0).
21852
21853 2010-04-29  Jan Hubicka  <jh@suse.cz>
21854
21855         * gengtype.c (open_base_files): Add lto-streamer.h
21856         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
21857         (pass_ipa_cp): GGC collect.
21858         * toplev. (compile_file): Do not output symbols.
21859         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
21860         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
21861         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
21862         * lto-section-in.c: Include ggc.h
21863         (lto_new_in_decl_state): Alloc in GGC.
21864         (lto_delete_in_decl_state): Likewise.
21865         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
21866         Collect.
21867
21868 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
21869
21870         PR target/42895
21871         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
21872         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
21873         (HONOR_REG_ALLOC_ORDER): Describe new macro.
21874         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
21875         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
21876         account only if HONOR_REG_ALLOC_ORDER is not defined.
21877         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
21878         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
21879
21880 2010-04-29  Jon Grant  <04@jguk.org>
21881
21882         * collect2.c (vflag): Change type from int to bool.
21883         (debug): Likewise.
21884         (helpflag): New global bool.
21885         (main): Set vflag and debug with boolean, not integer truth values.
21886         Accept new "--help" option and output usage text if found.
21887         * collect2.h (vflag): Update prototype.
21888         (debug): Likewise.
21889
21890 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
21891
21892         PR bootstrap/43936
21893         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
21894
21895 2010-04-29  Richard Guenther  <rguenther@suse.de>
21896
21897         PR bootstrap/43935
21898         * plugin.h (invoke_plugin_callbacks): Annotate arguments
21899         with ATTRIBUTE_UNUSED.
21900
21901 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
21902
21903         PR target/43921
21904         * config/i386/i386.c (get_some_local_dynamic_name): Replace
21905         INSN_P with NONDEBUG_INSN_P.
21906         (distance_non_agu_define): Likewise.
21907         (distance_agu_use): Likewise.
21908
21909 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
21910
21911         From Dominique d'Humieres  <dominiq@lps.ens.fr>
21912         PR bootstrap/43858
21913         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
21914         test_set.
21915
21916 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
21917
21918         * plugin.h (invoke_plugin_callbacks): New inline function.
21919         * plugin.c (flag_plugin_added): New global flag.
21920         (add_new_plugin): Initialize above flag.
21921         (invoke_plugin_callbacks): Rename to ...
21922         (invoke_plugin_callbacks_full): ... this.
21923
21924 2010-04-28  Jan Hubicka  <jh@suse.cz>
21925
21926         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
21927         (lto_varpool_replace_node): New.
21928         (lto_symtab_resolve_symbols): Resolve varpool nodes.
21929         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
21930         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
21931         * cgraph.h (varpool_node_ptr): New type.
21932         (varpool_node_ptr): New vector.
21933         (varpool_node_set_def): New structure.
21934         (varpool_node_set): New type.
21935         (varpool_node_set): New vector.
21936         (varpool_node_set_element_def): New structure.
21937         (varpool_node_set_element, const_varpool_node_set_element): New types.
21938         (varpool_node_set_iterator): New type.
21939         (varpool_node): Add prev pointers, add used_from_other_partition,
21940         in_other_partition.
21941         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
21942         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
21943         varpool_get_node, varpool_remove_node): Declare.
21944         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
21945         varpool_node_set_size): New inlines.
21946         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
21947         * tree-pass.h (varpool_node_set_def): Forward declare.
21948         (ipa_opt_pass_d): Summary writting takes vnode sets too.
21949         (ipa_write_optimization_summaries): Update prototype.
21950         * ipa-cp.c (ipcp_write_summary): Update.
21951         * ipa-reference.c (ipa_reference_write_summary): Update.
21952         * lto-cgraph.c (lto_output_varpool_node): New static function.
21953         (output_varpool): New function.
21954         (input_varpool_node): New static function.
21955         (input_varpool_1): New function.
21956         (input_cgraph): Input varpool.
21957         * ipa-pure-const.c (pure_const_write_summary): Update.
21958         * lto-streamer-out.c (lto_output): Update, output varpool too.
21959         (write_global_stream): Kill WPA hack.
21960         (produce_asm_for_decls): Update.
21961         (output_alias_pair_p): Handle variables.
21962         (output_unreferenced_globals): Output only needed partition of varpool.
21963         * ipa-inline.c (inline_write_summary): Update.
21964         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
21965         cgraph.
21966         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
21967         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
21968         varpool_node_set_new, varpool_node_set_add,
21969         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
21970         debug_varpool_node_set): New functions.
21971         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
21972         (execute_one_pass): Process new decls too.
21973         (ipa_write_summaries_2): Pass around vsets.
21974         (ipa_write_summaries_1): Likewise.
21975         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
21976         to add.
21977         (ipa_write_optimization_summaries_1): Pass around vsets.
21978         (ipa_write_optimization_summaries): Likewise.
21979         * varpool.c (varpool_get_node): New.
21980         (varpool_node): Update doubly linked lists.
21981         (varpool_remove_node): New.
21982         (dump_varpool_node): More dumping.
21983         (varpool_enqueue_needed_node): Update doubly linked lists.
21984         (decide_is_variable_needed): Kill ltrans hack.
21985         (varpool_finalize_decl): Kill lto hack.
21986         (varpool_assemble_decl): Skip decls in other partitions.
21987         (varpool_assemble_pending_decls): Update doubly linkes lists.
21988         (varpool_empty_needed_queue): Likewise.
21989         (varpool_extra_name_alias): Likewise.
21990         * lto-streamer.c (lto_get_section_name): Add vars section.
21991         * lto-streamer.h (lto_section_type): Update.
21992         (output_varpool, input_varpool): Declare.
21993
21994 2010-04-28  Mike Stump  <mikestump@comcast.net>
21995
21996         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
21997
21998 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21999
22000         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
22001         record or union type with RECORD_OR_UNION_TYPE_P predicate.
22002         (lto_input_ts_type_tree_pointers): Likewise.
22003         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
22004         (lto_output_ts_type_tree_pointers): Likewise.
22005
22006 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
22007
22008         Uniquization of constants at the Tree level
22009         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
22010         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
22011         bit to the end.
22012         (tree_output_constant_def): Declare.
22013         * gimplify.c (gimplify_init_constructor): When using block copy, first
22014         uniquize the constant constructor on the RHS.
22015         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
22016         DECL_IN_CONSTANT_POOL flag.
22017         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
22018         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
22019         constant pool.
22020         (assemble_variable): Deal with symbols belonging to the tree constant
22021         pool.
22022         (get_constant_section): Add ALIGN parameter and simplify.
22023         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
22024         (assemble_constant_contents): Use the expression of the VAR_DECL.
22025         (output_constant_def_contents): Use the alignment of the VAR_DECL.
22026         (tree_output_constant_def): New global function.
22027         (mark_constant): Use the expression of the VAR_DECL.
22028         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
22029         its expression.
22030         (output_object_block): Likewise and assemble the expression.
22031
22032 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
22033
22034         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
22035         hash_tree, eq_tree): New tree hash table.
22036         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
22037         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
22038         lto_orig_address_remove): Reimplement.
22039
22040 2010-04-28  Xinliang David Li  <davidxl@google.com>
22041
22042         PR c/42643
22043         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
22044         (compute_uninit_opnds_pos): New function.
22045         (is_non_loop_exit_postdominating): New function.
22046         (compute_control_dep_chain): New function.
22047         (find_pdom): New function.
22048         (convert_control_dep_chain_into_preds): New function.
22049         (find_predicates): New function.
22050         (find_control_equiv_block): New function.
22051         (collect_phi_def_edges): New function.
22052         (find_def_preds): New function.
22053         (find_dom): New function.
22054         (dump_predicates): New function.
22055         (get_cmp_code): New function.
22056         (is_value_included_in): New function.
22057         (find_matching_predicate_in_rest_chains): New function.
22058         (use_pred_not_overlap_with_undef_path_pred): New function.
22059         (is_use_properly_guarded): New function.
22060         (normalize_cond_1): New function.
22061         (is_and_or_or): New function.
22062         (normalize_cond): New function.
22063         (is_gcond_subset_of): New function.
22064         (is_subset_of_any): New function.
22065         (is_or_set_subset_of): New function.
22066         (is_and_set_subset_of): New function.
22067         (is_norm_cond_subset_of): New function.
22068         (is_pred_expr_subset_of): New function.
22069         (is_pred_chain_subset_of): New function.
22070         (is_included_in): New function.
22071         (is_superset_of): New function.
22072         (find_uninit_use): New function.
22073         (warn_uninitialized_phi): New function.
22074         (compute_possibly_undefined_names): New function.
22075         (ssa_undefined_value_p): New function.
22076         (execute_late_warn_uninitialized): New function.
22077         * tree-ssa.c (ssa_undefined_value_p): Removed.
22078         (warn_uninit): Changed to extern.
22079         (warn_uninitialized_phi): Removed.
22080         (warn_uninitialized_vars): Changed to extern.
22081         (execute_late_warn_uninitialized): Removed
22082         * tree-flow.h: Add new prototypes.
22083         * timevar.def: Add new time variable.
22084         * Makefile.in: Add new build file.
22085
22086 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
22087
22088         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
22089         type if available.
22090
22091 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22092
22093         PR target/22224
22094         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
22095
22096 2010-04-28  Martin Jambor  <mjambor@suse.cz>
22097
22098         * cgraph.h (struct cgraph_node): New field indirect_calls.
22099         (struct cgraph_indirect_call_info): New type.
22100         (struct cgraph_edge): Removed field indirect_call. New fields
22101         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
22102         (cgraph_create_indirect_edge): Declare.
22103         (cgraph_make_edge_direct): Likewise.
22104         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
22105         * ipa-prop.h (struct ipa_param_call_note): Removed.
22106         (struct ipa_node_params): Removed field param_calls.
22107         (ipa_create_all_structures_for_iinln): Declare.
22108         * cgraph.c: Described indirect edges and uids in initial comment.
22109         (cgraph_add_edge_to_call_site_hash): New function.
22110         (cgraph_edge): Search also among the indirect edges, use
22111         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
22112         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
22113         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
22114         site hash.
22115         (initialize_inline_failed): Assign a reason to indirect edges.
22116         (cgraph_create_edge_1): New function.
22117         (cgraph_create_edge): Moved some functionality to
22118         cgraph_create_edge_1.
22119         (cgraph_create_indirect_edge): New function.
22120         (cgraph_edge_remove_callee): Add an assert checking for
22121         non-indirectness.
22122         (cgraph_edge_remove_caller): Special-case indirect edges.
22123         (cgraph_remove_edge): Likewise.
22124         (cgraph_set_edge_callee): New function.
22125         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
22126         (cgraph_make_edge_direct): New function.
22127         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
22128         the declaration of the call statement matches.
22129         (cgraph_node_remove_callees): Special-case indirect edges.
22130         (cgraph_clone_edge): Likewise.
22131         (cgraph_clone_node): Clone also the indirect edges.
22132         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
22133         indirect_call, dump count of indirect_calls edges.
22134         * ipa-prop.c (iinlining_processed_edges): New variable.
22135         (ipa_note_param_call): Create indirect edges instead of
22136         creating notes.  New parameter node.
22137         (ipa_analyze_call_uses): New parameter node, pass it on to
22138         ipa_note_param_call.
22139         (ipa_analyze_stmt_uses): Likewise.
22140         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
22141         (print_edge_addition_message): Work on edges rather than on notes.
22142         (update_call_notes_after_inlining): Likewise, renamed to
22143         update_indirect_edges_after_inlining.
22144         (ipa_create_all_structures_for_iinln): New function.
22145         (ipa_free_node_params_substructures): Do not free notes.
22146         (ipa_edge_duplication_hook): Propagate bits within
22147         iinlining_processed_edges bitmap.
22148         (ipa_node_duplication_hook): Do not duplicate notes.
22149         (free_all_ipa_structures_after_ipa_cp): Renamed to
22150         ipa_free_all_structures_after_ipa_cp.
22151         (free_all_ipa_structures_after_iinln): Renamed to
22152         ipa_free_all_structures_after_iinln.
22153         (ipa_write_param_call_note): Removed.
22154         (ipa_read_param_call_note): Removed.
22155         (ipa_write_indirect_edge_info): New function.
22156         (ipa_read_indirect_edge_info): Likewise.
22157         (ipa_write_node_info): Do not stream notes, do stream information
22158         in indirect edges.
22159         (ipa_read_node_info): Likewise.
22160         (lto_ipa_fixup_call_notes): Removed.
22161         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
22162         * ipa-inline.c (pass_ipa_inline): Likewise.
22163         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
22164         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
22165         * tree-inline.c (copy_bb): Removed an unnecessary double check for
22166         is_gimple_call.
22167         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
22168         edges.
22169         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
22170         (output_cgraph): Stream also indirect edges.
22171         (lto_output_edge): Added capability to stream indirect edges.
22172         (input_edge): Likewise.
22173         (input_cgraph_1): Likewise.
22174         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
22175         of indirect edges.
22176
22177 2010-04-28  Richard Guenther  <rguenther@suse.de>
22178
22179         PR tree-optimization/43879
22180         PR tree-optimization/43909
22181         * tree-ssa-structalias.c (struct variable_info): Add
22182         only_restrict_pointers flag.
22183         (new_var_info): Initialize it.  Increment stats.total_vars here.
22184         (create_function_info_for): Do not increment stats.total_vars here.
22185         (get_function_part_constraint): Fix build with C++.
22186         (insert_into_field_list): Remove.
22187         (push_fields_onto_fieldstack): Properly merge fields.
22188         (create_variable_info_for): Split and simplify.
22189         (create_variable_info_for_1): New piece.
22190         (intra_create_variable_infos): Properly make restrict constraints
22191         from parameters.
22192
22193 2010-04-28  Richard Guenther  <rguenther@suse.de>
22194
22195         PR c++/43880
22196         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
22197
22198 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22199             Jan Hubicka  <hubicka@ucw.cz>
22200
22201         * doc/invoke.texi (-Wsuggest-attribute=const,
22202         -Wsuggest-attribute=pure): Document.
22203         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
22204         (function_always_visible_to_compiler_p,
22205         suggest_attribute, warn_function_pure, warn_function_const):
22206         New functions.
22207         (check_call): Improve debug info.
22208         (analyze_function): Do not check availability.
22209         (add_new_function): Check availability.
22210         (propagate): Output warnings.
22211         (skip_function_for_local_pure_const): New function.
22212         (local_pure_const): Use it; output warnings.
22213         * common.opt (Wsuggest-attribute=const,
22214         Wsuggest-attribute=pure): New.
22215
22216 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
22217
22218         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
22219         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
22220         or DW_CFA_def_cfa_offset{,_sf}.
22221
22222 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
22223
22224         * tree.h: Fix truncated long macros.
22225
22226 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
22227
22228         * collect2.c (TARGET_64BIT): Redefine to target's default.
22229         * tlink.c: Likewise.
22230         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
22231         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
22232         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
22233         for underscoring __USER_LABEL_PREFIX__.
22234         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
22235         (SUB_LINK_ENTRY32): New.
22236         (SUB_LINK_ENTRY64): New.
22237         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
22238         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
22239         (SUB_LINK_ENTRY64): New.
22240         (SUB_LINK_ENTRY): New.
22241         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
22242         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
22243         x64 target is choosen.
22244         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
22245         * configure: Regenerated.
22246         * configure.ac (leading-mingw64-underscores): Option added.
22247
22248 2010-04-27  Jan Hubicka  <jh@suse.cz>
22249
22250         * doc/invoke.texi (-fipa-profile): Document.
22251         * opts.c (decode_options): Enable ipa-profile at -O1.
22252         * timevar.def (TV_IPA_PROFILE): Define.
22253         * common.opt (fipa-profile): Add.
22254         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
22255         flag for clones.
22256         (cgraph_propagate_frequency): Handle only local ones.
22257         * tree-pass.h (pass_ipa_profile): Declare.
22258         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
22259         (pass_ipa_profile): Use TV_IPA_PROFILE.
22260         * ipa.c (ipa_profile): New function.
22261         (gate_ipa_profile): Likewise.
22262         (pass_ipa_profile): New global variable.
22263         * passes.c (pass_ipa_profile): New.
22264
22265 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
22266
22267         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
22268
22269 2010-04-27  Martin Jambor  <mjambor@suse.cz>
22270
22271         PR middle-end/43812
22272         * ipa.c (dissolve_same_comdat_group_list): New function.
22273         (function_and_variable_visibility): Call
22274         dissolve_same_comdat_group_list when comdat group contains external or
22275         newly local nodes.
22276         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
22277         lists are circular and that they contain only DECL_ONE_ONLY nodes.
22278
22279 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
22280
22281         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
22282         (const_hash_1) <VECTOR_CST>: New case.
22283         (compare_constant) <VECTOR_CST>: Likewise.
22284         <ADDR_EXPR>: Deal with LABEL_REFs.
22285         (copy_constant) <VECTOR_CST>: New case.
22286
22287 2010-04-27  Jan Hubicka  <jh@suse.cz>
22288
22289         * cgraph.c (cgraph_propagate_frequency): New function.
22290         * cgraph.h (cgraph_propagate_frequency): Declare.
22291         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
22292         cgraph_propagate_frequency.
22293
22294 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
22295
22296         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
22297
22298 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
22299
22300         PR target/40657
22301         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
22302         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
22303         here to determine which regs to push and how much stack to reserve.
22304
22305 2010-04-27  Jie Zhang  <jie@codesourcery.com>
22306
22307         * doc/gimple.texi (gimple_statement_with_ops): Remove
22308         addresses_taken field.
22309         (gimple_statement_with_memory_ops): Likewise.
22310
22311 2010-04-27  Jan Hubicka  <jh@suse.cz>
22312
22313         * tree-inline.c (eni_inlining_weights): Remove.
22314         (estimate_num_insns): Special case more builtins.
22315
22316 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
22317
22318         PR c/32207
22319         * c-typeck.c (build_binary_op): Move forward check for comparison
22320         pointer with null pointer constant and adjust the diagnostic message.
22321
22322 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
22323
22324         PR lto/42776
22325         * configure.ac (gcc_cv_as_section_has_align): Set if installed
22326         binutils supports extended .section directive needed by LTO, or
22327         warn if older binutils found.
22328         (LTO_BINARY_READER): New AC_SUBST'd variable.
22329         (LTO_USE_LIBELF): Likewise.
22330         * config.gcc (lto_binary_reader): New target-specific configure
22331         variable.
22332         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
22333         (LTO_USE_LIBELF): Likewise.
22334         * configure: Regenerate.
22335
22336         * collect2.c (is_elf): Rename from this ...
22337         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
22338          object files in addition to ELF-formatted ones.
22339         (scan_prog_file): Caller updated.  Also allow for LTO info marker
22340         symbol to be prefixed or not by an extra underscore.
22341
22342         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
22343         * config/i386/winnt.c: Also #include lto-streamer.h
22344         (i386_pe_asm_named_section): Specify 1-byte section alignment for
22345         LTO named sections.
22346         (i386_pe_asm_output_aligned_decl_common): Add comment.
22347         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
22348
22349 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
22350
22351         PR target/43889
22352         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
22353         Add missing earlyclobber for second alternative.
22354
22355 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
22356
22357         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
22358         bits for artificial defs at the top of the block.
22359         * fwprop.c (single_def_use_enter_block): Don't call it.
22360
22361 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
22362
22363         PR 43715
22364         * configure.ac: Use "$gcc_cv_nm -g" on darwin
22365         instead of "$gcc_cv_objdump -T".
22366         Use "-undefined dynamic_lookup" on darwin.
22367         * configure: Regenerate.
22368
22369 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
22370
22371         PR c/43893
22372         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
22373
22374 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
22375
22376         * c-parser.c (struct c_token): Move location field up.
22377         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
22378         (struct c_declspecs): Convert typespec_word, storage_class, and
22379         default_int_p into bitfields.
22380         (struct c_declarator): Move loc field up.
22381
22382 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
22383
22384         * cfgloop.h (struct loop): Move can_be_parallel field up.
22385         * ipa-prop.h (struct ip_node_params): Move bitfields up.
22386         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
22387         down.
22388         (struct iv_cand): Convert pos field into a bitfield.
22389         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
22390         field up.
22391         (struct _stmt_vec_info): Shuffle fields for better packing.
22392
22393 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
22394
22395         * varasm.c (IN_NAMED_SECTION): Remove guard.
22396         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
22397         (IN_NAMED_SECTION_P): ...this.
22398         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
22399         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
22400
22401 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
22402
22403         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
22404         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
22405         of shadowing it.  Fix comments.
22406
22407 2010-04-26  Jan Hubicka  <jh@suse.cz>
22408
22409         * cgraph.c (cgraph_create_node): Set node frequency to normal.
22410         (cgraph_clone_node): Copy function frequency.
22411         * cgraph.h (node_frequency): New enum
22412         (struct cgraph_node): Add.
22413         * final.c (rest_of_clean_state): Update.
22414         * lto-cgraph.c (lto_output_node): Output node frequency.
22415         (input_overwrite_node): Input node frequency.
22416         * tre-ssa-loop-ivopts (computation_cost): Update.
22417         * lto-streamer-out.c (output_function): Do not output function
22418         frequency.
22419         * predict.c (maybe_hot_frequency_p): Update and handle functions
22420         executed once.
22421         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
22422         attribute lookup.
22423         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
22424         (compute_function_frequency): Set noreturn functions to be executed
22425         once.
22426         (choose_function_section): Update.
22427         * lto-streamer-in.c (input_function): Do not input function frequency.
22428         * function.c (allocate_struct_function): Do not initialize function
22429         frequency.
22430         * function.h (function_frequency): Remove.
22431         (struct function): Remove function frequency.
22432         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
22433         (try_update): Update.
22434         * tree-inline.c (initialize_cfun): Do not update function frequency.
22435         * passes.c (pass_init_dump_file): Update.
22436         * i386.c (ix86_compute_frame_layout): Update.
22437         (ix86_pad_returns): Update.
22438
22439 2010-04-26  Jie Zhang  <jie@codesourcery.com>
22440
22441         PR tree-optimization/43833
22442         * tree-vrp.c (range_int_cst_p): New.
22443         (range_int_cst_singleton_p): New.
22444         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
22445         when both operands are constants.  Use range_int_cst_p in
22446         BIT_IOR_EXPR case.
22447
22448 2010-04-26  Jan Hubicka  <jh@suse.cz>
22449
22450         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
22451
22452 2010-04-26  Richard Guenther  <rguenther@suse.de>
22453
22454         PR lto/43080
22455         * gimple.c (gimple_decl_printable_name): Deal gracefully
22456         with a NULL DECL_NAME.
22457
22458 2010-04-26  Richard Guenther  <rguenther@suse.de>
22459
22460         PR lto/42425
22461         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
22462         if emitting debug information and it is either a function
22463         or a namespace decl.
22464
22465 2010-04-26  Ira Rosen  <irar@il.ibm.com>
22466
22467         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
22468         determine if the statement is vectorizable, and a macro to access it.
22469         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
22470         Skip statements that can't be vectorized. If the analysis fails,
22471         mark the statement as unvectorizable if vectorizing basic block.
22472         (vect_compute_data_refs_alignment): Likewise.
22473         (vect_verify_datarefs_alignment): Skip statements marked as
22474         unvectorizable. Add print.
22475         (vect_analyze_group_access): Skip statements that can't be
22476         vectorized. If the analysis fails, mark the statement as
22477         unvectorizable if vectorizing basic block.
22478         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
22479         * tree-vect-stmts.c (vectorizable_store): Fix the number of
22480         generated stmts for SLP.
22481         (new_stmt_vec_info): Initialize the new field.
22482         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
22483         statements marked as unvectorizable.
22484
22485 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
22486
22487         * c-common.c (flag_isoc1x): New.
22488         (flag_isoc99): Update comment.
22489         * c-common.h (flag_isoc1x): New.
22490         (flag_isoc99): Update comment.
22491         * c-cppbuiltin.c (builtin_define_float_constants): Also define
22492         __<type>_DECIMAL_DIG__.
22493         * c-opts.c (set_std_c1x): New.
22494         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
22495         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
22496         * c.opt (-std=c1x, -std=gnu1x): New options.
22497         * doc/cpp.texi: Mention -std=c1x.
22498         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
22499         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
22500         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
22501         * doc/standards.texi: Mention C1X.
22502         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
22503         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
22504         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
22505         Define for C1X.
22506
22507 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
22508
22509         * config/i386/gmon-sol2.c (_mcleanup): Change format string
22510         placeholder from 0x%x to %#x.
22511         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
22512         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
22513         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
22514         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
22515         * config/i386/i386.c (ix86_target_string): Ditto.
22516         (output_pic_addr_const): Ditto.
22517         (print_operand): Ditto.
22518
22519 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
22520
22521         * combine.c (find_split_point): Add third argument.  Use it
22522         to find nested multiply-accumulate instructions.  Adjust calls.
22523         (try_combine): Adjust call to find_split_point.
22524
22525 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
22526
22527         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
22528
22529 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
22530
22531         PR tree-optimization/41442
22532         * fold-const.c (merge_truthop_with_opposite_arm): New function.
22533         (fold_binary_loc): Call it.
22534
22535 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22536
22537         * toplev.c (general_init): Set default for fdiagnostics-show-option.
22538         * opts.c (common_handle_option): Allow disabling it.
22539         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
22540
22541 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
22542
22543         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
22544         between modes if both types are integral.
22545
22546 2010-04-23  Richard Guenther  <rguenther@suse.de>
22547
22548         PR tree-optimization/43572
22549         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
22550
22551 2010-04-23  Richard Guenther  <rguenther@suse.de>
22552
22553         PR lto/43455
22554         * tree-inline.c (tree_can_inline_p): Also check compatibility
22555         of return types.
22556
22557 2010-04-23  Martin Jambor  <mjambor@suse.cz>
22558
22559         PR tree-optimization/43846
22560         * tree-sra.c (struct access): New flag grp_assignment_read.
22561         (build_accesses_from_assign): Set grp_assignment_read.
22562         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
22563         (enum mark_read_status): New type.
22564         (analyze_access_subtree): Propagate grp_assignment_read, create
22565         accesses also if both direct_read and root->grp_assignment_read.
22566
22567 2010-04-23  Martin Jambor  <mjambor@suse.cz>
22568
22569         PR middle-end/43835
22570         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
22571         function does not have type attributes.
22572
22573 2010-04-23  Richard Guenther  <rguenther@suse.de>
22574
22575         PR lto/42653
22576         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
22577         of FUNCTION_DECLs.
22578
22579 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22580
22581         * sese.h (create_if_region_on_edge): Remove.
22582
22583         * sese.c (create_if_region_on_edge): Make static.
22584
22585         * tree-inline.c: Do not include ggc.h.
22586
22587         * expr.c: Do not include ggc.h.
22588
22589         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
22590         dependencies.
22591
22592 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
22593
22594         PR target/43744
22595         * config/sh/sh.c (find_barrier): Don't emit a constant pool
22596         in the middle of insns for casesi_worker_2.
22597
22598 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
22599
22600         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
22601
22602 2010-04-22  Ira Rosen  <irar@il.ibm.com>
22603
22604         PR tree-optimization/43842
22605         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
22606         loop unrolling in update of exit phis. Fix comment.
22607         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
22608         least two reduction statements in the loop before starting SLP
22609         analysis.
22610
22611 2010-04-22  Nick Clifton  <nickc@redhat.com>
22612
22613         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
22614
22615 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
22616
22617         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
22618         to simplify a + ~a.
22619
22620 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22621
22622         * tree-parloops.c (loop_parallel_p): New argument
22623         parloop_obstack.  Pass it down.
22624         (parallelize_loops): New variable parloop_obstack.  Initialize it,
22625         pass it down, free it.
22626
22627         * tree-loop-linear.c (linear_transform_loops): Pass down
22628         lambda_obstack.
22629
22630         * tree-data-ref.h (lambda_compute_access_matrices): New argument
22631         of type struct obstack *.
22632
22633         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
22634         scratch_obstack.  Initialize it, pass down, free it.
22635
22636         * lambda.h (lambda_loop_new): Remove.
22637         (lambda_matrix_new, lambda_matrix_inverse)
22638         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
22639         argument of type struct obstack *.
22640
22641         * lambda-trans.c (lambda_trans_matrix_new): New argument
22642         lambda_obstack.  Pass it down, use obstack allocation for ret.
22643         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
22644         it down.
22645
22646         * lambda-mat.c (lambda_matrix_get_column)
22647         (lambda_matrix_project_to_null): Remove.
22648         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
22649         allocation for mat.
22650         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
22651         lambda_obstack.
22652
22653         * lambda-code.c (lambda_loop_new): New function.
22654         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
22655         (lambda_compute_auxillary_space, lambda_compute_target_space)
22656         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
22657         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
22658         (build_access_matrix): New argument lambda_obstack.  Use obstack
22659         allocation for am.
22660         (lambda_compute_step_signs, lambda_compute_access_matrices): New
22661         argument lambda_obstack.  Pass it down.
22662
22663 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
22664
22665         * optabs.h (expand_widening_mult): Declare.
22666
22667 2010-04-22  Richard Guenther  <rguenther@suse.de>
22668
22669         PR tree-optimization/43845
22670         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
22671         lookup the CALL_EXPR function and arguments.
22672
22673 2010-04-22  Nick Clifton  <nickc@redhat.com>
22674
22675         * config/stormy16/stormy16.c
22676         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
22677         * config/stormy16/stormy16.h: Tidy up formatting.
22678         (DONT_USE_BUILTIN_SETJMP): Remove definition.
22679         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
22680         (ineqbranchsi): Delete pattern.
22681         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
22682         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
22683         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
22684         stormy16-lib2-ucmpsi2.c.
22685
22686 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
22687
22688         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
22689         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
22690         extra set merge_set_noclobber, and use it to relax the final test
22691         slightly.
22692         * df.h (df_simulate_find_noclobber_defs): Declare.
22693         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
22694         conditional defs.
22695         (df_simulate_find_noclobber_defs): New function.
22696
22697 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
22698
22699         * config/i386/i386.md: Use {} around multi-line preparation statements.
22700
22701 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22702
22703         * c-tree.h (push_init_level, pop_init_level, set_init_index)
22704         (process_init_element): New argument of type struct obstack *.
22705
22706         * c-typeck.c (push_init_level, pop_init_level, set_designator)
22707         (set_init_index, set_init_label, set_nonincremental_init)
22708         (set_nonincremental_init_from_string, find_init_member)
22709         (output_init_element, output_pending_init_elements)
22710         (process_init_element): New argument braced_init_obstack.  Pass it
22711         down.
22712         (push_range_stack, add_pending_init): New argument
22713         braced_init_obstack.  Use obstack allocation.
22714
22715         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
22716         braced_init_obstack.  Pass it down.
22717         (c_parser_braced_init): New variables ret, braced_init_obstack.
22718         Initialize obstack, pass it down and finally free it.
22719
22720 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
22721
22722         PR middle-end/29274
22723         * tree-pass.h (pass_optimize_widening_mul): Declare.
22724         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
22725         gate_optimize_widening_mul): New static functions.
22726         (pass_optimize_widening_mul): New.
22727         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
22728         <case MULT_EXPR>: Remove support for widening multiplies.
22729         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
22730         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
22731         simplify_gen_unary rather than directly building extensions.
22732         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
22733         WIDEN_MULT_EXPR.
22734         * expmed.c (expand_widening_mult): New function.
22735         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
22736
22737 2010-04-21  Jan Hubicka  <jh@suse.cz>
22738
22739         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
22740         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
22741         * lto-wpa-fixup.c: Remove.
22742         * Makefile.in (lto-wpa-fixup.o): Remove.
22743         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
22744         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
22745         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
22746
22747 2010-04-21  Jan Hubicka  <jh@suse.cz>
22748
22749         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
22750         add write_optimization_summary, read_optimization_summary.
22751         (ipa_write_summaries_of_cgraph_node_set): Remove.
22752         (ipa_write_optimization_summaries): Declare.
22753         (ipa_read_optimization_summaries): Declare.
22754         * ipa-cp.c (pass_ipa_cp): Update.
22755         * ipa-reference.c (pass_ipa_reference): Update.
22756         * ipa-pure-const.c (pass_ipa_pure_const): Update.
22757         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
22758         Update.
22759         * ipa-inline.c (pass_ipa_inline): Update.
22760         * ipa.c (pass_ipa_whole_program): Update.
22761         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
22762         * passes.c (ipa_write_summaries_1): Do not test wpa.
22763         (ipa_write_optimization_summaries_1): New.
22764         (ipa_write_optimization_summaries): New.
22765         (ipa_read_summaries): Do not test ltrans.
22766         (ipa_read_optimization_summaries_1): New.
22767         (ipa_read_optimization_summaries): New.
22768
22769 2010-04-21  Jan Hubicka  <jh@suse.cz>
22770
22771         * lto-cgraph.c (lto_output_node): Do not output comdat groups
22772         for boundary nodes.
22773         (output_cgraph): Do not arrange comdat groups for boundary nodes.
22774
22775 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
22776
22777         PR debug/40040
22778         * dwarf2out.c (add_name_and_src_coords_attributes): Add
22779         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
22780
22781 2010-04-21  Jan Hubicka  <jh@suse.cz>
22782
22783         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
22784
22785 2010-04-21  Jan Hubicka  <jh@suse.cz>
22786
22787         * varpool.c (decide_is_variable_needed): Variable is always needed
22788         during ltrans.
22789
22790 2010-04-21  Jan Hubicka  <jh@suse.cz>
22791
22792         * opts.c (decode_options): Enable pure-const pass for whopr.
22793
22794 2010-04-21  Jan Hubicka  <jh@suse.cz>
22795
22796         * cgraph.c (dump_cgraph_node): Dump also assembler name.
22797         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
22798         at WPA dumping.
22799         (cgraph_decide_inlining): Do not expect callee to be removed in all
22800         cases.
22801
22802 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
22803
22804         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
22805
22806 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
22807
22808         * config/i386/i386.md (x86_shrd): Add athlon_decode and
22809         amdfam10_decode attributes.
22810
22811 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
22812
22813         PR middle-end/43570
22814         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
22815         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
22816         (lower_copyprivate_clauses): Use private var in outer
22817         context instead of original var.  Make sure the types
22818         are correct for VLAs.
22819
22820 2010-04-21  Richard Guenther  <rguenther@suse.de>
22821
22822         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
22823         to non-pointer objects.
22824
22825 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
22826
22827         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
22828         last chain entry if it starts with the still current label.
22829         (add_location_or_const_value_attribute): Check that
22830         loc_list->first->next is NULL instead of comparing ->first with ->last.
22831         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
22832         to add_var_loc_to_decl.
22833
22834         * dwarf2out.c (output_call_frame_info): For dw_cie_version
22835         >= 4 add also address size and segment size fields into CIE header.
22836
22837         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
22838         long as address size is the same as sizeof (void *) and
22839         segment size is 0.
22840         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
22841         address size or segment size is unexpected, return DW_EH_PE_omit.
22842         (classify_object_over_fdes): If get_cie_encoding returned
22843         DW_EH_PE_omit, return -1.
22844         (init_object): If classify_object_over_fdes returned -1,
22845         pretend there were no FDEs at all.
22846
22847 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
22848
22849         * config/i386/i386.md (bswap<mode>2): Macroize expander from
22850         bswap{si,di}2 using SWI48 mode iterator.
22851         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
22852         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
22853         set modrm attribute of bswap insn to 0 and remove length attribute.
22854         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
22855         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
22856         set mode attribute to <MODE> and remove length attribute.
22857
22858 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
22859
22860         PR rtl-optimization/43520
22861         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
22862         zero available registers.
22863
22864 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22865
22866         * builtins.c (fold_builtin_cproj): Fold more cases.
22867
22868 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22869
22870         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
22871         (fold_builtin_1): Fold builtin cproj.
22872         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
22873         Use ATTR_CONST_NOTHROW_LIST.
22874
22875 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
22876
22877         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
22878         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
22879         ffsi2_no_cmove for !TARGET_CMOVE.
22880         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
22881         (ffssi2): Remove expander.
22882         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
22883         mode iterator.
22884         (ctz<mode>2): Ditto from ctz{si,di}2.
22885         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
22886         mode iterator.
22887         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
22888         mode iterator.
22889
22890 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
22891
22892         * dwarf2out.c (AT_linkage_name): Define.
22893         (clone_as_declaration): Handle DW_AT_linkage_name.
22894         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
22895         of DW_AT_MIPS_linkage_name.
22896         (move_linkage_attr): Likewise.
22897         (dwarf2out_finish): Likewise.
22898
22899 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
22900
22901         PR middle-end/41952
22902         * fold-const.c (fold_comparison): New folding rule.
22903
22904 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
22905
22906         * double-int.h (double_int_setbit): Declare.
22907         * double-int.c (double_int_setbit): New function.
22908         * rtl.h (immed_double_int_const): Declare.
22909         * emit-rtl.c (immed_double_int_const): New function.
22910         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
22911         and immed_double_int_const functions.
22912         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
22913         expand_copysign_bit): (Ditto.).
22914         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
22915         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
22916         * dojump.c (prefer_and_bit_test): (Ditto.).
22917         * expr.c (convert_modes, reduce_to_bit_field_precision,
22918         const_vector_from_tree): (Ditto.).
22919         * expmed.c (mask_rtx, lshift_value): (Ditto.).
22920
22921 2010-04-20  Jan Hubicka  <jh@suse.cz>
22922
22923         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
22924         (dump_cgraph_node): Dump new flags.
22925         * cgraph.h (struct cgraph_node): Add flags
22926         reachable_from_other_partition and in_other_partition.
22927         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
22928         other partition can not be removed.
22929         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
22930         the other partition must be output; silence sanity checking on
22931         leaking functions bodies from other paritition.
22932         * lto-cgraph.c (reachable_from_other_partition_p): New function.
22933         (lto_output_node): Output new flags; do not sanity check that inline
22934         clones are output; drop lto_forced_extern_inline_p code; do not mock
22935         visibility flags at partition boundaries.
22936         (add_node_to): New function.
22937         (output_cgraph): Use it to sort functions so masters appear before
22938         clones.
22939         (input_overwrite_node): Input new flags.
22940         * passes.c (ipa_write_summaries): Do not call
22941         lto_new_extern_inline_states.
22942         * lto-section-out.c (forced_extern_inline,
22943         lto_new_extern_inline_states lto_delete_extern_inline_states,
22944         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
22945         * lto-streamer.h (lto_new_extern_inline_states,
22946         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
22947         lto_forced_extern_inline_p): Kill.
22948
22949 2010-04-20  Richard Guenther  <rguenther@suse.de>
22950
22951         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
22952         from vars that can have pointers.
22953         (process_constraint): Dump useless constraints.
22954
22955 2010-04-20  Richard Guenther  <rguenther@suse.de>
22956
22957         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
22958         (dump_sa_points_to_info): Remove asserts.
22959         (init_base_vars): nothing_id isn't an escape point nor does it
22960         have pointers.
22961
22962 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
22963
22964         * tree.h (TYPE_REF_IS_RVALUE): Define.
22965         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
22966         should_move_die_to_comdat, prune_unused_types_walk): Handle
22967         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
22968         (modified_type_die, gen_reference_type_die): Emit
22969         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
22970         if TYPE_REF_IS_RVALUE and -gdwarf-4.
22971
22972 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22973
22974         PR target/43635
22975         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
22976         calls for -fpic -m31 if they have been sibcall optimized.
22977
22978 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
22979
22980         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
22981         ar.lc fixed and call-used.
22982
22983         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
22984
22985 2010-04-19  Jan Hubicka  <jh@suse.cz>
22986
22987         * opts.c (decode_options): Disable whpr incompatible passes.
22988         * lto/lto.c (lto_1_to_1_map): Skip clones.
22989         (read_cgraph_and_symbols): Do not mark everything as needed.
22990         (do_whole_program_analysis): Do map only after optimizing;
22991         set proper cgraph_state; use passmanager.
22992
22993 2010-04-19  DJ Delorie  <dj@redhat.com>
22994
22995         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
22996         POINTER_PLUS_EXPR and fix them.
22997
22998 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
22999
23000         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
23001         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
23002         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
23003         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
23004         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
23005         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
23006         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
23007         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
23008         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
23009         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
23010         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
23011
23012 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
23013
23014         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
23015         (check_cond_move_block): Likewise.
23016         (cond_move_process_if_block): Likewise.
23017         (noce_find_if_block): Improve formatting.
23018         (find_if_header): Pass 0 to memset and tweak conditions.
23019         (cond_exec_find_if_block): Fix long lines and tweak conditions.
23020
23021 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
23022
23023         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
23024         for -gdwarf-4.
23025
23026         PR middle-end/43337
23027         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
23028         with non-local decl doesn't need chain.
23029
23030 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
23031
23032         * ira-color.c (allocno_reload_assign): Avoid accumulating
23033         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
23034
23035 2010-04-19  Martin Jambor  <mjambor@suse.cz>
23036
23037         * gimple.h (create_tmp_reg): Declare.
23038         * gimplify.c (create_tmp_reg): New function.
23039         (gimplify_return_expr): Use create_tmp_reg.
23040         (gimplify_omp_atomic): Likewise.
23041         (gimple_regimplify_operands): Likewise.
23042         * tree-dfa.c (make_rename_temp): Likewise.
23043         * tree-predcom.c (predcom_tmp_var): Likewise.
23044         (reassociate_to_the_same_stmt): Likewise.
23045         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
23046         (get_replaced_param_substitute): Likewise.
23047         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
23048         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
23049         * tree-ssa-pre.c (get_representative_for): Likewise.
23050         (create_expression_by_pieces): Likewise.
23051         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
23052         (create_tailcall_accumulator): Likewise.
23053
23054 2010-04-19  Martin Jambor  <mjambor@suse.cz>
23055
23056         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
23057         new_stmt.
23058         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
23059
23060 2010-04-19  Richard Guenther  <rguenther@suse.de>
23061
23062         PR tree-optimization/43796
23063         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
23064         from SCEV in the lattice.
23065         (vrp_visit_phi_node): Dump change.
23066
23067 2010-04-19  Richard Guenther  <rguenther@suse.de>
23068
23069         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
23070         * configure: Re-generated.
23071
23072 2010-04-19  Richard Guenther  <rguenther@suse.de>
23073
23074         PR tree-optimization/43783
23075         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
23076         constant ARRAY_REF operands two and three if possible.
23077
23078 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
23079
23080         PR target/43766
23081         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
23082
23083 2010-04-19  Jie Zhang  <jie@codesourcery.com>
23084
23085         PR target/43662
23086         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
23087
23088 2010-04-19  Ira Rosen  <irar@il.ibm.com>
23089
23090         PR tree-optimization/37027
23091         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
23092         and macro to access it.
23093         (vectorizable_reduction): Add argument.
23094         (vect_get_slp_defs): Likewise.
23095         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
23096         statements for possible use in SLP.
23097         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
23098         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
23099         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
23100         add new argument.
23101         (vectorizable_reduction): Likewise.
23102         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
23103         vect_get_slp_defs.
23104         (vectorizable_type_demotion, vectorizable_type_promotion,
23105         vectorizable_store): Likewise.
23106         (vect_analyze_stmt): Update call to vectorizable_reduction.
23107         (vect_transform_stmt): Likewise.
23108         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
23109         (vect_build_slp_tree): Fix indentation. Check that there are no loads
23110         from different interleaving chains in same node.
23111         (vect_slp_rearrange_stmts): New function.
23112         (vect_supported_load_permutation_p): Allow load permutations for
23113         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
23114         inside SLP nodes if necessary.
23115         (vect_analyze_slp_instance): Handle reductions.
23116         (vect_analyze_slp): Try to build SLP instances originating from groups
23117         of reductions.
23118         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
23119         (vect_get_constant_vectors): Create initial vectors for reductions
23120         according to reduction code. Add new argument.
23121         (vect_get_slp_defs): Add new argument, pass it to
23122         vect_get_constant_vectors.
23123         (vect_schedule_slp_instance): Remove SLP tree root statements.
23124
23125 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
23126
23127         * tree.h (ENUM_IS_SCOPED): Define.
23128         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
23129         for ENUM_IS_SCOPED enums.
23130
23131 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
23132
23133         * fold-const.c (fold_comparison): Use ssizetype.
23134         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
23135         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
23136         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
23137         * tree-object-size.c (compute_object_sizes): Use size_type_node.
23138
23139         * tree.h (initialize_sizetypes): Remove parameter.
23140         (build_common_tree_nodes): Remove second parameter.
23141         * stor-layout.c (initialize_sizetypes): Remove parameter.
23142         Always create an unsigned type.
23143         (set_sizetype): Assert that the passed type is unsigned and simplify.
23144         * tree.c (build_common_tree_nodes): Remove second parameter.
23145         Adjust call to initialize_sizetypes.
23146         * c-decl.c (c_init_decl_processing): Remove second argument in call to
23147         build_common_tree_nodes.
23148
23149 2010-04-18  Matthias Klose  <doko@ubuntu.com>
23150
23151         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
23152
23153 2010-04-18  Ira Rosen  <irar@il.ibm.com>
23154
23155         PR tree-optimization/43771
23156         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
23157         load permutation doesn't have gaps.
23158
23159 2010-04-18  Jan Hubicka  <jh@suse.cz>
23160
23161         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
23162         (sse_prologue_save_insn expander): Use new pattern.
23163         (sse_prologue_save_insn1): New pattern and splitter.
23164         (sse_prologue_save_insn): Update to deal also with 64bit aligned
23165         blocks.
23166         * i386.c (setup_incoming_varargs_64): Do not compute jump
23167         destination here.
23168         (ix86_gimplify_va_arg): Update alignment needed.
23169         (ix86_local_alignment): Do not align all local arrays to 128bit.
23170
23171 2010-04-17  Jan Hubicka  <jh@suse.cz>
23172
23173         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
23174
23175 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
23176
23177         * arm.md (negdi2): Remove redundant code to force values into a
23178         register.
23179
23180 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
23181
23182         * arm/bpabi.S: Add EABI alignment attributes to objects.
23183         * arm/bpabi-v6m.S: Likewise.
23184         * arm/crti.asm: Likewise.
23185         * arm/crtn.asm: Likewise.
23186         * arm/lib1funcs.asm: Likewise.
23187         * arm/libunwind.S: Likewise.
23188
23189 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
23190
23191         * arm-protos.h (tune_params): New structure.
23192         * arm.c (current_tune): New variable.
23193         (arm_constant_limit): Delete.
23194         (struct processors): Add pointer to the tune parameters.
23195         (arm_slowmul_tune): New tuning option.
23196         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
23197         (all_cores): Adjust to pick up the tuning model.
23198         (arm_constant_limit): New function.
23199         (arm_override_options): Select the appropriate tuning model.  Delete
23200         initialization of arm_const_limit.
23201         (arm_split_constant): Use the new constant-limit model.
23202         (arm_rtx_costs): Pick up the current tuning model.
23203         * arm.md (is_strongarm, is_xscale): Delete.
23204         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
23205         for Xscale variant architectures.
23206         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
23207
23208 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23209
23210         * config/arm/arm.c (arm_gen_constant): Remove unused variable
23211         can_shift.
23212         (arm_rtx_costs_1): Remove unused variable extra_cost.
23213         (arm_unwind_emit_set): Use variable offset.
23214         (thumb1_output_casesi): Remove unused variable flags.
23215
23216 2010-04-16  Jeff Law  <law@redhat.com>
23217
23218         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
23219         needing assignment rather than doing a two-phase assignment.  Remove
23220         unused variable 'm'.
23221
23222 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
23223
23224         PR bootstrap/43767
23225         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
23226
23227 2010-04-16  Doug Kwan  <dougkwan@google.com>
23228
23229         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
23230         (next_operand_entry_id): New static variable.
23231         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
23232         (add_to_ops_vec): Assigned unique ID to operand entry.
23233         (struct oecount_s): New field ID.
23234         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
23235         (undistribute_ops_list): Assign unique IDs to oecounts.
23236         (init_reassoc): reset next_operand_entry_id.
23237
23238 2010-04-16  Doug Kwan  <dougkwan@google.com>
23239
23240         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
23241         missing left parenthesis.
23242
23243 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
23244
23245         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
23246         *btdi_rex64 using SWI48 mode iterator.
23247         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
23248         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
23249         *jcc_btdi_mask_rex64.
23250
23251 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
23252
23253         * double-int.h (tree_to_double_int): Convert to macro.
23254         * double-int.c (tree_to_double_int): Remove.
23255
23256 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
23257
23258         PR debug/43762
23259         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
23260         with want_address 2 and in case a single element list might be
23261         possible, call it again with want_address 0.
23262
23263 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
23264
23265         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
23266         case 'W' print operands for HI mode.
23267         * config/h8300/h8300.h (Y0, Y2) : New constraints.
23268         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
23269         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
23270         * config/h8300/predicate.md (bit_register_indirect_operand): New.
23271
23272         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
23273
23274         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
23275         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
23276         #xx:3 and #xx:4 mode.
23277
23278         * config/h8300/h8300.md (inverted load with HImode dest): Add
23279         support for H8300SX.
23280
23281         * config/h8300/predicate.md (bit_operand): Allow immediate values that
23282         satisfy 'U' constraint.
23283
23284 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23285
23286         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
23287         * configure: Regenerate.
23288         * config.in: Regenerate.
23289         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
23290         works.
23291
23292 2010-04-16  Richard Guenther  <rguenther@suse.de>
23293
23294         * tree.h (struct tree_decl_minimal): Move pt_uid ...
23295         (struct tree_decl_common): ... here.
23296         (DECL_PT_UID): Adjust.
23297         (SET_DECL_PT_UID): Likewise.
23298         (DECL_PT_UID_SET_P): Likewise.
23299
23300 2010-04-16  Richard Guenther  <rguenther@suse.de>
23301
23302         PR tree-optimization/43572
23303         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
23304         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
23305         * tree-flow.h (is_call_clobbered): Remove.
23306         * tree-flow-inline.h (is_call_clobbered): Likewise.
23307         * tree-dfa.c (dump_variable): Do not dump call clobber state.
23308         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
23309         (execute_return_slot_opt): Adjust.
23310         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
23311         check for call clobbered vars here.
23312         (find_tail_calls): Move tailcall verification to the
23313         proper place.
23314
23315 2010-04-16  Diego Novillo  <dnovillo@google.com>
23316
23317         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
23318
23319 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
23320
23321         PR target/40603
23322         * config/arm/arm.md (cbranchqi4): New pattern.
23323         * config/arm/predicates.md (const0_operand,
23324         cbranchqi4_comparison_operator): New predicates.
23325
23326 2010-04-16  Richard Guenther  <rguenther@suse.de>
23327
23328         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
23329         (dump_gimple_stmt): Likewise.
23330
23331 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
23332
23333         * recog.h (struct recog_data): New field is_operator.
23334         (struct insn_operand_data): New field is_operator.
23335         * recog.c (extract_insn): Set recog_data.is_operator.
23336         * genoutput.c (output_operand_data): Emit code to set the
23337         is_operator field.
23338         * reload.c (find_reloads): Use it rather than testing for an
23339         empty constraint string.
23340
23341         PR target/41514
23342         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
23343         If the previous insn is a cbranchsi4_insn with the same arguments,
23344         omit the compare instruction.
23345
23346         * config/arm/arm.md (addsi3_cbranch): If destination is a high
23347         register, inputs must be low registers and we need a low register
23348         scratch.  Handle alternative 2 like alternative 3.
23349
23350 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
23351
23352         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
23353         don't call get_addr on both.  If one expression is a VALUE and
23354         the other a REG, check VALUE's locs if the REG isn't among them.
23355
23356 2010-04-16  Christian Bruel  <christian.bruel@st.com>
23357
23358         * config/sh/sh.h (sh_frame_pointer_required): New function.
23359         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
23360         (flag_omit_frame_pointer) Set.
23361         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
23362         (rounded_frame_size): Adjust size with outgoing_args_size.
23363         (sh_set_return_address): Must return from stack pointer.
23364         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
23365         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
23366         (ACCUMULATE_OUTGOING_ARGS): Define.
23367         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
23368         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
23369
23370 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
23371
23372         PR target/43471
23373         * config/sh/sh.c (sh_legitimize_reload_address): Use
23374         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
23375         Remove a unneeded check for offset_base.
23376
23377 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
23378
23379         * configure: Regenerated.
23380
23381 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23382
23383         * config/s390/s390.c (s390_call_save_register_used): Switch back
23384         to HARD_REGNO_NREGS.
23385
23386 2010-04-15  Richard Guenther  <rguenther@suse.de>
23387
23388         * alias.c (alias_set_subset_of): Handle alias-set zero
23389         child properly.
23390
23391 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
23392             Julian Brown  <julian@codesourcery.com>
23393
23394         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
23395         alternatives according to use of high and low regs.
23396         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
23397         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
23398         optimizing for size on Thumb-2.
23399
23400 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
23401
23402         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
23403
23404 2010-04-15  Richard Guenther  <rguenther@suse.de>
23405
23406         * tree-ssa-structalias.c (struct variable_info): Add
23407         is_fn_info flag.
23408         (new_var_info): Initialize it.
23409         (dump_constraints): Support printing last added constraints.
23410         (debug_constraints): Adjust.
23411         (dump_constraint_graph): Likewise.
23412         (make_heapvar_for): Check for NULL cfun.
23413         (get_function_part_constraint): New function.
23414         (get_fi_for_callee): Likewise.
23415         (find_func_aliases): Properly implement IPA PTA constraints.
23416         (process_ipa_clobber): New function.
23417         (find_func_clobbers): Likewise.
23418         (insert_into_field_list_sorted): Remove.
23419         (create_function_info_for): Properly allocate vars for IPA mode.
23420         Do not use insert_into_field_list_sorted.
23421         (create_variable_info_for): Properly generate constraints for
23422         global vars in IPA mode.
23423         (dump_solution_for_var): Always dump the solution.
23424         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
23425         (find_what_var_points_to): Adjust.
23426         (pt_solution_set): Change.
23427         (pt_solution_ior_into): New function.
23428         (pt_solution_empty_p): Export.
23429         (pt_solution_includes_global): Adjust.
23430         (pt_solution_includes_1): Likewise.
23431         (pt_solutions_intersect_1): Likewise.
23432         (dump_sa_points_to_info): Check some invariants.
23433         (solve_constraints): Move constraint dumping ...
23434         (compute_points_to_sets): ... here.
23435         (ipa_pta_execute): ... and here.
23436         (compute_may_aliases): Do not re-compute points-to info
23437         locally if IPA info is available.
23438         (ipa_escaped_pt): New global var.
23439         (ipa_pta_execute): Properly implement IPA PTA.
23440         * tree-into-ssa.c (dump_decl_set): Support dumping
23441         decls not in referenced-vars.
23442         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
23443         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
23444         (dump_points_to_solution): Likewise.
23445         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
23446         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
23447         (remap_gimple_stmt): Reset call clobber/use information if necessary.
23448         (copy_decl_to_var): Copy DECL_PT_UID.
23449         (copy_result_decl_to_var): Likewise.
23450         * tree.c (make_node_stat): Initialize DECL_PT_UID.
23451         (copy_node_stat): Copy it.
23452         * tree.h (DECL_PT_UID): New macro.
23453         (SET_DECL_PT_UID): Likewise.
23454         (DECL_PT_UID_SET_P): Likewise.
23455         (struct tree_decl_minimal): Add pt_uid member.
23456         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
23457         (pt_solution_empty_p): Declare.
23458         (pt_solution_set): Adjust.
23459         (ipa_escaped_pt): Declare.
23460         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
23461         * gimple-pretty-print.c (pp_points_to_solution): New function.
23462         (dump_gimple_call): Dump call clobber/use information.
23463         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
23464         * tree-pass.h (TDF_ALIAS): New dump option.
23465         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
23466         * doc/invoke.texi (-fipa-pta): Update documentation.
23467
23468 2010-04-15  Richard Guenther  <rguenther@suse.de>
23469
23470         * Makefile.in (OBJS-common): Add gimple-fold.o.
23471         (gimple-fold.o): New rule.
23472         * tree.h (maybe_fold_offset_to_reference,
23473         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
23474         prototypes ...
23475         * gimple.h: ... here.
23476         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
23477         may_propagate_address_into_dereference): Move prototypes ...
23478         * gimple.h: ... here.
23479         * tree-ssa-ccp.c (get_symbol_constant_value,
23480         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
23481         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
23482         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
23483         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
23484         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
23485         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
23486         gimplify_and_update_call_from_tree): Move ...
23487         * gimple-fold.c: ... here.  New file.
23488         (ccp_fold_builtin): Rename to ...
23489         (gimple_fold_builtin): ... this.
23490         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
23491
23492 2010-04-15  Richard Guenther  <rguenther@suse.de>
23493
23494         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
23495         fit_double_type, force_fit_type_double, add_double_with_sign,
23496         neg_double, mul_double_with_sign, lshift_double, rshift_double,
23497         lrotate_double, rrotate_double, div_and_round_double): Move ...
23498         * double-int.c: ... here.
23499         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
23500         add_double, neg_double, mul_double_with_sign, mul_double,
23501         lshift_double, rshift_double, lrotate_double, rrotate_double,
23502         div_and_round_double): Move prototypes ...
23503         * double-int.h: ... here.
23504
23505 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
23506
23507         PR target/43742
23508         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
23509         matching constraints to ensure inputs match the output.
23510
23511 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
23512
23513         PR target/43742
23514         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
23515         in an input-only operand.
23516
23517 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
23518
23519         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
23520         (double_int_not, double_int_lshift, double_int_rshift): Declare.
23521         (double_int_negative_p): Convert to static inline function.
23522         * double-int.c (double_int_lshift, double_int_lshift): New functions.
23523         (double_int_negative_p): Remove.
23524         * tree.h (lshift_double, rshift_double):
23525         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
23526         * fold-const.c (fold_convert_const_int_from_real,
23527         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
23528         (lshift_double): Change type of arith argument to bool.
23529         (rshift_double): Change type of arith argument to bool. Correct
23530         comment.
23531         * expmed.c (mask_rtx, lshift_value): (Ditto.).
23532
23533 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
23534
23535         PR target/21803
23536         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
23537         at the start and end of the then/else blocks, and omit them from the
23538         conversion.
23539         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
23540         argument; all callers changed.  Pass zero to old_insns_match_p instead.
23541         (flow_find_head_matching_sequence): New function.
23542         (old_insns_match_p): Check REG_EH_REGION notes for calls.
23543         * basic-block.h (flow_find_cross_jump,
23544         flow_find_head_matching_sequence): Declare functions.
23545
23546 2010-04-14  Jason Merrill  <jason@redhat.com>
23547
23548         PR c++/36625
23549         * c-common.c (attribute_takes_identifier_p): New fn.
23550         * c-common.h: Declare it.
23551
23552 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23553
23554         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
23555         splitter condition.
23556         (*udivmod<mode>4): Ditto.
23557
23558 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23559
23560         * config/i386/i386.md (maxmin_int): Rename code attribute from
23561         maxminiprefix and update all users.
23562         (maxmin_float): Ditto from maxminfprefix.
23563         (logic): Ditto from logicprefix.
23564         (absneg_mnemonic): Ditto from absnegprefix.
23565         * config/i386/mmx.md: Update all users of maxminiprefix,
23566         maxminfprefix and logicprefix for rename.
23567         * config/i386/sse.md: Ditto.
23568         * config/i386/sync.md (sync_<code><mode>): Update for
23569         logicprefix rename.
23570
23571 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23572
23573         PR 42966
23574         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
23575         warnings converted to errors.
23576
23577 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23578
23579         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
23580         used insn_type variable.
23581         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
23582         to avoid set-but-not-used warning.
23583
23584 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23585
23586         * df-core.c (df_ref_debug): Change format string placeholder
23587         from 0x%x to %#x.
23588         * dwarf2asm.c (dw2_asm_output_data_raw,
23589         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
23590         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
23591         * dwarf2out.c (output_cfi, output_cfi_directive,
23592         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
23593         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
23594         Ditto.
23595         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
23596         * print-rtl.c (print_rtx): Ditto.
23597
23598 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
23599
23600         PR middle-end/42694
23601         * builtins.c (expand_builtin_pow_root): New function to expand pow
23602         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
23603         series of sqrt and cbrt calls under -ffast-math.
23604         (expand_builtin_pow): Call it.
23605
23606 2010-04-14  Michael Matz  <matz@suse.de>
23607
23608         PR tree-optimization/42963
23609         * tree-cfg.c (touched_switch_bbs): New static variable.
23610         (group_case_labels_stmt): New function broken out from ...
23611         (group_case_labels): ... here, use the above.
23612         (start_recording_case_labels): Allocate touched_switch_bbs.
23613         (end_recording_case_labels): Deallocate it, call
23614         group_case_labels_stmt.
23615         (gimple_redirect_edge_and_branch): Remember index of affected BB.
23616
23617 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23618
23619         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
23620         from insn template.
23621
23622 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
23623
23624         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
23625
23626 2010-04-13  Jan Hubicka  <jh@suse.cz>
23627
23628         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
23629         of optimized out static functions.
23630         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
23631         cost computation.  Also sanity check for overflows.
23632         (update_caller_keys): Update cgraph_edge_badness call; properly
23633         update fibheap and sanity check that it is up to date.
23634         (add_new_edges_to_heap): Update cgraph_edge_badness.
23635         (cgraph_decide_inlining_of_small_function): Likewise;
23636         add sanity checking that badness in heap is up to date;
23637         improve dumping of reason; Update badness of calls to the
23638         offline copy of function currently inlined; dump badness
23639         of functions not inlined because of unit growth limits.
23640
23641 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
23642
23643         PR middle-end/32628
23644         * c-common.c (pointer_int_sum): Disregard overflow that occured only
23645         because of sign-extension change when converting to sizetype here...
23646         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
23647
23648         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
23649         the folding to constants.  Remove redundant final conversion.
23650         (fold_binary) <associate>: Do not associate if the re-association of
23651         constants alone overflows.
23652         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
23653         to the end of the list.
23654         (multiple_of_p) <COND_EXPR>: New case.
23655
23656 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23657
23658         * opt-functions.awk (opt_sanitized_name): New.
23659         (opt_enum): New.
23660         * optc-gen.awk: Use it
23661         * opth-gen.awk: Use it.
23662
23663 2010-04-13  Martin Jambor  <mjambor@suse.cz>
23664
23665         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
23666         (sra_modify_assign): Delete stmts loading dead data even if racc has no
23667         children.  Call replace_uses_with_default_def_ssa_name to handle
23668         SSA_NAES on lhs.
23669
23670 2010-04-13  Michael Matz  <matz@suse.de>
23671
23672         PR middle-end/43730
23673         * builtins.c (expand_builtin_interclass_mathfn): Also create
23674         a register if the predicate doesn't match.
23675
23676 2010-04-13  Diego Novillo  <dnovillo@google.com>
23677
23678         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
23679         * c-pch.c: Include timevar.h.
23680         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
23681         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
23682         * ggc-common.c: Include timevar.h.
23683         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
23684         * timevar.def (TV_PCH_SAVE): Define.
23685         (TV_PCH_CPP_SAVE): Define.
23686         (TV_PCH_PTR_REALLOC): Define.
23687         (TV_PCH_PTR_SORT): Define.
23688         (TV_PCH_RESTORE): Define.
23689         (TV_PCH_CPP_RESTORE): Define.
23690
23691 2010-04-13  Michael Matz  <matz@suse.de>
23692
23693         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
23694         into MINUS_EXPRs.
23695         (can_reassociate_p): New function.
23696         (break_up_subtract_bb, reassociate_bb): Use it.
23697
23698 2010-04-13  Richard Guenther  <rguenther@suse.de>
23699
23700         PR bootstrap/43737
23701         * builtins.c (c_readstr): Fix assert.
23702
23703 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
23704
23705         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
23706         when generating cltd insn.
23707
23708         (*ashl<mode>3_1): Remove special handling for register operand 2.
23709         (*ashlsi3_1_zext): Ditto.
23710         (*ashlhi3_1): Ditto.
23711         (*ashlhi3_1_lea): Ditto.
23712         (*ashlqi3_1): Ditto.
23713         (*ashlqi3_1_lea): Ditto.
23714         (*<shiftrt_insn><mode>3_1): Ditto.
23715         (*<shiftrt_insn>si3_1_zext): Ditto.
23716         (*<shiftrt_insn>qi3_1_slp): Ditto.
23717         (*<rotate_insn><mode>3_1): Ditto.
23718         (*<rotate_insn>si3_1_zext): Ditto.
23719         (*<rotate_insn>qi3_1_slp): Ditto.
23720
23721 2010-04-13  Richard Guenther  <rguenther@suse.de>
23722
23723         * tree-ssa-structalias.c (callused_id): Remove.
23724         (call_stmt_vars): New.
23725         (get_call_vi): Likewise.
23726         (lookup_call_use_vi): Likewise.
23727         (lookup_call_clobber_vi): Likewise.
23728         (get_call_use_vi): Likewise.
23729         (get_call_clobber_vi): Likewise.
23730         (make_transitive_closure_constraints): Likewise.
23731         (handle_const_call): Adjust to do per-call call-used handling.
23732         (handle_pure_call): Likewise.
23733         (find_what_var_points_to): Remove general callused handling.
23734         (init_base_vars): Likewise.
23735         (init_alias_vars): Initialize call_stmt_vars.
23736         (compute_points_to_sets): Process call-used and call-clobbered
23737         vars for call statements.
23738         (delete_points_to_sets): Free call_stmt_vars.
23739
23740 2010-04-13  Richard Guenther  <rguenther@suse.de>
23741
23742         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
23743         Only add RW dependence for dependence distance zero.
23744         Adjust maximal vectorization factor according to dependences.
23745         Move alignment handling ...
23746         (vect_find_same_alignment_drs): ... here.  New function.
23747         (vect_analyze_data_ref_dependences): Adjust.
23748         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
23749         (vect_analyze_data_refs): Adjust minimal vectorization factor
23750         according to data references.
23751         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
23752         dependences before determining the vectorization factor.
23753         Analyze alignment after determining the vectorization factor.
23754         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
23755         dependences before alignment.
23756         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
23757         Adjust prototype.
23758         (vect_analyze_data_refs): Likewise.
23759         (MAX_VECTORIZATION_FACTOR): New define.
23760
23761 2010-04-13  Duncan Sands  <baldrick@free.fr>
23762
23763         * except.h (lang_eh_type_covers): Remove.
23764         * except.c (lang_eh_type_covers): Likewise.
23765
23766 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23767             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23768
23769         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
23770         * config/s390/s390.c: Replace UNTIS_PER_WORD with
23771         UNITS_PER_LONG where it is ABI relevant.
23772         (s390_return_addr_rtx): Likewise.
23773         (s390_back_chain_rtx): Likewise.
23774         (s390_frame_area): Likewise.
23775         (s390_frame_info): Likewise.
23776         (s390_initial_elimination_offset): Likewise.
23777         (save_gprs): Likewise.
23778         (s390_emit_prologue): Likewise.
23779         (s390_emit_epilogue): Likewise.
23780         (s390_function_arg_advance): Likewise.
23781         (s390_function_arg): Likewise.
23782         (s390_va_start): Likewise.
23783         (s390_gimplify_va_arg): Likewise.
23784         (s390_function_profiler): Likewise.
23785         (s390_optimize_prologue): Likewise.
23786         (s390_rtx_costs): Likewise.
23787         (s390_secondary_reload): Likewise.
23788         (s390_promote_function_mode): Likewise.
23789         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
23790         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
23791         registers available.
23792         (s390_unwind_word_mode): New function.
23793         (s390_function_value): Split 64 bit values into register pair if
23794         used as return value.
23795         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
23796         function call parameters.  Handle parallels.
23797         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
23798         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
23799         (DWARF_CIE_DATA_ALIGNMENT): New macro.
23800         (s390_expand_setmem): Remove unused variable src_addr.
23801         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
23802         deal with 64 bit registers.
23803         * config/s390/s390.h: Define __zarch__ predefined macro.
23804         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
23805         (UNITS_PER_LONG): New macro.
23806         * libjava/include/s390-signal.h: Define extended ucontext
23807         structure containing the upper halfs of the 64 bit registers.
23808
23809 2010-04-13  Simon Baldwin  <simonb@google.com>
23810
23811         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
23812
23813 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
23814
23815         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
23816         rvalue on the RHS if the LHS is of a non-renamable type.
23817         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
23818
23819 2010-04-13  Matthias Klose  <doko@ubuntu.com>
23820
23821         * gcc.c (cc1_options): Handle -iplugindir before processing
23822         the cc1 spec. Only add -iplugindir once.
23823         (cpp_unique_options): Add -iplugindir option if -fplugin* options
23824         found.
23825         * common.opt (iplugindir): Remove `Separate' property, initialize.
23826         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
23827         option.
23828         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
23829         (distclean): Remove plugin dir.
23830         * doc/invoke.texi: Document -iplugindir.
23831
23832 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
23833
23834         * doc/plugins.texi (Loading Plugins): Document short
23835         -fplugin=foo option.
23836         (Plugin API): Mention default_plugin_dir_name function.
23837
23838         * gcc.c (find_file_spec_function): Add new declaration.
23839         (static_spec_func): Use it for "find-file".
23840         (find_file_spec_function): Add new function.
23841         (cc1_options): Add -iplugindir option if -fplugin* options found.
23842
23843         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
23844
23845         * plugin.c (add_new_plugin): Updated comment, and handle short
23846         plugin name.
23847         (default_plugin_dir_name): Added new function.
23848
23849         * common.opt (iplugindir): New option to set the plugin directory.
23850
23851 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
23852
23853         * config/i386/i386.md (any_rotate): New code iterator.
23854         (rotate_insn): New code attribute.
23855         (rotate): Ditto.
23856         (SWIM124): New mode iterator.
23857         (<rotate_insn>ti3): New expander.
23858         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
23859         any_rotate code iterator.
23860         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
23861         using any_rotate code iterator and SWIM124 mode iterator.
23862         (ix86_rotlti3): New insn_and_split pattern.
23863         (ix86_rotrti3): Ditto.
23864         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
23865         ix86_rotl{di,ti}3 patterns.
23866         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
23867         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
23868         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
23869         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
23870         code iterator and SWI mode iterator.
23871         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
23872         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
23873         code iterator.
23874         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
23875         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
23876         (bswap rotatert splitter): Add splitter.
23877         (bswap splitter): Macroize splitter using any_rotate code iterator.
23878         Add insn predicate to split only for TARGET_USE_XCHGB or when
23879         optimizing function for size.
23880
23881 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23882
23883         * config/pa/pa.c (emit_move_sequence): Remove use of
23884         deleted variable flag_argument_noalias.
23885
23886 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23887
23888         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
23889         configurations.
23890         Add to unsupported targets list.
23891         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
23892         sparc*-sun-solaris2.[567]* from target lists.
23893         * configure: Regenerate.
23894         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
23895         removal.
23896         Remove Solaris 7 patch references.
23897         (Specific, sparc-sun-solaris2.7): Removed.
23898         (sparc-sun-solaris2*): Update Solaris 7 example.
23899         (sparc64-*-solaris2*): Likewise.
23900
23901 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23902
23903         * config.build (alpha*-dec-osf4*): Remove.
23904         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
23905         of obsolete configurations.
23906         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
23907         support.
23908         * config/alpha/t-osf4: Renamed to ...
23909         * config/alpha/t-osf5: ... this.
23910         * config/alpha/osf.h: Renamed to ...
23911         * config/alpha/osf5.h: ... this.
23912         Merged old osf5.h contents.
23913         Update comments.
23914         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
23915         (EXTRA_SPECS): Removed.
23916         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
23917         reflect removal of Tru64 UNIX V4.0/V5.0 support.
23918         Document that.
23919
23920 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23921
23922         * doc/contrib.texi (Contributors, Rainer Orth): Update.
23923
23924 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
23925
23926         PR/43702
23927         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
23928         __thiscall convention.
23929
23930 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23931
23932         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
23933         orig_base.
23934         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
23935
23936 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23937
23938         * function.c (assign_parms_initialize_all): Add unused attribute
23939         to fntype.
23940
23941 2010-04-12  Richard Guenther  <rguenther@suse.de>
23942
23943         * gsstruct.def (GSS_CALL): New.
23944         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
23945         * gimple.h: Include tree-ssa-alias.h.
23946         (struct gimple_statement_call): New.
23947         (union gimple_statement_struct_d): Add gimple_call member.
23948         (gimple_call_reset_alias_info): Declare.
23949         (gimple_call_use_set): New function.
23950         (gimple_call_clobber_set): Likewise.
23951         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
23952         * gimple.c (gimple_call_reset_alias_info): New function.
23953         (gimple_build_call_1): Call it.
23954         * lto-streamer-in.c (input_gimple_stmt): Likewise.
23955         * tree-inline.c (remap_gimple_stmt): Likewise.
23956         (expand_call_inline): Remove callused handling.
23957         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
23958         * tree-dfa.c (dump_variable): Likewise.
23959         * tree-parloops.c (parallelize_loops): Likewise.
23960         * tree-ssa.c (init_tree_ssa): Likewise.
23961         (delete_tree_ssa): Likewise.
23962         * tree-flow-inline.h (is_call_used): Remove.
23963         * tree-flow.h (struct gimple_df): Remove callused member.
23964         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
23965         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
23966         (ref_maybe_used_by_call_p_1): Simplify.
23967         (call_may_clobber_ref_p_1): Likewise.
23968         * tree-ssa-structalias.c (compute_points_to_sets): Set
23969         the call stmt used and clobbered sets.
23970         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
23971         (find_tail_calls): Verify the tail call.
23972
23973 2010-04-12  Richard Guenther  <rguenther@suse.de>
23974
23975         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
23976         single-iteration always-inline inlining.
23977         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
23978         (cgraph_decide_inlining): Do not handle always-inline specially.
23979         (try_inline): Remove always-inline cycle detection special case.
23980         Do not recurse on always-inlines.
23981         (cgraph_early_inlining): Do not iterate if not optimizing.
23982         (cgraph_gate_early_inlining): remove.
23983         (pass_early_inline): Run unconditionally.
23984         (gate_cgraph_decide_inlining): New function.
23985         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
23986         not inlining or optimizing.
23987         (cgraph_decide_inlining_of_small_functions): Also consider
23988         always-inline functions.
23989         (cgraph_default_inline_p): Return true for nodes which should
23990         disregard inline limits.
23991         (estimate_function_body_sizes): Assume zero size and time for
23992         nodes which are marked as disregarding inline limits.
23993         (cgraph_decide_recursive_inlining): Do not perform recursive
23994         inlining on always-inline nodes.
23995
23996 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
23997
23998         PR bootstrap/43699
23999         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
24000         for exprs satisfying handled_component_p.
24001
24002 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
24003
24004         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
24005         non-constant aggregate elements.
24006
24007         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
24008         is a real initialization.
24009
24010 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
24011
24012         PR c/36774
24013         * c-decl.c (start_function): Move forward check for nested function.
24014
24015 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
24016
24017         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
24018         * config/sh/sh.c: Include reload.h.
24019         (sh_legitimize_reload_address): New.
24020         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
24021         sh_legitimize_reload_address.
24022
24023 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
24024
24025         * config/sh/sh.md (*movqi_pop): New insn pattern.
24026         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
24027
24028 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
24029
24030         * config/i386/i386.md (any_shiftrt): New code iterator.
24031         (shiftrt_insn): New code attribute.
24032         (shiftrt): Ditto.
24033         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
24034         using any_shiftrt code iterator.
24035         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
24036         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
24037         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
24038         pattern from corresponding peephole2 patterns.
24039         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
24040         using any_shiftrt code iterator.
24041         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
24042         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
24043         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
24044         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
24045         *{ashr,lshr}<mode>3_cmp_zext.
24046         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
24047
24048 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
24049
24050         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
24051         scratch register.
24052         (*lshr<mode>3_cconly): Ditto.
24053
24054 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
24055
24056         * config/i386/i386.md (lshr<mode>3): Macroize expander from
24057         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
24058         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
24059         pattern from *lshr{di,ti}3_1 and corresponding splitters using
24060         DWI mode iterator.
24061         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
24062         from corresponding peephole2 patterns.
24063         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
24064         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
24065         and *lshrdi3_1_rex64 using SWI mode iterator.
24066         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
24067         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
24068         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
24069         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
24070         and *lshrdi3_cmp_rex64 using SWI mode iterator.
24071         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
24072         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
24073         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
24074         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
24075         SWI mode iterator.
24076
24077 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
24078
24079         * config/i386/i386.md (ashr<mode>3): Macroize expander from
24080         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
24081         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
24082         pattern from *ashr{di,ti}3_1 and corresponding splitters using
24083         DWI mode iterator.
24084         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
24085         from corresponding peephole2 patterns.
24086         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
24087         (ashrsi3_cvt): Rename from ashrsi3_31.
24088         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
24089         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
24090         and x86_64_shift_adj_3 using SWI48 mode iterator.
24091         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
24092         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
24093         and *ashrdi3_1_rex64 using SWI mode iterator.
24094         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
24095         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
24096         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
24097         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
24098         and *ashrdi3_cmp_rex64 using SWI mode iterator.
24099         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
24100         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
24101         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
24102         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
24103         SWI mode iterator.
24104         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
24105         * config/i386/i386.c (ix86_split_ashr): Update for renamed
24106         x86_shift<mode>_adj_3 expanders.
24107
24108 2010-04-10  Wei Guozhi  <carrot@google.com>
24109
24110         PR target/42601
24111         * config/arm/arm.c (arm_pic_static_addr): New function.
24112         (legitimize_pic_address): Call arm_pic_static_addr when it detects
24113         a static symbol.
24114         (arm_output_addr_const_extra): Output expression for new pattern.
24115         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
24116
24117 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
24118
24119         * ira-costs.c (record_reg_classes): Ignore alternatives that are
24120         not enabled.
24121
24122         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
24123         * web.c: Include "insn-config.h" and "recog.h".
24124         (union_match_dups): New function.
24125         (web_main): Call it.
24126         (union_defs): Don't try to recognize match_dups.
24127
24128         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
24129         if doing so would replace the entire pattern.
24130
24131 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
24132
24133         PR target/43707
24134         PR target/43709
24135         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
24136         and splitter pattern.  Change splitter operand 1 predicate to
24137         nonmemory_operand.
24138
24139 2010-04-09  Martin Jambor  <mjambor@suse.cz>
24140
24141         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
24142         lattices are addresses of CONST_DECLs with the same initial value.
24143         (ipcp_print_all_lattices): Print values of CONST_DECLs.
24144         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
24145
24146 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
24147             Bernd Schmidt  <bernds@codesourcery.com>
24148
24149         * loop-invariant.c (replace_uses): New static function.
24150         (move_invariant_reg): Use it to ensure we can replace the uses.
24151
24152 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
24153
24154         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
24155         function template.
24156         (picochip_override_options): Enable section anchors only above -O1.
24157         (picochip_reorg): Fixed a couple of build warnings.
24158
24159 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24160
24161         * configure.ac (plugin -rdynamic test): Log result.
24162         * configure: Regenerate.
24163         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
24164         (RDYNAMIC_SPEC): Define.
24165         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
24166
24167 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24168
24169         * configure.ac: Determine Sun ld version numbers.
24170         (comdat_group): Restrict GNU ld version checks to gld.
24171         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
24172         (enable_comdat): Support --enable-comdat.
24173         * configure: Regenerate.
24174         * doc/install.texi (Configuration): Document --enable-comdat.
24175
24176 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24177
24178         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
24179         * config/sol2-gld.h: ... here.
24180         * config.gcc (sparc*-*-solaris2*): Reflect this.
24181         (i[34567]86-*-solaris2*): Use it.
24182
24183 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
24184
24185         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
24186         setup_clocks_p.
24187         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
24188
24189 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24190
24191         PR 42965
24192         * diagnostic.c (diagnostic_initialize): Initialize
24193         some_warnings_are_errors.
24194         (diagnostic_finish): New.
24195         (diagnostic_action_after_output): Call it before exiting.
24196         (diagnostic_report_diagnostic): Do not print message here. Set
24197         some_warnings_are_errors.
24198         * diagnostic.h (diagnostic_context): Delete
24199         issue_warnings_are_errors_message. Add some_warnings_are_errors.
24200         (diagnostic_finish): Declare.
24201         * toplev.c (toplev_main): Call it before exit.
24202
24203 2010-04-09  Jason Merrill  <jason@redhat.com>
24204
24205         PR c++/42623
24206         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
24207         for incomplete type.
24208
24209         PR c++/41788
24210         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
24211         based on a warning flag.
24212
24213 2010-04-09  Richard Guenther  <rguenther@suse.de>
24214
24215         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
24216
24217 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
24218
24219         PR bootstrap/43684
24220         * varasm.c (default_assemble_visibility): Wrap vars that are
24221         set, but unused, by targets without GAS.
24222         * config/rs6000/rs6000.c (paired_emit_vector_compare):
24223         Remove set, but unused, vars.
24224         (rs6000_legitimize_tls_address): Likewise.
24225         (altivec_expand_dst_builtin): Likewise.
24226         * config/darwin.c (machopic_classify_symbol): Likewise.
24227         (machopic_indirection_name): Likewise.
24228
24229 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
24230
24231         * config/i386/i386.md (DWI): New mode iterator.
24232         (S): New mode attribute.
24233         (shift_operand): Ditto.
24234         (shift_immediate_operand): Ditto.
24235         (ashl_input_operand): Ditto.
24236         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
24237         using SDWIM mode iterator.
24238         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
24239         pattern from *ashl{di,ti}3_1 and corresponding splitters using
24240         DWI mode iterator.
24241         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
24242         from corresponding peephole2 patterns.
24243         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
24244         and x86_64_shift_adj_1 using SWI48 mode iterator.
24245         (x86_shift<mode>_adj_2): Ditto.
24246         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
24247         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
24248         using SWI48 mode iterator.
24249         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
24250         *ashldi3_cmp_rex64 using SWI mode iterator.
24251         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
24252         *ashldi3_cconly_rex64 using SWI mode iterator.
24253         * config/i386/i386.c (ix86_split_ashl): Update for renamed
24254         x86_shift<mode>_adj_{1,2}.
24255         (ix86_split_ashr): Ditto.
24256         (ix86_split_lshr): Ditto.
24257
24258 2010-04-09  Richard Guenther  <rguenther@suse.de>
24259
24260         * target.h (builtin_conversion): Pass in input and output types.
24261         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
24262         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
24263         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
24264         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
24265
24266         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
24267         Handle AVX modes.
24268         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
24269
24270 2010-04-09  Richard Guenther  <rguenther@suse.de>
24271
24272         PR target/43152
24273         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
24274
24275 2010-04-09  Richard Guenther  <rguenther@suse.de>
24276
24277         * tree-vectorizer.h (struct _stmt_vec_info): Document
24278         that vectype is the type of the LHS.
24279         (supportable_widening_operation, supportable_narrowing_operation):
24280         Get both input and output vector types as arguments.
24281         (vect_is_simple_use_1): Declare.
24282         (get_same_sized_vectype): Likewise.
24283         * tree-vect-loop.c (vect_determine_vectorization_factor):
24284         Set STMT_VINFO_VECTYPE to the vector type of the def.
24285         (vectorizable_reduction): Adjust.
24286         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
24287         Adjust.  Specify the output vector type.
24288         (vect_pattern_recog_1): Adjust.
24289         * tree-vect-stmts.c (get_same_sized_vectype): New function.
24290         (vectorizable_call): Adjust.
24291         (vectorizable_conversion): Likewise.
24292         (vectorizable_operation): Likewise.
24293         (vectorizable_type_demotion): Likewise.
24294         (vectorizable_type_promotion): Likewise.
24295         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
24296         the def.
24297         (vect_is_simple_use_1): New function.
24298         (supportable_widening_operation): Get both input and output
24299         vector types.
24300         (supportable_narrowing_operation): Likewise.
24301         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
24302
24303 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
24304
24305         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
24306         __thiscall and _thiscall as predefined macros.
24307         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
24308         thiscall attribute handling.
24309         (ix86_comp_type_attributes): Likewise.
24310         (ix86_function_regparm): Likewise.
24311         (ix86_return_pops_args): Likewise.
24312         (init_cumulative_args): Likewise.
24313         (find_drap_reg): Likewise.
24314         (ix86_static_chain): Likewise.
24315         (x86_this_parameter): Likewise.
24316         (x86_output_mi_thunk): Likewise.
24317         (ix86_attribute_table): Add description for thiscall attribute.
24318         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
24319         * doc/extend.texi: Add documentation for thiscall.
24320
24321 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24322
24323         PR c++/28584
24324         * c.opt (Wint-to-pointer-cast): Available in C++.
24325         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
24326
24327 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
24328
24329         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
24330         * calls.c (expand_call): Pass the function type to aggregate_value_p.
24331         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
24332         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
24333         function type instead.  Reorder and simplify checks.
24334
24335         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
24336
24337 2010-04-08  Jing Yu  <jingyu@google.com>
24338             Zdenek Dvorak  <ook@ucw.cz>
24339
24340         PR tree-optimization/42720
24341         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
24342         loop unswitch conditions here from ...
24343         (tree_unswitch_single_loop): ... here.
24344
24345 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
24346
24347         * tree-if-conv.c: Fix comments and simplify logic.
24348
24349 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
24350
24351         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
24352         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
24353         (main_tree_if_conversion): Update call to tree_if_conversion.
24354
24355 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24356
24357         PR 42485
24358         * doc/invoke.texi (-b,-V): Delete.
24359         * doc/tm.texi: Do not mention -b.
24360         * gcc.c (display_help): Delete -b and -V.
24361         (process_command): Delete -b and -V.
24362         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
24363
24364 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
24365             Wolfgang Gellerich  <gellerich@de.ibm.com>
24366
24367         Implement target hook for loop unrolling
24368         * target.h (loop_unroll_adjust): Add a new target hook function.
24369         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
24370         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
24371         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
24372         (s390_loop_unroll_adjust): Implement the new target hook for s390.
24373         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
24374         target hook.
24375         (decide_unroll_stupid): Likewise.
24376
24377 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24378
24379         PR target/43643
24380         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
24381
24382 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24383
24384         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
24385         (Specific, *-*-solaris2*): Likewise.
24386         Don't prefer Sun as over GNU as.
24387
24388 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
24389
24390         * config/s390/s390.c (override_options): Adjust the z10 defaults
24391         for max-unroll-times, max-completely-peeled-insns
24392         and max-completely-peel-times.
24393
24394 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24395
24396         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
24397         instructions for z10.
24398         (s390_expand_setmem): Likewise.
24399         (s390_expand_cmpmem): Likewise.
24400
24401 2010-04-08  Richard Guenther  <rguenther@suse.de>
24402
24403         PR tree-optimization/43679
24404         * tree-ssa-pre.c (eliminate): Only propagate copies.
24405
24406 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
24407
24408         PR bootstrap/43681
24409         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
24410         set but not used variable warning.
24411
24412 2010-04-08  Wei Guozhi  <carrot@google.com>
24413
24414         PR target/41653
24415         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
24416         (arm_size_rtx_costs): Call the new function when optimized for size.
24417
24418 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
24419
24420         PR debug/43670
24421         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
24422         op0 is not a MEM, just return NULL instead of assertion
24423         failure.
24424         (discover_nonconstant_array_refs): Don't walk debug stmts.
24425
24426 2010-04-08  Doug Kwan  <dougkwan@google.com>
24427
24428         * configure.ac: Recognize gold and do not use its version number
24429         to test ld features.
24430         * configure: Regenerate.
24431
24432 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
24433
24434         PR middle-end/40815
24435         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
24436         (negate_value): Move code to push elements to broken_up_substracts ...
24437         (eliminate_plus_minus_pair): ... here.  Push operands that have no
24438         negative pair to plus_negates.
24439         (repropagate_negates, init_reassoc, fini_reassoc): Update.
24440
24441 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24442
24443         * doc/install.texi (Configuration): Move description of
24444         --enable-lto, --with-libelf*, --enable-gold from Java section to
24445         general section.
24446
24447         * doc/generic.texi (Working with declarations)
24448         (Function Properties, C and C++ Trees): Fix typos.
24449         * doc/sourcebuild.texi (Top Level): Likewise.
24450
24451 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
24452
24453         PR c/18624
24454         * tree.h (DECL_READ_P): Define.
24455         (struct tree_decl_common): Add decl_read_flag.
24456         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
24457         a set but not used warning.
24458         (merge_decls): Merge DECL_READ_P flag.
24459         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
24460         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
24461         * c-common.c (handle_used_attribute, handle_unused_attribute):
24462         Likewise.
24463         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
24464         New prototypes.
24465         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
24466         New functions.
24467         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
24468         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
24469         c_parser_binary_expression, c_parser_cast_expression,
24470         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
24471         Call default_function_array_read_conversion instead of
24472         default_function_array_conversion where needed.
24473         (c_parser_unary_expression, c_parser_conditional_expression,
24474         c_parser_postfix_expression_after_primary, c_parser_initelt):
24475         Likewise.  Call mark_exp_read where needed.
24476         (c_parser_statement_after_labels, c_parser_asm_operands,
24477         c_parser_typeof_specifier, c_parser_sizeof_expression,
24478         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
24479         where needed.
24480         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
24481         New.
24482         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
24483         (warn_unused_but_set_parameter): Default to warn_unused
24484         && extra_warnings.
24485         * doc/invoke.texi: Document -Wunused-but-set-variable and
24486         -Wunused-but-set-parameter.
24487
24488         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
24489         used count variable.
24490         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
24491         when operandN variables aren't used in the body of the expander
24492         or splitter.
24493         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
24494         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
24495         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
24496         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
24497         FOR_EACH_IMM_USE_ON_STMT): Likewise.
24498         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
24499         * tree.c (PROCESS_ARG): Likewise.
24500
24501 2010-04-07  Simon Baldwin  <simonb@google.com>
24502
24503         * diagnostic.h (diagnostic_override_option_index): New macro to
24504         set a diagnostic's option_index.
24505         * c-tree.h (c_cpp_error): Add warning reason argument.
24506         * opts.c (_warning_as_error_callback): New.
24507         (register_warning_as_error_callback): Store callback for
24508         warnings enabled via enable_warning_as_error.
24509         (enable_warning_as_error): Call callback, minor code tidy.
24510         * opts.h (register_warning_as_error_callback): Declare.
24511         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
24512         response to -Werror=.
24513         (c_common_init_options): Register warning_as_error_callback in opts.c.
24514         * common.opt: Add -Wno-cpp option.
24515         * c-common.c (struct reason_option_codes_t): Map cpp warning
24516         reason codes to gcc option indexes.
24517         * (c_option_controlling_cpp_error): New function, lookup the gcc
24518         option index for a cpp warning reason code.
24519         * (c_cpp_error): Add warning reason argument, call
24520         c_option_controlling_cpp_error for diagnostic_override_option_index.
24521         * doc/invoke.texi: Document -Wno-cpp.
24522
24523 2010-04-07  Richard Guenther  <rguenther@suse.de>
24524
24525         * ipa-reference.c (mark_load): Use get_base_address.
24526         (mark_store): Likewise.
24527
24528         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
24529         inserting GIMPLE_NOPs into the IL.
24530         * tree-ssa-structalias.c (get_constraint_for_component_ref):
24531         Explicitly strip handled components and indirect references.
24532
24533         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
24534         folding address expressions.
24535         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
24536         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
24537         operand_equal_p to compare decls.
24538         (ptr_deref_may_alias_decl_p): Likewise.
24539         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
24540         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
24541         Handle reversed comparison ops.
24542         * tree-sra.c (asm_visit_addr): Use get_base_address.
24543         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
24544         * ipa-reference.c (mark_address): Use get_base_address.
24545
24546 2010-04-07  Richard Guenther  <rguenther@suse.de>
24547
24548         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
24549         Propagate constants everywhere.
24550
24551 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
24552
24553         PR debug/43516
24554         * tree.c (MAX_INT_CACHED_PREC): Define.
24555         (nonstandard_integer_type_cache): New array.
24556         (build_nonstandard_integer_type): Cache results for precision
24557         <= MAX_INT_CACHED_PREC.
24558
24559 2010-04-07  Richard Guenther  <rguenther@suse.de>
24560
24561         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
24562         -fargument-noalias-global, -fargument-noalias-anything): Remove.
24563         * common.opt: Likewise.
24564         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
24565         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
24566         (nonoverlapping_memrefs_p): Likewise.
24567         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
24568         * opts.c (common_handle_option): Handle OPT_fargument_alias,
24569         OPT_fargument_noalias, OPT_fargument_noalias_anything and
24570         OPT_fargument_noalias_global for backward compatibility.
24571
24572 2010-04-07  Richard Guenther  <rguenther@suse.de>
24573
24574         PR tree-optimization/43270
24575         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
24576         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
24577         * tree-ssa-pre.c (phi_translate_1): Adjust.
24578         (fully_constant_expression): Split out vn_reference handling to ...
24579         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
24580         Fold reads from constant strings.
24581         (vn_reference_lookup): Handle fully constant references.
24582         (vn_reference_lookup_pieces): Likewise.
24583         * Makefile.in (expmed.o-warn): Add -Wno-error.
24584
24585 2010-04-07  Martin Jambor  <mjambor@suse.cz>
24586
24587         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
24588
24589 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
24590
24591         PR driver/41594
24592         * gcc.c: Add -static-libstdc++ to list of recognized options.
24593
24594 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24595
24596         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
24597
24598 2010-04-07  Richard Guenther  <rguenther@suse.de>
24599
24600         PR middle-end/42617
24601         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
24602         bases build simple mem attributes to retain points-to information.
24603
24604 2010-04-07  Richard Guenther  <rguenther@suse.de>
24605
24606         PR middle-end/42617
24607         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
24608         preserve points-to related information.
24609
24610 2010-04-07  Richard Guenther  <rguenther@suse.de>
24611
24612         PR middle-end/42617
24613         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
24614         discard plain indirect references.
24615         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
24616         * tree.c (tree_nop_conversion): Likewise.
24617
24618 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
24619
24620         PR debug/43628
24621         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
24622
24623 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
24624
24625         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
24626         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
24627
24628 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
24629
24630         * tree-if-conv.c: Fix indentation and comments.
24631
24632 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
24633
24634         * tree-if-conv.c: Sort static functions in topological order.
24635
24636 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
24637
24638         * tree-if-conv.c: Fix indentation and comments.
24639
24640 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24641
24642         PR middle-end/43519
24643         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
24644         lang_hooks.types.type_for_size instead of
24645         build_nonstandard_integer_type.
24646         When converting an unsigned type to signed, double its precision.
24647         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
24648         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
24649         (graphite_create_new_loop_guard): When ub + 1 wraps around,
24650         use lb <= ub.
24651
24652 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24653
24654         PR middle-end/43519
24655         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
24656         POINTER_PLUS_EXPR for pointer types.
24657
24658 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24659
24660         PR middle-end/43519
24661         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
24662         * graphite-clast-to-gimple.c: Include langhooks.h.
24663         (max_signed_precision_type): New.
24664         (max_precision_type): Takes two types as arguments.
24665         (precision_for_value): New.
24666         (precision_for_interval): New.
24667         (gcc_type_for_interval): New.
24668         (gcc_type_for_value): New.
24669         (gcc_type_for_clast_term): New.
24670         (gcc_type_for_clast_red): New.
24671         (gcc_type_for_clast_bin): New.
24672         (gcc_type_for_clast_expr): Split up into several functions.
24673         (gcc_type_for_clast_eq): Rewritten.
24674         (compute_bounds_for_level): New.
24675         (compute_type_for_level_1): New.
24676         (compute_type_for_level): New.
24677         (gcc_type_for_cloog_iv): Removed.
24678         (gcc_type_for_iv_of_clast_loop): Rewritten.
24679         (graphite_create_new_loop): Compute the lower and upper bound types
24680         with gcc_type_for_clast_expr.
24681         (graphite_create_new_loop_guard): Same.
24682         (find_cloog_iv_in_expr): Removed.
24683         (compute_cloog_iv_types_1): Removed.
24684         (compute_cloog_iv_types): Removed.
24685         (gloog): Do not call compute_cloog_iv_types.
24686         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
24687         GBB_CLOOG_IV_TYPES.
24688         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
24689         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
24690         (GBB_CLOOG_IV_TYPES): Removed.
24691
24692 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24693
24694         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
24695         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
24696         (detect_commutative_reduction): Same.
24697
24698 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24699
24700         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
24701         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
24702         argument.
24703         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
24704         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
24705         (rewrite_commutative_reductions_out_of_ssa): Same.
24706         * passes.c (execute_function_todo): Call verify_ssa for every pass
24707         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
24708         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
24709         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
24710         with an extra argument.
24711         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
24712         verify_ssa only when the extra argument is true.
24713         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
24714         with an extra argument.
24715         (tree_transform_and_unroll_loop): Same.
24716
24717 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
24718
24719         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
24720         for all the passes of the LNO having LOOP_CLOSED_SSA.
24721         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
24722         * tree-loop-distribution.c (pass_loop_distribution): Same.
24723         * tree-pass.h (TODO_verify_loops): Removed.
24724         * tree-ssa-loop.c (pass_tree_loop_init): Same.
24725         (pass_lim): Same.
24726         (pass_tree_unswitch): Same.
24727         (pass_predcom): Same.
24728         (pass_vectorize): Same.
24729         (pass_linear_transform): Same.
24730         (pass_graphite_transforms): Same.
24731         (pass_iv_canon): Same.
24732         (pass_complete_unroll): Same.
24733         (pass_complete_unrolli): Same.
24734         (pass_parallelize_loops): Same.
24735         (pass_loop_prefetch): Same.
24736         (pass_iv_optimize): Same.
24737
24738 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
24739
24740         PR middle-end/32824
24741         * passes.c (init_optimization_passes): Move pass_lim before
24742         pass_copy_prop and pass_dce_loop.
24743
24744 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
24745
24746         PR target/43667
24747         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
24748         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
24749         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
24750         MULTI_* defines for 4 argument vpermil2p* builtins.
24751
24752 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
24753
24754         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
24755         * config/i386/i386.c (x86_maybe_negate_const_int): New.
24756         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
24757         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
24758         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
24759         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
24760         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
24761         Use x86_maybe_negate_const_int to output insn mnemonic.
24762         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
24763         check from instruction predicate.  Update comments.
24764         * config/i386/sync.md (sync_add<mode>): Use
24765         x86_maybe_negate_const_int to output insn mnemonic.
24766
24767 2010-04-06  Jan Hubicka  <jh@suse.cz>
24768
24769         PR tree-optimization/42906
24770         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
24771         IGNORE_SELF argument.  Set visited_control_parents for fully
24772         processed BBs.
24773         (find_obviously_necessary_stmts): Update call of
24774         mark_control_dependent_edges_necessary.
24775         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
24776
24777 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
24778
24779         * config/i386/i386.md: Remove comment about 'e' and 'E'
24780         operand modifier.
24781
24782 2010-04-06  Richard Guenther  <rguenther@suse.de>
24783
24784         PR tree-optimization/43627
24785         * tree-vrp.c (extract_range_from_unary_expr): Widenings
24786         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
24787         not varying.
24788
24789 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
24790
24791         * BASE-VER: Change to 4.6.0.
24792
24793         PR target/43638
24794         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
24795         handling.
24796
24797 2010-04-06  Richard Guenther  <rguenther@suse.de>
24798
24799         PR middle-end/43661
24800         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
24801
24802 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24803
24804         * doc/invoke.texi (Optimize Options): Document that LTO
24805         won't remove object access purely due to incompatible
24806         declarations.
24807
24808 2010-04-04  Matthias Klose  <doko@ubuntu.com>
24809
24810         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
24811         Initialize variable.
24812
24813 2010-04-03  Richard Guenther  <rguenther@suse.de>
24814
24815         PR middle-end/42509
24816         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
24817         require a non-NULL MEM_OFFSET.
24818
24819 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
24820
24821         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
24822         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
24823         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
24824         config/alpha/predicates.md, config/arm/arm.md,
24825         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
24826         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
24827         config/darwin9.h, config/darwin.c, config/darwin.h,
24828         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
24829         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
24830         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
24831         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
24832         config/mips/mips.md, config/mn10300/mn10300.c,
24833         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
24834         config/rs6000/aix.h, config/rs6000/dfp.md,
24835         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
24836         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
24837         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
24838         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
24839         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
24840         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
24841         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
24842         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
24843         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
24844         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
24845         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
24846         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
24847         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
24848         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
24849         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
24850         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
24851         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
24852         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
24853         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
24854         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
24855         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
24856         opt-functions.awk, opth-gen.awk, params.def, passes.c,
24857         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
24858         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
24859         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
24860         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
24861         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
24862         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
24863         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
24864         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
24865         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
24866         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
24867         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
24868         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
24869         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
24870         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
24871
24872 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24873
24874         PR other/43620
24875         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
24876         * aclocal.m4: Regenerate.
24877
24878 2010-04-02  Richard Guenther  <rguenther@suse.de>
24879
24880         PR tree-optimization/43629
24881         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
24882         if we have seen a constant value.
24883
24884 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
24885
24886         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
24887
24888 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
24889
24890         PR target/43469
24891         * arm.c (legitimize_tls_address): Adjust call to
24892         gen_tls_load_dot_plus_four.
24893         (arm_note_pic_base): New function.
24894         (arm_cannot_copy_insn_p): Use it.
24895         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
24896         constraint.
24897
24898 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24899
24900         PR bootstrap/43531
24901
24902         Revert:
24903         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24904
24905         * Makefile.in ($(out_object_file)): Depend on
24906         gt-$(basename $(notdir $(out_file))).h.
24907
24908 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
24909
24910         * config.gcc (lm32-*-rtems*): Add t-lm32.
24911
24912 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
24913
24914         * config.gcc: Add lm32-*-rtems*.
24915         * config/lm32/rtems.h: New file.
24916
24917 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
24918
24919         PR target/42609
24920         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
24921
24922 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
24923
24924         * dwarf2out.c (output_compilation_unit_header): For
24925         -gdwarf-4 use version 4 instead of version 3.
24926         (output_line_info): For version 4 and above emit additional
24927         maximum ops per insn header field.
24928         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
24929
24930         * dwarf2out.c (is_c_family, is_java): Remove.
24931         (lower_bound_default): New function.
24932         (add_bound_info, gen_descr_array_type_die): Use it.
24933
24934 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
24935
24936         PR debug/43325
24937         * dwarf2out.c (gen_variable_die): Allow debug info for variable
24938         re-declaration when it happens in a function.
24939
24940 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
24941
24942         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
24943         (cgraph_remove_function_insertion_hook): Same.
24944         (cgraph_call_function_insertion_hooks): Same.
24945
24946 2010-04-01  Richard Guenther  <rguenther@suse.de>
24947
24948         PR middle-end/43614
24949         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
24950         and TREE_THIS_VOLATILE.
24951         (copy_ref_info): Likewise.
24952         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
24953         * tree.c (build6_stat): Ignore side-effects of all but arg5
24954         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
24955         TARGET_MEM_REF.
24956
24957 2010-04-01  Richard Guenther  <rguenther@suse.de>
24958
24959         PR tree-optimization/43607
24960         * ipa-type-escape.c (check_call): Do not access non-existing
24961         arguments.
24962
24963 2010-04-01  Richard Guenther  <rguenther@suse.de>
24964
24965         PR middle-end/43602
24966         Revert
24967         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
24968                     Jack Howarth  <howarth@bromo.med.uc.edu>
24969
24970         * tree-profile.c (tree_init_ic_make_global_vars): Make static
24971         variables TLS.
24972
24973 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24974
24975         * doc/install.texi (Prerequisites): Document libelf usability on
24976         IRIX 5/6 and Solaris 2.
24977         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
24978         Update GNU as, GNU ld requirements.
24979         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
24980         Document Sun Studio compiler download.
24981         Update and simplify as, ld recommendations.
24982         (Specific, *-*-solaris2.7): Note obsoletion, removal.
24983
24984 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24985
24986         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
24987         with_tune_32 to pentium4.
24988
24989 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
24990
24991         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
24992
24993 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24994
24995         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
24996         obsoletion, removal.
24997         Update IDO URL.
24998         Document GNU as requirement.
24999         Update configure requirements.
25000         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
25001         Recomment IRIX 6.5.18+.
25002         Document IDF/IDL requirement.
25003         Document GNU as requirement.
25004         Document GNU ld bootstrap failure.
25005         Remove freeware.sgi.com reference.
25006
25007 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25008
25009         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
25010         UNIX V4.0, V5.0 obsoletion, removal.
25011         Remove --with-gc=simple reference.
25012         Update VM requirements during bootstrap.
25013         Remove -oldas bootstrap description.
25014         Update binutils reference.
25015         Remove comparison failure note.
25016
25017 2010-03-31  Richard Guenther  <rguenther@suse.de>
25018             Zdenek Dvorak  <ook@ucw.cz>
25019             Sebastian Pop  <sebastian.pop@amd.com>
25020
25021         PR middle-end/43464
25022         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
25023         with multiple arguments.
25024         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
25025
25026 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
25027
25028         * graphite-dependences.c (print_pddr): Call print_pdr with an
25029         extra argument.
25030         * graphite-poly.c (debug_pdr): Add an extra argument for the
25031         verbosity level.
25032         (print_pdr): Same.
25033         (print_pbb_domain): Same.
25034         (print_pbb): Same.
25035         (print_scop_context): Same.
25036         (print_scop): Same.
25037         (print_cloog): Same.
25038         (debug_pbb_domain): Same.
25039         (debug_pbb): Same.
25040         (print_pdrs): Same.
25041         (debug_pdrs): Same.
25042         (debug_scop_context): Same.
25043         (debug_scop): Same.
25044         (debug_cloog): Same.
25045         (print_scop_params): Same.
25046         (debug_scop_params): Same.
25047         (print_iteration_domain): Same.
25048         (print_iteration_domains): Same.
25049         (debug_iteration_domain): Same.
25050         (debug_iteration_domains): Same.
25051         (print_scattering_function): Same.
25052         (print_scattering_functions): Same.
25053         (debug_scattering_function): Same.
25054         (debug_scattering_functions): Same.
25055         * graphite-poly.h (debug_pdr): Update declaration.
25056         (print_pdr): Same.
25057         (print_pbb_domain): Same.
25058         (print_pbb): Same.
25059         (print_scop_context): Same.
25060         (print_scop): Same.
25061         (print_cloog): Same.
25062         (debug_pbb_domain): Same.
25063         (debug_pbb): Same.
25064         (print_pdrs): Same.
25065         (debug_pdrs): Same.
25066         (debug_scop_context): Same.
25067         (debug_scop): Same.
25068         (debug_cloog): Same.
25069         (print_scop_params): Same.
25070         (debug_scop_params): Same.
25071         (print_iteration_domain): Same.
25072         (print_iteration_domains): Same.
25073         (debug_iteration_domain): Same.
25074         (debug_iteration_domains): Same.
25075         (print_scattering_function): Same.
25076         (print_scattering_functions): Same.
25077         (debug_scattering_function): Same.
25078         (debug_scattering_functions): Same.
25079
25080 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
25081
25082         * graphite-poly.c (print_scattering_function_1): New.
25083         (print_scattering_function): Call it.
25084         (print_scop_params): Remove spaces at the end of lines.
25085         (print_cloog): New.
25086         (debug_cloog): New.
25087         * graphite-poly.h (print_cloog): Declared.
25088         (debug_cloog): Declared.
25089
25090 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
25091
25092         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
25093         in loop->header.
25094         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
25095         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
25096         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
25097         to switch between adding the IV bump in loop->latch or in loop->header.
25098
25099 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
25100
25101         * graphite-poly.c (print_scattering_function): Pretty print following
25102         the scoplib format.
25103         (print_pdr): Same.
25104         (print_pbb_domain): Same.
25105         (dump_gbb_cases): Same.
25106         (dump_gbb_conditions): Same.
25107         (print_pdrs): Same.
25108         (print_pbb): Same.
25109         (print_scop_params): Same.
25110         (print_scop_context): Same.
25111         (print_scop): Same.
25112         (print_pbb_body): New.
25113         (lst_indent_to): New.
25114         (print_lst): Start new lines with a #.
25115         * graphite-poly.h (pbb_bb): New.
25116         (pbb_index): Use pbb_bb.
25117         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
25118         disjuncts.
25119         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
25120
25121 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
25122
25123         * dwarf2out.c (size_of_die): For -gdwarf-4 use
25124         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
25125         and 0 instead of 1 for dw_val_class_flag.
25126         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
25127         dw_val_class_range_list, dw_val_class_loc_list,
25128         dw_val_class_lineptr and dw_val_class_macptr, use
25129         DW_FORM_flag_present for dw_val_class_flag and
25130         DW_FORM_exprloc for dw_val_class_loc.
25131         (output_die): For -gdwarf-4 print dw_val_class_loc
25132         size as uleb128 instead of 1 or 2 bytes and don't print
25133         anything for dw_val_class_flag.
25134
25135         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
25136         instead of cselib_lookup following by tweaking locs->setting_insn.
25137
25138         PR bootstrap/43596
25139         * cselib.c (cselib_process_insn): Clear cselib_current_insn
25140         even before returning from label, setjmp call or volatile asm
25141         handling.
25142
25143 2010-03-31  Richard Guenther  <rguenther@suse.de>
25144
25145         PR middle-end/43600
25146         * cgraphunit.c (cgraph_output_in_order): Do not allocate
25147         temporary data on stack.
25148
25149 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25150
25151         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
25152         (PUSHSECTION_ASM_OP): Remove.
25153         (POPSECTION_ASM_OP): Remove.
25154         (PUSHSECTION_FORMAT): Remove.
25155         * config/sol2.h (PUSHSECTION_FORMAT): Define.
25156         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
25157         * config/sol2.c (solaris_output_init_fini): Use it.
25158
25159 2010-03-31  Jie Zhang  <jie@codesourcery.com>
25160
25161         PR 43574
25162         * opt-functions.awk (var_type_struct): Use signed char type
25163         for simple variables.
25164
25165 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25166
25167         * config/sol2.c: Include output.h.
25168         (solaris_assemble_visibility): New function.
25169         * config/t-sol2 (sol2.o): Add output.h dependency.
25170         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
25171         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
25172         Redefine.
25173
25174 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
25175
25176         PR target/43580
25177         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
25178         V2SImode or XFmode on PRE_DEC.
25179
25180         PR debug/43557
25181         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
25182         BLKmode.
25183
25184 2010-03-31  Jie Zhang  <jie@codesourcery.com>
25185
25186         PR 43562
25187         * reload.h (caller_save_initialized_p): Declare.
25188         * toplev.c (backend_init_target): Don't call
25189         init_caller_save but set caller_save_initialized_p to false.
25190         * caller-save.c (caller_save_initialized_p): Define.
25191         (init_caller_save): Check caller_save_initialized_p.
25192         * ira.c (ira): Call init_caller_save if flag_caller_saves.
25193
25194 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25195
25196         PR target/39048
25197         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
25198         and soft-fp/t-softfp to tmake_file.
25199         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
25200         (LIBGCC2_TF_CEXT): Define.
25201         (TF_SIZE): Define.
25202
25203 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
25204
25205         PR debug/42977
25206         * cselib.c (n_useless_values): Document handling of debug locs.
25207         (n_useless_debug_values, n_debug_values): New variables.
25208         (new_elt_loc_list): Don't add to debug values, keep count.
25209         (promote_debug_loc): New.
25210         (cselib_reset_table): Zero new variables.
25211         (entry_and_rtx_equal_p): Promote debug locs.
25212         (discard_useless_locs): Increment n_useless_debug_values for
25213         debug values.
25214         (remove_useless_values): Adjust n_useless_values and n_debug_values
25215         with n_useless_debug_values.
25216         (add_mem_for_addr): Promote debug locs.
25217         (cselib_lookup_mem): Likewise.
25218         (cselib_lookup_addr): Renamed to...
25219         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
25220         (cselib_log_lookup): ... this.  Turn into...
25221         (cselib_lookup_addr): ... new wrapper.
25222         (cselib_lookup_from_insn): New.
25223         (cselib_invalidate_regno): Increment n_useless_debug_values for
25224         debug values.
25225         (cselib_invalidate_mem): Likewise.
25226         (cselib_process_insn): Take n_deleted and n_debug_values into
25227         account to guard remove_useless_value call.
25228         (cselib_finish): Zero n_useless_debug_values.
25229         * cselib.h (cselib_lookup_from_insn): Declare.
25230         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
25231         (sched_analyze_2): Likewise.
25232
25233 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
25234
25235         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
25236         functions.
25237         (adjust_mems): Replace narrowing SUBREG of expression containing
25238         just PLUS, MINUS, MULT and ASHIFT of registers and constants
25239         with operations in the narrower mode.
25240
25241         PR debug/43593
25242         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
25243         regs_invalidated_by_call instead all call_used_reg_set registers.
25244
25245 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
25246
25247         PR middle-end/43430
25248         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
25249         pointer comparisons with types_compatible_p.
25250         * tree-vect-stmts.c (vectorizable_call): Same.
25251         (vectorizable_condition): Same.
25252
25253 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25254
25255         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
25256         stack check if the mask would be zero.
25257
25258 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
25259             Jack Howarth  <howarth@bromo.med.uc.edu>
25260
25261         * tree-profile.c (tree_init_ic_make_global_vars): Make static
25262         variables TLS.
25263
25264 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
25265
25266         PR other/25232
25267         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
25268         and __unordtf2.
25269         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
25270         Include ___unordxf2 and ___unordtf2.
25271         * config/i386/libgcc-glibc.ver: Do not define inheritance from
25272         GCC_4.4.0 here.
25273
25274 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
25275
25276         * config/lm32/t-lm32: New file.
25277         * config.gcc: Use the above file when targetting lm32.
25278
25279 2010-03-28  Duncan Sands  <baldrick@free.fr>
25280
25281         * Makefile.in (PLUGIN_HEADERS): Add except.h.
25282
25283 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
25284
25285         PR middle-end/43431
25286         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
25287         Improve vectorization cost model diagnostic.
25288
25289 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
25290
25291         PR middle-end/43436
25292         * tree-vect-data-refs.c (vect_analyze_data_refs): When
25293         compute_data_dependences_for_loop returns false, early exit
25294         and output an extra diagnostic for the failed data reference
25295         analysis.
25296
25297 2010-03-29  Richard Guenther  <rguenther@suse.de>
25298
25299         PR tree-optimization/43560
25300         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
25301         (can_sm_ref_p): Treat stores to readonly locations as trapping.
25302
25303 2010-03-29  Jie Zhang  <jie@codesourcery.com>
25304
25305         PR 43564
25306         * toplev.c (process_options): Set optimization_default_node
25307         and optimization_current_node.
25308         * opts.c (decode_options): Don't set optimization_default_node
25309         and optimization_current_node.
25310
25311 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
25312
25313         * config/rtems.h: Abandon -qrtems_debug.
25314
25315 2010-03-28  Jan Hubicka  <jh@suse.cz>
25316
25317         PR tree-optimization/43505
25318         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
25319         map should not be copied.
25320
25321 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25322
25323         PR middle-end/41674
25324         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
25325         cdtors, set DECL_PRESERVE_P.
25326         * ipa.c (cgraph_externally_visible_p): Return true if declaration
25327         should be preseved.
25328
25329 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
25330
25331         PR tree-optimization/43528
25332         * stor-layout.c (place_field): Check that constant fits into
25333         unsigned HWI when skipping calculation of MS bitfield layout.
25334
25335 2010-03-27  Jan Hubicka  <jh@suse.cz>
25336
25337         PR middle-end/43391
25338         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
25339         notice_global_symbol work.
25340
25341 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
25342
25343         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
25344         instead of dwarf2out_decl.
25345         (struct var_loc_node): Remove section_label field.
25346         (dwarf2out_function_decl): New function.
25347         (dwarf2out_var_location): Don't set section_label field.
25348         (dwarf2out_begin_function): Don't empty decl_loc_table here.
25349
25350 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
25351
25352         PR tree-optimization/43544
25353         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
25354         First argument for builtin vectorized function hook is now a
25355         tree to be able to distinguish between machine specific and
25356         standard builtins.
25357         * targhooks.c (default_builtin_vectorized_function): Ditto.
25358         * targhooks.h (default_builtin_vectorized_function): Ditto.
25359         * target.h (struct gcc_target): Ditto.
25360         * tree-vect-stmts.c (vectorizable_function): Ditto.
25361         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
25362         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
25363         Ditto.
25364
25365 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
25366
25367         PR c/43381
25368         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
25369         nested binding iff it is a FUNCTION_DECL.
25370         (store_parm_decls_newstyle): Pass nested=true to bind for
25371         FUNCTION_DECLs amongst parameters.
25372
25373 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
25374
25375         * var-tracking.c (vt_expand_loc_callback): Don't run
25376         cselib_expand_value_rtx_cb in dummy mode if
25377         cselib_dummy_expand_value_rtx_cb returned false.
25378
25379         * var-tracking.c (emit_note_insn_var_location): For one part
25380         notes with offset 0, don't add EXPR_LIST around the location.
25381         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
25382         add_location_or_const_value_attribute): Adjust for that change.
25383
25384         PR debug/43540
25385         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
25386         into first operand and location into second.
25387         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
25388         dw_cfi_oprnd_loc for DW_CFA_expression.
25389         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
25390         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
25391         assume first argument is regnum and second argument is location.
25392
25393 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
25394
25395         PR target/42113
25396         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
25397         of scratch register to DImode.  Split to DImode comparison operator.
25398         Use SImode subreg of scratch register in the multiplication.
25399         (*cmp_sadd_sidi): Ditto.
25400         (*cmp_ssub_si): Ditto.
25401         (*cmp_ssub_sidi): Ditto.
25402
25403 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
25404
25405         PR target/43524
25406         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
25407         Remove invalid assert and wrong comment.
25408
25409 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
25410
25411         PR debug/43516
25412         * flags.h (final_insns_dump_p): New extern.
25413         * final.c (final_insns_dump_p): New variable.
25414         (rest_of_clean_state): Set it before -fdump-final-insns=
25415         dumping, clear afterwards.
25416         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
25417         MEM_ALIAS_SET on MEMs.
25418
25419 2010-03-26  David S. Miller  <davem@davemloft.net>
25420
25421         * configure.ac: Fix sparc GOTDATA_OP bug check.
25422         * configure: Rebuild.
25423
25424 2010-03-26  Alan Modra  <amodra@gmail.com>
25425
25426         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
25427
25428 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25429
25430         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
25431         TLS_SECTION_ASM_FLAG.
25432
25433 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
25434
25435         PR bootstrap/43511
25436         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
25437         Clear first_function_block_is_cold.
25438
25439         PR c/43385
25440         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
25441         argument if the argument is truth_value_p.
25442
25443 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
25444
25445         * config/rs6000/constraints.md: Update copyright year for my changes.
25446
25447         PR target/43484
25448         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
25449         used in reg+reg addressing, swap registers.
25450
25451 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
25452
25453         PR debug/43293
25454         * target.h (struct gcc_target): Add code_end hook.
25455         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
25456         if not yet defined.
25457         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
25458         * toplev.c (compile_file): Call targetm.asm_out.code_end
25459         hook before unwind info/debug info output.
25460         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
25461         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
25462         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
25463         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
25464         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
25465         * config/i386/i386.c (ix86_file_end): Renamed to...
25466         (ix86_code_end): ... this.  Make static.  Don't call
25467         file_end_indicate_exec_stack.  Emit unwind info using
25468         final_start_function/final_end_function.
25469         (darwin_x86_file_end): Remove.
25470         (TARGET_ASM_CODE_END): Define.
25471         * config/i386/i386.h (TARGET_ASM_FILE_END,
25472         NEED_INDICATE_EXEC_STACK): Don't define.
25473         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
25474         (TARGET_ASM_FILE_END): Define to darwin_file_end.
25475         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
25476         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
25477
25478         PR target/43498
25479         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
25480         at the beginning and final_end_function at the end.
25481         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
25482
25483 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25484
25485         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
25486         and Sun as TLS syntax.
25487         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
25488         * configure: Regenerate.
25489         * config.in: Regenerate.
25490         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
25491         (default_elf_asm_named_section): Use it.
25492         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
25493         (i386_output_dwarf_dtprel): Likewise.
25494         (output_addr_const_extra): Likewise.
25495         (output_pic_addr_const): Lowercase @GOTTPOFF.
25496         (output_addr_const_extra): Likewise.
25497         (output_pic_addr_const): Lowercase @GOTNTPOFF.
25498         (output_addr_const_extra): Likewise.
25499         (output_pic_addr_const): Lowercase @INDNTPOFF.
25500         (output_addr_const_extra): Likewise.
25501         (output_pic_addr_const): Lowercase @NTPOFF.
25502         (output_addr_const_extra): Likewise.
25503         (output_pic_addr_const): Lowercase @TPOFF.
25504         (output_addr_const_extra): Likewise.
25505         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
25506         (*tls_global_dynamic_64): Likewise.
25507         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
25508         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
25509
25510         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
25511         (ASM_OUTPUT_TLS_COMMON): Use it.
25512         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
25513
25514         PR target/38118
25515         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
25516         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
25517         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
25518         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
25519         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
25520         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
25521
25522 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25523
25524         * config/i386/i386.c (override_options): Don't accept
25525         -mtls-dialect=sun any longer.
25526         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
25527         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
25528         (*tls_local_dynamic_base_32_sun): Likewise.
25529         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
25530
25531 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
25532
25533         PR debug/43508
25534         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
25535         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
25536
25537         PR debug/43479
25538         * ira.c (adjust_cleared_regs): New function.
25539         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
25540
25541         PR debug/19192
25542         PR debug/43479
25543         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
25544         from gimple_block.
25545         * expr.c (expand_expr_real): Restore previous
25546         curr_insn_source_location and curr_insn_block after
25547         expand_expr_real_1 call.
25548         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
25549         instead of expand_expr_real_1.
25550
25551 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
25552
25553         PR rtl-optimization/43413
25554         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
25555         hard regs too.
25556
25557 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
25558
25559         PR target/43348
25560         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
25561         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
25562
25563 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
25564
25565         * config/i386/i386.c (ix86_target_string): Add -mfma.
25566         Fix a typo in comment.
25567
25568 2010-03-22  Mike Stump  <mikestump@comcast.net>
25569
25570         PR target/23071
25571         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
25572         Don't overly align based upon packed packed fields.
25573
25574 2010-03-22  Jason Merrill  <jason@redhat.com>
25575
25576         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
25577         Use () rather than [], and move before the element type.
25578
25579 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25580
25581         * doc/configfiles.texi (Configuration Files): Removed
25582         fixinc/Makefile*, intl/Makefile.*.
25583         * doc/makefile.texi: Fixed markup. Abstract from version
25584         control system used.
25585         (Makefile): Removed obsolete java/parse.y example.
25586         * doc/sourcebuild.texi: Likewise.
25587         (Top Level): Added config, gnattools, libdecnumber, libgcc,
25588         libgomp, libssp.  Removed fastjar.
25589         (Miscellaneous Docs): Clarify location.
25590         Added COPYING3, COPYING3.LIB.
25591         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
25592
25593 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25594
25595         PR target/38085
25596         * config/i386/i386.c (x86_function_profiler)
25597         [!NO_PROFILE_COUNTERS]: Fix typo.
25598         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
25599         instead of callq.
25600
25601 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
25602             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25603
25604         * doc/sourcebuild.texi (Test Directives): Split into six
25605         subsections, with most of the current text in new subsections
25606         Directives, Selectors, and Final Actions.
25607         (Directives): Split list of test directives into multiple
25608         subsubsections.
25609         (Selectors): Describe use and syntax of selectors.
25610         (Effective-Target Keywords): Describe all existing keywords.
25611         (Add Options): Describe features for dg-add-options.
25612         (Require Support): Describe variants of dg-require-support.
25613         (Final Actions): Describe commands to use in dg-final.
25614
25615 2010-03-22  Michael Matz  <matz@suse.de>
25616
25617         PR middle-end/43475
25618         * recog.c (validate_replace_rtx_group): Replace also in
25619         REG_EQUAL and REG_EQUIV notes.
25620
25621 2010-03-22  Richard Guenther  <rguenther@suse.de>
25622
25623         PR tree-optimization/43390
25624         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
25625         sure vector extracts are type correct.
25626
25627 2010-03-22  Richard Guenther  <rguenther@suse.de>
25628
25629         PR middle-end/40106
25630         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
25631         x * sqrt (x) even when optimizing for size if the target
25632         has native support for sqrt.
25633
25634 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
25635
25636         * varasm.c (make_decl_rtl_for_debug): Also clear
25637         flag_mudflap for the duration of make_decl_rtl call.
25638
25639         PR debug/43443
25640         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
25641         locs from preserved VALUEs.
25642
25643 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25644
25645         PR middle-end/42718
25646         * pa.md (movmemsi): Set align to one if zero.
25647         (movmemdi): Likewise.
25648
25649 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
25650
25651         PR target/42321
25652         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
25653         with their corresponding prologue pushes.
25654
25655 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
25656
25657         PR target/43156
25658         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
25659         at the begining or end.
25660         (spu_expand_epilogue): Likewise.
25661
25662 2010-03-20  Richard Guenther  <rguenther@suse.de>
25663
25664         PR rtl-optimization/43438
25665         * combine.c (make_extraction): Properly zero-/sign-extend an
25666         extraction of the low part of a CONST_INT.  Also handle
25667         CONST_DOUBLE.
25668
25669 2010-03-19  Mike Stump  <mikestump@comcast.net>
25670
25671         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
25672         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
25673         (override_options): Use SUBTARGET32_DEFAULT_CPU.
25674
25675 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
25676
25677         PR c/43211
25678         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
25679         an error.
25680
25681 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
25682
25683         PR rtl-optimization/42258
25684         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
25685         use that may match DEF.
25686
25687         PR target/40697
25688         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
25689         the cost of loading the constant rather than assuming
25690         COSTS_N_INSNS (1).
25691         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
25692         outer code is AND, do the same tests as the andsi3 expander and
25693         return COSTS_N_INSNS (1) if and is cheap.
25694
25695         * optabs.c (avoid_expensive_constant): Fix formatting.
25696
25697 2010-03-19  Michael Matz  <matz@suse.de>
25698
25699         PR c++/43116
25700         * attribs.c (decl_attributes): When rebuilding a function pointer
25701         type use the same qualifiers as the original pointer type.
25702
25703 2010-03-19  Martin Jambor  <mjambor@suse.cz>
25704
25705         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
25706         and is_gimple_ip_invariant_address.
25707
25708 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25709
25710         Revert
25711         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25712
25713         * config/arm/arm.c (arm_override_options): Turn off
25714         flag_dwarf2_cfi_asm for AAPCS variants.
25715
25716 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25717
25718         PR target/43399
25719         * config/arm/arm.c (emit_multi_reg_push): Update comments.
25720         Use PRE_MODIFY instead of PRE_DEC.
25721         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
25722         (vfp_emit_fstmd): Likewise.
25723
25724 2010-03-19  Michael Matz  <matz@suse.de>
25725
25726         PR target/43305
25727         * builtins.c (expand_builtin_interclass_mathfn,
25728         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
25729         if that fails.
25730
25731 2010-03-19  Richard Guenther  <rguenther@suse.de>
25732
25733         PR tree-optimization/43415
25734         * tree-ssa-pre.c (phi_translate): Split out worker to ...
25735         (phi_translate_1): ... this.
25736         (phi_translate): Move all caching here.  Cache all NARY
25737         and REFERENCE translations.
25738
25739 2010-03-19  David S. Miller  <davem@davemloft.net>
25740
25741         With help from Eric Botcazou.
25742         * config/sparc/sparc.c: Include dwarf2out.h.
25743         (emit_pic_helper): Delete.
25744         (pic_helper_symbol_name): Delete.
25745         (pic_helper_emitted_p): Delete.
25746         (pic_helper_needed): New.
25747         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
25748         (get_pc_thunk_name): New.
25749         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
25750         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
25751         Set pic_helper_needed to true.  Don't call emit_pic_helper.
25752         (sparc_expand_prologue): Update load_pic_register call.
25753         (sparc_output_mi_thunk): Likewise.
25754         (sparc_file_end): Emit a hidden comdat symbol for the PIC
25755         thunk if possible.  Output CFI information as needed.
25756
25757 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
25758             Jack Howarth  <howarth@bromo.med.uc.edu>
25759
25760         PR target/36399
25761         * config/i386/i386.h: Fix ABI on darwin x86-32.
25762
25763 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
25764
25765         * tree.h: Declare make_decl_rtl_for_debug.
25766         * varasm.c (make_decl_rtl_for_debug): New.
25767         * dwarf2out.c (rtl_for_decl_location): Call it.
25768         * cfgexpand.c (expand_debug_expr): Call it.
25769
25770 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
25771
25772         PR bootstrap/43399
25773         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
25774         mem_mode.
25775
25776         PR bootstrap/43403
25777         * var-tracking.c (vt_init_cfa_base): Do nothing if
25778         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
25779
25780 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
25781
25782         PR debug/42873
25783         * var-tracking.c (canonicalize_vars_star): New.
25784         (dataflow_post_merge_adjust): Use it.
25785
25786 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
25787
25788         PR debug/43058
25789         * var-tracking.c (non_suitable_const): New function.
25790         (add_uses): For DEBUG_INSNs with constants, don't record any
25791         value, instead just the constant value itself.
25792         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
25793         is not VAR_LOC_UNKNOWN_P, set var to the constant.
25794         (emit_notes_in_bb): Likewise.
25795         (emit_note_insn_var_location): For onepart variables if
25796         cur_loc is a VOIDmode constant, use DECL_MODE.
25797
25798 2010-03-18  Martin Jambor  <mjambor@suse.cz>
25799
25800         PR middle-end/42450
25801         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
25802         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
25803         all non-clones.  Moved call redirection...
25804         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
25805         (cgraph_materialize_all_clones): Dispose of all
25806         combined_args_to_skip bitmaps.
25807         (verify_cgraph_node): Do not check for edges pointing to wrong
25808         nodes in inline clones.
25809         * tree-inline.c (copy_bb): Call
25810         cgraph_redirect_edge_call_stmt_to_callee.
25811         * ipa.c (cgraph_remove_unreachable_nodes): Call
25812         cgraph_node_remove_callees even when there are used clones.
25813
25814 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
25815
25816         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
25817
25818 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
25819
25820         PR target/43383
25821         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
25822         for 32bit.
25823
25824 2010-03-18  Michael Matz  <matz@suse.de>
25825
25826         PR middle-end/43419
25827         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
25828         into sqrt(x) if we need to preserve signed zeros.
25829
25830 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
25831             Eric Botcazou  <ebotcazou@adacore.com>
25832
25833         PR rtl-optimization/43360
25834         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
25835         note if we don't know its invariant status.
25836
25837 2010-03-18  Michael Matz  <matz@suse.de>
25838
25839         PR tree-optimization/43402
25840         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
25841         PHI chains of ssa names registered for update.
25842
25843 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
25844
25845         PR target/42427
25846         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
25847         non-offsettable and pre_modify update addressing.
25848         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
25849         and "2" alternatives "#".
25850         (*movdd_softfloat32): Make all alternatives "#";
25851         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
25852         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
25853         (*movdf_softfloat32): Make all alternatives "#";
25854         (movdi): Use the new DIFD mode iterator to create a common splitter
25855         for movdi, movdf and movdd patterns.
25856
25857 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
25858
25859         * common.opt (dumpdir): Remove redundant tab.
25860
25861 2010-03-17  Martin Jambor  <mjambor@suse.cz>
25862
25863         PR tree-optimization/43347
25864         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
25865         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
25866
25867 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
25868
25869         PR rtl-optimization/42216
25870         * regrename.c (create_new_chain): New function, broken out from...
25871         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
25872         appending a use to an empty chain.
25873         (build_def_use): Remove previous changes that convert OP_INOUT to
25874         OP_OUT operands; instead detect the case where an OP_INOUT operand
25875         uses a previously untracked register and create an empty chain for it.
25876
25877 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25878
25879         * doc/extend.texi (Function Attributes): Rewrite unfinished
25880         sentence in ms_abi documentation.
25881
25882 2010-03-17  Alan Modra  <amodra@gmail.com>
25883
25884         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
25885         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
25886         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
25887         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
25888
25889 2010-03-16  Richard Henderson  <rth@redhat.com>
25890
25891         PR middle-end/43365
25892         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
25893         (lower_try_finally): Save and restore eh_seq around the expansion
25894         of the try-finally.
25895
25896 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
25897
25898         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
25899         statements before splitting block.
25900
25901 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25902
25903         * doc/sourcebuild.texi (Testsuites): Fix markup.
25904         Use pathnames relative to gcc/testsuite.
25905         (Test Directives): Move description of how timeout is determined.
25906         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
25907         (C Tests): Correct gcc.misc-tests directory.
25908         Framework tests now live in gcc.test-framework.
25909
25910 2010-03-16  Richard Guenther  <rguenther@suse.de>
25911
25912         PR middle-end/43379
25913         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
25914         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
25915
25916 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
25917             Alexandre Oliva  <aoliva@redhat.com>
25918
25919         PR tree-optimization/42917
25920         * lambda-code.c (remove_iv): Skip debug statements.
25921         (lambda_loopnest_to_gcc_loopnest): Likewise.
25922         (not_interesting_stmt): Debug statements are not interesting.
25923
25924 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
25925
25926         PR debug/43051
25927         PR debug/43092
25928         * cselib.c (cselib_preserve_constants,
25929         cfa_base_preserved_val): New static variables.
25930         (preserve_only_constants): New function.
25931         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
25932         clear its REG_VALUES.  If cselib_preserve_constants, don't
25933         empty the whole hash table, but preserve there VALUEs with constants,
25934         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
25935         (cselib_preserve_cfa_base_value): New function.
25936         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
25937         (cselib_init): Change argument to int bitfield.  Set
25938         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
25939         is in it.
25940         (cselib_finish): Clear cselib_preserve_constants and
25941         cfa_base_preserved_val.
25942         * cselib.h (enum cselib_record_what): New enum.
25943         (cselib_init): Change argument to int.
25944         (cselib_preserve_cfa_base_value): New prototype.
25945         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
25946         * dse.c (dse_step1): Likewise.
25947         * cfgcleanup.c (thread_jump): Likewise.
25948         * sched-deps.c (sched_analyze): Likewise.
25949         * gcse.c (local_cprop_pass): Likewise.
25950         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
25951         If FN is non-NULL, call the callback always and whenever it returns
25952         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
25953         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
25954         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
25955         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
25956         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
25957         * var-tracking.c: Include recog.h.
25958         (bb_stack_adjust_offset): Remove.
25959         (vt_stack_adjustments): Don't call it, instead just gather the
25960         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
25961         (adjust_stack_reference): Remove.
25962         (compute_cfa_pointer): New function.
25963         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
25964         (struct adjust_mem_data): New type.
25965         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
25966         functions.
25967         (get_address_mode): New function.
25968         (replace_expr_with_values): Use it.
25969         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
25970         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
25971         (adjust_sets): Remove.
25972         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
25973         Use get_address_mode.
25974         (get_adjusted_src): Remove.
25975         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
25976         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
25977         (add_with_sets): Don't call adjust_sets.
25978         (fp_setter, vt_init_cfa_base): New functions.
25979         (vt_initialize): Change return type to bool.  Move most of pool etc.
25980         initialization to the beginning of the function from end.  Pass
25981         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
25982         If !frame_pointer_needed, call vt_stack_adjustment before mos
25983         vector is filled, call vt_init_cfa_base if argp/framep has been
25984         eliminated to sp.  If frame_pointer_needed and argp/framep has
25985         been eliminated to hard frame pointer, set
25986         hard_frame_pointer_adjustment and call vt_init_cfa_base after
25987         encountering fp setter in the prologue.  For MO_ADJUST, call
25988         log_op_type before pusing the op into mos vector, not afterwards.
25989         Call adjust_insn before cselib_process_insn/add_with_sets,
25990         call cancel_changes (0) afterwards.
25991         (variable_tracking_main_1): Adjust for vt_initialize calling
25992         vt_stack_adjustments and returning whether it succeeded or not.
25993
25994 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
25995
25996         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
25997         debug statements.
25998
25999 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
26000
26001         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
26002         has been set.
26003         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
26004         drap_reg has not been set.
26005
26006 2010-03-15  Michael Matz  <matz@suse.de>
26007
26008         PR middle-end/43300
26009         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
26010         use it to expand block copies.
26011         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
26012         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
26013         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
26014
26015 2010-03-15  Richard Guenther  <rguenther@suse.de>
26016
26017         PR tree-optimization/43367
26018         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
26019         elimination check.
26020
26021 2010-03-15  Richard Guenther  <rguenther@suse.de>
26022
26023         PR tree-optimization/43317
26024         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
26025
26026 2010-03-15  Martin Jambor  <mjambor@suse.cz>
26027
26028         PR tree-optimization/43141
26029         * tree-sra.c (create_abstract_origin): New function.
26030         (modify_function): Call create_abstract_origin.
26031
26032 2010-03-15  Chris Demetriou  <cgd@google.com>
26033
26034         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
26035         wasn't copied.
26036
26037 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
26038
26039         PR middle-end/43354
26040         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
26041         call insert_out_of_ssa_copy for default definitions.
26042
26043 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
26044
26045         * graphite-clast-to-gimple.c (my_long_long): Defined.
26046         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
26047         * graphite-sese-to-poly.c (my_long_long): Defined.
26048         (scop_ivs_can_be_represented): Use it.
26049
26050 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
26051
26052         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
26053         graphite-max-bbs-per-function, and loop-block-tile-size.
26054         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
26055         with "maximum".
26056         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
26057
26058 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
26059
26060         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
26061         forward declaration.
26062         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
26063         (add_upper_bounds_from_estimated_nit): New.
26064         (build_loop_iteration_domains): Use it.
26065
26066 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
26067
26068         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
26069
26070 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
26071
26072         PR middle-end/43306
26073         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
26074         should be an INTEGER_CST.  Also handle CASE_CONVERT.
26075
26076 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
26077
26078         * graphite.c (graphite_initialize): To bound the number of bbs per
26079         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
26080         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
26081         * doc/invoke.texi: Document it.
26082
26083 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
26084
26085         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
26086         * graphite-sese-to-poly.h (build_poly_scop): Same.
26087
26088 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
26089
26090         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
26091         the number of parameters in the scop.  Use as an upper bound
26092         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
26093         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
26094         * doc/invoke.texi: Document it.
26095
26096 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
26097
26098         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
26099         * doc/c-tree.texi: Remove.
26100         * doc/generic.texi: Merge c-tree.texi here.
26101         * doc/gccint.texi (Trees): Remove menu entry.
26102         (c-tree.texi): Remove @include.
26103         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
26104         * doc/languages.texi (Reading RTL): Ditto.
26105
26106 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
26107
26108         PR target/42869
26109         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
26110
26111 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
26112
26113         PR middle-end/42431
26114         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
26115         code added to work around reload clobbering CONST insns.
26116
26117 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
26118
26119         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
26120         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
26121         (cselib_preserve_only_values): Remove retain argument, don't
26122         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
26123         * cselib.h (cselib_preserve_only_values): Remove retain argument.
26124         * var-tracking.c (micro_operation): Move insn field before union.
26125         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
26126         (struct variable_tracking_info_def): Remove n_mos field, change
26127         mos into a vector of micro_operations.
26128         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
26129         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
26130         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
26131         changing into a vector.
26132         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
26133         come before all other uops generated by add_stores.
26134         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
26135         argument removal.
26136         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
26137         a vector.  Run just one pass over the bbs instead of separate counting
26138         and computation phase.
26139         (vt_finalize): Free VTI (bb)->mos vector instead of array.
26140
26141         PR debug/43329
26142         * tree-inline.c (remap_decls): Put old_var rather than origin_var
26143         into *nonlocalized_list vector.
26144         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
26145         even if origin is non-NULL.
26146         (gen_variable_die): Likewise.
26147         (process_scope_var): Don't change origin.
26148         (gen_decl_die): Likewise.
26149         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
26150         before adding new edges instead of after it, fix moving over
26151         debug stmts.
26152
26153 2010-03-11  David S. Miller  <davem@davemloft.net>
26154
26155         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
26156         of four.
26157         * configure: Rebuild.
26158
26159 2010-03-11  Martin Jambor  <mjambor@suse.cz>
26160
26161         PR tree-optimization/43257
26162         * tree.c (assign_assembler_name_if_neeeded): New function.
26163         (free_lang_data_in_cgraph): Assembler name assignment moved to the
26164         above new function.
26165         * tree.h (assign_assembler_name_if_neeeded): Declare.
26166         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
26167         the function if needed.
26168
26169 2010-03-11  Chris Demetriou  <cgd@google.com>
26170
26171         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
26172         include/stdint-gcc.h, and include/stdint.h world-readable.
26173
26174 2010-03-11  Richard Guenther  <rguenther@suse.de>
26175
26176         PR tree-optimization/43255
26177         * tree-vrp.c (process_assert_insertions_for): Do not insert
26178         asserts for trivial conditions.
26179
26180 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26181
26182         PR tree-optimization/43280
26183         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
26184         generation.  Move calculation of size out of the if branch.
26185         (find_bswap): Modify compare number generation.
26186
26187 2010-03-11  Richard Guenther  <rguenther@suse.de>
26188
26189         PR lto/43200
26190         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
26191         (input_gimple_stmt): Fixup handled component types during
26192         operand read.  Also fix up decls in ADDR_EXPRs.
26193
26194 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
26195
26196         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
26197         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
26198
26199 2010-03-10  Jan Hubicka  <jh@suse.cz>
26200
26201         PR c/43288
26202         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
26203         * varasm.c (get_variable_section): Don't do that here...
26204         (make_decl_rtl): ... and here.
26205         (do_assemble_alias): Produce decl RTL.
26206         (assemble_alias): Likewise.
26207
26208 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
26209
26210         PR debug/43290
26211         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
26212         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
26213         of fde->vdrap_reg.
26214         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
26215         (based_loc_descr): Only express drap or vdrap regno based expressions
26216         using DW_OP_fbreg when not optimizing.
26217         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
26218         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
26219         REG_CFA_SET_VDRAP note.
26220
26221 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
26222
26223         PR tree-optimization/43236
26224         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
26225         error in calculation of base address in reverse iteration case.
26226         (generate_builtin): Take number of latch executions if the statement
26227         is in the latch.
26228
26229 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
26230
26231         PR middle-end/42859
26232         * tree-eh.c: Include pointer-set.h.
26233         (lower_eh_dispatch): Filter out duplicate case labels and
26234         remove the unneeded edge when the label is unused.  Return
26235         true when some edges are removed.
26236         (execute_lower_eh_dispatch): When any lowering resulted in
26237         removing an edge, also delete unreachable blocks.
26238
26239 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
26240
26241         PR bootstrap/43287
26242         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
26243         UNSPEC_MACHOPIC_OFFSET.
26244
26245 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
26246
26247         PR target/43294
26248         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
26249         (m68k_delegitimize_address): New function.
26250
26251 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
26252
26253         PR debug/43299
26254         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
26255
26256         PR debug/43299
26257         * var-tracking.c (adjust_sets): New function.
26258         (count_with_sets, add_with_sets): Use it.
26259         (get_adjusted_src): New inline function.
26260         (add_stores): Use it.
26261
26262         PR debug/43304
26263         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
26264         call cselib_dummy_expand_value_rtx_cb instead of
26265         cselib_expand_value_rtx_cb.
26266
26267         PR debug/43293
26268         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
26269         * config/i386/i386.c: Include debug.h and dwarf2out.h.
26270         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
26271         and .cfi_endproc around the pic thunks.
26272         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
26273         all queued unwind info register saves are saved before the call.
26274         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
26275         considered as sp-=4 for unwind info and the pop as sp+=4 which
26276         also clobbers dest, but doesn't actually restore it.
26277
26278         PR debug/43290
26279         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
26280         RTX_FRAME_RELATED_P.
26281
26282 2010-03-09  Jie Zhang  <jie@codesourcery.com>
26283
26284         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
26285         whitespaces in output template.
26286
26287 2010-03-09  Jie Zhang  <jie@codesourcery.com>
26288
26289         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
26290         out array boundary.
26291
26292 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
26293
26294         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
26295         builtins.exp in a separate job.
26296
26297 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26298
26299         * graphite-sese-to-poly.c (add_param_constraints): Use
26300         lower_bound_in_type and upper_bound_in_type.
26301
26302 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26303
26304         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
26305         instead of unsigned_type_node.
26306
26307 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26308             Reza Yazdani  <reza.yazdani@amd.com>
26309
26310         PR middle-end/43065
26311         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
26312         on pointer type parameters.
26313
26314 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
26315
26316         PR middle-end/42644
26317         PR middle-end/42130
26318         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
26319         handle conversions from pointer to integers.
26320         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
26321         induction variable, to be able to work with code generated by CLooG.
26322         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
26323         (build_poly_scop): Bail out if we cannot codegen a loop.
26324
26325 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
26326
26327         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
26328         code generation with gloog_error.
26329
26330 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26331
26332         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
26333         Call fold_convert on all the returned values.
26334         (expand_scalar_variables_expr): Pass to
26335         expand_scalar_variables_ssa_name the type of the resulting expression.
26336
26337 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26338
26339         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
26340         ppl_min_for_le_pointset.
26341         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
26342         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
26343
26344 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26345
26346         * graphite-dependences.c (map_into_dep_poly): Removed.
26347         (dependence_polyhedron_1): Use combine_context_id_scat.
26348
26349 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26350
26351         * graphite-poly.h (struct poly_scattering): Add layout documentation.
26352         (struct poly_bb): Same.
26353         (combine_context_id_scat): New.
26354
26355 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26356
26357         PR middle-end/42326
26358         * sese.c (name_defined_in_loop_p): Return false for default
26359         definitions.
26360
26361 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26362
26363         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
26364         and clean up the logic.
26365
26366 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
26367
26368         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
26369         early return.
26370
26371 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
26372
26373         * var-tracking.c (remove_cselib_value_chains): Define only for
26374         ENABLE_CHECKING.
26375         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
26376         delete_slot_part, emit_notes_for_differences_1): Don't call
26377         remove_cselib_value_chains here.
26378         (set_slot_part, emit_notes_for_differences_2): Don't call
26379         add_cselib_value_chains here.
26380         (preserved_values): New vector.
26381         (preserve_value): New function.
26382         (add_uses, add_stores, vt_add_function_parameters): Use it
26383         instead of cselib_preserve_value.
26384         (changed_values_stack): New vector.
26385         (check_changed_vars_0): New function.
26386         (check_changed_vars_1, check_changed_vars_2): Use it.
26387         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
26388         changed_values_stack VALUEs.
26389         (vt_emit_notes): For all preserved_values call
26390         add_cselib_value_chains.  If ENABLE_CHECKING call
26391         remove_cselib_value_chains before verifying value_chains is empty.
26392         Initialize and free changed_values_stack.
26393         (vt_initialize): Initialize preserved_values.
26394         (vt_finalize): Free preserved_values.
26395
26396 2010-03-08  Richard Guenther  <rguenther@suse.de>
26397
26398         PR tree-optimization/43269
26399         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
26400         region detection.
26401
26402 2010-03-08  Martin Jambor  <mjambor@suse.cz>
26403
26404         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
26405         (ipa_is_param_called): Removed.
26406         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
26407         (ipa_print_node_params): Do not print the called flag.
26408         (ipa_write_node_info): Do not stream the called flag.
26409         (ipa_read_node_info): Likewise.
26410
26411 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
26412
26413         PR debug/43176
26414         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
26415         * cselib.c (struct expand_value_data): Add dummy field.
26416         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
26417         dummy to false.
26418         (cselib_dummy_expand_value_rtx_cb): New function.
26419         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
26420         any rtl.
26421         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
26422         * var-tracking.c: Include pointer-set.h.
26423         (variable): Change n_var_parts to char from int.  Add
26424         cur_loc_changed and in_changed_variables fields.
26425         (variable_canonicalize): Remove.
26426         (shared_var_p): New inline function.
26427         (unshare_variable): Maintain cur_loc_changed and
26428         in_changed_variables fields.  If var was in changed_variables,
26429         replace it there with new_var.  Just copy cur_loc instead of
26430         resetting it to something else.
26431         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
26432         (dataflow_set_union): Don't call variable_canonicalize.
26433         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
26434         of their DEBUG_EXPR_TREE_DECLs.
26435         (canonicalize_loc_order_check): Verify that cur_loc is NULL
26436         and in_changed_variables and cur_loc_changed is false.
26437         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
26438         and cur_loc_changed.  Don't update cur_loc here.
26439         (variable_merge_over_src): Don't call variable_canonicalize.
26440         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
26441         removing loc that is equal to cur_loc, clear cur_loc,
26442         set cur_loc_changed and ensure variable_was_changed is called.
26443         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
26444         compare pointers in cur_loc check, if it is equal to loc,
26445         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
26446         (variable_different_p): Remove compare_current_location argument,
26447         don't compare cur_loc.
26448         (dataflow_set_different_1): Adjust variable_different_p caller.
26449         (variable_was_changed): If dv had some var in changed_variables
26450         already, reset in_changed_variables flag for it and propagate
26451         cur_loc_changed over to the new variable.  On empty var
26452         always set cur_loc_changed.  Set in_changed_variables on whatever
26453         var is added to changed_variables.
26454         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
26455         Use shared_var_p.  When removing loc that is equal to cur_loc,
26456         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
26457         end, don't set it to something else, just call variable_was_changed.
26458         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
26459         loc being removed, clear cur_loc and set cur_loc_changed.
26460         Set cur_loc_changed if all locations have been removed.
26461         (struct expand_loc_callback_data): New type.
26462         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
26463         allocated.  Always create SUBREGs if simplify_subreg failed.
26464         Prefer to use cur_loc, when that fails and still in
26465         changed_variables (and seen first time) recompute it.  Set
26466         cur_loc_changed of variables which had to change cur_loc and
26467         compute elcd->cur_loc_changed if any of the subexpressions used
26468         had to change cur_loc.
26469         (vt_expand_loc): Adjust to pass arguments in
26470         expand_loc_callback_data structure.
26471         (vt_expand_loc_dummy): New function.
26472         (emitted_notes): New variable.
26473         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
26474         that weren't used for any other decl in current
26475         emit_notes_for_changes call call vt_expand_loc_dummy to update
26476         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
26477         first loc_chain location if NULL before.  Always use just
26478         cur_loc instead of first loc_chain location.  When cur_loc_changed
26479         is false, when not --enable-checking=rtl just don't emit any note.
26480         When rtl checking, compute the note and assert it is the same
26481         as previous note.  Clear cur_loc_changed and in_changed_variables
26482         at the end before removing from changed_variables.
26483         (check_changed_vars_3): New function.
26484         (emit_notes_for_changes): Traverse changed_vars to call
26485         check_changed_vars_3 on each changed var.
26486         (emit_notes_for_differences_1): Clear cur_loc_changed and
26487         in_changed_variables.  Recompute cur_loc of new_var.
26488         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
26489         (vt_emit_notes): Initialize and destroy emitted_notes.
26490
26491 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
26492
26493         PR rtl-optimization/42220
26494         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
26495         Use verify_reg_tracked to determine if we should use OP_OUT rather
26496         than OP_INOUT.
26497         (build_def_use): If we see an in-out operand for a register that we
26498         know nothing about, treat is an output if possible, fail the block if
26499         not.
26500
26501 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
26502
26503         PR debug/42897
26504         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
26505         permanently.
26506
26507 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
26508
26509         PR debug/42897
26510         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
26511         uses of relevant DEFs that are dead outside the loop too.
26512
26513 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
26514
26515         * var-tracking.c (dataflow_set_merge): Swap src and src2.
26516         Reverted:
26517         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
26518         PR debug/41371
26519         * var-tracking.c (values_to_unmark): New variable.
26520         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
26521         values_to_unmark vector.  Moved body to...
26522         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
26523         instead queue it into values_to_unmark vector.
26524         (vt_find_locations): Free values_to_unmark vector.
26525
26526 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
26527
26528         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
26529         (site.exp): Export them when plugins are enabled.
26530
26531 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
26532
26533         PR middle-end/42326
26534         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
26535         that contain scevs.
26536         (chrec_fold_multiply): Same.
26537
26538 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
26539
26540         PR c/43248
26541         * c-decl.c (build_compound_literal): Return early if init is
26542         an error_mark_node.
26543
26544 2010-03-04  Martin Jambor  <mjambor@suse.cz>
26545
26546         PR tree-optimization/43164
26547         PR tree-optimization/43191
26548         * tree-sra.c (type_consists_of_records_p): Reject records with
26549         zero-size bit-fields at the end.
26550
26551 2010-03-04  Mike Stump  <mikestump@comcast.net>
26552
26553         * Makefile.in (TAGS): Remove *.y.
26554
26555 2010-03-04  Richard Guenther  <rguenther@suse.de>
26556
26557         PR tree-optimization/40761
26558         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
26559         in reverse order.
26560         (my_rev_post_order_compute): New function.
26561         (init_pre): Call it.
26562
26563 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
26564
26565         PR middle-end/43209
26566         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
26567         decrease the cost of an IV candidate when the cost is infinite.
26568
26569 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26570
26571         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
26572         Use '3DNow!' for the extension of that name, ensure normal space
26573         after the string.
26574         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
26575
26576 2010-03-03  Jeff Law  <law@redhat.com>
26577
26578         * PR middle-end/32693
26579         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
26580         than gen_rtx_SUBREG.
26581         (extract_bit_field_1): Likewise.
26582
26583 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
26584
26585         * doc/sourcebuild.texi (Test directives): Document that arguments
26586         include-opts and exclude-opts are now optional for dg-skip-if,
26587         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
26588
26589 2010-03-03  Jason Merrill  <jason@redhat.com>
26590
26591         PR c++/12909
26592         * cgraph.h (varpool_node): Add extra_name field.
26593         * varpool.c (varpool_extra_name_alias): New.
26594         (varpool_assemble_decl): Emit extra name aliases.
26595         (varpool_mark_needed_node): Look past an extra name alias.
26596         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
26597         * lto-streamer-in.c (lto_input_tree): Read it.
26598         * lto-streamer-out.c (output_unreferenced_globals): Write it.
26599
26600 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
26601
26602         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
26603         (sparc*-*-solaris2*): ...this.
26604
26605 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
26606
26607         PR debug/43229
26608         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
26609         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
26610         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
26611         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
26612
26613         PR debug/43237
26614         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
26615         fallthrough to default handling, just with want_address 0 instead of 2.
26616         For single element lists, add_AT_loc directly, otherwise create an
26617         artificial variable DIE and stick location list to it.
26618
26619         PR debug/43177
26620         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
26621         (VAL_EXPR_HAS_REVERSE): Define.
26622         (reverse_op): New function.
26623         (add_stores): For reversible operations add an extra MO_VAL_USE.
26624
26625 2010-03-02  Jason Merrill  <jason@redhat.com>
26626
26627         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
26628
26629 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
26630
26631         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
26632         (sparc64-*-linux*): Likewise.
26633         (sparc64-*-solaris2*): Include assembler files before linker ones.
26634         (sparc-*-solaris2*): Simplify and reorder to match previous case.
26635         * config/sparc/gas.h: Delete.
26636         * config/sparc/sol2-64.h: Add copyright notice.
26637         * config/sparc/sol2-gas-bi.h: Likewise.
26638         * config/sparc/sol2-gld.h: Likewise.
26639         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
26640         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
26641         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
26642         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
26643         (sparc_elf_asm_named_section): Rename into...
26644         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
26645
26646 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
26647
26648         * config/alpha/alpha.c (override_options): Fix -mtune error message.
26649
26650 2010-03-02  Jeff Law  <law@redhat.com>
26651
26652         PR middle-end/42431
26653         * reload1.c (rtx_p, substitute_stack): Declare.
26654         (substitute): Record addresses of changed rtxs.
26655         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
26656         Restore the original rtx when complete.
26657         (reload): Free subsitute_stack when complete.
26658
26659 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
26660
26661         * doc/gccint.texi (menu): Add Testsuites as a chapter.
26662         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
26663         new chapter.
26664         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
26665         LTO Testing, gcov Testing, profopt Testing, compat Testing,
26666         Torture Tests): Change from subsection to section.
26667
26668 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
26669             Steven Bosscher  <steven@gcc.gnu.org>
26670
26671         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
26672         instead of bb.
26673
26674 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
26675
26676         PR middle-end/42640
26677         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
26678         the assignment from the new induction variable to the assignment
26679         of the value from the original loop PHI function.
26680
26681 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
26682             Daniel Jacobowitz  <dan@codesourcery.com>
26683
26684         * doc/sourcebuild.texi (Test directives): Clarify options to
26685         dg-skip-if.
26686
26687 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26688
26689         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
26690         Disable cfi directives unless GCC and gas agree on using read-only
26691         .eh_frame sections for 64-bit.
26692         * configure: Regenerate.
26693
26694 2010-03-01  Richard Guenther  <rguenther@suse.de>
26695
26696         PR tree-optimization/43220
26697         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
26698         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
26699
26700 2010-03-01  Richard Guenther  <rguenther@suse.de>
26701             Martin Jambor  <mjambor@suse.cz>
26702
26703         PR middle-end/41250
26704         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
26705         gimplified parameters.
26706
26707 2010-03-01  Christian Bruel  <christian.bruel@st.com>
26708
26709         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
26710
26711 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
26712
26713         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
26714
26715 2010-03-01  Richard Guenther  <rguenther@suse.de>
26716
26717         PR middle-end/43213
26718         * expr.c (expand_assignment): Use the alias-oracle to tell
26719         if the rhs aliases the result decl.
26720
26721 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26722
26723         PR pch/14940
26724         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
26725         to sol_gt_pch_get_address.
26726         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
26727         64-bit, SPARC and x86.
26728         (sol_gt_pch_get_address): New function.
26729
26730 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
26731
26732         * toplev.h (inform_n, error_n): Declare.
26733         * diagnostic.c (inform_n, error_n): New function.
26734
26735 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
26736
26737         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
26738         has no rtl yet when processing local_decls, queue it and recheck
26739         if deferred stack allocation hasn't assigned it rtl.
26740
26741 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
26742
26743         * config/sh/sh.c (unspec_bbr_uid): New.
26744         (gen_block_redirect): Use it instead of INSN_UID.
26745         (gen_far_branch): Likewise.
26746
26747 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
26748
26749         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
26750         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
26751
26752 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26753
26754         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
26755         (Warning Options): -Wno-conversion-null is valid for
26756         Objective-C++ as well.
26757         * doc/tm.texi (Named Address Spaces): Likewise.
26758         * doc/plugins.texi (Plugins): Replace TABs with spaces.
26759         * doc/tree-ssa.texi (Tree SSA): Likewise.
26760
26761 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
26762
26763         PR bootstrap/43202
26764         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
26765         by default.  Don't set the default arch for
26766         i[34567]86-*-darwin*|x86_64-*-darwin*.
26767
26768 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
26769
26770         PR bootstrap/43202
26771         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
26772         default.  Set the default 32bit/64bit archs with $with_arch
26773         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
26774
26775 2010-02-27  Richard Guenther  <rguenther@suse.de>
26776
26777         PR tree-optimization/43186
26778         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
26779         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
26780         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
26781         unroller iterations.
26782
26783 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
26784
26785         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
26786         required and i[34567]86-*-* targets don't support 64bit ISA.
26787
26788 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
26789
26790         PR ada/43096
26791         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
26792         the same alias set.
26793
26794 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
26795
26796         * config.gcc: Set the default arch at least to Prescott for
26797         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
26798         if SSE math is enabled.
26799
26800 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26801
26802         * diagnostic.c (diagnostic_initialize): Update.
26803         (diagnostic_report_diagnostic): Test inhibit_notes_p for
26804         informative notes.
26805         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
26806         (diagnostic_inhibit_notes): New.
26807         * toplev.c (process_options): inhibit notes with -fcompare-debug.
26808
26809 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26810
26811         PR c/20631
26812         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
26813         * doc/standards.texi: Likewise.
26814         * doc/extend.texi: Likewise.
26815         * doc/trouble.texi: Likewise.
26816         * doc/cppopts.texi: Likewise.
26817         * doc/install.texi: Likewise.
26818         * c.opt (std=c90,std=gnu90): New options.
26819         * c-opts.c (c_common_handle_option): Handle them.
26820
26821 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26822
26823         PR c/24577
26824         * c-decl.c (undeclared_variable): Use an informative note.
26825
26826 2010-02-26  Richard Guenther  <rguenther@suse.de>
26827
26828         PR tree-optimization/43186
26829         * gimple.h (gimple_fold): Remove.
26830         * gimple.c (gimple_fold): Remove.  Inline into single user ...
26831         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
26832         Try harder for conditions.
26833
26834 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
26835
26836         PR debug/43190
26837         * function.c (used_types_insert): Don't skip through named pointer
26838         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
26839         and it is different from the main variant's type.
26840
26841 2010-02-26  Nick Clifton  <nickc@redhat.com>
26842
26843         * config/rx/rx.md (sminsi3): Remove bogus alternative.
26844
26845 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
26846
26847         * config.gcc: Support --with-fpmath=sse for x86.
26848
26849         * config/i386/ssemath.h: New.
26850
26851         * doc/install.texi (--with-fpmath=sse): Documented.
26852
26853 2010-02-26  Richard Guenther  <rguenther@suse.de>
26854
26855         PR tree-optimization/43188
26856         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
26857         vector types of over-aligned element type.
26858
26859 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
26860
26861         PR target/43175
26862         * config/i386/i386.c (expand_vec_perm_blend): Use correct
26863         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
26864
26865 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
26866
26867         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
26868
26869 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
26870
26871         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
26872         * var-tracking.c: Include diagnostic.h.
26873         (debug_dv): New function.
26874         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
26875
26876         PR debug/43160
26877         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
26878         (add_value_chain, add_value_chains, remove_value_chain,
26879         remove_value_chains): Handle DEBUG_EXPRs.
26880         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
26881
26882         PR debug/43161
26883         * regcprop.c (struct queued_debug_insn_change): New type.
26884         (struct value_data_entry): Add debug_insn_changes field.
26885         (struct value_data): Add n_debug_insn_changes field.
26886         (debug_insn_changes_pool): New variable.
26887         (free_debug_insn_changes, apply_debug_insn_changes,
26888         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
26889         (kill_value_one_regno): Call free_debug_insn_changes if needed.
26890         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
26891         fields.
26892         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
26893         changes for them.
26894         (copyprop_hardreg_forward_1): Don't call apply_change_group for
26895         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
26896         changes, call cprop_find_used_regs via note_stores.
26897         (copyprop_hardreg_forward): When copying vd from predecessor
26898         which has any queued DEBUG_INSN changes, make sure the pointers are
26899         cleared.  At the end call df_analyze and then if there are any
26900         DEBUG_INSN changes queued at the end of some basic block for still
26901         live registers, apply them.
26902         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
26903
26904 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
26905
26906         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
26907         (arm*-*-*): Ditto.
26908
26909 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
26910
26911         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
26912         targets.  Set the default with_cpu/with_arch from arch/cpu.
26913         Allow x86-64 and native for with_cpu/with_arch.
26914
26915 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
26916
26917         * ebitmap.c: Change calls to verify_popcount with calls to
26918         sbitmap_verify_popcount.
26919         (ebitmap_clear_bit): Fixed map->cacheindex test and
26920         map>cache update when bit clearing results in an empty
26921         element.
26922
26923 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26924
26925         PR target/43154
26926         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
26927         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
26928         and support both V2DF and V2DI modes.
26929         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
26930         support both V2DF and V2DI modes.
26931         (general): Delete trailing whitespace from a few patterns.
26932
26933         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26934         V2DF/V2DI interleave high/low builtins.
26935
26936         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
26937         new VSX builtins.
26938
26939         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
26940         interleave high/low functions.
26941
26942 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
26943
26944         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
26945         #pragma extern_prefix.
26946
26947 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
26948
26949         PR debug/43166
26950         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
26951         BLKmode, assert op0 is a MEM and just adjust its mode.
26952
26953         PR debug/43165
26954         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
26955         if bitpos isn't multiple of mode's bitsize.
26956
26957 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26958
26959         * c.opt (-ftemplate-depth=): New.
26960         (-ftemplate-depth-): Deprecate.
26961         * optc-gen.awk: Handle -ftemplate-depth=.
26962         * opth-gen.awk: Likewise.
26963         * c-opts.c (c_common_handle_option): Likewise.
26964         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
26965
26966 2010-02-24  Jason Merrill  <jason@redhat.com>
26967
26968         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
26969
26970 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26971
26972         * cfg.c (alloc_aux_for_block): Remove inline.
26973         (alloc_aux_for_edge): Likewise.
26974
26975 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26976
26977         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
26978
26979 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26980
26981         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
26982         * config/i386/sol2-gas.h: New file.
26983         * config.gcc (i[34567]86-*-solaris2*): Use it.
26984
26985 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26986
26987         PR c/43128
26988         * c-typeck.c (ep_convert_and_check): New.
26989         (build_conditional_expr): Use it.
26990         (build_binary_op): Likewise.
26991
26992 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
26993
26994         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
26995
26996         PR debug/43150
26997         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
26998         bounds even for -O+.
26999         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
27000         expr needs to have DECL_NAME set.
27001
27002 2010-02-24  Nick Clifton  <nickc@redhat.com>
27003
27004         * config/mep/mep.c: Include gimple.h.
27005         (mep_function_uses_sp): Delete unused function.
27006         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
27007         parameters.  Use unsigned integers to count args.  Return a
27008         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
27009
27010 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
27011
27012         PR target/43107
27013         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
27014         greater or equal to nelt instead of 2 * nelt.
27015         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
27016         with nelt - 1.
27017
27018 2010-02-23  Jason Merrill  <jason@redhat.com>
27019
27020         PR debug/42800
27021         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
27022         in cfun->local_decls even if they have register types.
27023
27024         PR c++/42837
27025         * stor-layout.c (place_field): Don't warn about unnecessary
27026         DECL_PACKED if the type is packed.
27027
27028 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
27029
27030         PR target/43139
27031         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
27032         GOTOFF relocs, even when the base reg isn't pic pointer.
27033
27034 2010-02-23  Michael Matz  <matz@suse.de>
27035
27036         PR debug/43077
27037         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
27038         (expand_gimple_basic_block): Generate and use debug temps if there
27039         are debug uses left after the last real use of TERed ssa names.
27040         Unlink debug immediate uses when they are expanded.
27041
27042 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27043
27044         PR 43123
27045         * config/i386/i386.c (override_options): Reorganise to provide
27046         better error messages.
27047
27048 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
27049
27050         PR middle-end/43083
27051         * graphite-scop-detection.c (create_single_exit_edge): Move
27052         the call to find_single_exit_edge to....
27053         (create_sese_edges): ...here.  Don't handle multiple edges
27054         exiting the function.
27055         (build_graphite_scops): Don't handle multiple edges
27056         exiting the function.
27057
27058 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
27059
27060         PR middle-end/43097
27061         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
27062         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
27063
27064 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
27065
27066         PR middle-end/43026
27067         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
27068
27069 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27070
27071         PR c++/43126
27072         * c-typeck.c (convert_arguments): Print declaration location.
27073         * c-common.c (validate_nargs): Rename as
27074         builtin_function_validate_nargs.
27075         (check_builtin_function_arguments): Update.
27076
27077 2010-02-22  Richard Guenther  <rguenther@suse.de>
27078
27079         PR lto/43045
27080         * tree-inline.c (declare_return_variable): Use the type of
27081         the call stmt lhs if available.
27082
27083 2010-02-22  Duncan Sands  <baldrick@free.fr>
27084
27085         * passes.c (register_pass): Always consider all pass lists when
27086         ref_pass_instance_number is zero.
27087
27088 2010-02-22  Richard Guenther  <rguenther@suse.de>
27089
27090         PR tree-optimization/42749
27091         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
27092         parameter.  Do arithmetic in the original type.
27093         (update_accumulator_with_ops): Likewise.
27094         (adjust_accumulator_values): Adjust.
27095
27096 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27097
27098         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
27099         (QI to BLKmode splitter): New splitter.
27100
27101 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
27102
27103         * config/i386/i386.c (initial_ix86_tune_features): Turn on
27104         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
27105
27106 2010-02-22  Richard Guenther  <rguenther@suse.de>
27107
27108         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
27109
27110 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
27111
27112         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
27113         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
27114         ($(T)crti.o, $(T)crtn.o): Remove rules.
27115
27116 2010-02-21  Tobias Burnus  <burnus@net-b.de>
27117
27118         PR fortran/35259
27119         * doc/invoke.texi (-fassociative-math): Document that this
27120         option is automatically enabled for Fortran.
27121
27122 2010-02-20  David S. Miller  <davem@davemloft.net>
27123
27124         * configure.ac: Test if linker and assembler properly support
27125         GOTDATA_OP relocations.
27126         * configure: Rebuild.
27127         * config.in: Likewise.
27128         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
27129         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
27130         (movsi_high_pic): Likewise.
27131         (movdi_lo_sum_pic): Likewise.
27132         (movdi_high_pic): Likewise.
27133         (movsi_pic_gotdata_op): New pattern.
27134         (movdi_pic_gotdata_op): Likewise.
27135         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
27136         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
27137
27138 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
27139
27140         PR target/43067
27141         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
27142         attribute to ssemul.
27143         (xop_mulv2div2di3_high): Ditto.
27144
27145 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27146
27147         PR c++/35669
27148         * c.opt (Wconversion-null): New option.
27149         * doc/invoke.texi (Wconversion-null): Document.
27150
27151 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27152
27153         * common.opt (Wlarger-than-): Add Undocumented.
27154
27155 2010-02-19  Mike Stump  <mikestump@comcast.net>
27156
27157         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
27158
27159 2010-02-19  Jason Merrill  <jason@redhat.com>
27160
27161         PR target/40332
27162         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
27163         * configure: Likewise.
27164
27165 2010-02-20  Alan Modra  <amodra@gmail.com>
27166
27167         PR middle-end/42344
27168         * cgraph.h (cgraph_make_decl_local): Declare.
27169         * cgraph.c (cgraph_make_decl_local): New function.
27170         (cgraph_make_node_local): Use it.
27171         * cgraphunit.c (cgraph_function_versioning): Likewise.
27172         * ipa.c (function_and_variable_visibility): Likewise.
27173
27174 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
27175
27176         PR bootstrap/43121
27177         * except.c (sjlj_emit_function_enter): Don't call
27178         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
27179         directly.
27180         * rtl.h (add_reg_br_prob_note): Remove prototype.
27181
27182 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27183
27184         PR 41779
27185         * c-common.c (conversion_warning): Remove widening conversions
27186         before checking the conversion of integers to reals.
27187
27188 2010-02-19  Mike Stump  <mikestump@comcast.net>
27189
27190         PR middle-end/43125
27191         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
27192
27193         PR objc/43061
27194         * cgraphunit.c (process_function_and_variable_attributes): Check
27195         DECL_PRESERVE_P instead of looking up attribute "used".
27196         * ipa-pure-const.c (check_decl): Likewise.
27197         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
27198         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
27199         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
27200         instead of attribute "used".
27201         * config/sol2-c.c (solaris_pragma_init): Likewise.
27202         (solaris_pragma_fini): Likewise.
27203
27204 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
27205
27206         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
27207         Use XCNEW instead of xcalloc.
27208         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
27209         XNEW instead of xmalloc.
27210         (get_fields): Use XNEWVEC instead of xmalloc.
27211
27212         PR debug/43084
27213         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
27214         populate vars array.
27215         (create_new_general_access): For debug stmts just reset value.
27216         (get_stmt_accesses): For accesses within debug stmts just record them
27217         using add_access_to_acc_sites instead of preventing the peeling or
27218         counting them as accesses.
27219
27220         PR middle-end/42233
27221         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
27222
27223 2010-02-19  Richard Guenther  <rguenther@suse.de>
27224
27225         PR tree-optimization/42916
27226         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
27227         instructions.
27228
27229 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
27230
27231         * configure.ac: Replace all uses of changequote in macro arguments
27232         with proper quoting.
27233
27234 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
27235
27236         PR middle-end/42233
27237         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
27238
27239 2010-02-19  Richard Guenther  <rguenther@suse.de>
27240
27241         PR tree-optimization/42944
27242         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
27243         test for aliasing with errno.
27244
27245 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
27246
27247         PR middle-end/42233
27248         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
27249         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
27250         * dojump.c: Include output.h.
27251         (inv): New inline function.
27252         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
27253         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
27254         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
27255         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
27256         argument, pass it down to other calls.
27257         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
27258         add REG_BR_PROB note to the conditional jump.
27259         * cfgexpand.c (add_reg_br_prob_note): Removed.
27260         (expand_gimple_cond): Don't call it, add the probability
27261         as last argument to jumpif_1/jumpifnot_1.
27262         * Makefile.in (dojump.o): Depend on output.h.
27263         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
27264         callers.
27265         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
27266         * stmt.c (do_jump_if_equal): Likewise.
27267         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
27268         * loop-unswitch.c (compare_and_jump_seq): Likewise.
27269         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
27270         Likewise.
27271         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
27272         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
27273         jumpifnot_1 callers.
27274         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
27275         callers.
27276         (store_expr): Adjust jumpifnot caller.
27277         (store_constructor): Adjust jumpif caller.
27278
27279         PR middle-end/42233
27280         * gimplify.c (gimple_boolify): For __builtin_expect call
27281         gimple_boolify also on its first argument.
27282
27283 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
27284
27285         * configure.ac (gnu-unique-object): Wrap regexps using [] in
27286         changequote block.
27287         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
27288         * configure: Regenerated.
27289
27290 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27291
27292         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
27293         lang_hooks.types_compatible_p instead of comptypes.
27294
27295 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
27296
27297         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
27298         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
27299         if __prefer_thumb__ is defined.
27300
27301 2010-02-18  Martin Jambor  <mjambor@suse.cz>
27302
27303         PR tree-optimization/43066
27304         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
27305         array with zero-sized element type.
27306
27307 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
27308
27309         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
27310         rtx, allocate struct var_loc_node here and return it to the
27311         caller, and only if it is actually needed.
27312         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
27313         move it earlier and return immediately if it returns NULL.
27314
27315 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
27316
27317         * config/sparc/gas.h: New file.  Restore
27318         TARGET_ASM_NAMED_SECTION to its ELF default.
27319         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
27320         check !HAVE_GNU_AS.
27321         * config/sparc/sparc.c (sparc_elf_asm_named_section):
27322         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
27323         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
27324         after sparc/sysv4.h.
27325
27326 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
27327
27328         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
27329
27330 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
27331
27332         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
27333         patterns from predicated pattern.
27334
27335 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
27336
27337         PR target/43103
27338         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
27339         for insn mnemonic suffix.
27340
27341 2010-02-17  Richard Guenther  <rguenther@suse.de>
27342
27343         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
27344         to loop PHI nodes.
27345
27346 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
27347
27348         PR debug/42918
27349         * caller-save.c (save_call_clobbered_regs): If BB ends with
27350         a DEBUG_INSN, move any notes in between last real insn and the last
27351         DEBUG_INSN after the last DEBUG_INSN.
27352
27353 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
27354
27355         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
27356         Fix return type.  Fix argument type.  Explain meaning of return value.
27357
27358 2010-02-16  Richard Guenther  <rguenther@suse.de>
27359
27360         PR tree-optimization/41043
27361         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
27362         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
27363         statements ...
27364         (vrp_visit_phi_node): ... but only for loop PHI nodes.
27365
27366 2010-02-16  Ira Rosen  <irar@il.ibm.com>
27367
27368         PR tree-optimization/43074
27369         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
27370         * tree-vect-loop.c (vect_analyze_loop_operations): Add
27371         vectorizable cycles in hybrid SLP check.
27372         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
27373
27374 2010-02-16  Richard Guenther  <rguenther@suse.de>
27375
27376         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
27377         (true_dependence): If memrefs_conflict_p computes must-alias
27378         trust it.  Move TBAA check after offset-based disambiguation.
27379         (canon_true_dependence): Likewise.
27380
27381 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
27382
27383         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
27384         * doc/invoke.texi: Document it.
27385         * var-tracking.c: Include toplev.h and params.h.
27386         (vt_find_locations): Return bool indicating success.  Compute
27387         hash sizes unconditionally.  Check new parameter, report.
27388         (variable_tracking_main_1): Check vt_find_locations results and
27389         retry.  Renamed from...
27390         (variable_tracking_main): ... this.  New wrapper to preserve
27391         flag_var_tracking_assignments.
27392         * Makefile.in (var-tracking.o): Adjust dependencies.
27393
27394 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
27395             Jakub Jelinek  <jakub@redhat.com>
27396
27397         PR target/42854
27398         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
27399         if weak_import attribute is present.
27400         * config/darwin.c (machopic_select_section): Likewise.
27401
27402 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
27403
27404         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
27405         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
27406         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
27407         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
27408
27409         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
27410         types.
27411
27412         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
27413         Fix argument types.
27414
27415         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
27416         Rewrite text to refer to the names.
27417
27418 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
27419
27420         * config/i386/i386-builtin-types.def
27421         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
27422         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
27423         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
27424         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
27425         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
27426         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
27427         IX86_BUILTIN_VPERMIL2PS256.
27428         (MULTI_ARG_4_DF2_DI_I): Defined.
27429         (MULTI_ARG_4_DF2_DI_I1): Defined.
27430         (MULTI_ARG_4_SF2_SI_I): Defined.
27431         (MULTI_ARG_4_SF2_SI_I1): Defined.
27432         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
27433         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
27434         __builtin_ia32_vpermil2ps256.
27435         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
27436         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
27437         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
27438         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
27439         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
27440         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
27441         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
27442         CODE_FOR_xop_vpermil2v8sf3.
27443         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
27444         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
27445         * config/i386/xopintrin.h (_mm_permute2_pd): New.
27446         (_mm256_permute2_pd): New.
27447         (_mm_permute2_ps): New.
27448         (_mm256_permute2_ps): New.
27449
27450 2010-02-15  Nick Clifton  <nickc@redhat.com>
27451
27452         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
27453         boolean parameters.  Use emit_jump_insn when emitting a pop
27454         instruction containing a return insn.
27455         (push): Use 'true' rather than '1' as second parameter to F.
27456         (h8300_expand_prologue): Likewise.
27457         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
27458         (h8300_expand_epilogue): Likewise.
27459
27460 2010-02-15  Richard Guenther  <rguenther@suse.de>
27461
27462         PR middle-end/43068
27463         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
27464         if that is zero.
27465
27466 2010-02-15  Nick Clifton  <nickc@redhat.com>
27467
27468         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
27469         delta.
27470
27471 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
27472
27473         * intl.c (fake_ngettext): New function.
27474         * intl.h (fake_ngettext): Declare.
27475         (ngettext): Define macro.
27476         * collect2.c (notice_translated): New function.
27477         (main): Use notice_translated and ngettext.
27478         * collect2.h (notice_translated): Declare.
27479
27480 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
27481
27482         * reorg.c (delete_computation): Comment fixes.
27483         * caller-save.c (setup_save_areas): Idem.
27484         * sel-sched-dump.c (dump_lv_set): Idem.
27485         * rtl.def: Idem.
27486
27487 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27488
27489         * config/s390/s390.c (s390_sched_init): New function.
27490         (TARGET_SCHED_INIT): Target hook defined.
27491
27492 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
27493             Jack Howarth  <howarth@bromo.med.uc.edu>
27494             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
27495
27496         PR target/42982
27497         Partial revert of unintended change in fix for PR41605.
27498         * config/darwin.h: Fix typo.
27499         * config/darwin9.h: Same.
27500
27501 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
27502
27503         * c-pch.c (pch_init): Clear v.
27504
27505 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
27506
27507         PR middle-end/42930
27508         * graphite-scop-detection.c (graphite_can_represent_scev): Call
27509         graphite_can_represent_init for MULT_EXPR.
27510
27511 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
27512
27513         PR middle-end/42914
27514         PR middle-end/42530
27515         * graphite-sese-to-poly.c (remove_phi): New.
27516         (translate_scalar_reduction_to_array): Call remove_phi.
27517
27518 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
27519
27520         PR middle-end/42771
27521         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
27522         * graphite-clast-to-gimple.h (gloog): Update declaration.
27523         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
27524         * graphite-poly.h (struct poly_bb): Add missing comments.
27525         (struct scop): Add poly_scop_p field.
27526         (POLY_SCOP_P): New.
27527         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
27528         * graphite.c (graphite_transform_loops): Build the polyhedral
27529         representation for each scop before code generation.
27530         * sese.c (rename_variables_in_operand): Removed.
27531         (rename_variables_in_expr): Return the renamed expression.
27532         (rename_sese_parameters): New.
27533         * sese.h (rename_sese_parameters): Declared.
27534
27535 2010-02-11  Richard Guenther  <rguenther@suse.de>
27536
27537         PR tree-optimization/42998
27538         * tree-ssa-pre.c (create_expression_by_pieces): Treat
27539         POINTER_PLUS_EXPR properly.
27540
27541 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
27542             Changpeng Fang  <changpeng.fang@amd.com>
27543
27544         PR middle-end/40886
27545         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
27546         the cost of an IV candidate when the IV is used in a test against zero.
27547
27548         * gcc.dg/tree-ssa/ivopts-3.c: New.
27549
27550 2010-02-11  Richard Guenther  <rguenther@suse.de>
27551
27552         PR lto/41664
27553         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
27554         pointer-vs-decl case by swapping refs.  Handle some cases
27555         of pointer-vs-decl disambiguations more conservatively.
27556         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
27557         to false after expanding.
27558
27559 2010-02-11  Richard Guenther  <rguenther@suse.de>
27560
27561         PR driver/43021
27562         * gcc.c (process_command): Handle LTO file@offset case more
27563         appropriately.
27564
27565 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
27566
27567         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
27568         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
27569         of DEBUG_INSNs.
27570         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
27571
27572         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
27573         if MEM's mode size isn't DWARF2_ADDR_SIZE.
27574         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
27575         Optimize eq/ne comparisons when both arguments are known to be
27576         zero-extended.
27577         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
27578         Don't mask operands unnecessarily if they are known to be already
27579         zero-extended.
27580
27581 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
27582
27583         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
27584         instead of loop.
27585
27586 2010-02-10  Richard Guenther  <rguenther@suse.de>
27587
27588         PR tree-optimization/43017
27589         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
27590         for wrapping signed arithmetic.
27591
27592 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
27593
27594         PR debug/43010
27595         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
27596         if no debug info should be emitted for it.
27597
27598 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
27599
27600         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
27601         note when flag_exceptions is set.
27602
27603 2010-02-10  Duncan Sands  <baldrick@free.fr>
27604
27605         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
27606
27607 2010-02-10  Richard Guenther  <rguenther@suse.de>
27608
27609         PR c/43007
27610         * tree.c (get_unwidened): Handle constants.
27611         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
27612
27613 2010-02-10  Martin Jambor  <mjambor@suse.cz>
27614
27615         PR lto/42985
27616         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
27617         check for variable argument counts independently.
27618
27619 2010-02-10  Christian Bruel  <christian.bruel@st.com>
27620
27621         PR target/42841
27622         * config/sh/sh.c (find_barrier): Increase length for non delayed
27623         conditional branches.
27624
27625 2010-02-10  Christian Bruel  <christian.bruel@st.com>
27626
27627         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
27628
27629 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
27630
27631         * builtins.c (set_builtin_user_assembler_name): Also handle
27632         ffs if int is smaller than word.
27633
27634 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
27635
27636         PR middle-end/42973
27637         * ira-conflicts.c (get_dup): Remove.
27638         (process_reg_shuffles): Add new parameter.  Use it as an
27639         additional guard for copy generation.
27640         (add_insn_allocno_copies): Rewrite.
27641
27642 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
27643
27644         * common.opt (fsched2-use-traces): Preserved for backward
27645         compatibility.
27646         * doc/invoke.texi: Remove the documentation about option
27647         -fsched2-use-traces.
27648         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
27649         flag_sched2_use_traces.
27650         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
27651         the backward compatibility flag section.
27652
27653 2010-02-09  Richard Guenther  <rguenther@suse.de>
27654
27655         PR tree-optimization/43008
27656         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
27657         make HEAP variables initialized from global memory if they
27658         are not known builtin functions.
27659         (find_func_aliases): Adjust.
27660
27661 2010-02-09  Richard Guenther  <rguenther@suse.de>
27662
27663         PR tree-optimization/43000
27664         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
27665         arithmetic manually.
27666
27667 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
27668
27669         PR tree-optimization/42931
27670         * tree-loop-linear.c (try_interchange_loops): Don't call
27671         double_int_mul if estimated_loop_iterations failed.
27672
27673 2010-02-08  Martin Jambor  <mjambor@suse.cz>
27674
27675         PR middle-end/42898
27676         * tree-sra.c (build_accesses_from_assign): Do not mark in
27677         should_scalarize_away_bitmap if stmt has volatile ops.
27678         (sra_modify_assign): Do not process assigns piecemeal if if stmt
27679         has volatile ops.
27680
27681 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
27682
27683         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
27684
27685 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
27686
27687         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
27688         before the pattern.
27689
27690 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
27691
27692         PR middle-end/42946
27693         * df-core.c (df_finish_pass): Change type of saved_flags to int.
27694
27695 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
27696
27697         PR middle-end/42988
27698         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
27699         to unknown_dependence.
27700         (graphite_legal_transform_dr): Handle the unknown_dependence.
27701         (graphite_carried_dependence_level_k): Same.
27702
27703 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
27704
27705         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
27706
27707 2010-02-07  Richard Guenther  <rguenther@suse.de>
27708
27709         PR middle-end/42991
27710         * expr.c (get_inner_reference): Always initialize *pbitsize.
27711
27712 2010-02-07  Richard Guenther  <rguenther@suse.de>
27713
27714         PR middle-end/42956
27715         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
27716         new ARRAY_REFs on variable size element or minimal index arrays.
27717         Complete.
27718         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
27719         gimple_fold_indirect_ref.
27720
27721 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
27722
27723         PR target/42957
27724         * arm.c (arm_override_options): Just return if the user has specified
27725         an invalid fpu name.
27726
27727 2010-02-03  Jason Merrill  <jason@redhat.com>
27728
27729         PR c++/42870
27730         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
27731         i386_pe_maybe_record_exported_symbol.
27732
27733 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
27734
27735         PR target/42924
27736         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
27737         (pa_delegitimize_address): New function.
27738
27739 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
27740
27741         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
27742         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
27743
27744 2010-02-05  Richard Guenther  <rguenther@suse.de>
27745
27746         PR lto/42762
27747         * lto-streamer-in.c (get_resolution): Deal with references
27748         to undefined functions.
27749
27750 2010-02-05  Richard Guenther  <rguenther@suse.de>
27751
27752         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
27753         (fold_const_aggregate_ref): Likewise.
27754         (ccp_fold_stmt): Substitute loads.
27755         (maybe_fold_reference): Verify types before substituting.
27756         Unshare properly.
27757         (fold_gimple_assign): Unshare properly.
27758         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
27759
27760 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
27761
27762         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
27763         for rs6000_gen_cell_microcode.
27764
27765 2010-02-04  Richard Guenther  <rguenther@suse.de>
27766
27767         PR rtl-optimization/42952
27768         * dse.c (const_or_frame_p): Remove MEM handling.
27769
27770 2010-02-04  Nick Clifton  <nickc@redhat.com>
27771
27772         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
27773         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
27774         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
27775         (mn10300_asm_output_mi_thunk): New function.
27776         (mn10300_can_output_mu_thunk): New function.
27777         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
27778         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
27779         (FUNCTION_ARG): Delete incorrect comment.
27780
27781 2010-02-03  Jason Merrill  <jason@redhat.com>
27782
27783         PR c++/40138
27784         * fold-const.c (operand_equal_p): Handle erroneous types.
27785
27786 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
27787
27788         * config/h8300/h8300.md (can_delay): Fix attibute condition.
27789
27790 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
27791
27792         PR rtl-optimization/42941
27793         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
27794         of xmalloc.
27795
27796 2010-02-03  Jason Merrill  <jason@redhat.com>
27797
27798         PR c++/35652
27799         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
27800
27801 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
27802
27803         PR debug/42896
27804         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
27805         (cselib_reset_table): Renamed from...
27806         (cselib_reset_table_with_next_value): ... this.
27807         (cselib_get_next_uid): Renamed from...
27808         (cselib_get_next_unknown_value): ... this.
27809         * cselib.c (next_uid): Renamed from...
27810         (next_unknown_value): ... this.
27811         (cselib_clear_table): Adjust.
27812         (cselib_reset_table): Adjust.  Renamed from...
27813         (cselib_reset_table_with_next_value): ... this.
27814         (cselib_get_next_uid): Adjust.  Renamed from...
27815         (cselib_get_next_unknown_value): ... this.
27816         (get_value_hash): Use hash.
27817         (cselib_hash_rtx): Likewise.
27818         (new_cselib_val): Adjust.  Set and dump uid.
27819         (cselib_lookup_mem): Pass next_uid as hash.
27820         (cselib_subst_to_values): Likewise.
27821         (cselib_log_lookup): Dump uid.
27822         (cselib_lookup): Pass next_uid as hash.  Adjust.
27823         (cselib_process_insn): Adjust.
27824         (cselib_init): Initialize next_uid.
27825         (cselib_finish): Adjust.
27826         (dump_cselib_table): Likewise.
27827         * dse.c (canon_address): Dump value uid.
27828         * print-rtl.c (print_rtx): Print value uid.
27829         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
27830         (dvuid): New type.
27831         (dv_uid): New function, sort of renamed from...
27832         (dv_htab_hash): ... this, reimplemented in terms of it and...
27833         (dv_uid2hash): ... this.  New.
27834         (variable_htab_eq): Drop excess assertions.
27835         (tie_break_pointers): Removed.
27836         (canon_value_cmp): Compare uids.
27837         (variable_post_merge_New_vals): Print uids.
27838         (vt_add_function_parameters): Adjust.
27839         (vt_initialize): Reset table.  Adjust.
27840
27841 2010-02-03  Richard Guenther  <rguenther@suse.de>
27842
27843         PR tree-optimization/42944
27844         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
27845         (call_may_clobber_ref_p_1): Likewise.  Properly handle
27846         malloc and calloc clobbering errno.
27847
27848 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
27849
27850         * doc/invoke.texi: Fix name of sched1 dump.
27851
27852         * opts.c (decode_options): Set flag_tree_switch_conversion
27853         only conditionally on optimize >= 2.
27854
27855         * gcse.c: Assorted comment fixes in pass description.
27856
27857 2010-02-03  Anthony Green  <green@moxielogic.com>
27858
27859         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
27860         nop padding in order to maintain alignment of storage location of
27861         target function address.
27862         (moxie_trampoline_init): Store target function address at newly
27863         aligned location.
27864         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
27865         to 32.
27866         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
27867
27868 2010-02-03  Richard Guenther  <rguenther@suse.de>
27869
27870         PR middle-end/42927
27871         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
27872
27873 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27874
27875         * config.gcc: Reenable check for obsolete targets.
27876         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
27877         mips-sgi-irix6.[0-4]*.
27878
27879 2010-02-02  Nick Clifton  <nickc@redhat.com>
27880
27881         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
27882         constant size of 4 as being the same as 0.
27883         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
27884         can take values in the range 0..4.
27885
27886 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
27887
27888         PR java/41991
27889         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
27890         as _darwin10_Unwind_FindEnclosingFunction().
27891         * libgcc-libsystem.ver: New.
27892
27893 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
27894
27895         PR target/41399
27896         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
27897         implicitly set registers.
27898
27899 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
27900
27901         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
27902         (arm_override_options): Allow automatic selection of the thread
27903         pointer register if thumb2.
27904         (legitimize_pic_address): Improve code sequences for Thumb2.
27905         (arm_call_tls_get_addr): Likewise.
27906         (legitimize_tls_address): Likewise.
27907         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
27908         (pic_load_addr_32bit): ... this.  New named pattern.
27909         * thumb2.md (pic_load_addr_thumb2): Delete.
27910         (pic_load_dot_plus_four): Delete.
27911         (tls_load_dot_plus_four): New named pattern.
27912
27913 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27914
27915         PR libgomp/29986
27916         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
27917         Document fix for TLS bug.
27918
27919 2010-01-31  Richard Guenther  <rguenther@suse.de>
27920
27921         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
27922         conservatively correct.
27923
27924 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27925
27926         PR target/42850
27927         Revert:
27928         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27929
27930         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
27931
27932 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27933
27934         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
27935
27936 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
27937
27938         * config.gcc: Adjust order of makefile fragments for mingw targets.
27939
27940 2010-01-31  Richard Guenther  <rguenther@suse.de>
27941
27942         PR middle-end/42898
27943         * gimplify.c (gimplify_init_constructor): For volatile LHS
27944         initialize a temporary.
27945
27946 2010-01-31  Matthias Klose  <doko@ubuntu.com>
27947
27948         * configure.ac: Fix __stack_chk_fail check for cross builds configured
27949         --with-headers
27950         * configure: Regenerate.
27951
27952 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
27953
27954         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
27955         the same alias set and their sizes different constantness.
27956         (aliasing_component_refs_p): Revert 2009-10-24 change.
27957
27958 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27959
27960         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
27961         unused.
27962
27963 2010-01-29  Richard Guenther  <rguenther@suse.de>
27964
27965         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
27966         Assert we successfully updated the call.
27967
27968 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
27969
27970         PR rtl-optimization/42889
27971         * df.h (df_set_bb_dirty_nonlr): New prototype.
27972         * df-core.c (df_set_bb_dirty_nonlr): New function.
27973         * df-scan.c (df_insn_rescan): Call it instead of
27974         df_set_bb_dirty for DEBUG_INSNs.
27975
27976 2010-01-29  Richard Guenther  <rguenther@suse.de>
27977
27978         PR middle-end/37448
27979         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
27980         quadratic behavior in most cases.
27981
27982 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
27983
27984         PR target/42891
27985         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
27986         in the call to gen_x86_movsicc_0_m1.
27987
27988 2010-01-28  Richard Guenther  <rguenther@suse.de>
27989
27990         PR tree-optimization/42871
27991         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
27992
27993 2010-01-28  Richard Guenther  <rguenther@suse.de>
27994
27995         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
27996         into call arguments.
27997
27998 2010-01-28  Richard Guenther  <rguenther@suse.de>
27999
28000         PR middle-end/42883
28001         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
28002         the forwarder if the destination is an EH landing pad.
28003
28004 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
28005
28006         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
28007         block list passed to gimple_duplicate_sese_tail.
28008         (parallelize_loops): Avoid parallelization when the function
28009         has_nonlocal_label.
28010         Avoid parallelization when the preheader is IRREDUCIBLE.
28011         Try to optimize when estimated_loop_iterations_int is unresolved.
28012         Add the loop's location to the dump file.
28013         * tree-cfg.c (add_phi_args_after_redirect): Remove.
28014         (gimple_duplicate_sese_tail): Remove the check for the latch.
28015         Redirect nexits to the exit block.
28016         Remove handling of the incoming edges to the latch.
28017         Redirect the backedge from the copied latch to the exit bb.
28018
28019 2010-01-28  Michael Matz  <matz@suse.de>
28020
28021         PR target/42881
28022         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
28023         Wrap force_reg into a sequence, emit it before user.
28024
28025 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
28026
28027         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
28028         (arm_rev): New.
28029         (arm_legacy_rev): Likewise.
28030         (thumb_legacy_rev): Likewise.
28031
28032 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
28033
28034         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
28035         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
28036         on MEM's address failed, try avoid_constant_pool_reference and
28037         recurse if it returned something different.
28038         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
28039         address, try avoid_constant_pool_reference and recurse if it
28040         returned something different.
28041         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
28042         address and avoid_constant_pool_reference returned something
28043         different, don't set have_address.
28044
28045 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
28046
28047         PR debug/42861
28048         * var-tracking.c (val_store): Add modified argument, obey it.
28049         Adjust callers.
28050         (count_uses): Move down logging of main.
28051         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
28052         don't need resolution.
28053         (emit_notes_in_bb): Likewise.
28054
28055 2010-01-27  Richard Guenther  <rguenther@suse.de>
28056
28057         PR middle-end/42878
28058         * tree-inline.c (remap_decl): Delay remapping of SSA name
28059         default definitions until we need them.
28060
28061 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
28062
28063         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
28064         (rs6000_delegitimize_address): New function.
28065
28066         * config/s390/s390.c (s390_delegitimize_address): Call
28067         delegitimize_mem_from_attrs.
28068
28069         PR middle-end/42874
28070         * tree-inline.c (cannot_copy_type_1): Removed.
28071         (copy_forbidden): Don't forbid copying of functions containing
28072         records/unions with variable length fields.
28073
28074 2010-01-27  Christian Bruel  <christian.bruel@st.com>
28075
28076         Revert:
28077         PR target/42841
28078         * config/sh/sh.c (find_barrier): Increase length for non delayed
28079         conditional branches.
28080
28081 2010-01-27  Matthias Klose  <doko@ubuntu.com>
28082
28083         * configure.ac (gnu-unique-object): Fix ldd version check.
28084         * configure: Regenerate.
28085
28086 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28087
28088         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
28089         HAVE_GNU_AS value.
28090         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
28091         Test for HAVE_GNU_AS value.
28092
28093 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28094
28095         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
28096         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
28097         INT64_TYPE): Define.
28098         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
28099         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
28100         INT_LEAST64_TYPE): Define.
28101         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
28102         UINT_LEAST64_TYPE): Define.
28103         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
28104         INT_FAST64_TYPE): Define.
28105         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
28106         UINT_FAST64_TYPE): Define.
28107         (INTMAX_TYPE, UINTMAX_TYPE): Define.
28108         (INTPTR_TYPE, UINTPTR_TYPE): Define.
28109         (SIG_ATOMIC_TYPE): Define.
28110
28111 2010-01-26  Richard Guenther  <rguenther@suse.de>
28112
28113         * df-scan.c (df_scan_set_bb_info): Remove assert.
28114         (df_insn_rescan_debug_internal): Merge asserts.
28115         (df_install_ref): Likewise.
28116         (df_mark_reg): Use bitmap_set_range.
28117         (df_hard_reg_used_p): Remove assert.
28118         (df_hard_reg_used_count): Likewise.
28119
28120 2010-01-26  Richard Guenther  <rguenther@suse.de>
28121
28122         PR rtl-optimization/42685
28123         * web.c (web_main): Ignore DEBUG_INSNs.
28124
28125 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
28126
28127         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
28128
28129         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
28130         Fix types of fndecl and arglist parameters.
28131
28132 2010-01-26  Richard Guenther  <rguenther@suse.de>
28133
28134         PR middle-end/42806
28135         * tree-eh.c (unsplit_eh): Skip debug insns.
28136
28137 2010-01-26  Richard Guenther  <rguenther@suse.de>
28138
28139         PR tree-optimization/42250
28140         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
28141
28142 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
28143
28144         PR fortran/42866
28145         * omp-low.c (expand_omp_sections): Only use single_pred if
28146         l2_bb is single_pred_p.
28147
28148 2010-01-25  Christian Bruel  <christian.bruel@st.com>
28149
28150         PR target/42841
28151         * config/sh/sh.c (find_barrier): Increase length for non delayed
28152         conditional branches.
28153         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
28154
28155 2010-01-24  David S. Miller  <davem@davemloft.net>
28156
28157         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
28158         define if not using GAS.
28159         * config/sparc/sparc.c (sparc_elf_asm_named_section):
28160         Likewise.  Delete SECTION_MERGE code, which is only applicable
28161         when using GAS.
28162
28163 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
28164
28165         PR c++/42748
28166         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
28167         mangling of va_list in system headers.
28168
28169 2010-01-23  Toon Moene  <toon@moene.org>
28170
28171         * tree-predcom.c (combine_chains): Return NULL, not false.
28172
28173 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
28174
28175         * tree-loop-distribution.c (distribute_loop): Fix declaration and
28176         initialization of variable res to agree with return type.
28177
28178 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
28179
28180         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
28181         * tree-sra.c: Add include of expr.h.
28182
28183 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
28184
28185         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
28186         insert the debug stmt on the single non-EH edge from the stmt.
28187
28188 2010-01-22  Richard Henderson  <rth@redhat.com>
28189
28190         PR tree-opt/42833
28191         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
28192         the RHS until after generate_subtree_copies has insertted its
28193         code before the current statement.
28194
28195 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
28196
28197         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
28198
28199         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
28200
28201 2010-01-21  Martin Jambor  <mjambor@suse.cz>
28202
28203         PR tree-optimization/42585
28204         * tree-sra.c (struct access): New field grp_total_scalarization.
28205         (dump_access): Dump the new field.
28206         (should_scalarize_away_bitmap): New variable.
28207         (cannot_scalarize_away_bitmap): Likewise.
28208         (sra_initialize): Allocate new bitmaps.
28209         (sra_deinitialize): Free new bitmaps.
28210         (create_access_1): New function.
28211         (create_access): Parts moved to create_access_1.
28212         (type_consists_of_records_p): New function.
28213         (completely_scalarize_record): Likewise.
28214         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
28215         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
28216         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
28217         access.
28218         (analyze_all_variable_accesses): Completely scalarize small eligible
28219         records.
28220
28221 2010-01-21  Martin Jambor  <mjambor@suse.cz>
28222
28223         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
28224
28225 2010-01-21  Andrew Haley  <aph@redhat.com>
28226
28227         * gcc.c (process_command): Move lang_specific_driver before
28228         setting cc_libexec_prefix.
28229
28230 2010-01-21  Richard Guenther  <rguenther@suse.de>
28231
28232         PR middle-end/19988
28233         * fold-const.c (negate_expr_p): Pretend only negative
28234         real constants are easily negatable.
28235
28236 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
28237             Jason Merrill  <jason@redhat.com>
28238
28239         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
28240         (TYPE_TRANSPARENT_AGGR): this, for union and record.
28241         * calls.c (initialize argument_information): Handle it.
28242         * c-common.c (handle_transparent_union_attribute): Use new name.
28243         * c-decl.c (finish_struct): Ditto.
28244         * c-typeck.c (type_lists_compatible_p): Ditto.
28245         (convert_for_assignment): Use new name and also handle record.
28246         * function.c (aggregate_value_p): Handle it.
28247         (pass_by_reference): Ditto.
28248         (assign_parm_data_types): Ditto.
28249         * print-tree.c (print_node): Ditto.
28250         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
28251         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
28252         * tree.c (first_field): New fn.
28253
28254 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
28255
28256         PR target/42818
28257         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
28258         even when linking statically, for now.
28259
28260 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
28261
28262         PR debug/42715
28263         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
28264         without a cselib val.
28265         (count_uses): Accept MO_VAL_SET with no val on stores.
28266         (add_stores): Likewise.
28267
28268 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
28269
28270         * var-tracking.c (check_value_val): Add a compile time assertion.
28271         (dv_is_decl_p): Simplify.
28272         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
28273         gcc_assert if ENABLE_CHECKING.
28274
28275 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
28276
28277         PR debug/42782
28278         * var-tracking.c: Include tree-flow.h.
28279         (mem_dies_at_call): New.
28280         (dataflow_set_preserve_mem_locs): Use it.
28281         (dataflow_set_remove_mem_locs): Likewise.
28282         (dump_var): Renamed from dump_variable.  Adjust all callers.
28283         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
28284         * Makefile.in (var-tracking.o): Adjust deps.
28285
28286 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
28287
28288         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
28289
28290 2010-01-20  Richard Guenther  <rguenther@suse.de>
28291
28292         PR tree-optimization/42717
28293         * tree-ssa-dce.c (get_live_post_dom): Remove.
28294         (forward_edge_to_pdom): Take an arbitrary edge to copy
28295         degenerate PHI args from.
28296         (remove_dead_stmt): Use the first post-dominator even if it
28297         does not contain live statements as redirection destination.
28298
28299 2010-01-20  Richard Guenther  <rguenther@suse.de>
28300
28301         * tree-inline.c (estimate_num_insns): Handle EH builtins.
28302
28303 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
28304
28305         * sel-sched.c (create_speculation_check): Remove set but not used
28306         variable twin.
28307         (try_transformation_cache): Remove set but not used variable ds.
28308         (calculate_privileged_insns): Remove set but not used variables
28309         cur_insn and min_spec_insn.
28310         (find_best_expr): Remove set but not used variable avail_n.
28311         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
28312         variable e.
28313         * cgraphunit.c (assemble_thunk): Remove set but not used variable
28314         false_label.
28315         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
28316         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
28317         new_scop_exit_edge.
28318
28319 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
28320
28321         PR bootstrap/42786
28322         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
28323         cpu types.  Add support for *-sse3 cpu types.
28324         (x86_64-*-*): Ditto.
28325
28326 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
28327
28328         PR middle-end/42803
28329         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
28330         argument, call initializer_constant_valid_p_1 instead of
28331         initializer_constant_valid_p, pass CACHE to it, return NULL
28332         immediately if first call returns NULL.
28333         (initializer_constant_valid_p_1): New function.
28334         (initializer_constant_valid_p): Use it.
28335
28336 2010-01-20  Thomas Quinot  <quinot@adacore.com>
28337
28338         * tree.def (PLACEHOLDER_EXPR): Fix comment.
28339
28340 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
28341
28342         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
28343         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
28344         (loc_list_from_tree): Don't handle unsigned division.  Handle
28345         signed modulo using DW_OP_{over,over,div,mul,minus}.
28346         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
28347         modulo instead of signed.
28348
28349 2010-01-20  DJ Delorie  <dj@redhat.com>
28350
28351         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
28352         (Fpa): Pass it
28353         (h8300_emit_stack_adjustment): Propogate it.
28354         (push): Pass it.
28355         (h8300_expand_prologue): Likewise.
28356         (h8300_expand_epilogue): Likewise.
28357
28358 2010-01-19  Michael Matz  <matz@suse.de>
28359
28360         PR tree-optimization/41783
28361         * tree-data-ref.c (toplevel): Include flags.h.
28362         (dump_data_dependence_relation):  Also dump the inputs if the
28363         result will be unknown.
28364         (split_constant_offset_1): Look through some conversions.
28365         * tree-predcom.c (determine_roots_comp): Restart a new chain if
28366         the offset from last element is too large.
28367         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
28368         (reassociate_to_the_same_stmt): Handle vector registers.
28369         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
28370         (e.g. conversions).
28371         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
28372         wide_prolog_niters argument, emit widening instructions.
28373         (vect_do_peeling_for_alignment): Adjust caller, use widened
28374         variant of the iteration cound.
28375         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
28376
28377 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28378
28379         PR target/38697
28380         * config/arm/neon-testgen.m (emit_automatics): New parameter
28381         features. Adjust for Fixed_return_reg feature.
28382         (test_intrinsic): Call emit_automatics with new feature.
28383         * config/arm/neon.ml: Update copyright years.
28384         (features): New Fixed_return_reg feature.
28385         (ops): Update feature for Vget_low.
28386
28387 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
28388
28389         PR tree-optimization/42719
28390         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
28391         stmt uses.
28392
28393         PR debug/42728
28394         * fwprop.c (all_uses_available_at): Return false if def_set dest
28395         is a REG that is used in def_insn.
28396
28397 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
28398
28399         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
28400
28401         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
28402         Add argument names.
28403
28404         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
28405
28406         * target.h (struct gcc_target) <secondary_reload>: Change type
28407         of last argument to secondary_reload_info *.
28408
28409 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
28410
28411         PR target/42774
28412         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
28413         memory references with unaligned offsets.  Remove CQImode handling.
28414         (unaligned_memory_operand): Return 1 for memory references with
28415         unaligned offsets.  Remove CQImode handling.
28416
28417 2010-01-18  Richard Guenther  <rguenther@suse.de>
28418
28419         PR middle-end/39954
28420         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
28421         builtin calls.
28422
28423 2010-01-18  Richard Guenther  <rguenther@suse.de>
28424
28425         PR tree-optimization/42781
28426         * tree-ssa-structalias.c (find_what_var_points_to): Skip
28427         restrict processing only if the original variable was artificial.
28428
28429 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
28430
28431         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
28432         find number of popped argument bytes.
28433
28434         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
28435         Fix the text that describes the return value for invalid insns.
28436
28437         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
28438
28439         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
28440         Clarify what 'cost of the -dependence' is.  Fix quoting.
28441
28442         * toplev.c (default_get_pch_validity): Rename argument to "sz".
28443         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
28444
28445 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
28446
28447         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
28448         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
28449
28450 2010-01-17  Richard Guenther  <rguenther@suse.de>
28451
28452         PR middle-end/42248
28453         * function.c (split_complex_args): Take a VEC to modify.
28454         (assign_parms_augmented_arg_list): Build a VEC instead of
28455         a chain of PARM_DECLs.
28456         (assign_parms_unsplit_complex): Take a VEC of arguments.
28457         Do not fixup unmodified parms.
28458         (assign_parms): Deal with the VEC.
28459         (gimplify_parameters): Likewise.
28460
28461 2010-01-17  Richard Guenther  <rguenther@suse.de>
28462
28463         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
28464         node existence check.
28465         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
28466         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
28467         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
28468         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
28469         (gimple_execute_on_growing_pred): Likewise.
28470
28471 2010-01-17  Richard Guenther  <rguenther@suse.de>
28472
28473         PR tree-optimization/42773
28474         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
28475         (compute_antic_aux): Likewise.
28476         (compute_partial_antic_aux): Likewise.
28477
28478 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
28479
28480         PR debug/42767
28481         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
28482         and US_TRUNCATE.
28483
28484 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
28485
28486         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
28487         appearance.
28488
28489         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
28490         Fix markup for strict argument.
28491
28492         (TARGET_SCHED_REORDER2): Fix argument types.
28493
28494         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
28495         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
28496
28497         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
28498         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
28499
28500         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
28501         Add argument name.
28502
28503         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
28504         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
28505         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
28506         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
28507         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
28508
28509         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
28510
28511         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
28512
28513         (TARGET_ASM_RELOC_RW_MASK): Add return type.
28514         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
28515
28516         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
28517
28518         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
28519         Use prototype.
28520
28521         (TARGET_ASM_NAMED_SECTION): Fix argument list.
28522
28523         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
28524         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
28525
28526         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
28527
28528         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
28529
28530         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
28531         referring to it.  Fix language.
28532
28533         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
28534
28535         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
28536
28537         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
28538
28539         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
28540
28541         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
28542         '@var{stream}.  Remove stray 'and'.
28543
28544         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
28545
28546         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
28547
28548         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
28549
28550         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
28551         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
28552
28553         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
28554         Fix description of return value.
28555         Rename argument "sz" to "len."
28556
28557         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
28558         Clarify meaning of 'true' return value.
28559
28560         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
28561
28562         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
28563         rep_mode versus mode_rep.
28564
28565         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
28566
28567         (TARGET_BUILTIN_DECL): Fix name.
28568
28569         (TARGET_COMMUTATIVE_P): Fix type of first argument.
28570
28571         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
28572
28573         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
28574
28575         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
28576
28577         (TARGET_RELAXED_ORDERING): Use @deftypevr.
28578
28579         (TARGET_GET_DRAP_RTX): Note that this is a hook.
28580         Clarify language.
28581
28582         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
28583         Rename argument tm_fn to md_fn.
28584
28585         (TARGET_OPTION_PRINT): Fix argument list.
28586
28587 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
28588
28589         PR target/42664
28590         * config/i386/i386.c (ix86_fixup_binary_operands):
28591         Revert FMA4 fixup of operands.
28592
28593 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28594
28595         PR gcc/42525
28596         * Makefile.in (write_entries_to_file, install-plugin):
28597         Use \012 instead of \n with tr.
28598
28599 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
28600
28601         * configure.ac (HAVE_AS_REF): New C macro.
28602         * configure: Regenerate.
28603         * config.in: Likewise.
28604         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
28605         if HAVE_AS_REF.
28606         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
28607         if HAVE_AS_REF.
28608
28609 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
28610
28611         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
28612
28613         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
28614
28615         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
28616
28617         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
28618
28619         (TARGET_IN_SMALL_DATA_P): Fix argument type.
28620
28621         (TARGET_BINDS_LOCAL_P): Fix argument type.
28622
28623         (TARGET_ASM_FILE_END): Use prototype.
28624
28625         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
28626
28627         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
28628
28629         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
28630
28631         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
28632
28633         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
28634         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
28635
28636         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
28637         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
28638
28639         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
28640         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
28641         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
28642         (TARGET_ADDR_SPACE_CONVERT): Likewise.
28643
28644         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
28645
28646         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
28647
28648         (TARGET_INIT_BUILTINS): Use prototype.
28649
28650         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
28651         Put 'const char *' in braces.  Fix parameter types.
28652         (TARGET_INVALID_CONVERSION): Fix parameter types.
28653         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
28654         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
28655
28656         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
28657         Fix argument type.
28658
28659         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
28660
28661         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
28662
28663 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
28664
28665         * doc/tm.texi (TARGET_HELP): Fix return type.
28666
28667         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
28668         in braces.  Fix argument types.
28669
28670         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
28671
28672         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
28673
28674         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
28675
28676         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
28677         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
28678
28679         (TARGET_MANGLE_TYPE): Fix argument types.
28680
28681         (TARGET_IRA_COVER_CLASSES): Use prototype.
28682
28683         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
28684
28685         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
28686
28687         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
28688
28689         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
28690
28691         (TARGET_CALLEE_COPIES): Fix argument types.
28692
28693         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
28694
28695         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
28696
28697         (TARGET_FUNCTION_VALUE): Fix argument types.
28698
28699         (TARGET_RETURN_IN_MSB): Fix argument type.
28700
28701         (TARGET_RETURN_IN_MEMORY): Fix argument types.
28702
28703         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
28704
28705         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
28706
28707         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
28708         agree with return type.
28709
28710         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
28711
28712 2010-01-15  Jing Yu  <jingyu@google.com>
28713
28714         PR rtl-optimization/42691
28715         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
28716         a pseudo to a constant and are merged, and adjust comments.
28717
28718 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
28719
28720         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
28721
28722 2010-01-15  Richard Guenther  <rguenther@suse.de>
28723
28724         PR middle-end/42739
28725         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
28726         labels of computed or non-local gotos to the destination.
28727         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
28728         landing pad label is the first label.
28729
28730 2010-01-15  Richard Guenther  <rguenther@suse.de>
28731
28732         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
28733
28734 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
28735
28736         PR target/42747
28737         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
28738         to allow generation of the xssqrtdp instruction on power7.
28739         (sqrtdf2_fpr): Ditto.
28740
28741 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28742
28743         PR middle-end/42674
28744         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
28745         functions with noreturn attribute.
28746
28747         PR c++/42608
28748         * varasm.c (declare_weak): Add weak attribute to decl if it
28749         doesn't have one already.
28750         (assemble_external): Only add decls to weak_decls if they also
28751         have weak attribute.
28752
28753 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
28754
28755         * var-tracking.c (var_reg_delete): Don't delete the association
28756         between REGs and values or one-part variables if the register
28757         isn't clobbered.
28758
28759 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28760
28761         PR debug/42657
28762         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
28763         because its first operand is a non-localized variable.
28764
28765 2010-01-14  Martin Jambor  <mjambor@suse.cz>
28766
28767         PR tree-optimization/42706
28768         * tree-sra.c (encountered_recursive_call): New variable.
28769         (encountered_unchangable_recursive_call): Likewise.
28770         (sra_initialize): Initialize both new variables.
28771         (callsite_has_enough_arguments_p): New function.
28772         (scan_function): Call decl and flags check only for IPA-SRA, check
28773         whether there is a recursive call and whether it has enough arguments.
28774         (all_callers_have_enough_arguments_p): New function.
28775         (convert_callers): Look for recursive calls only when
28776         encountered_recursive_call is set.
28777         (ipa_early_sra): Bail out either if
28778         !all_callers_have_enough_arguments_p or
28779         encountered_unchangable_recursive_call.
28780
28781 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28782
28783         * sel-sched.c: Add 2010 to copyright years.
28784         * sel-sched-ir.c: Likewise.
28785         * sel-sched-ir.h: Likewise.
28786
28787 2010-01-14  Martin Jambor  <mjambor@suse.cz>
28788
28789         PR tree-optimization/42714
28790         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
28791         constructors specially.
28792
28793 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28794
28795         * config/i386/drivers-i386.c (detect_caches_intel):
28796         Add l2sizekb parameter and fill in.
28797         (host_detect_local_cpu): Add l2sizekb, fill in.
28798         Add Atom small cache heuristic.
28799
28800 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28801
28802         * config/i386/drivers-i386.c (detect_caches_cpuid4):
28803         Add level3 parameter and fill in.
28804         (detect_caches_intel): Handle level3 cache.
28805
28806 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28807
28808         * config/i386/drivers-i386.c (host_detect_local_cpu):
28809         Fix core duo detection.
28810
28811 2010-01-14  Andi Kleen  <ak@linux.intel.com>
28812
28813         * config/i386/drivers-i386.c (host_detect_local_cpu):
28814         Fix Atom detection.
28815
28816 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28817
28818         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
28819         (rs6000_variable_issue_1): this.  Use...
28820         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
28821
28822 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28823
28824         * sel-sched-ir.c (sel_restore_other_notes): Rename to
28825         sel_restore_notes.  Update all callers.  Call reemit_notes
28826         for all insns.
28827
28828 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28829
28830         PR rtl-optimization/42246
28831         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
28832         loops.
28833
28834 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28835
28836         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
28837         all successors is the same as number of successors in current region.
28838
28839 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28840
28841         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
28842         to rename is not separable.  Otherwise check that its LHS is not NULL.
28843
28844 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28845
28846         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
28847
28848 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28849
28850         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
28851         available registers when failed to discover LHS register class.
28852         Fix indentation.  Update comment.
28853
28854 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28855             Alexander Monakov  <amonakov@ispras.ru>
28856
28857         PR rtl-optimization/42389
28858         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
28859         to can_issue_more.
28860         (advance_state_on_fence): Likewise.
28861         (sel_target_adjust_priority): Print debug output only when
28862         sched_verbose >= 4, not 2.
28863         (get_expr_cost): Do not issue all unique insns on the next cycle.
28864         (fill_insns): Initialize can_issue_more from the value saved
28865         with the fence.
28866         * sel-sched-ir.c (flist_add): New parameter issue_more.
28867         Init FENCE_ISSUE_MORE with it.
28868         (merge_fences): Likewise.
28869         (init_fences): Update call to flist_add.
28870         (add_to_fences, add_clean_fence_to_fences)
28871         (add_dirty_fence_to_fences): Likewise.
28872         (move_fence_to_fences): Update call to merge_fences.
28873         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
28874         sched groups.
28875         * sel-sched-ir.h (struct _fence): New field issue_more.
28876         (FENCE_ISSUE_MORE): New accessor macro.
28877
28878 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28879
28880         PR rtl-optimization/42388
28881         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
28882         that have no predecessors nor successors.  Do not call move_bb_info
28883         for empty blocks outside of current region.
28884
28885 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28886
28887         PR rtl-optimization/42294
28888         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
28889         * sel-sched.c (move_exprs_to_boundary): Transitively add all
28890         originators' originators.
28891
28892 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
28893
28894         PR rtl-optimization/39453
28895         PR rtl-optimization/42246
28896         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
28897         for pipelining_p.
28898         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
28899
28900 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28901             Alexander Monakov  <amonakov@ispras.ru>
28902
28903         PR middle-end/42245
28904         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
28905         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
28906         argument.  Update all callers.
28907         (tidy_control_flow): ... and here.  Recompute topological order
28908         of basic blocks in region if necessary.
28909         (sel_redirect_edge_and_branch): Change return type.  Return true
28910         if topological order might have been invalidated.
28911         (purge_empty_blocks): Export and move from...
28912         * sel-sched.c (purge_empty_blocks): ... here.
28913         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
28914         (maybe_tidy_empty_bb): Delete prototype.
28915         (purge_empty_blocks): Declare.
28916
28917 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28918
28919         PR rtl-optimization/42249
28920         * sel-sched.c (try_replace_dest_reg): When chosen register
28921         and original register is the same, do not bail out early, but
28922         still check all original insns for validity of replacing destination
28923         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
28924         in this case.
28925
28926 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28927
28928         PR c/42721
28929         Port from no-undefined-overflow branch:
28930         2009-03-09  Richard Guenther  <rguenther@suse.de>
28931
28932         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
28933
28934 2010-01-14  Richard Guenther  <rguenther@suse.de>
28935
28936         PR lto/42665
28937         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
28938
28939 2010-01-14  Ira Rosen  <irar@il.ibm.com>
28940
28941         PR tree-optimization/42709
28942         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
28943         as scalar type in creation of constant vector operand.
28944
28945 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28946
28947         PR testsuite/42414
28948         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
28949         (check-parallel-%): Match `testsuite' directory component only
28950         at the end.
28951
28952 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
28953
28954         PR translation/39521
28955         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
28956         strings with _().
28957
28958 2010-01-13  Richard Guenther  <rguenther@suse.de>
28959
28960         PR tree-optimization/42730
28961         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
28962         offset zero.
28963
28964 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
28965
28966         PR target/pr42542
28967         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
28968         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
28969         them signed.
28970
28971 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
28972
28973         * config/bfin/libgcc-bfin.ver: Regenerate based on current
28974         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
28975         ___umulsi3_highpart.
28976
28977         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
28978         rather than schedule_insns if the pass is enabled.
28979
28980 2010-01-13  Martin Jambor  <mjambor@suse.cz>
28981
28982         PR tree-optimization/42704
28983         * tree-sra.c (sra_modify_assign): Do not delete assignments to
28984         SSA_NAMEs.
28985
28986 2010-01-13  Martin Jambor  <mjambor@suse.cz>
28987
28988         PR tree-optimization/42703
28989         * tree-sra.c (analyze_access_subtree): Check that we can build a
28990         reference to the original data within the aggregate.
28991
28992 2010-01-13  Richard Guenther  <rguenther@suse.de>
28993
28994         PR tree-optimization/42705
28995         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
28996
28997 2010-01-13  Richard Guenther  <rguenther@suse.de>
28998
28999         PR middle-end/42716
29000         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
29001
29002 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
29003
29004         PR debug/41371
29005         * var-tracking.c (values_to_unmark): New variable.
29006         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
29007         values_to_unmark vector.  Moved body to...
29008         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
29009         instead queue it into values_to_unmark vector.
29010         (vt_find_locations): Free values_to_unmark vector.
29011
29012 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
29013
29014         * config/s390/s390.c (override_options): Set
29015         default of max-pending-list-length to 256
29016
29017 2010-01-13  Richard Guenther  <rguenther@suse.de>
29018
29019         PR lto/42678
29020         * tree-pass.h (PROP_gimple_lcx): New.
29021         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
29022         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
29023         before the final cleanup_eh.
29024         (dump_properties): Dump PROP_gimple_lcx.
29025         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
29026         (tree_lower_complex_O0): Remove.
29027         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
29028         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
29029         tree_lower_complex, schedule TODO_update_ssa.
29030         * lto-streamer-out.c (output_function): Stream the functions
29031         properties.
29032         * lto-streamer-in.c (input_function): Likewise.
29033         (lto_read_body): Do not override them here.
29034
29035 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
29036
29037         PR c/42708
29038         * c-typeck.c (build_c_cast): Fold value cast to union type before
29039         wrapping it in a CONSTRUCTOR.
29040
29041 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
29042
29043         PR rtl-optimization/42699
29044         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
29045         involved.
29046
29047 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29048
29049         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
29050         SUBTARGET_WARN_UNUSED_SPEC): Move ...
29051         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
29052         SUBTARGET_WARN_UNUSED_SPEC): ... here
29053         * config/mips/iris5.h (LIBGCC_SPEC): Define.
29054
29055 2010-01-12  Julian Brown  <julian@codesourcery.com>
29056
29057         * config/arm/neon-schedgen.ml (Utils): Don't try to
29058         open missing module.
29059         (find_with_result): New.
29060
29061 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
29062
29063         PR debug/42662
29064         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
29065         sharing when canonicalizing ({lt,ge}u (plus a b) b).
29066
29067         PR tree-optimization/42645
29068         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
29069         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
29070         decl_map, set processing_debug_stmt to -1 and return name without
29071         any remapping.
29072
29073 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
29074
29075         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
29076         binutils version, and reword target configuration description.
29077
29078 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
29079
29080         * config/avr/avr.h (LINKER_NAME): Remove.
29081
29082 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
29083
29084         PR target/42416
29085         * config/rs6000/rs6000.c (rs6000_override_options): On targets
29086         that support VSX, warn for -mno-altivec if vsx is not disabled,
29087         and disable vsx.
29088
29089 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
29090             Shujing Zhao  <pearly.zhao@oracle.com>
29091
29092         PR translation/42469
29093         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
29094         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
29095         character between option name and help text.
29096         * c.opt (imultilib): Likewise.
29097
29098 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
29099
29100         * lto-streamer-out.c (output_unreferenced_globals): Output static
29101         variables.
29102
29103 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
29104
29105         PR rtl-optimization/42621
29106         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
29107         optimizing for size.
29108         (duplicate_computed_gotos): Remove now-redundant check.
29109
29110 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
29111
29112         PR target/37454
29113         * configure.ac: Save and restore LDFLAGS and LIBS
29114         * configure: Regenerate.
29115
29116 2010-01-10  Richard Guenther  <rguenther@suse.de>
29117
29118         PR middle-end/42667
29119         * builtins.c (fold_builtin_strlen): Add type argument and
29120         convert the resulting length to it.
29121         (fold_builtin_1): Adjust.
29122
29123 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
29124
29125         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
29126         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
29127         1 insn.
29128         (num_insns_constant_wide): Adjust for that change.
29129
29130 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
29131
29132         PR debug/42631
29133         * web.c (union_defs): Add used argument, to combine uses of
29134         uninitialized regs.
29135         (entry_register): Adjust type and tests of used argument.
29136         (web_main): Widen used for new use.  Pass it to union_defs.
29137         * df.h (union_defs): Adjust prototype.
29138
29139 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
29140
29141         PR debug/42630
29142         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
29143         uses in new incoming argument.  Free body.
29144         (reset_debug_uses_in_loop): New.
29145         (analyze_insn_to_expand_var): Call the latter if the former found
29146         anything.  Fix whitespace.  Reject invalid dest overlaps before
29147         going through all insns in the loop.
29148
29149 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
29150
29151         PR debug/42629
29152         * haifa-sched.c (dying_use_p): Debug insns don't count.
29153
29154 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
29155
29156         PR middle-end/42363
29157         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
29158         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
29159         (verify_gimple_call): Reject LHS in noreturn calls.
29160
29161 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
29162
29163         PR debug/42604
29164         PR debug/42395
29165         * tree-vect-loop-manip.c (adjust_info): New type.
29166         (adjust_vec): New pointer to vector.
29167         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
29168         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
29169         (slpeel_update_phis_for_duplicate_loop): Use them.
29170         (slpeel_update_phi_nodes_for_guard1): Likewise.
29171         (slpeel_update_phi_nodes_for_guard2): Likewise.
29172         (slpeel_tree_peel_loop_to_edge): Likewise.
29173         (vect_update_ivs_after_vectorizer): Likewise.
29174
29175 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
29176
29177         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
29178         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
29179
29180 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
29181
29182         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
29183         bogus uninitialized warning.
29184
29185 2010-01-09  Richard Guenther  <rguenther@suse.de>
29186
29187         PR middle-end/42512
29188         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
29189         the evolution is compatible with the initial condition.
29190
29191 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
29192
29193         * gcc.c (process_command): Update copyright notice dates.
29194         * gcov.c (print_version): Likewise.
29195         * gcov-dump.c (print_version): Likewise.
29196         * mips-tfile.c (main): Likewise.
29197         * mips-tdump.c (main): Likewise.
29198
29199 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
29200
29201         PR target/41885
29202         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
29203         (rotlhi3): Delete.
29204         (rotlhi3_8): Delete.
29205         (rotlsi3): Delete.
29206         (rotlsi3_8): Delete.
29207         (rotlsi3_16): Delete.
29208         (rotlsi3_24): Delete.
29209         (rotl<mode>3): New.
29210         (*rotw<mode>3): New.
29211         (*rotb<mode>3): New.
29212         * config/avr/avr.c (avr_rotate_bytes): New function.
29213         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
29214
29215 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
29216
29217         PR target/37454
29218         * configure.ac: Modify -rdynamic check.
29219         * configure: Regenerate.
29220
29221 2010-01-08  DJ Delorie  <dj@redhat.com>
29222
29223         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
29224         register popping order.
29225
29226 2010-01-08  Richard Guenther  <rguenther@suse.de>
29227
29228         PR lto/42528
29229         * c.opt (fsigned-char): Also let LTO handle this option.
29230         (funsigned-char): Likewise.
29231
29232 2010-01-07  Richard Guenther  <rguenther@suse.de>
29233
29234         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
29235         (gimple_op): Likewise.
29236         (gimple_op_ptr): Likewise.
29237         (gimple_assign_set_lhs): Remove gcc_assert.
29238         (gimple_assign_set_rhs1): Likewise.
29239         (gimple_assign_set_rhs2): Likewise.
29240         (gimple_call_set_lhs): Likewise.
29241         (gimple_call_set_fn): Likewise.
29242         (gimple_call_set_fndecl): Likewise.
29243         (gimple_call_fndecl): Likewise.
29244         (gimple_call_return_type): Likewise.
29245         (gimple_call_set_chain): Likewise.
29246         (gimple_call_num_args): Likewise.
29247         (gimple_call_set_arg): Likewise.
29248         (gimple_cond_set_code): Likewise.
29249         (gimple_cond_set_lhs): Likewise.
29250         (gimple_cond_set_rhs): Likewise.
29251         (gimple_cond_set_true_label): Likewise.
29252         (gimple_cond_set_false_label): Likewise.
29253         (gimple_label_set_label): Likewise.
29254         (gimple_goto_set_dest): Likewise.
29255         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
29256         (gimple_debug_bind_get_value): Likewise.
29257         (gimple_debug_bind_get_value_ptr): Likewise.
29258         (gimple_debug_bind_set_var): Likewise.
29259         (gimple_debug_bind_set_value): Likewise.
29260         (gimple_debug_bind_reset_value): Likewise.
29261         (gimple_debug_bind_has_value_p): Likewise.
29262         (gimple_return_retval_ptr): Remove gcc_assert.
29263         (gimple_return_retval): Likewise.
29264         (gimple_return_set_retval): Likewise.
29265         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
29266         (safe_referenced_var_iterator): Remove.
29267         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
29268         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
29269         (fill_referenced_var_vec): Remove.
29270         (first_readonly_imm_use): Remove redundant gcc_assert.
29271         (phi_arg_index_from_use): Combine gcc_asserts.
29272         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
29273         (first_imm_use_stmt): Remove redundant gcc_assert.
29274         * tree-cfg.c (verify_gimple_call): Verify function and chain
29275         operands.  Verify arguments.
29276         (verify_types_in_gimple_stmt): Verify condition code and labels.
29277
29278 2010-01-07  Richard Guenther  <rguenther@suse.de>
29279
29280         PR tree-optimization/42641
29281         * sese.c (rename_map_elt_info): Use the SSA name version, do
29282         not hash pointers.
29283
29284 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
29285
29286         PR tree-optimization/42625
29287         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
29288         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
29289
29290 2010-01-07  Duncan Sands  <baldrick@free.fr>
29291
29292         * Makefile.in (PLUGIN_HEADERS): Add version.h.
29293
29294 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
29295
29296         PR target/42511
29297         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
29298         note itself is not function_invariant_p.
29299
29300 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
29301
29302         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
29303         Do not add the DF_NOTE problem.
29304         * store-motion.c (execute_rtl_store_motion): Likewise.
29305
29306 2010-01-07  Martin Jambor  <mjambor@suse.cz>
29307
29308         PR tree-optimization/42157
29309         * tree-sra.c (compare_access_positions): Stabilize sort if both
29310         accesses have integer types, return zero immediately if they are the
29311         same.
29312
29313 2010-01-06  Richard Henderson  <rth@redhat.com>
29314
29315         PR middle-end/41883
29316         * haifa-sched.c (add_to_note_list): Merge into ...
29317         (concat_note_lists): ... here, and ...
29318         (unlink_other_notes, rm_other_notes): Merge into...
29319         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
29320         NOTE_INSN_EPILOGUE_BEG.
29321
29322 2010-01-06  Richard Guenther  <rguenther@suse.de>
29323
29324         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
29325         not inline regular functions into always-inline functions.
29326
29327 2010-01-06  Nick Clifton  <nickc@redhat.com>
29328
29329         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
29330         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
29331         used together.
29332         (OVERRIDE_OPTIONS): Delete.
29333         (OPTIMIZATION_OPTIONS): Define.
29334         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
29335         * config/rx/rx.c (rx_handle_option): Issue an error message if
29336         -mcpu=rx200 and -fpu are used together.
29337         (rx_set_optimization_options): New function.  Issue an error
29338         message if an optimization attribute attempts to reset the FPU/
29339         math optimization pairing.
29340         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
29341         * config/rx/rx.opt: Set the default to 32-bit doubles.
29342         * config/rx/t-rx: Add multilibs for -nofpu option.
29343         * doc/invoke.texi: Update documentation of RX options.
29344
29345 2010-01-06  Richard Guenther  <rguenther@suse.de>
29346
29347         * tree-ssa-pre.c (name_to_id): New global.
29348         (alloc_expression_id): Simplify SSA name handling.
29349         (lookup_expression_id): Likewise.
29350         (init_pre): Zero name_to_id.
29351         (fini_pre): Free it.
29352
29353 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
29354
29355         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
29356
29357 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
29358
29359         PR target/42542
29360         * config/i386/sse.md (smaxv2di3): New.
29361         (umaxv2di3): Likewise.
29362         (sminv2di3): Likewise.
29363         (uminv2di3): Likewise.
29364
29365 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
29366
29367         PR target/42564
29368         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
29369         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
29370         (legitimize_tls_address): Likewise.
29371         (sparc_tls_referenced_p): Likewise.
29372         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
29373         and adjust calls to legitimize_pic_address.
29374         (legitimate_constant_p) Use sparc_tls_referenced_p.
29375         (legitimate_pic_operand_p): Likewise.
29376         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
29377         (sparc_tls_symbol_ref_1): Delete.
29378         (sparc_tls_referenced_p): Make static, recognize specific patterns.
29379         (legitimize_tls_address): Make static, handle CONST patterns.
29380         (legitimize_pic_address): Make static, remove unused parameter and
29381         adjust recursive calls.
29382         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
29383         and adjust call to legitimize_pic_address.
29384         (sparc_output_mi_thunk): Likewise.
29385
29386 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
29387             H.J. Lu  <hongjiu.lu@intel.com>
29388
29389         PR target/42542
29390         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
29391         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
29392         operands to make them signed.
29393
29394         Revert:
29395         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
29396
29397         PR target/42542
29398         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
29399         GTU to GT for V4SI and V2DI.
29400
29401         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
29402         (umin<mode>3): Removed.
29403         (uminv8hi3): New.
29404         (uminv4si3): Likewise.
29405
29406 2010-01-05  Martin Jambor  <mjambor@suse.cz>
29407
29408         PR tree-optimization/42462
29409         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
29410         current_function_decl to helper functions and macros.
29411
29412 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29413
29414         PR bootstrap/41771
29415         * flags.h: Don't include real.h.
29416         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
29417         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
29418         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
29419         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
29420         * dominance.c: Update copyright.
29421         * gimple.c (walk_gimple_op): Remove inline.
29422         * tree-ssa-reassoc.c: Include real.h.
29423         * Makefile.in (FLAGS_H): Remove $(REAL_H).
29424         (tree-ssa-reassoc.o): Depend on $(REAL_H).
29425
29426 2010-01-05  Nick Clifton  <nickc@redhat.com>
29427
29428         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
29429         register to push into the stack frame when the accumulator has to
29430         be saved during interrupts.
29431
29432 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
29433
29434         * doc/invoke.texi: Remove the documentation about option
29435         -Wunreachable-code.
29436         * common.opt (Wunreachable-code):  Preserved for backward
29437         compatibility.
29438         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
29439         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
29440         the backward compatibility flag section.
29441
29442 2010-01-05  Richard Guenther  <rguenther@suse.de>
29443
29444         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
29445
29446 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
29447
29448         PR other/42611
29449         * cfgexpand.c (expand_one_var): Diagnose too large variables.
29450
29451         PR tree-optimization/42508
29452         * tree-sra.c (convert_callers): Check for recursive call
29453         by comparing cgraph nodes instead of decls.
29454         (modify_function): Call ipa_modify_formal_parameters also
29455         on all same_body aliases.
29456
29457         * cgraphunit.c (cgraph_materialize_all_clones): Compare
29458         cgraph nodes when checking for same_body aliases.
29459
29460 2010-01-05  Richard Guenther  <rguenther@suse.de>
29461
29462         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
29463         allocation and lookup.
29464         (get_or_alloc_expr_for_constant): Likewise.
29465         (phi_translate): Sink allocation.
29466
29467 2010-01-04  Richard Guenther  <rguenther@suse.de>
29468
29469         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
29470         a new entry only if needed.
29471         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
29472         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
29473         hashtable lookup.
29474         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
29475         the result array.
29476         (phi_translate): Handle CONSTANTs early.
29477
29478 2010-01-04  Martin Jambor  <mjambor@suse.cz>
29479
29480         PR tree-optimization/42398
29481         * tree-sra.c (struct access): Removed flag grp_different_types.
29482         (dump_access): Do not dump the removed flag.
29483         (sort_and_splice_var_accesses): Do not set the removed flag.
29484         (sra_modify_expr): Check for type compatibility directly.
29485
29486 2010-01-04  Martin Jambor  <mjambor@suse.cz>
29487
29488         PR tree-optimization/42366
29489         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
29490         edges with variable number of parameters.
29491         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
29492         flag instead of asserting it.
29493         (ipa_read_node_info): Read uses_analysis_done flag.
29494
29495 2010-01-04  Richard Guenther  <rguenther@suse.de>
29496
29497         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
29498         iterative_hash_* as intended.
29499         (vn_reference_compute_hash): Likewise.  Simplify hashing
29500         SSA names.
29501         (vn_reference_lookup_2): Likewise.
29502         (vn_nary_op_compute_hash): Likewise.
29503         (vn_phi_compute_hash): Likewise.
29504         (expressions_equal_p): Remove strange code.
29505         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
29506         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
29507         (bitmap_insert_into_set_1): Take value-id as parameter.
29508         (add_to_value): Pass it.
29509         (bitmap_insert_into_set): Likewise.
29510         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
29511
29512 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
29513
29514         PR driver/42442
29515         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
29516         (do_self_spec): For switches with SWITCH_IGNORE set set also
29517         SWITCH_IGNORE_PERMANENTLY.
29518         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
29519         of SWITCH_IGNORE.
29520
29521 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
29522
29523         * lto-streamer-out.c (output_unreferenced_globals): Output the full
29524         tree of an unreferenced global var.
29525
29526 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
29527
29528         PR target/42542
29529         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
29530         GTU to GT for V4SI and V2DI.
29531
29532         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
29533         (umin<mode>3): Removed.
29534         (uminv8hi3): New.
29535         (uminv4si3): Likewise.
29536
29537 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
29538
29539         PR lto/42581
29540         * collect2.c (main): Turn on trace in collect2 if -v is passed
29541         to gcc with LTO.
29542
29543 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
29544
29545         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
29546         description of expression operand.
29547
29548 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
29549
29550         * configure.ac: Add install-html to target_list for Make-hooks.
29551         * configure: Regenerate.
29552         * fortran/Make-lang.in (F95_HTMLFILES): New.
29553         (fortran.html): Use it.
29554         (fortran.install-html): New.
29555         * Makefile.in (install-html): Add lang.install-html.
29556         * java/Make-lang.in (JAVA_HTMLFILES): New.
29557         (java.html): Use it.
29558         (java.install-html): New.
29559         * objc/Make-lang.in (objc.install-html): New.
29560         * objcp/Make-lang.in (obj-c++.install-html): New.
29561         * cp/Make-lang.in (c++.install-html): New.
29562         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
29563         * lto/Make-lang.in (lto.install-html): New.
29564
29565 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
29566
29567         PR lto/42520
29568         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
29569
29570 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
29571
29572         PR rtl-optimization/41862
29573         * store-motion.c (store_killed_in_insn, compute_store_table,
29574         remove_reachable_equiv_notes, replace_store_insn,
29575         build_store_vectors): Ignore all DEBUG_INSNs.
29576
29577 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
29578
29579         PR lto/41564
29580         * common.opt: Add dumpdir.
29581
29582         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
29583         isn't specified.
29584         (option_map): Add --dumpdir.
29585
29586         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
29587
29588         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
29589
29590         * opts.c (decode_options): Try dump_dir_name first if
29591         dump_base_name isn't an absolute path.
29592         (common_handle_option): Handle OPT_dumpdir.
29593
29594         * toplev.c (dump_dir_name): New.
29595         (print_switch_values): Also ignore -dumpdir.
29596
29597         * toplev.h (dump_dir_name): New.
29598
29599 2010-01-03  Richard Guenther  <rguenther@suse.de>
29600
29601         PR tree-optimization/42589
29602         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
29603         double-word expansion of bswap32.
29604
29605 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
29606
29607         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
29608         with BLOCK_FOR_INSN.
29609         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
29610         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
29611         noce_process_if_block): Likewise.
29612         * gcse.c (compute_local_properties, insert_expr_in_table,
29613         insert_set_in_table, canon_list_insert, find_avail_set,
29614         pre_insert_copy_insn): Likewise.
29615
29616         * basic-block.h (BLOCK_NUM): Move from here...
29617         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
29618
29619 2010-01-03  Richard Guenther  <rguenther@suse.de>
29620
29621         PR tree-optimization/42438
29622         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
29623         contains_may_not_return_call flag.
29624         (BB_MAY_NOTRETURN): New.
29625         (valid_in_sets): Trapping nary operations are not valid
29626         in blocks that may not return.
29627         (insert_into_preds_of_block): Remove check for trapping expressions.
29628         (compute_avail): Compute also BB_MAY_NOTRETURN.
29629
29630 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
29631
29632         * doc/invoke.texi: Add 2010 to copyright years.
29633
29634 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
29635
29636         * config/sparc/sparc.c: Fix formatting nits.
29637
29638 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
29639             Alexander Monakov  <amonakov@ispras.ru>
29640
29641         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
29642
29643 2010-01-02  Richard Guenther  <rguenther@suse.de>
29644
29645         PR middle-end/42577
29646         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
29647         (simplify_switch_using_ranges): Mark to be removed edges
29648         as non-executable.
29649
29650 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29651
29652         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
29653
29654         * collect2.c (scan_libraries): Add missing argument in call to
29655         scan_prog_file.
29656
29657 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
29658
29659         PR target/42448
29660         * config/alpha/predicates.md (aligned_memory_operand): Return false
29661         for CQImode.
29662         (unaligned_memory_operand): Return true for CQImode.
29663         * config/alpha/alpha.c (get_aligned_mem): Assert that location
29664         doesn not cross aligned SImode word boundary.
29665
29666 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
29667
29668         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
29669         Remove.
29670         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
29671         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
29672
29673 2010-01-02  Richard Guenther  <rguenther@suse.de>
29674
29675         PR lto/41597
29676         * toplev.c (compile_file): Emit LTO marker properly.  Change
29677         it to __gnu_lto_v1.
29678         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
29679
29680 2010-01-01  Richard Guenther  <rguenther@suse.de>
29681
29682         PR debug/42455
29683         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
29684
29685 2010-01-01  Richard Guenther  <rguenther@suse.de>
29686
29687         PR c/42570
29688         * c-decl.c (grokdeclarator): For zero-size arrays force
29689         structural equality checks as layout_type does.
29690
29691 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
29692
29693         * builtins.c: Update copyright to 2010.
29694
29695 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
29696
29697         PR lto/42531
29698         * lto-streamer-out.c (produce_asm): Revert the last change.
29699         (copy_function): Likewise.
29700
29701         * lto-streamer.c (lto_get_section_name): Skip any leading
29702         asterisk in name.
29703
29704 2010-01-01  Richard Guenther  <rguenther@suse.de>
29705
29706         PR middle-end/42559
29707         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
29708         for LABEL_DECLs.
29709
29710 \f
29711 Copyright (C) 2010 Free Software Foundation, Inc.
29712
29713 Copying and distribution of this file, with or without modification,
29714 are permitted in any medium without royalty provided the copyright
29715 notice and this notice are preserved.