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