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