OSDN Git Service

* config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-10-07  Alan Modra  <amodra@gmail.com>
2
3         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
4         rather than sign extension by hand.
5
6 2010-10-07  Jan Hubicka  <jh@suse.cz>
7
8         PR middle-end/45926
9         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
10
11 2010-10-07  Richard Guenther  <rguenther@suse.de>
12
13         PR bootstrap/45914
14         * configure.ac: Fix typo.
15         * configure: Regenerated.
16
17 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
18
19         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
20         define_builtin_std where it's unnecessary.
21         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
22
23 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
24
25         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
26         * doc/tm.texi.in: Regenerate.
27         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
28         * targhooks.c (default_class_likely_spilled_p): Don't use the
29         CLASS_LIKELY_SPILLED_P macro.
30
31         * config/arm/arm.md: Update comment.
32
33 2010-10-06  Jan Hubicka  <jh@suse.cz>
34
35         * ipa.c (cgraph_remove_unreachable_nodes): External references can
36         always be removed.
37         (cgraph_externally_visible_p): We can not bring local comdats that
38         are known to linker; fix handling of internal visibility.
39         (function_and_variable_visibility): Likewise.
40
41 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
42
43         PR rtl-optimization/45394
44         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
45         (struct rtx_subst_pair): Remove AFTER field.
46         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
47         (propagate_for_debug): Remove MOVE parameter and adjust.
48         (try_combine): In the special case where I2 is a PARALLEL, combine only
49         destinations of SETs and set I2SRC to the I2 source.
50         Adjust calls to propagate_for_debug throughout.
51         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
52         insns.
53
54 2010-10-06  Olivier Hainque  <hainque@adacore.com>
55
56         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
57         switch on insn codes as sequence of ifs.
58
59 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
60
61         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
62         be UI_NONE for picochip.
63         (picochip_option_override): Do not disable exception flags.
64         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
65         Declare.
66
67 2010-10-06  Richard Guenther  <rguenther@suse.de>
68
69         * Makefile.in (regmove.o): Depend on $(TARGET_H).
70
71 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
72
73         Implemented fast enumeration for Objective-C.
74         * c-parser.c (objc_could_be_foreach_context): New.
75         (c_lex_one_token): Recognize RID_IN keyword in a potential
76         Objective-C foreach context.
77         (c_parser_declaration_or_fndef): Added parameter.  Accept
78         Objective-C RID_IN keyword as terminating a declaration; in that
79         case, return the declaration in the new parameter.
80         (c_parser_extenral_declaration): Updated calls to
81         c_parser_declaration_or_fndef.
82         (c_parser_declaration_or_fndef): Same change.
83         (c_parser_compound_statement_nostart): Same change.
84         (c_parser_label): Same change.
85         (c_parser_objc_methodprotolist): Same change.
86         (c_parser_omp_for_loop): Same change.
87         (c_parser_for_statement): Detect and parse Objective-C foreach
88         statements.
89         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
90         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
91         fast enumeration parsing code to turn off the c99 error but still
92         perform checks on the loop declarations.
93         * c-tree.h (check_for_loop_decls): Updated declaration.
94         * doc/objc.texi: Document fast enumeration.
95
96 2010-10-06  Nick Clifton  <nickc@redhat.com>
97
98         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by
99         one.
100         (MDR_REGNUM): Define.
101         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed
102         register.
103         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
104         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
105         (REGISTER_NAMES): Add MDR.
106         (DWARF2_DEBUGGING_INFO): Define to 1.
107         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
108         (F): New function.  Sets RTX_FRAME_RELATED_P.
109         (mn10300_gen_multiple_store): Use F.
110         (expand_prologue): Use F.  Use gen_movsf() to push floating
111         point registers.
112         (expand_epilogue): Use gen_movsf() to pop floating point
113         registers.
114         (mn10300_option_override): Disable combine stack adjust pass.
115
116 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
117
118         PR target/45901
119         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
120         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
121
122 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
123
124         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
125         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
126         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
127         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
128         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
129         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
130         BUILT_IN_TOUPPER): Mark as leaf.
131
132         PR middle-end/45838
133         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
134         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
135         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
136         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
137         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
138         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
139         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
140
141 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
142
143         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
144         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
145         (m68hc11_class_likely_spilled_p): New function.
146
147 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
148
149         * c-parser.c (c_parser_objc_method_definition): Updated comment.
150
151 2010-10-05  Jan Hubicka  <jh@suse.cz>
152
153         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
154         Document.
155         * opts.c (decode_options): Handle lto partitions.
156         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
157         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
158
159 2010-10-05  Jan Hubicka  <jh@suse.cz>
160
161         * cgraphunit.c (assemble_function): Output thunks and aliases before
162         the function itself.
163
164 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
165
166         * config/picochip/picochip.c (picochip_option_override): Disable
167         exception flags for picochip.
168
169 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
170
171         * opts-common.c (handle_option, handle_generated_option,
172         read_cmdline_option, set_option): Add diagnostic_context
173         parameter.  Update calls among these functions.
174         (set_option): Don't use global_dc.
175         * opts.c (read_cmdline_options): Pass global_dc to
176         read_cmdline_option.
177         (decode_options): Pass global_dc to enable_warning_as_error.
178         (common_handle_option): Pass global_dc to enable_warning_as_error.
179         (enable_warning_as_error): Add diagnostic_context parameter.
180         Document parameters.  Don't use global_dc.  Pass
181         diagnostic_context parameter to handle_generated_option.
182         * opts.h (set_option, handle_option, handle_generated_option,
183         read_cmdline_option, enable_warning_as_error): Add
184         diagnostic_context parameter.
185         * Makefile.in (lto-opts.o): Update dependencies.
186         * coretypes.h (struct diagnostic_context, diagnostic_context):
187         Declare here.
188         * diagnostic.h (diagnostic_context): Don't declare typedef here.
189         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
190         * langhooks-def.h (struct diagnostic_context): Don't declare here.
191         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
192         using diagnostic_context typedef.
193         * langhooks.c (lhd_initialize_diagnostics): Declare using
194         diagnostic_context typedef.
195         * langhooks.h (struct diagnostic_context): Don't declare here.
196         (initialize_diagnostics, print_error_function): Declare using
197         diagnostic_context typedef.
198         * lto-opts.c: Include diagnostic.h.
199         (lto_reissue_options): Pass global_dc to set_option.  Pass
200         DK_UNSPECIFIED not 0.
201         * plugin.c (plugins_internal_error_function): Declare using
202         diagnostic_context typedef.
203         * plugin.h (struct diagnostic_context): Don't declare here.
204         (plugins_internal_error_function): Declare using
205         diagnostic_context typedef.
206
207 2010-10-05  Olivier Hainque  <hainque@adacore.com>
208             Nicolas Roche  <roche@adacore.com>
209
210         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
211         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
212
213 2010-10-05  Ira Rosen  <irar@il.ibm.com>
214
215         PR tree-optimization/45752
216         * tree-vect-slp.c (vect_get_mask_element): Remove static
217         variables, make them function arguments.
218         (vect_transform_slp_perm_load): Pass new arguments to
219         vect_get_mask_element.
220
221 2010-10-05  Richard Guenther  <rguenther@suse.de>
222
223         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
224         (gimple_mod_pow2): Likewise.
225         (gimple_mod_subtract): Likewise.
226         (gimple_ic): Likewise.
227         (gimple_stringop_fixed_value): Likewise.
228         * tree-profile.c (tree_init_edge_profiler): Mark profile
229         functions nothrow and leaf.
230         (add_abnormal_goto_call_edges): Remove.
231         (tree_gen_edge_profiler): Work on SSA form.
232         (tree_gen_ic_profiler): Likewise.  Simplify.
233         (do_tree_profiling): Update SSA form.
234         (pass_tree_profile): Remove.
235         (do_tree_profiling): Likewise.
236         (gate_tree_profile_ipa): New function.
237         (pass_ipa_tree_profile): New.
238         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
239         state of instrumented functions.
240         * passes.c (init_optimization_passes): Remove early non-SSA
241         inlining.  Move profiling after early optimizations.
242         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
243         (pass_ipa_early_inline): Likewise.
244         * tree-pass.h (pass_ipa_early_inline): Remove.
245         (pass_tree_profile): Likewise.
246         (pass_ipa_tree_profile): Declare.
247
248 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
249             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
250
251         * gcc/config/s390/s390.c (z196_cost): New.
252         (s390_handle_arch_option): Add -march=z196.
253         (s390_option_override): Use the new cost function and use the z10
254         defaults also for z196.
255         (legitimate_reload_constant_p): Adjust comment.
256         (legitimate_reload_fp_constant_p): New function.
257         (s390_preferred_reload_class): Distingiush between FP and Int constants.
258         (preferred_la_operand_p): Avoid la with index on z196.
259         (s390_adjust_priority): Trigger also for z196.
260         (s390_issue_rate): Issue rate for z196 is 3.
261         (s390_z10_fix_long_loop_prediction): Rename to ...
262         (s390_fix_long_loop_prediction): ... this.
263         (s390_reorg): Apply the z10 adjustments also for z196.
264         (s390_loop_unroll_adjust): Do this also for z196.
265         * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
266         (enum processor_flags): Add PF_Z196.
267         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
268         (TARGET_CPU_Z196, TARGET_Z196): New macros.
269         * gcc/config.gcc: Enable z196 for --with-arch.
270         * gcc/config/s390/2817.md: New file.
271         * gcc/config/s390/2084.md: New type for multiply and add.
272         * gcc/config/s390/2097.md: Likewise.
273         * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
274         (UNSPECV_ATOMIC_OP): New constants.
275         (fmadddf, fmaddsf): New values for type attribute.
276         (z196prop): New insn attribute.
277         (cpu, cpu_facility): Add z196.
278         (ATOMIC_Z196): New code iterator.
279         (noxa): New code attribute.
280         (gk): New mode attribute.
281         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
282         Support load zero for fp constants.
283         (fixuns_truncdddi2, fixuns_trunctddi2)
284         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
285         for z196.
286         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
287         (popcounthi2, popcountqi2): New expander.
288         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
289         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
290         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
291         insn definition.
292         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
293         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
294         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc, *sub<mode>3)
295         (*sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly, *sub<mode>3_cc)
296         (*sub<mode>3_cc2, *sub<mode>3_cconly, *sub<mode>3_cconly2)
297         (*anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc, *andsi3_cconly)
298         (*andsi3_zarch, *andsi3_esa, *andhi3_zarch, *andqi3_zarch, *iordi3_cc)
299         (*iordi3_cconly, *iordi3, *iorsi3_cc, *iorsi3_cconly, *iorsi3_zarch)
300         (*iorhi3_zarch, *iorqi3_zarch, *xordi3_cc, *xordi3_cconly, *xordi3)
301         (*xorsi3_cc, *xorsi3_cconly, *xorsi3, *xorhi3, *xorqi3, *<shift><mode>3)
302         (*<shift><mode>3_and, *ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
303         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
304         Support new z196 instructions.
305
306 2010-10-05  Richard Guenther  <rguenther@suse.de>
307
308         PR middle-end/45877
309         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
310         case where gimplification optimizes away the stmt.
311
312 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
313
314         PR debug/45849
315         * var-tracking.c (strip_pointer_flags): New function.
316         (emit_note_insn_var_location): If rtx_equal_p check failed,
317         retry on locations simplified with simplify_replace_fn_rtx
318         and strip_pointer_flags as its callback.
319
320 2010-10-04  Jan Hubicka  <jh@suse.cz>
321
322         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
323         (can_refer_decl_in_current_unit_p): ... this one; reverse return
324         value; handle comdats too.
325         (canonicalize_constructor_val): Use it; handle function_decls
326         correctly.
327         (gimple_fold_obj_type_ref_known_binfo): Likewise.
328         * gimple.c (get_base_address): Accept all kinds of decls.
329
330 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
331
332         * flags.h (g_switch_value, g_switch_set): Remove.
333         * opts.c (g_switch_value, g_switch_set): Remove.
334         * config/g.opt (G): Add Var(g_switch_value).
335         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G
336         here.
337         (alpha_option_override): Check global_options_set.x_g_switch_value
338         instead of g_switch_set.
339         (alpha_in_small_data_p): Remove cast in comparison with
340         g_switch_value.
341         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
342         g_switch_value to unsigned HOST_WIDE_INT.
343         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
344         with g_switch_value.
345         (frv_handle_option): Don't handle -G here.
346         (frv_option_override): Check global_options_set.x_g_switch_value
347         instead of g_switch_set.  Don't modify g_switch_set.
348         (frv_in_small_data_p): Remove cast in comparison with
349         g_switch_value.
350         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
351         g_switch_value to unsigned HOST_WIDE_INT.
352         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
353         (ia64_option_override): Check global_options_set.x_g_switch_value
354         instead of g_switch_set.
355         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
356         Remove.
357         (lm32_in_small_data_p): Remove cast in comparison with
358         g_switch_value.
359         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
360         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
361         HOST_WIDE_INT.
362         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
363         (m32r_init): Check global_options_set.x_g_switch_value instead of
364         g_switch_set.
365         (m32r_in_small_data_p): Remove cast in comparison with
366         g_switch_value.
367         (m32r_file_start): Format g_switch_value with %d.
368         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
369         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned
370         HOST_WIDE_INT.
371         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
372         handle -G here.
373         (microblaze_option_override): Check
374         global_options_set.x_g_switch_value instead of g_switch_set.
375         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
376         (mips_option_override): Check global_options_set.x_g_switch_value
377         instead of g_switch_set.
378         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G
379         here.
380         (rs6000_file_start): Format g_switch_value with %d.
381         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
382         comparisons with g_switch_value.
383         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
384         global_options_set.x_g_switch_value instead of g_switch_set.
385         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
386         global_options_set.x_g_switch_value instead of g_switch_set.
387         * config/score/score.c (score_handle_option): Don't handle -G
388         here.
389         * config/score/score3.c (score3_option_override): Check
390         global_options_set.x_g_switch_value instead of g_switch_set.
391         * config/score/score7.c (score7_option_override): Check
392         global_options_set.x_g_switch_value instead of g_switch_set.
393
394 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
395
396         * common.opt (fira-coalesce): Remove.
397
398         * doc/invoke.texi (flag_ira_coalesce): Remove.
399
400         * ira-color.c (allocno_coalesced_p): Move before
401         copy_freq_compare_func.
402         processed_coalesced_allocno_bitmap): Ditto.
403         (update_conflict_hard_regno_costs): Don't use
404         ALLOCNO_FIRST_COALESCED_ALLOCNO.
405         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
406         (assign_hard_reg): Assume no coalesced allocnos.
407         (get_coalesced_allocnos_attributes): Remove.
408         (bucket_allocno_compare_func): Assume no coalesced allocnos.
409         (push_allocno_to_stack): Ditto.
410         (remove_allocno_from_bucket_and_push): Use
411         ira_print_expanded_allocno instead of print_coalesced_allocno.
412         (push_allocnos_to_stack): Assume uncoalesced allocnos.
413         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
414         all_conflicting_hard_regs.
415         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
416         (setup_allocno_left_conflicts_size): Ditto.
417         (put_allocno_into_bucket): Ditto.
418         (copy_freq_compare_func): Remove.
419         (copy_freq_compare_func, merge_allocnos): Move before
420         coalesced_pseudo_reg_freq_compare.
421         coalesced_allocno_conflict_p): Ditto.
422         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
423         parameter.  Assume it true.
424         (color_allocnos): Assume uncoalesced allocnos.  Use
425         ira_print_expanded_allocno instead of print_coalesced_allocno.
426         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
427         parameter.
428
429         * ira.c: Remove comment about coalescing.
430
431 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
432
433         * config/mips/mips.h (target_flags_explicit): Declare for
434         GENERATOR_FILE.
435
436 2010-10-04  Andi Kleen <ak@linux.intel.com>
437
438         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
439         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
440
441 2010-10-04  Matthias Klose  <doko@ubuntu.com>
442
443         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
444         multilib osdirname if it exists.
445         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
446
447 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
448
449         PR middle-end/45876
450         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
451         arg0's type or its unsigned counterpart as utype.  Convert
452         arg1 to utype unconditionally.
453
454 2010-10-04  Julian Brown  <julian@codesourcery.com>
455
456         * expr.c (expand_assignment): Add assertion to prevent emitting
457         null rtx for movmisalign pattern.
458         (expand_expr_real_1): Likewise.
459         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
460         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
461         (arm_vector_alignment_reachable): New.
462         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
463         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
464         (arm_print_operand): Include alignment qualifier in %A.
465         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
466         (movmisalign<mode>): New expander.
467         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
468         insn patterns.
469
470 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
471
472         * optc-gen.awk: Define global_options_set.  Don't define
473         target_flags_explicit.
474         * opth-gen.awk: Declare global_options_set.  Define
475         target_flags_explicit as macro.
476         * opts-common.c (handle_option): Take opts_set and generated_p
477         parameters.
478         (handle_generated_option, read_cmdline_option, set_option): Take
479         opts_set parameter.
480         (set_option): Use opts_set instead of hardcoding target_flags and
481         target_flags_explicit.
482         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
483         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
484         flag_value_profile_transformations_set, flag_peel_loops_set,
485         flag_branch_probabilities_set, flag_inline_functions_set,
486         flag_ipa_cp_set, flag_ipa_cp_clone_set,
487         flag_predictive_commoning_set, flag_unswitch_loops_set,
488         flag_gcse_after_reload_set): Remove.
489         (common_handle_option, lang_handle_option, target_handle_option):
490         Take opts_set parameter.  Assert that it is &global_options_set.
491         (common_handle_option): Don't set _set variables.  Check opts_set
492         instead of such variables.
493         (enable_warning_as_error): Pass &global_options_set to
494         handle_generated_option.
495         * opts.h (cl_option_handler_func.handler, set_option,
496         handle_option, handle_generated_option, read_cmdline_option): Add
497         opts_set parameters.
498         (handle_option): Add generated_p parameter.
499         * config/i386/i386.c (ix86_function_specific_save,
500         ix86_function_specific_restore): Updat for renaming of
501         target_flags_explicit field.
502         * config/i386/i386.opt (target_flags_explicit): Rename to
503         ix86_target_flags_explicit.
504         * config/ia64/ia64.c (ia64_override_options_after_change): Check
505         global_options_set.x_flag_selective_scheduling and
506         global_options_set.x_flag_selective_scheduling2, not
507         sel_sched_switch_set.
508         * flags.h (sel_sched_switch_set,
509         flag_speculative_prefetching_set): Remove.
510         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
511         that it is &global_options_set.
512         (process_command): Pass &global_options_set to
513         read_cmdline_option.
514         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
515         set_option.
516         * toplev.c (target_flags_explicit): Remove.
517
518 2010-10-04  Jan Hubicka  <jh@suse.cz>
519
520         PR middle-end/45871
521         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
522         use get_ref_base_and_offset to handle references.
523         (fold_const_aggregate_ref): Update.
524
525 2010-10-04  Martin Jambor  <mjambor@suse.cz>
526
527         PR tree-optimization/45572
528         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
529         ipa_check_create_node_params.
530         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
531
532 2010-10-04  Yao Qi  <yao@codesourcery.com>
533
534         * doc/passes.texi: Clean up.
535
536 2010-10-03  Ian Lance Taylor  <iant@google.com>
537
538         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
539         referring to a field using a typedef name.
540         (find_anonymous_field_with_type): New static function.
541         (convert_to_anonymous_field): New static function.
542         (convert_for_assignment): If -fplan9-extensions, permit converting
543         pointer to struct to pointer to anonymous field.
544         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous
545         fields.
546         (is_duplicate_field): New static function.
547         (detect_field_duplicates_hash): If -fplan9-extensions, check for
548         typedef names duplicating field names.
549         (detect_field_duplicates): Likewise.
550         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
551         (C Dialect Options): Document -fplan9-extensions.
552         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
553
554 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
555
556         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
557         revision 164914.
558         (vect_create_data_ref_ptr): Likewise.
559         * tree-vect-stmts.c (vectorizable_store): Likewise.
560         (perm_mask_for_reverse): Likewise.
561         (reverse_vec_elements): Likewise.
562         (vectorizable_load): Likewise.
563
564 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
565
566         * cppbuiltin.c: New file.
567         * cppbuiltin.h: New file.
568         * Makefile.in: Take into account cppbuiltin.{h,c}.
569
570 2010-10-03  Andi Kleen <ak@linux.intel.com>
571
572         * lto-cgraph.c (input_cgraph): Check for missing sections.
573
574 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
575
576         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 preticate
577         to nonimmediate_operand.  Force operand 2 to register when allowed.
578         (*<shiftrt_insn><mode>3_mask): Ditto.
579         (*<rotate_insn><mode>3_mask): Ditto.
580
581 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
582
583         PR tree-optimization/45720
584         PR tree-optimization/45764
585         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
586         Don't accept backwards consecutive accesses.
587         (vect_create_data_ref_ptr): Disallow negative steps.
588
589         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
590         (perm_mask_for_reverse): Removed.
591         (reverse_vec_elements): Likewise.
592         (vectorizable_load): Don't handle negative steps.
593
594 2010-10-02  Jan Hubicka  <jh@suse.cz>
595
596         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
597         call destination is known.
598
599 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
600
601         PR target/45820
602         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
603         earlier.
604
605 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
606
607         * doc/install.texi (Configuration): Document build_configargs,
608         host_configargs, target_configargs.
609
610 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
611
612         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
613         (*<shiftrt_insn><mode>3_mask): Ditto.
614         (*<rotate_insn><mode>3_mask): Ditto.
615
616 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
617
618         PR tree-optimization/44716
619         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
620         (HOT_TEXT_SECTION_NAME): Define.
621
622 2010-10-01  Nick Clifton  <nickc@redhat.com>
623
624         * common.opt: Add -fcombine-stack-adjustments.
625         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
626         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
627         flag_combine_stack_adjustments.
628         * doc/invoke.texi: Document the new option.
629
630 2010-10-01  Richard Guenther  <rguenther@suse.de>
631
632         PR tree-optimization/45854
633         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
634
635 2010-10-01  Anthony Green  <green@moxielogic.com>
636
637         * config.gcc: Fix moxie-*-rtems* configuration.
638
639 2010-10-01  Richard Guenther  <rguenther@suse.de>
640
641         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
642         (gen_decl_die): Likewise.
643
644 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
645
646         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
647         to the function code for SPU MD builtins.
648         (spu_expand_builtin): Update.
649         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
650
651 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
652
653         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
654         sjlj_except_unwind_info.
655
656 2010-10-01  Tristan Gingold  <gingold@adacore.com>
657
658         * configure.ac: Define the nop insn for avr*-*-*
659         * configure: Regenerate.
660
661 2010-10-01  Alan Modra  <amodra@gmail.com>
662
663         PR target/45807
664         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
665         extend toc_restore_insn.
666
667 2010-09-30  Richard Guenther  <rguenther@suse.de>
668
669         PR tree-optimization/43959
670         * function.c (gimplify_parameters): Use create_tmp_reg instead of
671         create_tmp_var.
672
673 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
674
675         * config/sh/sh.c (sh_expand_prologue): Set
676         current_function_static_stack_size.
677
678 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
679
680         * configure.ac: Check for Solaris 8 ld with .hidden support.
681         * configure: Regenerate.
682
683 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
684
685         PR middle-end/45758
686         * graphite.c (graphite_initialize): Call scev_reset.
687
688 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
689
690         * sese.h (scev_analyzable_p): Return false for real or floating
691         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
692
693 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
694
695         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
696         and ps.
697         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
698         domain.
699         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
700         Do not allocate ub_expr, it is passed in initialized.
701
702 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
703
704         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
705         (build_cloog_prog): Dump CLooG input file when
706         flag_graphite_dump_cloog is set.  This is disabled on trunk.
707         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
708
709 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
710
711         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
712         verify_dominators for CDI_POST_DOMINATORS.
713         * sese.h: Remove comment about CDI_POST_DOMINATORS.
714         (recompute_all_dominators): Remove call to free_dominance_info
715         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
716         for CDI_POST_DOMINATORS.
717
718 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
719
720         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
721         over pbb_dim_iter_domain.
722
723 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
724
725         * graphite-flattening.c: Fix comments.
726
727 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
728
729         * Makefile.in (OBJS-common): Add graphite-flattening.o.
730         (graphite-flattening.o): New rule.
731         * common.opt (floop-flatten): New flag.
732         * doc/invoke.texi (-floop-flatten): Documented.
733         * graphite-flattening.c: New.
734         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
735         * graphite-poly.h (flatten_all_loops): Declared.
736         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
737         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
738         is set, also set flag_graphite.
739
740 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
741
742         * graphite-poly.c (cloog_checksum): New.
743         * graphite-poly.h (cloog_checksum): Declared.
744
745 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
746
747         * graphite-poly.c (pbb_number_of_iterations): Removed.
748         (pbb_number_of_iterations_at_time): Correctly compute the number
749         of iterations in the transformed loop.
750         * graphite-poly.h (pbb_number_of_iterations): Removed.
751
752 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
753
754         * graphite-poly.h (lst_update_scattering_seq): Removed.
755         (lst_update_scattering): Correctly handle outermost loop dewey
756         renumbering.
757
758 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
759
760         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
761         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
762         * graphite-poly.h (lst_niter_for_loop): New.
763
764 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
765
766         * graphite-poly.c (apply_poly_transforms): Do not abort when the
767         transform read from disk is not legal.  Call fatal_error instead.
768
769 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
770
771         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
772         (print_scop_header): Removed.  Inlined in the only call place...
773         (print_scop): ... here.
774
775 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
776
777         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
778
779 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
780
781         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
782
783 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
784
785         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
786         (dot_deps_stmt): Same.
787         * graphite-poly.c (dot_lst): Same.
788
789 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
790
791         * graphite-blocking.c (scop_do_strip_mine): Do not call
792         graphite_legal_transform.
793         (scop_do_block): Same.
794
795 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
796
797         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
798         description.
799
800 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
801
802         * tree-scalar-evolution.c (instantiate_array_ref): New.
803         (instantiate_scev_r): Also handle ARRAY_REFs.
804
805 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
806
807         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
808         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
809         RESULT_DECL, and FIELD_DECL.  Return false for an
810         SSA_NAME_IS_DEFAULT_DEF.
811         (compute_scalar_evolution_in_loop): Do not further analyze the
812         scalar evolution when no_evolution_in_loop_p returns true.
813
814 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
815
816         * tree-chrec.h (evolution_function_is_affine_p): Do not check
817         whether CHREC_LEFT is invariant.  A function is affine when
818         CHREC_RIGHT is invariant.
819
820 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
821
822         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
823         is_gimple_reg.
824         (rewrite_degenerate_phi): Same.
825         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
826
827 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
828
829         * graphite-scop-detection.c (graphite_can_represent_scev,
830         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
831         graphite_can_represent_loop): Remove outermost_loop.
832
833 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
834
835         PR middle-end/45229
836         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
837         handle GIMPLE_CALLs with no LHS.
838
839 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
840
841         * graphite-poly.c (init_graphite_out_file): New.
842         (init_graphite_in_file): New.
843         (apply_poly_transforms): Updated to enable reading and writing of
844         multiple scop files.
845
846 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
847
848         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
849         redundant checks.
850
851 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
852
853         * graphite-clast-to-gimple.c (precision_for_value): Adjust
854         computation of precision by 1.
855
856 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
857
858         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
859         (openscop_read_polyhedron_matrix): New.
860         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
861         (openscop_read_N_int): Same.
862         * graphite-poly.c (openscop_read_N_int): New.
863         (openscop_read_one_int): New.
864         (openscop_read_N_string): New.
865         (openscop_read_one_string): New.
866         (openscop_read_powerset_matrix): New.
867         (graphite_read_transforms): Remove.
868         (graphite_read_scatt): New.
869         (graphite_read_scop_file): New.
870         (apply_poly_transforms): Updated to call graphite_read_scop_file.
871
872 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
873
874         * graphite-poly.c: Change include order.
875
876 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
877
878         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
879         (cloog_matrix_nrows): New.
880
881 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
882
883         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
884         from matrix lines.
885         * graphite-poly.c (openscop_print_scattering_function_1): Same.
886         (print_scattering_function_1): Same.
887         (openscop_print_pbb_domain): Same.
888         (openscop_print_scop_context): Same.
889         (print_scop_context): Same.
890
891 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
892
893         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
894         (openscop_print_pdr_polyhedron): Print pph.
895
896 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
897
898         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
899         priority signed types.
900
901 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
902
903         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
904         the call to lang_hooks.types.type_for_size.  Call
905         build_nonstandard_integer_type.
906
907 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
908
909         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
910         (openscop_print_polyhedron_matrix): New.
911         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
912         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
913         (openscop_print_pdr_powerset): New.
914         (openscop_print_powerset_matrix): New.
915         (openscop_print_scattering_function_1): New.
916         (print_scattering_function): Add support for scattering names and
917         OpenScop format.
918         (graphite_write_transforms): Remove.
919         (print_pdr_access_layout): Updated to support OpenScop format.
920         (print_pdr): Same.
921         (openscop_print_pbb_domain): New.
922         (print_pbb_body): Added a parameter to allow indicating that pbb_body
923         is not provided.
924         (print_pbb): Updated to call the new print_pbb_body.
925         (openscop_print_scop_context): New.
926         (print_scop_header): New.
927         (print_scop): Updated to call print_scop_header.
928         * graphite-poly.h: Document OpenScop format.
929
930 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
931
932         * config/cris/m32c.c (cris_memory_move_cost): New.
933         (cris_register_move_cost): Make static. Change arguments type from
934         enum reg_class to reg_class_t.
935         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
936         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
937         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
938
939 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
940
941         PR target/45843
942         * config/i386/i386.c (ix86_gimplify_va_arg): Use
943         INTVAL (XEXP (slot, 1)) as prev_size.
944
945 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
946
947         PR target/45837
948         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
949         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
950         defined.
951         * config/rs6000/option-defaults.h (toplevel): Change #if
952         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
953         global option changes.
954
955 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
956
957         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
958
959         PR tree-optimization/31261
960         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
961         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
962
963 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
964
965         PR bootstrap/45796
966         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
967         special-casing for generators and turn into ...
968         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
969         rule, for better error messages in case of toplevel dependency errors.
970         (genprog): Add hooks, rename to ...
971         (genprogerr): ... this, and let genprog also contain check,
972         checksum, condmd.
973         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
974         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
975         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
976
977 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
978             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
979
980         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
981         for GMP, MPFR and MPC.
982
983 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
984
985         * config/sparc/sparc.opt (mimpure-text): Move ...
986         * config/sol2.opt: ... here.  Correct description.
987         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
988         * doc/invoke.texi (Option Summary, SPARC Options): Move
989         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
990         (Option Summary, Solaris 2 Options): ... here.
991         (Submodel Options, Solaris 2 Options): New menu entry.
992         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
993         (Solaris 2 Options): ... here.
994
995 2010-09-30  Michael Eager  <eager@eagercon.com>
996
997         * extend.texi (interrupt_handler): Add MicroBlaze to list.
998         (save_volatiles): Describe option for MicroBlaze.
999         * invoke.texi: Add MicroBlaze Options.
1000         * contrib.texi: Add acknowledgment.
1001         * md.texi: Add MicroBlaze d and z constraints.
1002         * install.texi: Add microblaze-*-elf.
1003         * configure.ac: Add microblaze-*-* to target list.
1004         * configure: Regenerate.
1005         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
1006         * config/microblaze/microblaze-protos.h: New.
1007         * config/microblaze/crti.s: New.
1008         * config/microblaze/predicates.md: New.
1009         * config/microblaze/linux.h: New.
1010         * config/microblaze/microblaze.md: New.
1011         * config/microblaze/constraints.md: New.
1012         * config/microblaze/crtn.s: New.
1013         * config/microblaze/microblaze.opt: New.
1014         * config/microblaze/microblaze-c.c: New.
1015         * config/microblaze/t-microblaze: New.
1016         * config/microblaze/microblaze.c: New.
1017         * config/microblaze/microblaze.h: New.
1018
1019 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
1020
1021         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
1022         parse @optional/@required and set the flags as appropriate.
1023
1024 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
1025
1026         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
1027
1028 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
1029
1030         * opt-functions.awk (static_var): Update comment.
1031         (var_ref): Return offsetof expression or -1, not variable address.
1032         * optc-gen.awk: Generate structure field initializers instead of
1033         static variables.  Expect -1 for missing variables instead of null
1034         pointer.  Add gcc_options parameters to generated functions.
1035         * opth-gen.awk: Generate structure fields for static variables.
1036         Add gcc_options parameters to generated functions.
1037         * common.opt (optimize, optimize_size): Add variables.
1038         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
1039         &global_options to cl_target_option_restore.
1040         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
1041         &global_options to cl_optimization_restore, cl_target_option_save
1042         and cl_target_option_restore.
1043         (ix86_set_current_function): Pass &global_options to
1044         cl_target_option_restore.
1045         * config/pdp11/pdp11.h (optimize): Remove.
1046         * config/rs6000/rs6000.h (optimize): Remove.
1047         * config/sh/sh.h (optimize): Remove.
1048         * config/xtensa/xtensa.h (optimize): Remove.
1049         * coretypes.h (struct gcc_options): Declare.
1050         * diagnostic.c (diagnostic_initialize): Initialize
1051         context->option_state.
1052         (diagnostic_report_diagnostic): Pass option_state to
1053         option_enabled hook.
1054         * diagnostic.h (diagnostic_context.option_enabled): Add void *
1055         parameter.
1056         (diagnostic_context.option_state): New field.
1057         * final.c (final_start_function, final, final_scan_insn): Rename
1058         optimize parameter to optimize_p.
1059         * flags.h (optimize, optimize_size): Remove.
1060         * function.c (invoke_set_current_function_hook): Pass
1061         &global_options to cl_optimization_restore.
1062         * gcc.c (driver_handle_option): Take gcc_options parameter.
1063         Assert that it is &global_options.
1064         (process_command): Pass &global_options to read_cmdline_option.
1065         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
1066         option_enabled.
1067         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
1068         &global_options to set_option.
1069         * opts-common.c (handle_option, handle_generated_option,
1070         read_cmdline_option, set_option): Take explicit gcc_options
1071         parameters.  Use option_flag_var.
1072         (option_flag_var): New.
1073         * opts.c (common_handle_option, lang_handle_option,
1074         target_handle_option): Take gcc_options parameter.  Assert that it
1075         is &global_options.
1076         (read_cmdline_options): Pass &global_options to read_cmdline_option.
1077         (print_filtered_help): Use option_flag_var.  Pass &global_options
1078         to option_enabled.
1079         (common_handle_option): Use option_flag_var.
1080         (option_enabled): Take opts parameter.  Use option_flag_var.
1081         (get_option_state): Take gcc_options parameter.  Use
1082         option_flag_var.  Pass gcc_options parameter to option_enabled.
1083         (enable_warning_as_error): Pass &global_options to
1084         handle_generated_option.
1085         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
1086         (cl_option_handler_func.handler): Take gcc_options parameter.
1087         (option_enabled, get_option_state, set_option, handle_option,
1088         handle_generated_option, read_cmdline_option): Take gcc_options
1089         parameters.
1090         * toplev.c (optimize, optimize_size): Remove.
1091         (print_switch_values): Pass &global_options to option_enabled.
1092         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
1093         to get_option_state.
1094         (general_init): Initialize global_dc->option_state.
1095         * tree.c (build_optimization_node): Pass &global_options to
1096         cl_optimization_save.
1097         (build_target_option_node): Pass &global_options to
1098         cl_target_option_save.
1099
1100 2010-09-30  Martin Jambor  <mjambor@suse.cz>
1101
1102         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
1103         zero sized bit-fields.
1104
1105 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1106
1107         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
1108         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
1109         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
1110         (c_parser_objc_class_declaration): Same change.
1111         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
1112         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
1113         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
1114         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
1115         and RID_AT_PUBLIC instead of RID_PUBLIC.
1116         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
1117         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
1118
1119 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
1120
1121         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
1122         Add links to current providers of packages for Solaris and IRIX.
1123
1124 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1125
1126         Merge from 'apple/trunk' branch on FSF servers.
1127         * c-parser.c: Applied change originally in c-parse.in.
1128
1129         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
1130
1131         Radar 4281748
1132         * c-decl.c (start_decl): Check for redeclaration of class name.
1133         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
1134
1135 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
1136
1137         * config/ia64/ia64.c (ia64_builtin_decl): New.
1138         (TARGET_BUILTIN_DECL): Define.
1139         (ia64_builtins): New.
1140         (ia64_init_builtins): Save decls in ia64_builtins.
1141
1142 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
1143
1144         PR target/40457
1145         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
1146         (move2add_use_add3_insn): Likewise.
1147         (reload_cse_move2add): Likewise.
1148         * rtlanal.c (get_full_rtx_cost): New function.
1149         * rtl.h (struct full_rtx_costs): New.
1150         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
1151         costs_add_n_insns): New inline functions.
1152         (get_full_rtx_cost): Declare.
1153
1154         PR c/45054
1155         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
1156         invariants.  Check for reg_equiv_invariant.
1157         (reload): Assert that spilled_pseudos is empty when returning.
1158
1159 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
1160
1161         * config/i386/mingw32.h (TARGET_64BIT): replaced by
1162         TARGET_64BIT_DEFAULT in #if check.
1163
1164 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
1165
1166         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
1167
1168 2010-09-29  Mike Stump  <mikestump@comcast.net>
1169
1170         * config/darwin.h (flag_mkernel): Remove.
1171         (flag_apple_kext): Likewise.
1172
1173 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
1174             Jack Howarth <howarth@bromo.med.uc.edu>
1175
1176         * config/darwin.opt (undefined): Add.
1177
1178 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
1179
1180         PR testsuite/45664
1181         * configure.ac: Add --enable-indirect-function option.
1182         * config.gcc: Add default_gnu_indirect_function.
1183         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
1184         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
1185         * varasm.c (do_assemble_alias): Adjust for macro name change.
1186         * configure: Rebuilt.
1187         * doc/install.texi: Document --enable-indirect-function.
1188
1189 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
1190
1191         * doc/options.texi (Variable, Var, Init): Update documentation
1192         without reference to VarExists.
1193         (VarExists): Remove.
1194         * common.opt, config/i386/i386.opt, config/linux.opt,
1195         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
1196         Don't use VarExists.
1197
1198 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
1199
1200         * optc-gen.awk: Generate global_options initializer instead of
1201         individual variables.  Add x_ prefix to names of structure members.
1202         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
1203         names of structure members.
1204         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1205         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
1206         * doc/tm.texi: Regenerate.
1207         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1208         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
1209         * c-parser.c (disable_extension_diagnostics,
1210         restore_extension_diagnostics): Update names of cpp_options members.
1211         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1212         * common.opt (fcompare-debug-second): Don't use Var.
1213         * config/alpha/alpha.h (target_flags): Remove.
1214         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1215         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
1216         * config/bfin/bfin.h (target_flags): Remove.
1217         * config/cris/cris.h (target_flags): Remove.
1218         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
1219         cl_target_option members.
1220         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
1221         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
1222         ix86_can_inline_p): Update names of cl_target_option members.
1223         * config/i386/i386.h (ix86_isa_flags): Remove.
1224         * config/lm32/lm32.h (target_flags): Remove.
1225         * config/mcore/mcore.h (mcore_stack_increment): Remove.
1226         * config/mcore/mcore.md (addsi3): Remove extern declaration of
1227         flag_omit_frame_pointer.
1228         * config/mep/mep.h (target_flags): Remove.
1229         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1230         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
1231         * config/mmix/mmix.h (target_flags): Remove.
1232         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
1233         flag_expensive_optimizations): Remove.
1234         * config/s390/s390.h (flag_pic): Remove.
1235         * config/score/score-conv.h (target_flags): Remove.
1236         * config/sh/sh.h (sh_fixed_range_str): Remove.
1237         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
1238         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
1239         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1240         * diagnostic.c (diagnostic_initialize): Update names of
1241         diagnostic_context members.
1242         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
1243         warn_system_headers.
1244         (diagnostic_report_warnings_p): Update for new names.
1245         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
1246         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
1247         HARD_FRAME_POINTER_IS_ARG_POINTER.
1248         * flags.h (flag_compare_debug): Declare.
1249         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1250         * opts.c (flag_compare_debug): Define.
1251         (common_handle_option): Update names of diagnostic_context
1252         members.  Handle -fcompare-debug-second.
1253         (fast_math_flags_struct_set_p): Update names of cl_optimization
1254         members.
1255         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1256         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1257         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1258         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1259         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
1260         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
1261         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
1262         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
1263         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
1264
1265 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
1266
1267         * config/picochip/picochip.c (picochip_output_internal_label):
1268         This function can now be called for debug CFI labels, which can come
1269         in the middle of a vliw instruction.  Postpone until end of vliw.
1270
1271 2010-09-29  Richard Guenther  <rguenther@suse.de>
1272
1273         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
1274         (DECL_FILE_SCOPE_P): Use it.
1275         (TYPE_FILE_SCOPE_P): New macro.
1276
1277 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1278
1279         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
1280         a CPP_NAME which is a reserved word, clearly separate cases for
1281         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
1282
1283 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1284
1285         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
1286         token->value with the canonical spelling.  Do exactly like C and
1287         C++ and leave it as it is.
1288
1289 2010-09-28  Richard Henderson  <rth@redhat.com>
1290
1291         * config/alpha/alpha.c (alpha_builtins): New.
1292         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
1293         (alpha_builtin_function): New.
1294         (alpha_add_builtins, alpha_init_builtins): Use it.
1295
1296 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
1297
1298         * doc/standards.texi (Standards): Expanded the section on
1299         Objective-C and Objective-C++.
1300
1301 2010-09-28  DJ Delorie  <dj@redhat.com>
1302
1303         PR target/45800
1304         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
1305         volatile MEMs.
1306
1307 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1308
1309         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
1310         attributes on methods.
1311          (c_parser_objc_method_definition): Handle attributes.
1312         (c_parser_objc_methodproto): Likewise.
1313         (c_parser_objc_maybe_method_attributes): New.
1314         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
1315         missing definition, similar to that in ObjC++.
1316
1317 2010-09-28  Richard Henderson  <rth@redhat.com>
1318
1319         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
1320         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1321         (CONFIG_SJLJ_EXCEPTIONS): Remove.
1322         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
1323         (STACK_CHECK_PROTECT): Likewise.
1324         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
1325         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
1326         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
1327         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
1328         (dwarf2out_assembly_start): Likewise.
1329         * except.c (init_eh): Use targetm.except_unwind_info.
1330         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
1331         (output_one_function_exception_table): Likewise.
1332         * final.c: Unconditionally include dwarf2out.h.
1333         (final_start_function): Unconditionally call dwarf2out routines.
1334         (final_end_function, final_scan_insn): Likewise.
1335         * function.c (expand_function_end): Use targetm.except_unwind_info.
1336         * opts.c (decode_options): Use targetm.except_unwind_info.
1337         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
1338         * target.def (debug_unwind_info, except_unwind_info): New.
1339         * target.h (enum unwind_info_type): New.
1340         * targhooks.c (default_debug_unwind_info): New.
1341         (default_except_unwind_info): New.
1342         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
1343         * targhooks.h: Declare them.
1344         * tree-tailcall.c: Include "target.h"
1345         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
1346         * Makefile.in (tree-tailcall.o): Update.
1347         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
1348         (lhd_gcc_personality): Likewise.
1349
1350         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
1351         (TARGET_EXCEPT_UNWIND_INFO): New.
1352         (DWARF2_UNWIND_INFO): Update.
1353         (TARGET_DEBUG_UNWIND_INFO): New.
1354         * doc/tm.texi: Rebuild.
1355
1356         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
1357         targetm.except_unwind_info.
1358
1359         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
1360         (arm_except_unwind_info): New.
1361         (arm_compute_func_type): Use it.
1362         (arm_expand_prologue, thumb_pushpop): Likewise.
1363         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
1364         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
1365         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
1366         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
1367         (DWARF2_UNWIND_INFO): Remove.
1368         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1369         (ARM_EABI_UNWIND_TABLES): Remove.
1370
1371         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
1372         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
1373         (ia64_except_unwind_info): New.
1374         (ia64_output_function_prologue): Use it.
1375         (ia64_add_bundle_selector_before): Likewise.
1376         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
1377         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
1378         (TARGET_UNWIND_INFO): Remove.
1379
1380         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
1381
1382 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
1383
1384         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
1385         (c_parser_objc_protocol_definition): Likewise.
1386         (c_parser_external_declaration): Provide dummy attribute arguments.
1387         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
1388         (c_parser_objc_class_definition): Handle attributes.
1389         (c_parser_objc_protocol_definition): Likewise.
1390
1391 2010-09-28  Tobias Burnus  <burnus@net-b.de>
1392
1393         PR fortran/40569
1394         PR fortran/40568
1395         * toplev.h (save_decoded_options, save_decoded_options_count):
1396         New global variables.
1397         * toplev.c (save_decoded_options, save_decoded_options_count):
1398         Export variables.
1399
1400 2010-09-28  Ian Lance Taylor  <iant@google.com>
1401
1402         * config/i386/i386.c (ix86_supports_split_stack): Test
1403         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
1404
1405 2010-09-28  Ian Lance Taylor  <iant@google.com>
1406
1407         PR target/45815
1408         * opts.c (decode_options): Don't test whether the target supports
1409         split stack if flag_split_stack == 0.
1410
1411 2010-09-28  Jan Hubicka  <jh@suse.cz>
1412
1413         * builtin-attrs.def (ATTR_LEAF): New attribute.
1414         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
1415         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
1416         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
1417         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
1418         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
1419         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
1420         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
1421         * sync-builtins.def: Annotate all builtins by leaf.
1422         * omp-builtins.def: Annotate all builtins by leaf.
1423         * builtins.def: Annotate relevant builtins with leaf attribute.
1424         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
1425         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
1426         leaf.
1427
1428 2010-09-28  Jan Hubicka  <jh@suse.cz>
1429
1430         * tree-ssa-ccp.c (fold_ctor_reference): New function.
1431         (fold_const_aggregate_ref): Use it.
1432         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
1433         into external static.
1434
1435 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1436
1437         PR target/44452
1438         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
1439         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
1440         (ix86_solaris_return_in_memory): Remove.
1441         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
1442         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
1443         (TARGET_SUBTARGET_DEFAULT): Redefine.
1444         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
1445         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
1446         (TARGET_SUBTARGET_DEFAULT): Redefine.
1447         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
1448         -mvect8-ret-in-mem.
1449         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
1450
1451 2010-09-29  Alan Modra  <amodra@gmail.com>
1452
1453         PR target/45807
1454         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
1455         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
1456         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
1457         Delete.
1458         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
1459         (rs6000_emit_prologue): Don't just create frame save info for r2,
1460         actually save r2.
1461
1462 2010-09-28  Richard Henderson  <rth@redhat.com>
1463
1464         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
1465         when 8 bytes are requested.
1466
1467 2010-09-28  Tristan Gingold  <gingold@adacore.com>
1468
1469         * config/avr/avr.c (expand_prologue): Set
1470         current_function_static_stack_size.
1471
1472 2010-09-28  Tristan Gingold  <gingold@adacore.com>
1473
1474         * config/alpha/alpha.md: Change the initial condition of the
1475         probing loop.
1476
1477 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
1478
1479         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
1480         Split from *avx_<maxmin:code><mode>3.
1481         (*avx_<smaxmin:code><mode>3): Ditto.
1482         * config/i386/i386.md (maxmin): Remove code iterator.
1483
1484 2010-09-27  Ian Lance Taylor  <iant@google.com>
1485
1486         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
1487         requires assembler support for CFI directives.
1488
1489 2010-09-27  Richard Henderson  <rth@redhat.com>
1490
1491         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
1492
1493 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
1494
1495         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
1496         that AFTER is not in the range FROM..TO, inclusive.
1497
1498 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
1499             Bernd Schmidt  <bernds@codesourcery.com>
1500
1501         PR rtl-optimization/45792
1502         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
1503         If not all insns are to be merged, for each edge, stash the
1504         next candidate after the to-be-merged insns before doing the
1505         merge, and use them for the retry at the new insertion point.
1506         Handle CC0 targets when retrying.
1507
1508 2010-09-27  Ian Lance Taylor  <iant@google.com>
1509
1510         * common.opt (fsplit-stack): New option.
1511         * opts.c (decode_options): Set flag_split_stack to final value.
1512         * target.def (supports_split_stack): New hook.
1513         * gcc.c (STACK_SPLIT_SPEC): Define.
1514         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
1515         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
1516         (Code Gen Options): Document -fsplit-stack.
1517         * doc/extend.texi (Function Attributes): Mention no_split_stack.
1518         (Function Attributes): Document no_split_stack.
1519         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
1520         TARGET_SUPPORTS_SPLIT_STACK.
1521         * doc/tm.texi: Rebuild.
1522         * function.c (thread_prologue_and_epilogue_insns): If
1523         flag_split_stack, add split stack prologue.
1524         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
1525         * varasm.c (saw_no_split_stack): New static variable.
1526         (assemble_start_function): Set saw_no_split_stack if the function
1527         has the no_split_stack attribute.
1528         (file_end_indicate_split_stack): New function.
1529         * output.h (file_end_indicate_split_stack): Declare.
1530         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
1531         and function.
1532         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
1533         routines.
1534         * config/i386/i386.c (ix86_option_override_internal): Don't set
1535         expand_builtin_va_start to NULL if -fsplit-stack.
1536         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
1537         -fsplit-stack.
1538         (ix86_va_start): If -fsplit-stack, get overflow pointer from
1539         scratch register set by prologue.
1540         (ix86_code_end): If -fsplit-stack, call
1541         file_end_indicate_split_stack.
1542         (ix86_supports_split_stack): New static function.
1543         (SPLIT_STACK_AVAILABLE): Define.
1544         (split_stack_prologue_scratch_regno): New static function.
1545         (split_stack_fn): New static variable.
1546         (ix86_expand_split_stack_prologue): New function.
1547         (ix86_live_on_entry): New static function.
1548         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
1549         (output_pic_addr_const): Likewise.
1550         (i386_asm_output_addr_const_extra): Likewise.
1551         (ix86_expand_call): Change return type to rtx.  Return the new
1552         call instruction.
1553         (TARGET_SUPPORTS_SPLIT_STACK): Define.
1554         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1555         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
1556         (split_stack_prologue, split_stack_return): New insns.
1557         (split_stack_space_check): New insn.
1558         * config/i386/i386.h (struct machine_function): Add
1559         split_stack_varargs_pointer field.
1560         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
1561         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1562         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
1563         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1564         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
1565         Declare.
1566         (ix86_expand_call): Update declaration.
1567
1568 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1569
1570         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
1571         code.  Added byref, which was missing in the list of codes.
1572         Explain that enumeration values are encoded as the integer type
1573         that the compiler uses to store them.  Explain and make examples
1574         of how 'const' interacts with pointers, and the complication of
1575         the encoding of 'const char *'.
1576         (Legacy type encoding): New subsection, explaining that GCC emits
1577         incorrect type encodings for the NeXT runtime for compatibility
1578         reasons.
1579         (@@encode): New subsection, explaining @encode and particularly
1580         that protocol qualifiers are not recognized inside an @encode()
1581         expression.
1582         (Method signatures): New subsection, explaining how method
1583         signatures are encoded.
1584
1585 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1586
1587         Merge from 'apple/trunk' branch on FSF servers.  Removed small
1588         change in build_conditional_expr that had been added when fixing
1589         PR objc/27377 and which did the same check in a less complete way.
1590
1591         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
1592
1593         Radar 4229905
1594         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
1595         looking for objective-c common pointer types.
1596
1597         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
1598
1599         Radar 4154928
1600         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
1601         use their ObjC common type.
1602
1603 2010-09-27  Richard Guenther  <rguenther@suse.de>
1604
1605         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
1606
1607 2010-09-27  Jie Zhang  <jie@codesourcery.com>
1608
1609         * print-tree.c (print_node): Print in-constant-pool.
1610
1611 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
1612
1613         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
1614         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
1615         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
1616         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
1617
1618 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
1619
1620         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
1621         from pro_epilogue_adjust_stack_<mode>_{1,2}.
1622         (pro_epilogue_adjust_stack_<mode>_add): Rename from
1623         pro_epilogue_adjust_stack_<mode>_3.
1624         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
1625         renamed pro_epilogue_adjust_stack_{si,di}_add.
1626         (ix86_expand_prologue): Use indirect functions.  Update for renamed
1627         pro_epilogue_adjust_stack_{si,di}_sub.
1628
1629 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
1630
1631         * config/i386/i386.md (movmsk_df): New insn.
1632         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
1633         sequence for TARGET_SSE_MATH.
1634
1635 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
1636
1637         * config/mips/mips.c (mips_builtin_decls): Declare.
1638         (mips_init_builtins): Store function declarations in
1639         mips_builtin_decls.
1640         (mips_builtin_decl): New function.
1641         (TARGET_BUILTIN_DECL): Define.
1642
1643 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
1644             Richard Henderson  <rth@redhat.com>
1645
1646         * config/i386/cygwin.asm: Include auto-host.h.
1647         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
1648         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
1649         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
1650         alignment code from the 64-bit path.  Use gas local labels.
1651         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
1652         from _di_2.  Remove the useless constant integer argument.
1653         (pro_epilogue_adjust_stack_<mode>_3): New.
1654         (allocate_stack_worker_probe_<mode>): Macroize from
1655         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
1656         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
1657         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
1658         (__chkstk_ms): New function.
1659         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
1660         * gcc/config/i386/t-interix: Likewise.
1661         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
1662         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
1663         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
1664         * configure, config.in: Rebuild.
1665
1666 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1667
1668         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
1669         statements because of the return slot optimization.
1670
1671 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
1672
1673         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
1674         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
1675         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1676         (class_likely_spilled_p): Rename to...
1677         (avr_class_likely_spilled_p): ...this. Make static. Change argument
1678         type to reg_class_t.
1679
1680 2010-09-24  Jan Hubicka  <jh@suse.cz>
1681
1682         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
1683         (lto_symtab_resolve_symbols): Set it.
1684         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
1685         store resolution field in cgraph/varpool.
1686         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
1687         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
1688         (cgraph_dump_node): Drop used_from_object_file.
1689         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
1690         (cgraph_function_body_availability): Use decl_replaceable_p.
1691         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
1692         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
1693         cgraph_used_from_object_file_p.
1694         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
1695         cgraph_used_from_object_file_p.
1696         (resolution_used_from_other_file_p): New functoin.
1697         (cgraph_used_from_object_file_p): New predicate.
1698         * cgraph.h: Include plugin-api.h
1699         (struct cgraph_local_info): Remove used_from_object_file.
1700         (struct cgraph_node): Add resolution field.
1701         (struct varpool_node): Likewise; remove used_from_object_file;
1702         reove const_value_known.
1703         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
1704         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
1705         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
1706         varpool_used_from_object_file_p): Declare.
1707         (varpool_get_node, varpool_extra_name_alias): Update prototype.
1708         * tree.h (DECL_REPLACEABLE_P): Remove.
1709         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
1710         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
1711         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
1712         input_overwrite_node, input_node, input_varpool_node): Stream
1713         resolution.
1714         * expr.c (expand_expr_real_1): Use const_value_known_p
1715         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
1716         const_value_known.
1717         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
1718         (function_and_variable_visibility): Set resolution for local vars
1719         and functions; use varpool_used_from_object_file_p.
1720         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
1721         static functions.
1722         (default_binds_local_p_1): Use resolutoin info.
1723         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
1724         * varpool.c (varpool_get_node): Constify.
1725         (const_value_known_p): Do not use vnode->const_value_known;
1726         use decl_replaceable_p.
1727         (varpool_finalize_decl): Do not set const_value_known.
1728         (cgraph_variable_initializer_availability): Use decl_replaceable_p
1729         (varpool_extra_name_alias): Return new node.
1730         (varpool_used_from_object_file_p): New function.
1731
1732 2010-09-24  Richard Henderson  <rth@redhat.com>
1733
1734         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
1735         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
1736         (do_spill): Use REG_CFA_OFFSET.
1737         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
1738         as appropriate.
1739         (ia64_expand_epilogue): Likewise.
1740         (process_set): Split into ...
1741         (process_cfa_adjust_cfa): this,
1742         (process_cfa_register): this,
1743         (process_cfa_offset): and this new function.
1744         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
1745         instead of REG_FRAME_RELATED_EXPR.
1746
1747 2010-09-24  Olivier Hainque  <hainque@adacore.com>
1748
1749         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
1750
1751 2010-09-24  Jan Hubicka  <jh@suse.cz>
1752
1753         * doc/extend.texi: (attribute leaf): Document.
1754         * tree.c (local_define_builtin): Handle ECF_LEAF.
1755         (build_common_builtin_nodes): Set ECF_LEAF where needed.
1756         * tree.h (ECF_LEAF): New.
1757         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
1758         overwrittable and unavailable functions.
1759         (ipa_init): Put all_module_statics into optimization_summary_obstack.
1760         (copy_global_bitmap): Do not copy all_module_statics.
1761         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
1762         (propagate): Handle overwritable and unavailable leaf functions;
1763         initialize global info for overwritable and unavailable leaf functions;
1764         do not free all module statics.
1765         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
1766         local statics.
1767         * calls.c (flags_from_decl_or_type): Handle leaf.
1768         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
1769         abnormal gotos.
1770
1771 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
1772
1773         * gengtype.c: Reindented.
1774         * gengtype.h: Reindented.
1775         * gengtype-parse.c: Reindented.
1776
1777 2010-09-24  Jan Hubicka  <jh@suse.cz>
1778
1779         PR tree-optimization/45738
1780         PR tree-optimization/45741
1781         * expr.c (string_constant): Allow CONST_DECL too;
1782         check that DECL_INITIAL is set.
1783         * varpool.c (const_value_known_p): Only look into VAR_DECL
1784         and CONST_DECL.
1785
1786 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
1787
1788         * common.opt (undef): New.
1789
1790 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
1791
1792         PR middle-end/45234
1793         * rtl.h (enum global_rtl_index): Add
1794         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
1795         (LAST_VIRTUAL_POINTER_REGISTER): Define.
1796         (virtual_preferred_stack_boundary_rtx,
1797         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
1798         (LAST_VIRTUAL_REGISTER): Increase by one.
1799         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
1800         instead of LAST_VIRTUAL_REGISTER.
1801         * function.c (instantiate_new_reg): Handle
1802         virtual_preferred_stack_boundary_rtx.
1803         * emit-rtl.c (init_virtual_regs): Handle
1804         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1805         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
1806         * explow.c (round_push): If crtl->preferred_stack_boundary
1807         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
1808         virtual_preferred_stack_boundary_rtx alignment instead of
1809         crtl->preferred_stack_boundary alignment.
1810         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
1811         macros.  Never decrease crtl->preferred_stack_boundary,
1812         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
1813         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
1814         stack_pointer_delta in dynamic allocation, even when size
1815         is constant.
1816         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
1817         macro.
1818         * print-rtl.c (print_rtx): Handle
1819         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
1820         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
1821         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
1822         * config/frv/frv.c (frv_emit_movsi): Likewise.
1823         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
1824         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
1825         Likewise.
1826
1827         Revert:
1828         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1829
1830         PR middle-end/45234
1831         * calls.c (expand_call): Make sure that all variable sized
1832         adjustments are multiple of preferred stack boundary after
1833         stack alignment.
1834
1835 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
1836             Dominique Dhumieres  <dominiq@lps.ens.fr>
1837
1838         PR bootstrap/45751
1839         * gcc/config/darwin-driver.c (darwin_default_min_version):
1840         Adjust size passed to memcpy in two places.
1841
1842 2010-09-24  Richard Guenther  <rguenther@suse.de>
1843
1844         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
1845         Make sure to not call set_type_context with error_mark_node.
1846         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
1847
1848 2010-09-24  Richard Guenther  <rguenther@suse.de>
1849
1850         * Makefile.in (OBJS-onestep): Remove.
1851         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
1852         (libbackend.a): Remove onestep support.
1853         (libbackend.o): Remove.
1854         * configure.ac (--enable-intermodule): Remove.
1855         * configure: Regenerate.
1856
1857 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
1858
1859         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
1860         reaching the end of a block if it occurs at a DEBUG_INSN.
1861
1862 2010-09-09  Tristan Gingold  <gingold@adacore.com>
1863
1864         PR target/44242
1865         * config/vms/vms-crt0-64.c: Removed.
1866         * config/vms/vms-crt0.c: Removed.
1867         * config/vms/vms-psxcrt0-64.c: Removed.
1868         * config/vms/vms-psxcrt0.c: Removed.
1869         * config/vms/vms-ucrt0.c: New file.
1870         * config/vms/t-vms64: Removed.
1871         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
1872         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
1873         * config.gcc (alpha-dec-vms): Use t-vms.
1874
1875 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1876
1877         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
1878         underfull hbox in DVI output.
1879         (-fobjc-class-cxx-cdtors): Same change.
1880         (-fobjc-exceptions): Tidied up documentation.  Explain what the
1881         option does, but moved the (lenghty) description of the exception
1882         syntax into objc.texi.
1883         (-fobjc-gc): Explain that the option is not useful with the GNU
1884         runtime.
1885         (-fzero-link): Explain that the GNU runtime always works in
1886         "zero-link" mode.
1887         * doc/objc.texi: All sections: simplified @node declarations
1888         removing specification of next, previous, up node.
1889         (Objective-C): Updated introduction.
1890         (Garbage Collection): Updated.  The bohem-gc library is now
1891         included in gcc itself.  Mention that this section only applies to
1892         the GNU Objective-C runtime.
1893         (compatibility_alias): Small tidy up.
1894         (Exceptions): New section mostly containing text previously in the
1895         description of the -fobjc-exception command-line option.
1896         (Synchronization): Same.
1897
1898 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
1899
1900         * config/i386/i386.md (ix86_code_end): Move the initialization of
1901         xops array near the consumer.  Use AX_REG and SP_REG instead of
1902         numerical constants.
1903
1904 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1905
1906         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
1907         method [methodname]' for an Objective-C method instead of the less
1908         satisfactory 'too many arguments to function' (with no method name).
1909
1910 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1911
1912         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
1913         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
1914         (execute_update_addresses_taken): Remove parameter.  Execute the
1915         optimization unconditionally.
1916         * passes.c (execute_function_todo): Call execute_update_addresses_taken
1917         unconditionally if TODO_rebuild_alias is set, else only when optimizing
1918         if TODO_update_address_taken is set.
1919
1920 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
1921
1922         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1923         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
1924         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1925         (arm_output_addr_const_extra): Make static.
1926
1927 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
1928
1929         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
1930         define as unspec_volatile.
1931         ("nops"): Define as unspec_volatile. Use fputs to write to
1932         asm_out_file directly.  Output NOPs on separate lines using while loop.
1933         * config/i386/i386.c (ix86_code_end): Use fputs to write to
1934         asm_out_file directly.  Output NOPs on separate lines using while loop.
1935
1936 2010-09-23  Richard Guenther  <rguenther@suse.de>
1937
1938         PR tree-optimization/45565
1939         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1940         Make sure to adjust the fndecl before replacing the stmt.
1941
1942 2010-09-23  Richard Guenther  <rguenther@suse.de>
1943
1944         PR middle-end/45750
1945         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
1946         gimplifying MEM_REF.
1947
1948 2010-09-23  Alan Modra  <amodra@gmail.com>
1949
1950         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
1951         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
1952
1953 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
1954
1955         PR rtl-optimization/44374
1956         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
1957         * df-core.c (df_set_bb_dirty): Set it.
1958         * ifcvt.c (find_memory): Remove function.
1959         (dead_or_predicable): Use can_move_insns_across.
1960         * df.h (can_move_insns_across): Declare function.
1961         * cfgcleanup.c (block_was_dirty): New static variable.
1962         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
1963         than df_get_bb_dirty.
1964         (try_head_merge_bb): New static function.
1965         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
1966         is set.
1967         * df-problems.c: Include "target.h"
1968         (df_simulate_find_uses): New static function.
1969         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
1970         (find_memory, find_memory_store): New static functions.
1971         (can_move_insns_across): New function.
1972         * Makefile.in (df-problems.o): Update dependencies.
1973
1974 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1975
1976         PR java/44095
1977         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
1978         is specified and the suffix of the file isn't ".c".
1979         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1980
1981 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1982
1983         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
1984         * doc/cppopts.texi: Fix markup of index entry.
1985         * doc/extend.texi (Constructing Calls): Fix markup of
1986         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
1987         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
1988         (Vague Linkage, C++ Attributes): Fix markup of index entries and
1989         keywords.
1990         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
1991         avoid long lines.
1992         (C Dialect Options, C++ Dialect Options, Warning Options)
1993         (Debugging Options, Spec Files, Darwin Options)
1994         (i386 and x86-64 Options, MIPS Options)
1995         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
1996         index entries, avoid abbreviations, allow URLs to wrap, avoid
1997         long lines, avoid overlong pages from long @itemx lists.
1998         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
1999         * doc/standards.texi (Standards): Likewise.
2000         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
2001
2002 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
2003
2004         * opts-common.c (prune_options): Make static.  Work with decoded
2005         options.
2006         (decode_cmdline_options_to_array): Call prune_options.  Don't
2007         resize option array here.
2008         * opts.h (prune_options): Remove prototype.
2009         * gcc.c (process_command): Take decoded options; don't call
2010         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
2011         (main): Call decode_cmdline_options_to_array here instead of
2012         prune_options.  Update call to process_command.
2013         * config/darwin-driver.c: Include opts.h.
2014         (darwin_default_min_version): Work with decoded options.  Don't
2015         handle -b or -V here.
2016         * config/darwin.h (darwin_default_min_version): Update prototype.
2017         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
2018         darwin_default_min_version.
2019         * config/i386/cygwin.h (mingw_scan): Update prototype.
2020         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
2021         * config/i386/cygwin1.c: Include opts.h.
2022         (mingw_scan): Work with decoded options.
2023         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
2024         * config/t-darwin (darwin-driver.o): Update dependencies.
2025
2026 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
2027
2028         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
2029         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
2030         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
2031         -force-link, -force-link=, -language, -language=,
2032         -library-directory, -library-directory=, -no-canonical-prefixes,
2033         -no-standard-libraries, -no-warnings, -optimize, -output,
2034         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
2035         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
2036         -print-file-name=, -print-libgcc-file-name,
2037         -print-multi-directory, -print-multi-lib,
2038         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
2039         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
2040         -profile, -save-temps, -shared, -specs, -specs=, -static,
2041         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
2042         symbolic): New.
2043         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
2044         * gcc.c (A Short Introduction to Adding a Command-Line Option):
2045         Remove comment.
2046         (cc1_options): Correct specs for passing down --help,
2047         --target-help and --help=*.  Add spec for passing down --version.
2048         (struct option_map, option_map, target_option_translations,
2049         translate_options): Remove.
2050         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
2051         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
2052         OPT_fhelp_ and OPT_ftarget_help.
2053         (process_command): Don't call translate_options.  Call
2054         decode_cmdline_options_to_array before checking for
2055         -no-canonical-prefixes using decoded options.
2056         * opts-common.c (tm.h): Update comment on #include.
2057         (find_opt): Allow abbreviations of long options.
2058         (struct option_map, option_map): New.
2059         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
2060         and -mno handling.
2061         (target_option_translations): New.
2062         (decode_cmdline_options_to_array): Handle
2063         TARGET_OPTION_TRANSLATE_TABLE in driver.
2064         * opts.c (common_handle_option): Don't handle OPT_fhelp,
2065         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
2066
2067 2010-09-22  Richard Guenther  <rguenther@suse.de>
2068
2069         * tree-inline.c (optimize_inline_calls): Schedule cleanups
2070         only if we inlined something.  Block compaction and conditional
2071         folding are done by cfg cleanup.  Schedule update-address-taken.
2072         (tree_function_versioning): Remove redundant call to number_blocks.
2073         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
2074         folding is done by cfg cleanup.
2075         * passes.c (init_optimization_passes): Remove update-address-taken
2076         pass after IPA inlining.
2077
2078 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
2079
2080         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
2081         to update conditions. Fix reg_mode[] check.
2082
2083 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
2084
2085         * config/picochip/picochip.md (movhicc): Use expand to check whether
2086         movhicc is available and split it after reload.
2087
2088 2010-09-22  Richard Guenther  <rguenther@suse.de>
2089
2090         * tree-ssanames.c (release_dead_ssa_names): Do not remove
2091         callee edges here.
2092         * passes.c (init_optimization_passes): Remove early CFG cleanup.
2093         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
2094         (pass_cleanup_cfg): Likewise.
2095         (execute_fixup_cfg): Cleanup.
2096         * tree-pass.h (pass_cleanup_cfg): Remove.
2097
2098 2010-09-22  Martin Jambor  <mjambor@suse.cz>
2099
2100         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
2101         builtins if it is true.
2102         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
2103         parameter.
2104
2105 2010-09-22  Martin Jambor  <mjambor@suse.cz>
2106
2107         * tree-sra.c (struct access): New field grp_no_warning.
2108         (create_access_replacement): Set TREE_NO_WARNING according to
2109          grp_no_warning.
2110         (create_artificial_child_access): Use build_ref_for_model and set
2111         grp_no_warning if build_user_friendly_ref_for_offset fails.
2112         (propagate_subaccesses_across_link): Likewise.
2113
2114 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
2115
2116         PR target/35664
2117         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
2118         ('f'): Likewise.
2119
2120 2010-09-22  Tristan Gingold  <gingold@adacore.com>
2121
2122         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
2123
2124 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
2125
2126         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
2127         * config/i386/i386.c (decide_alg): Update for rename.
2128
2129 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
2130
2131         PR rtl-optimization/45739
2132         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
2133         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
2134
2135 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
2136
2137         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
2138         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
2139         Remove.
2140         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
2141         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2142
2143 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2144
2145         PR objc/23710
2146         * c-parser.c (c_parser_objc_method_definition): Check the return
2147         value of objc_start_method_definition and if false is returned,
2148         parse the method definition but emit no code.
2149
2150 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2151
2152         PR objc/25965
2153         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
2154         call objc_get_interface_ivars ().
2155
2156 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
2157
2158         PR target/45694
2159         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
2160         static chain-register is used for 64-bit.
2161
2162 2010-09-21  Richard Guenther  <rguenther@suse.de>
2163
2164         * dwarf2out.c (is_cu_die): New function.
2165         (add_pubtype): Use it.
2166         (gen_subprogram_die): Likewise.
2167         (gen_struct_or_union_type_die): Likewise.
2168         (dwarf2out_finish): Likewise.
2169         (comp_unit_die): Rename to ...
2170         (single_comp_unit_die): ... this.
2171         (comp_unit_die): New function lazily constructing and
2172         returning single_comp_unit_die.
2173         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
2174         base_type_die, subrange_type_die, modified_type_die,
2175         lower_bound_default, add_bound_info, add_prototyped_attribute,
2176         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
2177         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
2178         force_decl_die, gen_namespace_die, dwarf2out_decl,
2179         dwarf2out_start_source_file, dwarf2out_end_source_file,
2180         prune_unused_types, dwarf2out_finish): Use it.
2181         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
2182         the global list of translation-unit decls.
2183         (dwarf2out_init): Do not create single_comp_unit_die here.
2184         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
2185
2186 2010-09-21  Richard Guenther  <rguenther@suse.de>
2187
2188         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
2189         for bool for C++.
2190
2191 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
2192
2193         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
2194         (qhs_extenddi_cstr): Likewise.
2195         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
2196         them for the source operand.
2197
2198 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
2199
2200         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
2201         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
2202         (ix86_split_ashr): Ditto.
2203         (ix86_split_lshr): Ditto.
2204
2205 2010-09-21  Richard Guenther  <rguenther@suse.de>
2206
2207         PR tree-optimization/45580
2208         * tree-ssa-propagate.c (substitute_and_fold): Always replace
2209         regular uses.
2210         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
2211         virtuals fold the call into a regular indirect one.
2212
2213 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2214
2215         PR rtl-optimization/42775
2216         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
2217         scheduling is enabled.
2218
2219 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
2220
2221         PR rtl-optimization/45728
2222         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
2223         gen_lowpart_common first and if that fails, force_reg first
2224         before calling gen_lowpart.
2225
2226         PR middle-end/45678
2227         * cfgexpand.c (expand_one_stack_var_at): Use
2228         crtl->max_used_stack_slot_alignment as max_align, instead
2229         of maximum of that and PREFERRED_STACK_BOUNDARY.
2230         Don't call update_stack_alignment.
2231
2232 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
2233
2234         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
2235         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
2236         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
2237         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
2238         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
2239         (build_nonstandard_integer_type): Likewise.
2240         (build_range_type_1): New function, built from...
2241         (build_range_type): ...this.  Call build_range_type_1.
2242         (build_nonshared_range_type): New function.
2243         (build_array_type_1): New function, built from...
2244         (build_array_type: ...this.  Call build_array_type_1.
2245         (build_nonshared_array_type): New function.
2246         * tree.h (build_nonshared_range_type): Declare.
2247         (build_nonshared_array_type): Likewise.
2248
2249 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
2250
2251         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
2252         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2253         (arm_class_likely_spilled_p): New function.
2254
2255 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
2256
2257         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
2258         indirect functions.
2259         (ix86_split_ashl): Ditto.
2260         (ix86_split_ashr): Ditto.
2261         (ix86_split_lshr): Ditto.
2262         (ix86_adjust_counter): Ditto.
2263
2264 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
2265
2266         * c-family/c-common.h (constant_string_class): Documented with
2267         comment identical to the one already in c-common.c.
2268
2269 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
2270
2271         * dwarf2out.c (any_cfis_emitted): New static variable.
2272         (add_fde_cfi): Set it.
2273         (dwarf2out_frame_debug): Clear it before processing,
2274         if it is set afterwards, flush any queued reg saves.
2275
2276         PR debug/45124
2277         * dwarf2out.c (add_accessibility_attribute): Assume
2278         DW_ACCESS_private as the default for dwarf_version > 2
2279         and DW_TAG_class_type parent.
2280         (gen_inheritance_die): Assume DW_ACCESS_public as the default
2281         for dwarf_version > 2 and parent other than DW_TAG_class_type.
2282
2283 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
2284
2285         PR target/45726
2286         * arm.md (arm_movt): Only enable on machines with MOVT.
2287
2288 2010-09-20  Jie Zhang  <jie@codesourcery.com>
2289
2290         * config/arm/arm.c (arm_address_offset_is_imm): New.
2291         (arm_early_store_addr_dep): New.
2292         (arm_early_load_addr_dep): New.
2293         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
2294         (arm_early_load_addr_dep): Declare.
2295         (arm_address_offset_is_imm): Declare.
2296         * config/arm/cortex-m4.md: New file.
2297         * config/arm/cortex-m4-fpu.md: New file.
2298         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
2299         (attr generic_sched): Exclude cortexm4.
2300         (attr generic_vfp): Exclude cortexm4.
2301
2302 2010-09-20  Richard Guenther  <rguenther@suse.de>
2303
2304         PR middle-end/45704
2305         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
2306
2307 2010-09-20  Jan Hubicka  <jh@suse.cz>
2308
2309         PR tree-optimize/45605
2310         * cgraph.h (const_value_known_p): Declare.
2311         (varpool_decide_const_value_known): Remove.
2312         * tree-ssa-ccp.c (get_base_constructor): Use it.
2313         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
2314         * expr.c (string_constant): Likewise.
2315         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
2316         * ipa.c (ipa_discover_readonly_nonaddressable_var,
2317         function_and_variable_visibility): Likewise.
2318         * gimplify.c (gimplify_call_expr): Likewise.
2319         * gimple-fold.c (get_symbol_constant_value): Likewise.
2320         * varpool.c (varpool_decide_const_value_known): Replace by...
2321         (const_value_known_p): ... this one; handle other kinds of DECLs
2322         too and work for automatic vars.
2323         (varpool_finalize_decl): Use const_value_known_p.
2324
2325 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
2326
2327         PR target/45726
2328         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
2329
2330 2010-09-20  Richard Guenther  <rguenther@suse.de>
2331
2332         PR tree-optimization/45705
2333         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
2334
2335 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
2336
2337         PR rtl-optimization/45695
2338         * combine.c (try_combine): When splitting a two set pattern,
2339         make sure the pattern which will be put into i2 doesn't use REGs
2340         or MEMs set by insns in between i2 and i3.
2341
2342 2010-09-19  Jan Hubicka  <jh@suse.cz>
2343
2344         PR lto/44246
2345         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
2346         processing same node twice.
2347
2348 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
2349
2350         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
2351         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2352         (bfin_class_likely_spilled_p): New function
2353
2354 2010-09-19  Ira Rosen  <irar@il.ibm.com>
2355
2356         PR tree-optimization/45714
2357         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
2358         created in vectorizable_call instead of the original statement in
2359         def stmt updates.
2360
2361 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
2362
2363         * config/i386/i386-protos.h (split_double_mode): New prototype.
2364         (split_di, split_ti): Remove prototypes.
2365         * config/i386/i386.c (split_double_mode): New function.
2366         (split_di, split_ti): Remove.
2367         (ix86_expand_branch): Use split_double_mode.
2368         (ix86_split_to_parts): Ditto.
2369         (ix86_split_ashl): Ditto.
2370         (ix86_split_ashr): Ditto.
2371         (ix86_split_lshr): Ditto.
2372         (ix86_force_to_memory): Ditto.
2373         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
2374
2375 2010-09-18  Jan Hubicka  <jh@suse.cz>
2376
2377         PR tree-optimization/45453
2378         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
2379         virtual functions are reachable.
2380         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
2381         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
2382         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
2383         when modifying function.
2384
2385 2010-09-18  Jan Hubicka  <jh@suse.cz>
2386
2387         PR tree-optimization/45605
2388         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
2389         * gimple-fold.c (static_object_in_other_unit_p): New function.
2390         (canonicalize_constructor_val): Use it.
2391         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
2392         returning NULL.
2393         (gimple_fold_obj_type_ref_known_binfo): Use
2394         static_object_in_other_unit_p.
2395
2396 2010-09-18  Richard Guenther  <rguenther@suse.de>
2397
2398         PR tree-optimization/45709
2399         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
2400         insertions until after all PHI nodes of the block are processed.
2401
2402 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
2403
2404         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
2405
2406 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
2407
2408         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
2409
2410 2010-09-18  Richard Guenther  <rguenther@suse.de>
2411
2412         PR tree-optimization/45709
2413         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
2414
2415 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
2416
2417         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
2418         (dot_deps_stmt): Same.
2419         * graphite-poly.c (dot_lst): Same.
2420         * graphite-scop-detection.c (dot_all_scops): Same.
2421         (dot_scop): Same.
2422
2423 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
2424
2425         Revert:
2426         2009-12-16  Ben Elliston  <bje@au.ibm.com>
2427
2428         * tree-data-ref.c (dot_rdg_1): Added back.
2429         (dot_rdg): Same.  Added "#if 0" around system call.
2430
2431 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2432             Richard Henderson  <rth@redhat.com>
2433
2434         * config/i386/i386.c (initial_ix86_tune_features): Add
2435         X86_TUNE_PAD_SHORT_FUNCTION.
2436         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
2437         (ix86_count_insn): New.
2438         (ix86_pad_short_function): Likewise.
2439         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
2440
2441         * config/i386/i386.h (ix86_tune_indices): Add
2442         X86_TUNE_PAD_SHORT_FUNCTION.
2443         (TARGET_PAD_SHORT_FUNCTION): New.
2444
2445         * config/i386/i386.md (UNSPEC_NOPS): New.
2446         (nops): Likewise.
2447
2448 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2449
2450         PR middle-end/45234
2451         * calls.c (expand_call): Make sure that all variable sized
2452         adjustments are multiple of preferred stack boundary after
2453         stack alignment.
2454
2455 2010-09-17  DJ Delorie  <dj@redhat.com>
2456
2457         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
2458         passed an invalid value, print an error instead of ICEing.
2459         (valid_psw_flag): New.
2460         (rx_expand_builtin): Call it for setpsw/clrpsw.
2461         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
2462
2463         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
2464         (bitclr_in_memory): Likewise.
2465         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
2466
2467 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2468
2469         PR middle-end/45678
2470         * cfgexpand.c (update_stack_alignment): New.
2471         (get_decl_align_unit): Use it.
2472         (expand_one_stack_var_at): Call update_stack_alignment.
2473
2474 2010-09-17  Richard Guenther  <rguenther@suse.de>
2475
2476         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
2477         Properly copy the read string.
2478
2479 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
2480
2481         * doc/options.texi (Variable): Document.
2482         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
2483         generate target_flags declarations explicitly.  Don't define
2484         VarExists variables for the driver.
2485         * common.opt (target_flags): New Variable record.
2486         (flag_dump_unnumbered, flag_dump_unnumbered_links,
2487         flag_var_tracking, flag_var_tracking_assignments,
2488         flag_var_tracking_assignments_toggle): Don't mark variables with
2489         VarExists.
2490         * config/i386/i386.c (ix86_isa_flags): Don't define here.
2491         * config/i386/i386.opt (ix86_isa_flags): Define here.
2492         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
2493         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
2494         VarExists.
2495         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
2496         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
2497         Only define for generator programs.
2498         * rtlanal.c (target_flags): Remove.
2499         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
2500         flag_var_tracking_assignments_toggle): Remove.
2501
2502 2010-09-17  Michael Matz  <matz@suse.de>
2503
2504         PR tree-optimization/43432
2505         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
2506         Accept backwards consecutive accesses.
2507         (vect_create_data_ref_ptr): If step is negative generate
2508         decreasing IVs.
2509         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
2510         (perm_mask_for_reverse, reverse_vec_elements): New functions.
2511         (vectorizable_load): Handle loads with negative steps when easily
2512         possible.
2513
2514 2010-09-03  Jan Hubicka  <jh@suse.cz>
2515
2516         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
2517
2518 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
2519
2520         * config/v850/v850.c (v850_function_value_regno_p): Make static.
2521         Adjust comments. Declare.
2522         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2523         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
2524
2525 2010-09-17  Richard Guenther  <rguenther@suse.de>
2526
2527         * common.opt (combine): Remove.
2528         * gcc.c (default_compilers): Remove specs testing combine.
2529         The C compilers no longer can combine.
2530         (option_map): Remove -combine.
2531         (display_help): Remove -combine.
2532         (driver_handle_option): Remove OPT_combine handling.
2533         (compile_input_file_p): Remove.
2534         (do_spec): Remove code concerning combine.
2535         (main): Likewise.
2536         * doc/invoke.texi: Remove traces of -combine.
2537         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
2538
2539 2010-09-17  Richard Guenther  <rguenther@suse.de>
2540
2541         PR middle-end/45678
2542         * builtins.c (fold_builtin_memory_op): Always properly adjust
2543         alignment of memory accesses.
2544
2545 2010-09-16  Jan Hubicka  <jh@suse.cz>
2546
2547         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
2548         processing clone.
2549
2550 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
2551
2552         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
2553
2554         * config/i386/i386.c (predict_jump): Add prototype.
2555         (flag_opts): Add -m8bit-idiv.
2556         (ix86_split_idivmod): New.
2557
2558         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
2559         Add 2 splitters for SI/DI mode divide.
2560         (divmod<mode>4_1): New pattern.
2561         (udivmod<mode>4_1): Likewise.
2562         (testdi_ccno_1): Likewise.
2563
2564         * config/i386/i386.opt (m8bit-idiv): New.
2565
2566         * doc/invoke.texi: Document -m8bit-idiv.
2567
2568 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
2569
2570         PR bootstrap/45680
2571         * config/i386/i386.c (min_insn_size): Moved out of the
2572         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
2573
2574 2010-09-16  Jan Hubicka  <jh@suse.cz>
2575
2576         * lto-cgraph.c (lto_output_node): Fix handling of clones.
2577         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
2578         unreachable clones with reachable clones.
2579         * tree-inline.c (copy_bb): Fix sanity checking when producing
2580         unreachable clone.
2581
2582 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
2583
2584         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
2585         (TARGET_MEMORY_MOVE_COST): Define.
2586         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
2587
2588 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
2589
2590         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
2591         maybe_tidy_empty_bb.
2592
2593         Revert:
2594         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
2595         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
2596
2597 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
2598
2599         * target.def (target_option.optimization): New hook.
2600         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
2601         TARGET_OPTION_OPTIMIZATION hook.
2602         * doc/tm.texi: Regenerate.
2603         * hooks.c (hook_void_int_int): New.
2604         * hooks.h (hook_void_int_int): Declare.
2605         * opts.c: Don't include tm_p.h.
2606         (decode_options): Use targetm.target_option.optimization instead
2607         of OPTIMIZATION_OPTIONS.
2608         * system.h (OPTIMIZATION_OPTIONS): Poison.
2609         * config/arm/arm-protos.h (arm_optimization_options): Remove.
2610         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
2611         (arm_optimization_options): Rename to arm_option_optimization.
2612         Make static.
2613         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
2614         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
2615         (cris_option_optimization): New.
2616         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
2617         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
2618         (crx_option_optimization): New.
2619         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
2620         * config/frv/frv-protos.h (frv_optimization_options): Remove.
2621         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
2622         (frv_optimization_options): Rename to frv_option_optimization.
2623         Make static.
2624         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
2625         * config/h8300/h8300.c (h8300_option_optimization): New.
2626         (TARGET_OPTION_OPTIMIZATION): Define.
2627         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
2628         * config/i386/i386-protos.h (optimization_options): Remove.
2629         * config/i386/i386.c (optimization_options): Rename to
2630         ix86_option_optimization.  Make static.
2631         (TARGET_OPTION_OPTIMIZATION): Define.
2632         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
2633         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
2634         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
2635         (ia64_optimization_options): Rename to ia64_option_optimization.
2636         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
2637         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
2638         commented-out definition.
2639         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
2640         instead of OPTIMIZATION_OPTIONS.
2641         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
2642         (m32r_option_optimization): New.
2643         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
2644         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
2645         Remove.
2646         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
2647         (mcore_option_optimization): New.
2648         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
2649         * config/mep/mep-protos.h (mep_optimization_options): Remove.
2650         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
2651         (mep_optimization_options): Rename to mep_option_optimization.
2652         Make static.  Take unused level and size parameters.
2653         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
2654         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
2655         (mmix_option_optimization): New.
2656         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
2657         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
2658         (pdp11_option_optimization): New.
2659         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
2660         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
2661         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
2662         (optimization_options): Rename to rs6000_option_optimization.
2663         Make static.
2664         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
2665         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
2666         * config/rx/rx.c (rx_set_optimization_options): Rename to
2667         rx_option_optimization.  Make static.  Take unused level and size
2668         parameters.
2669         (TARGET_OPTION_OPTIMIZATION): Define.
2670         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
2671         * config/s390/s390-protos.h (optimization_options): Remove.
2672         * config/s390/s390.c (optimization_options): Rename to
2673         s390_option_optimization.  Make static.  Don't mark size parameter
2674         unused.
2675         (TARGET_OPTION_OPTIMIZATION): Define.
2676         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
2677         * config/sh/sh-protos.h (sh_optimization_options): Remove.
2678         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
2679         (sh_optimization_options): Rename to sh_option_optimization.  Make
2680         static.  Don't mark parameters unused.
2681         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
2682         * config/spu/spu-protos.h (spu_optimization_options): Remove.
2683         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
2684         (spu_optimization_options): Rename to spu_option_optimization.
2685         Make static.
2686         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
2687         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
2688         (v850_option_optimization): New.
2689         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
2690         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
2691         (xtensa_option_optimization): New.
2692         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
2693
2694 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
2695
2696         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
2697         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
2698         * doc/tm.texi: Regenerate.
2699         * system.h (OVERRIDE_OPTIONS): Poison.
2700         * target.def (override): Default to hook_void_void.
2701         * targhooks.c (default_target_option_override): Remove.
2702         * genmodes.c, machmode.def: Update comments mentioning
2703         OVERRIDE_OPTIONS.
2704         * config/alpha/alpha-modes.def: Update comment mentioning
2705         alpha_override_options.
2706         * config/alpha/alpha-protos.h (override_options): Remove.
2707         * config/alpha/alpha.c (override_options): Rename to
2708         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
2709         (TARGET_OPTION_OVERRIDE): Define.
2710         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
2711         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
2712         of OVERRIDE_OPTIONS.
2713         * config/arc/arc-protos.h (arc_init): Remove.
2714         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
2715         (arc_init): Rename to arc_option_override.  Make static.
2716         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
2717         (OVERRIDE_OPTIONS): Remove.
2718         * config/arm/arm-protos.h (arm_override_options): Remove.
2719         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
2720         (arm_override_options): Rename to arm_option_override.  Make
2721         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
2722         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
2723         * config/arm/arm.md: Update comment referring to arm_override_options.
2724         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2725         instead of OVERRIDE_OPTIONS.
2726         * config/avr/avr-protos.h (avr_override_options): Remove.
2727         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
2728         (avr_override_options): Rename to avr_option_override.  Make static.
2729         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
2730         * config/bfin/bfin-protos.h (override_options): Remove (twice).
2731         * config/bfin/bfin.c (override_options): Rename to
2732         bfin_option_override.  Make static.
2733         (TARGET_OPTION_OVERRIDE): Define.
2734         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
2735         * config/cris/cris-protos.h (cris_override_options): Remove.
2736         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
2737         (cris_override_options): Rename to cris_option_override.  Make static.
2738         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
2739         * config/frv/frv-protos.h (frv_override_options): Remove.
2740         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
2741         (frv_override_options): Rename to frv_option_override.  Make static.
2742         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
2743         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
2744         * config/h8300/h8300.c (h8300_init_once): Rename to
2745         h8300_option_override.  Make static.
2746         (TARGET_OPTION_OVERRIDE): Define.
2747         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
2748         * config/i386/i386-protos.h (override_options): Remove.
2749         * config/i386/i386.c (override_options): Rename to
2750         ix86_option_override_internal.  Make static.  Comments referring
2751         to this function and callers changed.
2752         (ix86_option_override): New.
2753         (TARGET_OPTION_OVERRIDE): Define.
2754         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
2755         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
2756         * config/ia64/ia64.c (ia64_file_start): Update comment referring
2757         to ia64_override_options.
2758         * config/iq2000/iq2000-protos.h (override_options): Remove.
2759         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
2760         (override_options): Rename to iq2000_option_override.  Make static.
2761         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
2762         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
2763         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
2764         (lm32_override_options): Rename to lm32_option_override.  Make static.
2765         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
2766         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
2767         (m32r_option_override): New.
2768         (m32r_init): Update comment.
2769         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
2770         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
2771         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
2772         (m68hc11_override_options): Rename to m68hc11_option_override.
2773         Make static.  Return void.
2774         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
2775         * config/m68k/m68k-protos.h (override_options): Remove.
2776         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
2777         (override_options): Rename to m68k_option_override.  Make static.
2778         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
2779         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
2780         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
2781         (mcore_override_options): Rename to mcore_option_override.  Make
2782         static.
2783         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
2784         * config/mep/mep-protos.h (mep_override_options): Remove.
2785         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
2786         (mep_override_options): Rename to mep_option_override.  Make static.
2787         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
2788         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
2789         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
2790         (mmix_override_options): Rename to mmix_option_override.  Make static.
2791         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
2792         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
2793         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
2794         (mn10300_override_options): Rename to mn10300_option_override.
2795         Make static.
2796         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
2797         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
2798         * config/moxie/moxie.c (moxie_override_options): Rename to
2799         moxie_option_override.  Make static.
2800         (TARGET_OPTION_OVERRIDE): Define.
2801         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
2802         * config/picochip/picochip-protos.h (picochip_override_options):
2803         Remove.  Update comment referring to picochip_override_options.
2804         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
2805         (picochip_override_options): Rename to picochip_option_override.
2806         Make static.  Update comment and definition of
2807         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
2808         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
2809         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2810         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2811         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2812         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2813         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2814         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
2815         instead of OVERRIDE_OPTIONS.
2816         * config/rs6000/rs6000-modes.def: Update comment referring to
2817         rs6000_override_options.
2818         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
2819         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
2820         (rs6000_override_options): Rename to
2821         rs6000_option_override_internal.  Make static.  Commented
2822         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
2823         (rs6000_option_override): New.
2824         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
2825         instead of OVERRIDE_OPTIONS.
2826         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
2827         * config/s390/s390-protos.h (override_options): Remove.
2828         * config/s390/s390.c (override_options): Rename to
2829         s390_option_override.  Make static.
2830         (TARGET_OPTION_OVERRIDE): Define.
2831         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
2832         * config/score/score-protos.h (score_override_options): Remove.
2833         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
2834         (score_override_options): Rename to score_option_override.  Make
2835         static.
2836         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
2837         Update comment referring to override_options.
2838         * config/score/score3.c (score3_override_options): Rename to
2839         score3_option_override.
2840         * config/score/score3.h (score3_override_options): Rename to
2841         score3_option_override.
2842         * config/score/score7.c (score7_override_options): Rename to
2843         score7_option_override.
2844         * config/score/score7.h (score7_override_options): Rename to
2845         score7_option_override.
2846         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
2847         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
2848         (sparc_override_options): Rename to sparc_option_override.  Make
2849         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
2850         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
2851         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
2852         instead of OVERRIDE_OPTIONS.
2853         * config/spu/spu-protos.h (spu_override_options): Remove.
2854         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
2855         (spu_override_options): Rename to spu_option_override.  Make
2856         static.
2857         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
2858         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
2859         OVERRIDE_OPTIONS.
2860         * config/vax/vax-protos.h (override_options): Remove.
2861         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
2862         (override_options): Rename to vax_option_override.  Make static.
2863         Call SUBTARGET_OVERRIDE_OPTIONS.
2864         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
2865         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
2866         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
2867         * config/xtensa/xtensa-protos.h (override_options): Remove.
2868         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
2869         (override_options): Rename to xtensa_option_override.  Make static.
2870         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
2871
2872 2010-09-16  Richard Guenther  <rguenther@suse.de>
2873
2874         PR tree-optimization/45623
2875         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
2876         (get_constraint_for_component_ref): If computing a constraint
2877         for the rhs handle type punning through unions.
2878         (get_constraint_for_address_of): Adjust.
2879         (get_constraint_for_1): Likewise.
2880         (get_constraint_for): Likewise.
2881         (get_constraint_for_rhs): New function.
2882         (do_structure_copy): Adjust.
2883         (make_constraint_to): Likewise.
2884         (handle_const_call): Likewise.
2885         (find_func_aliases): Likewise.
2886         (process_ipa_clobber): Likewise.
2887         (create_variable_info_for): Likewise.
2888
2889 2010-09-16  Ira Rosen  <irar@il.ibm.com>
2890
2891         * tree-vectorizer.c: Fix documentation.
2892         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
2893         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
2894         is_pattern_stmt_p, is_loop_header_bb_p,
2895         stmt_vinfo_set_inside_of_loop_cost,
2896         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
2897         known_alignment_for_access_p): Likewise.
2898         * tree-vect-loop.c: Fix documentation.
2899         (vect_get_cost): Start function name from new line.
2900         * tree-vect-data-refs.c: Fix documentation.
2901         * tree-vect_stmts.c: Likewise.
2902         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
2903         (vectorizable_store): Free vec_oprnds if allocated.
2904         (vectorizable_condition): Initialize several variables to avoid
2905         warnings.
2906         * tree-vect-slp.c: Fix documentation.
2907
2908 2010-09-16  Richard Guenther  <rguenther@suse.de>
2909
2910         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
2911         is TS_TRANSLATION_UNIT_DECL.
2912         (initialize_tree_contains_struct): Adjust.
2913         (all_translation_units): New global vector.
2914         (build_translation_unit_decl): New function.
2915         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
2916         (struct tree_translation_unit_decl): New.
2917         (all_translation_units): Declare.
2918         (union tree_node): Add translation_unit_decl member.
2919         (build_translation_unit_decl): Declare.
2920         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
2921         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
2922         New function.
2923         (pack_value_fields): Call it.
2924         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
2925         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
2926         (lto_output_tree_pointers): Call it.
2927         * lto-streamer-in.c (lto_input_tree_ref): Handle references
2928         to TRANSLATION_UNIT_DECL.
2929         (unpack_ts_translation_unit_decl_value_fields): New function.
2930         (unpack_value_fields): Call it.
2931         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
2932         (lto_input_tree_pointers): Call it.
2933         * lto-streamer.c (check_handled_ts_structures): Adjust.
2934         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
2935         * c-decl.c (all_translation_units): Remove.
2936         (pop_scope): Use build_translation_unit_decl.
2937         (collect_all_refs): Adjust.
2938         (for_each_global_decl): Likewise.
2939         (c_write_global_declarations): Likewise.
2940
2941 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
2942
2943         PR bootstrap/45686
2944         * fold-const.c (fold_checksum_tree): Change slot from const void **
2945         to void **, use CONST_CAST_TREE to store into *slot.
2946
2947 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2948
2949         * config/i386/i386.md: Remove unneeded empty conditions and
2950         preparation statements from expanders.
2951         * config/i386/mmx.md: Ditto.
2952         * config/i386/sse.md: Ditto.
2953
2954 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2955
2956         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
2957
2958 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2959
2960         PR rtl-optimization/45593
2961         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
2962         insns that were in delay slots as stand-alone insns.
2963
2964 2010-09-15  Ian Lance Taylor  <iant@google.com>
2965
2966         * incpath.c (remove_duplicates): If name is not a directory, issue
2967         a warning rather than an error.
2968
2969 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2970
2971         PR middle-end/45644
2972         * tree-sra.c (create_access): Check for bit-fields directly.
2973
2974 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
2975
2976         PR tree-optimization/45633
2977         * tree-cfg.c (verify_gimple_assign_binary): Allow
2978         MINUS_EXPR with lhs and rhs1 pointer vector and
2979         rhs2 sizetype vector.
2980         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
2981         or vector pointer use TER to optimize pointer subtraction.
2982
2983 2010-09-15  Jie Zhang  <jie@codesourcery.com>
2984
2985         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
2986         fcmpd to fcmps.
2987
2988 2010-09-15  Ian Lance Taylor  <iant@google.com>
2989
2990         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
2991
2992 2010-09-15  Ian Lance Taylor  <iant@google.com>
2993
2994         * function.c (get_arg_pointer_save_area): Set
2995         arg_pointer_save_area_init to true.
2996
2997 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2998
2999         * tree-sra.c (generate_subtree_copies): Updated comment.
3000         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
3001         obtained from the statement iterator instead.
3002         (load_assign_lhs_subreplacements): Removed parameters lhs and
3003         right_offset, which is obtained from top_racc instead.  Parameter lacc
3004         is now expected to be the root of the processed tree rather than root's
3005         first child.  Updated all callers.
3006
3007 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
3008
3009         * config/pdp11/pdp11.c (register_move_cost): Rename to
3010         pdp11_register_move_cost.
3011         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
3012         pdp11_register_move_cost.
3013         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
3014         pdp11_register_move_cost instead of register_move_cost.
3015
3016 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
3017
3018         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
3019         pattern for vmovn. Expansion in case of non
3020         -mvectorize-with-neon-quad.
3021         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
3022         non- -mvectorize-with-neon-quad case.
3023         (move_lo_quad_<mode>): New expansion to vmov into low part.
3024         (move_hi_quad_<mode>): New expansion to vmov into high part.
3025         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
3026         (move_lo_quad_v4sf): Likewise.
3027         (move_lo_quad_v8hi): Likewise.
3028         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
3029         low part.
3030         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
3031         high part.
3032         * config/arm/iterators.md (ANY128): New mode iterator.
3033         (V_narrow_pack): New mode attribute.
3034         (V_HALF): Add attribute.
3035         (V_DOUBLE): Add attribute.
3036         (V_mode_nunits): Add attribute.
3037
3038 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
3039
3040         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
3041         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
3042
3043 2010-09-15  Olivier Hainque  <hainque@adacore.com>
3044             Jose Ruiz  <ruiz@adacore.com>
3045
3046         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
3047         * config/alpha/osf5-unwind.h: New file.
3048
3049 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3050
3051         PR bootstrap/45672
3052         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
3053         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
3054         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
3055
3056 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3057
3058         * c-lang.h (struct lang_type): Add variable_size GTY option.
3059
3060 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3061
3062         PR bootstrap/45672
3063         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
3064
3065 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3066
3067         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
3068         result isn't used in memory address.
3069
3070 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3071
3072         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
3073         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
3074         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
3075         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3076         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3077         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3078
3079         * target.def: Add units_per_simd_word to vectorize.
3080
3081         * targhooks.c (default_units_per_simd_word): New.
3082         * targhooks.h (default_units_per_simd_word): Likewise.
3083         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
3084         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
3085         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
3086         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
3087         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
3088         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
3089         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
3090         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
3091
3092         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
3093         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
3094
3095         * tree-vect-stmts.c: Don't include "tm_p.h".
3096         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
3097         with targetm.vectorize.units_per_simd_word.
3098
3099         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
3100
3101         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
3102
3103         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
3104         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
3105
3106         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
3107         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
3108
3109         * doc/tm.texi: Regenerated.
3110
3111 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3112
3113         * tree-vect-stmts.c: Include "tm_p.h".
3114
3115         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
3116         out of RTX_CODE.
3117
3118 2010-09-14  Martin Jambor  <mjambor@suse.cz>
3119
3120         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
3121         location of generated statement.  Changed all callers.
3122         (build_ref_for_model): New parameter loc which used to set location of
3123         all generated expressions.  Changed all callers.
3124         (generate_subtree_copies): Likewise.
3125         (init_subtree_with_zero): Likewise.
3126         (sra_modify_expr): Set locations of all generated statements and
3127         expressions to the location the original statement.
3128         (handle_unscalarized_data_in_subtree): Likewise.
3129         (load_assign_lhs_subreplacements): Likewise.
3130         (sra_modify_constructor_assign): Likewise.
3131         (sra_modify_assign): Likewise.
3132
3133 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
3134
3135         PR target/45277
3136         PR target/45363
3137         PR target/45407
3138         * doc/install.texi (sparc*-*-*): New section.
3139         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
3140
3141 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
3142
3143         PR middle-end/45567
3144         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
3145         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
3146         (expand_builtin): Adjust caller.
3147         (expand_builtin_unop): Only use subtarget if it has the right mode.
3148
3149 2010-09-14  Tristan Gingold  <gingold@adacore.com>
3150
3151         * configure.ac (plugins): Fix typos.
3152         * configure: Regenerate.
3153
3154 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
3155
3156         PR debug/45660
3157         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
3158         gen_type_die for function/method return type.
3159
3160 2010-09-14  Ira Rosen  <irar@il.ibm.com>
3161
3162         PR tree-optimization/45470
3163         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
3164         can throw an exception.
3165         * tree-vect-stmts.c (vectorizable_call): Likewise.
3166
3167 2010-09-14  DJ Delorie  <dj@redhat.com>
3168
3169         PR target/44749
3170         * config/mep/mep-protos.h (mep_save_register_info,
3171         mep_reinit_regs, mep_init_regs): Declare.
3172
3173         * config/mep/mep.c: Move all target definitions to the end of the
3174         file to avoid the need for duplicate declarations.
3175         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
3176         (mep_reorg_erepeat): Remove unused variables.
3177         (mep_expand_builtin): Likewise.
3178
3179         * config/mep/mep-pragma.c: Don't include rtl.h.
3180         (INVALID_REGNUM): New.
3181         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
3182         functions.
3183         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
3184         Avoid enum/integer math.
3185
3186 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
3187
3188         PR target/44749
3189         * config/mep/t-mep (GTM_H): Add insn-constants.h.
3190         * config/mep/mep.c (mep_conditional_register_usage): Take no
3191         parameters.
3192         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
3193         prototype.
3194         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
3195         call to mep_conditional_register_usage.
3196
3197 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
3198
3199         PR debug/43937
3200         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
3201         the DECL as well.
3202
3203 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
3204
3205         PR rtl-optimization/45617
3206         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
3207         even if low N bits of X aren't known to be zero.
3208
3209 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
3210
3211         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
3212
3213         * config/i386/i386.c (initial_ix86_tune_features): Add
3214         X86_TUNE_VECTORIZE_DOUBLE.
3215         (ix86_units_per_simd_word): New.
3216
3217         * config/i386/i386.h (ix86_tune_indices): Add
3218         X86_TUNE_VECTORIZE_DOUBLE.
3219         (TARGET_VECTORIZE_DOUBLE): New.
3220         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
3221
3222 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
3223
3224         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
3225         (new_temp_expr_table): Allocate call_cnt vector.
3226         (free_temp_expr_table): Free it.
3227         (process_replaceable): Add call_cnt parm and set in vector.
3228         (find_replaceable_in_bb): Skip replacement if def/use span a call.
3229         (debug_ter): Dump call_cnt value, remove stderr uses.
3230
3231 2010-09-13  Jan Hubicka  <jh@suse.cz>
3232
3233         * tree.c (build_zero_cst): New.
3234         * tree.h (build_zero_cst): Declare.
3235         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
3236         (get_base_constructor): Break out from ...
3237         (fold_const_aggregate_ref): Here; handle empty constructors.
3238
3239 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3240
3241         * config/arm/arm.md: (define_attr "conds"): Update comment.
3242         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
3243         conds attribute to clob.
3244         (arm_sync_compare_and_swapsi): Likewise.
3245         (arm_sync_compare_and_swap<mode>): Likewise.
3246         (arm_sync_lock_test_and_setsi): Likewise.
3247         (arm_sync_lock_test_and_set<mode>): Likewise.
3248         (arm_sync_new_<sync_optab>si): Likewise.
3249         (arm_sync_new_nandsi): Likewise.
3250         (arm_sync_new_<sync_optab><mode>): Likewise.
3251         (arm_sync_new_nand<mode>): Likewise.
3252         (arm_sync_old_<sync_optab>si): Likewise.
3253         (arm_sync_old_nandsi): Likewise.
3254         (arm_sync_old_<sync_optab><mode>): Likewise.
3255         (arm_sync_old_nand<mode>): Likewise.
3256
3257 2010-09-13  Olivier Hainque  <hainque@adacore.com>
3258
3259         * fwprop.c (forward_propagate_and_simplify): Only attach a
3260         REG_EQUAL note to an insn if the destination is a register.
3261         * gcse.c (try_replace_reg): Likewise.
3262
3263 2010-09-13  Richard Guenther  <rguenther@suse.de>
3264
3265         PR tree-optimization/45611
3266         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
3267         (copy_ref_info): Likewise.
3268
3269 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
3270
3271         PR debug/45604
3272         PR debug/45419
3273         PR debug/45408
3274         * tree-pretty-print.c (dump_generic_node): Disregard top-level
3275         types of MEM_REF pointer types to the same type.
3276
3277 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
3278
3279         PR rtl-optimization/41087
3280         * ifcvt.c (noce_get_condition): Don't allow conditions with
3281         side-effects.
3282
3283 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
3284
3285         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3286         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
3287         * config/frv/frv.c (frv_register_move_cost): Make static. Change
3288         arguments type to reg_class_t. Add mode argument.
3289         (frv_memory_move_cost): New.
3290         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
3291
3292 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
3293
3294         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
3295         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
3296
3297 2010-09-10  Jan Hubicka  <jh@suse.cz>
3298
3299         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
3300
3301 2010-09-10  Richard Guenther  <rguenther@suse.de>
3302
3303         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
3304         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
3305         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
3306         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
3307         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
3308
3309 2010-09-10  Richard Guenther  <rguenther@suse.de>
3310
3311         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
3312         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
3313         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
3314         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
3315
3316 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
3317
3318         PR middle-end/45634
3319         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
3320         of string folding is of integral type.
3321
3322 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
3323
3324         * doc/invoke.texi (-x): Fix typo.
3325
3326 2010-09-10  Richard Guenther  <rguenther@suse.de>
3327
3328         PR debug/44115
3329         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
3330         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3331         Output DECL_DEBUG_EXPR.
3332         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
3333         Input DECL_DEBUG_EXPR.
3334
3335 2010-09-10  Richard Guenther  <rguenther@suse.de>
3336
3337         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
3338         (build_index_type): Implement in terms of build_range_type.
3339         (build_range_type): Do not allow NULL_TREE type, improve
3340         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
3341         if we didn't hash.
3342         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
3343         create a distinct copy of the type.
3344
3345 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
3346
3347         * configure: Regenerated.
3348         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
3349
3350 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3351
3352         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
3353         * config/arm/cortex-a9-neon.md: New and partially generated.
3354         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
3355
3356 2010-09-10  Richard Guenther  <rguenther@suse.de>
3357
3358         * tree.h (build_index_2_type): Remove.
3359         * tree.c (build_index_2_type): Remove.
3360
3361 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
3362
3363         PR bootstrap/45630
3364         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
3365         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
3366         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
3367
3368 2010-09-10  Martin Jambor  <mjambor@suse.cz>
3369
3370         PR tree-optimization/44972
3371         * tree-sra.c: Include toplev.h.
3372         (build_ref_for_offset): Entirely reimplemented.
3373         (build_ref_for_model): New function.
3374         (build_user_friendly_ref_for_offset): New function.
3375         (analyze_access_subtree): Removed build_ref_for_offset check.
3376         (propagate_subaccesses_across_link): Likewise.
3377         (create_artificial_child_access): Use
3378         build_user_friendly_ref_for_offset.
3379         (propagate_subaccesses_across_link): Likewise.
3380         (ref_expr_for_all_replacements_p): Removed.
3381         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
3382         (sra_modify_expr): Use build_ref_for_model.
3383         (load_assign_lhs_subreplacements): Likewise.
3384         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
3385         checks for return values of build_ref_for_offset.
3386         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
3387         build_ref_for_offset.
3388         * ipa-prop.h: Include gimple.h
3389         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
3390         (ipa_analyze_indirect_call_uses): Update comment.
3391         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
3392         (IPA_PROP_H): Likewise.
3393
3394 2010-09-10  Martin Jambor  <mjambor@suse.cz>
3395
3396         PR tree-optimization/44972
3397         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
3398         calling build_ref_for_offset.
3399
3400 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3401
3402         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
3403         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
3404         * config/arm/arm-tune.md: Regenerate.
3405         * doc/invoke.texi (ARM Options): Document it.
3406
3407 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
3408
3409         * config/i386/i386.c: Include sched-int.h.
3410         (TARGET_SCHED_DISPATCH): Defined.
3411         (TARGET_SCHED_DISPATCH_DO): Defined.
3412         (DISPATCH_WINDOW_SIZE): Defined.
3413         (MAX_DISPATCH_WINDOWS): Defined.
3414         (MAX_INSN): Defined.
3415         (MAX_IMM): Defined.
3416         (MAX_IMM_SIZE): Defined.